我发现我需要CMU 字体才能使用 XeLaTeX 排版俄语文本。在 NixOS 下有它的cm-unicode
包,我已经安装了它
nix-env -iA nixos.cm_unicode
但 XeLaTeX 仍然找不到它。我可以在 Ubuntu 上使用 XeLaTeX 编译的 LaTeX 文件在 NixOS 上无法使用 XeLaTeX 编译,并且我收到一条错误消息,指出找不到我指示的 CMU 字体。
我了解到我可以使用 列出系统上安装的所有字体fc-list
,因此我尝试运行fc-list | grep -i cmu
, fc-list | grep -i com
, fc-list | grep -i unic
,但没有得到任何结果。
我怎样才能安装这个字体? 这是针对 NixOS 17.09 的。
顺便说一句,我已经不得不手动安装拉丁现代字体:它最初无法在 XeLaTeX 中选择,但是在我安装了带有 的lmodern
包后nix-env -i
,它工作正常。
我刚刚再次对此进行了测试:卸载lmodern
with会从和nix-env -e
from 的结果中删除 Latin Modern ,安装 with会恢复它。与.fc-list
font-manager
nix-env -i
cm_unicode
我有一个可能相关的问题,所以我把它放在这里。(如果事实证明它不相关,我将不胜感激简短的评论或解释。)
我想在我的 中定义我的 TeX Live 环境及其所有依赖项.nixpkgs/config.nix
,所以我做了
# .nixpkgs/config.nix
{ # ...
packageOverrides = pkgs: {
myTexLive = pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-basic
collection-bibtexextra
collection-fontsrecommended
collection-genericrecommended
collection-langcyrillic
collection-langfrench
collection-latex
collection-latexextra
collection-latexrecommended
collection-mathextra
collection-xetex
cm-unicode # from `collection-fontsextra`
latexmk
lm # from `collection-fontsrecommended`
lm-math # from `collection-fontsrecommended`
texdoc;
};
}
我希望拥有lm
和cm-unicode
TeX Live 软件包足以安装 Latin Modern 和 CMU 字体,但它不起作用。
有没有办法将必要的字体声明为依赖项myTexLive
?
在 NixOS 上无法安装
nix-env
字体,因为要找到字体,需要创建各种数据库。这需要副作用,但 Nix 包是纯函数。通常,您可以将副作用代码视为由nixos-rebuild
;处理。因此您需要使用configuration.nix
:您可以观看我关于 NixOS 字体的视频以进行演示。请原谅我的机器人声音。
有关 Latex 特定信息,请参阅https://nixos.org/nixpkgs/manual/#sec-language-texlive