最近在一台服务器上将 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
这样就都好了。