在 \usepackage[ 中更改语言]{巴别塔}?

在 \usepackage[ 中更改语言]{巴别塔}?

\usepackage[swedish]{babel}我一直试图通过替换来更改我的 LaTeX 文档的语言,\usepackage[english]{babel}但我只收到此消息:

! Package babel Error: You haven't loaded the option swedish yet.

我在本论坛的另一个问题中看到,编译足够多的内容可以解决问题,但这对我来说不起作用。有人知道我该怎么办吗?

答案1

这是 的一个非常常见的错误,可以通过在更改语言时babel删除该文件来解决。.aux

当您使用时,babel它会将特定于您选择的语言的信息写入文件.aux。例如,在您的情况下,当您选择swedishbabel 语言时,它会执行两件事:(i) 加载一组与瑞典语相关的宏,(ii) 它(最低限度地)将以下内容写入文件.aux

\select@language{swedish}
\@writefile{toc}{\select@language{swedish}}
\@writefile{lof}{\select@language{swedish}}
\@writefile{lot}{\select@language{swedish}}

该命令\select@language{swedish}告诉 TeX 使用为瑞典语定义的特定宏。

.aux文件用于存储将在下一次编译中重复使用的信息。请参阅

了解有关此内容的更多信息。

babel写入.aux文件,因为它会根据所选语言更改目录和图表列表等内容的名称。

现在,当您在不删除文件的情况下更改语言.aux并编译文件时,TeX 会读取文件.aux并遇到\select@language命令。但由于您已更改语言,因此瑞典语的宏尚未加载,因此您会收到错误。

babel软件包不是唯一有时需要您删除.aux文件的软件包。有关它们的信息,请参阅以下更一般的问题:

较新版本的babel

如果您使用的是 3.22 或更高版本的最新系统babel,则应该不再收到此错误,而是会看到如下警告:

Package babel Warning: Unknown language `swedish'. Very likely you
(babel)                requested it in a previous run. Expect some
(babel)                wrong results in this run, which should vanish
(babel)                in the next one. Reported on input line xxx.

相关内容