我需要在文章中使用俄语,但默认语言必须是英语。我该怎么做?
我用:
\usepackage[russian]{babel}
结果:所有章节名称和日期均为俄语。
改成:
\usepackage[russian,english]{babel}
结果是一样的。
改成:
\usepackage[russian,ukrainian,english]{babel}
结果:所有章节名称和日期均为乌克兰语。
看起来它english
被忽略了。如何修复?
这是不起作用的代码:
\documentclass[a4paper,11pt,english]{article}
\usepackage[cp1251]{inputenc}
\usepackage[russian,ukrainian,english]{babel}
\begin{document}
\title{A}
\maketitle
\end{document}
答案1
问题出在english
中的选项上\documentclass
。让我们看看会发生什么:
english
是一个全局选项,因此它被传递给每一个包裹- 本地选项列表
babel
为russian
,,ukrainian
。english
因此,babel
首先获取全局选项english
并加载语言文件english.ldf
;然后它加载russian.ldf
但ukrainian.ldf
不执行任何操作english
,因为它已经读取了该选项。
后果:最后加载的语言是乌克兰语。
\documentclass
补救措施:如果你计划加载babel
多种语言,请不要添加语言选项,或者指定全部语言,按照所需的顺序,作为选项\documentclass
。
答案2
更明确一点,根据我上面的评论。根据 LaTeX 和 的 Wikibooks babel
,您可以:
“如果你使用多种语言调用 babel:
\usepackage[languageA,languageB]{babel}
然后选项列表中的最后一种语言将被激活(即语言B),您可以使用命令
\selectlanguage{languageA}
更改当前语言。您还可以使用命令添加另一种语言的短文本
\foreignlanguage{languageB}{Text in another language}
Babel 还提供了各种环境来输入另一种语言的较大文本:
\begin{otherlanguage}{languageB}
Text in language B. This environment switches all language-related
definitions, like the language
specific names for figures, tables etc. to the other language.
\end{otherlanguage}
此环境的星号版本根据其他语言的规则排版主文本,但将辅助内容(如图片)保留为文档的主要语言中的特定语言字符串。环境 hyphenrules 仅切换使用的连字模式;它还可以通过使用语言名称“nohyphenation”来禁止连字。
Babel 手册提供了有关这些以及许多其他选项的更多信息。”
到目前为止我的引用和回答。
答案3
我遇到了同样的问题,这里的答案让我找到了正确的方向(第一次阅读时我并不清楚)。所以我会尝试为其他用户澄清。
通过测试我发现:
如果您之后使用,语言的顺序
\usepackage[russian,ukrainian,english]{babel}
并不重要\selectlanguage{}
。当您想使用俄语时
\selectlanguage{russian}
,请写入 ,此后生成的所有内容都将使用俄语(例如,“内容”将为“Содержание”)。当您准备好俄语文本时,写入\selectlanguage{english}
,之后的所有内容都将使用英语
我希望我也能帮到你一些。
答案4
您还可以将所有语言选项提供给文档类。这会将它们传递给您加载的任何其他包(如果它们支持俄语或乌克兰语)。
\documentclass[a4paper,11pt,russian,ukrainian,english]{article}
\usepackage{iftex}
\iftutex
\usepackage{babel}
\babelfont{rm}[Ligatures=Common]{CMU Serif}
\babelfont{sf}[Ligatures=Common]{CMU Sans Serif}
\babelfont{tt}{CMU Typewriter Text}
\else
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\fi
\babeltags{english=english}
\babeltags{ukrainian=ukrainian}
\babeltags{russian=russian}
\begin{document}
\title{In \languagename, \textukrainian{\languagename} and
\textrussian{\languagename}}
\maketitle
\end{document}
标题设计\languagename
比看起来更棘手,因为宏不是完全可扩展的。