You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NixOS上安装LaTeX的ragged2e CTAN包?

在NixOS上安装LaTeX的ragged2e包

别担心,这其实比你想的简单——ragged2e确实在Nixpkgs的texlive集合里,只是你可能没找到正确的属性名或者补全没触发而已。下面是两种解决方法,从全局安装到项目本地环境都有:

方法一:全局安装(修改NixOS配置)

你现在已经在用texlive.combine来组合需要的TeXLive组件,只需要把ragged2e添加到你的组合列表里就行:

修改你的configuration.nix(或者对应的系统配置文件)中的environment.systemPackages部分:

environment.systemPackages = with pkgs; [
  # ... 保留你已有的其他包
  texlive.combine {
    inherit (texlive) scheme-basic latexmk etoolbox babel-german ragged2e;
  }
];

保存配置后,运行以下命令应用更改:

sudo nixos-rebuild switch

这样ragged2e就会被全局安装,你在任何地方编译LaTeX项目都能用到它。

为什么之前Tab补全没找到?

可能是你在nix repl里输入texlive.ragged<TAB>的时候,补全还没加载完或者需要更完整的前缀——试试输入texlive.ragged2e,应该就能看到这个包了。

方法二:为单个项目创建本地TeX环境(更推荐给新手)

如果你不想全局安装,只想让这个包在你的LaTeX项目中可用,可以用shell.nix来创建一个专属环境:

在你的LaTeX项目根目录下创建一个名为shell.nix的文件,内容如下:

{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
  buildInputs = with pkgs.texlive; [
    scheme-basic
    latexmk
    etoolbox
    babel-german
    ragged2e
  ];
}

然后在项目目录下运行:

nix-shell

进入这个shell环境后,你就可以用latexmk或者其他工具编译你的项目了,ragged2e会被自动加载,不需要全局修改系统配置。

关于自定义包的说明

你提到看了NixOS手册里的「自定义包」部分,那部分其实是给那些不在Nixpkgs官方集合里的CTAN包准备的。ragged2e是很常用的LaTeX包,已经被收录在Nixpkgs里了,所以完全不需要走自定义编译的路线~

内容的提问来源于stack exchange,提问作者Kaligule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 12:27:49