TeXLive 2013 / 2014 报错一例

最近在一台服务器上将 TeXLive 2013 更新到 2014,结果 XeLaTeX 不工作了。一直报

kpathsea: Running mktexfmt xelatex.fmt
 ...
I can't find the format file `xelatex.fmt'!

查了一通,发现可以用这个命令来重建 fmt 文件

fmtutil --byfmt=xetex

然后就改报下面这个问题了

! I can't find file `dehypht-x-2013-05-26.tex'.

这是一个德语的断字文件。我不怎么写德语但是 TeXLive 还是想要它。有人建议 直接装 texlive-lang-german 包,但是我不是用 apt-get 装的。也有人建议直接把这个环境变量 TEXMFSYSVAR=/usr/local/texlive/2013/texmf-var 去掉但似乎这感觉也不好。

仔细看下错误,发现我们有一个定义文件

/usr/local/texlive/2013/texmf-var/tex/generic/config/language.def

里面提到了这个德语断字

\addlanguage{german-x-latest}{dehypht-x-2013-05-26.tex}{}{2}{2}

这个文件说不要直接编辑,于是运行

sudo tlmgr generate language

现在 language.def 就被更新到了

\addlanguage{german-x-latest}{dehypht-x-2014-05-21.tex}{}{2}{2}

那我们还是需要这个文件,于是安装

sudo tlmgr install dehyph-exptl

然后根据 tlmgr 的提示,运行

sudo fmtutil-sys --byhyphen /usr/local/texlive/2013/texmf-var/tex/generic/config/language.dat.lua
sudo fmtutil-sys --byhyphen /usr/local/texlive/2013/texmf-var/tex/generic/config/language.dat
sudo fmtutil-sys --byhyphen /usr/local/texlive/2013/texmf-var/tex/generic/config/language.def

这样就都好了。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据