I recently updated a TeXLive 2013 installation to 2014 on a server, and XeLaTeX stoped working. First it kept running that
kpathsea: Running mktexfmt xelatex.fmt ... I can't find the format file `xelatex.fmt'!
So I googled and stackoverflowed and saw that I can rebuild this fmt
file with
fmtutil --byfmt=xetex
But it told me that it was trying to get some file:
! I can't find file `dehypht-x-2013-05-26.tex'.
This is a German hyphenation tool. I don’t really write in German, but TeXLive wants to have this stuff anyway… Someone suggests to install texlive-lang-german package, but since I install directly through TeXLive scripts instead of apt-get, this is a bit awkward. Others suggests to comment out this definition TEXMFSYSVAR=/usr/local/texlive/2013/texmf-var
but I don’t feel good about that either.
Looking further into this error, it turns out that we have a definition file
/usr/local/texlive/2013/texmf-var/tex/generic/config/language.def
where we see this troublemaking file defined:
\addlanguage{german-x-latest}{dehypht-x-2013-05-26.tex}{}{2}{2}
It asks us not to directly edit this file, so I ran
sudo tlmgr generate language
Now we see that language.def
has been updated to
\addlanguage{german-x-latest}{dehypht-x-2014-05-21.tex}{}{2}{2}
I do need to get this file though, so
sudo tlmgr install dehyph-exptl
And then as suggested by tlmgr
, I ran
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
All is good now.