我在使用 Babel 包时遇到了一个以前从未见过的奇怪问题,希望得到一些帮助来找到解决方案。
首先,我将给出一个在我的计算机上可以正确编译的例子(使用 pdftex):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[hebrew, english]{babel}
\usepackage[T1]{fontenc}
\begin{document}
Document Text.
\end{document}
但是,当我删除单词时hebrew
,它不再编译并给出以下错误(取自日志文件):
! Undefined control sequence.
\bbl@set@language ...ge {\languagename }}\bbl@for
\bbl@tempa \BabelContentsF...
l.6 \begin{document}
?
! Emergency stop.
\bbl@set@language ...ge {\languagename }}\bbl@for
\bbl@tempa \BabelContentsF...
l.6 \begin{document}
End of file on the terminal!
我注意到使用阿拉伯语和英语时会出现同样的错误。
我最近刚刚更新到 TeX Live 2013;我也刚刚更新了所有软件包。遇到此问题后,我使用 TeX Live Utility 重新安装了所有 babel 软件包,并尝试再次编译文档,但没有成功。
我最近还安装了 GNU Aspell,里面有一堆词典,包括阿拉伯语、希伯来语和英语。我无法想象这会导致这个问题,但我想提一下。另外,我用的是 Mac。
\listfiles
以下是英文文档的输出:
! Undefined control sequence.
\bbl@set@language ...ge {\languagename }}\bbl@for
\bbl@tempa \BabelContentsF...
l.6 \begin{document}
? r
OK, entering \nonstopmode...
[1
{/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./FIT2.aux)
*File List*
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
inputenc.sty 2008/03/30 v1.1d Input encoding file
utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc
t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
babel.sty 2005/11/23 v3.8h The Babel package
english.ldf 2005/03/30 v3.3o English support from the babel system
fontenc.sty
t1enc.def 2005/09/27 v1.99g Standard LaTeX file
***********
)
答案1
事实证明,babel
我的Library
文件夹 ( /Users/username/Library/texmf/tex/latex/babel/
) 中有一个过时的版本。删除此过时版本后,LaTeX 会使用 2013 发行版 ( ) 中正确的更新版本/usr/local/texlive/2013/texmf-dist/tex/latex/generic/babel/
。文档现在可以正确编译!