俄语和英语的 babel

俄语和英语的 babel

我需要在文章中使用俄语,但默认语言必须是英语。我该怎么做?

我用:

\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。让我们看看会发生什么:

  1. english是一个全局选项,因此它被传递给每一个包裹
  2. 本地选项列表babelrussian,,ukrainianenglish

因此,babel首先获取全局选项english并加载语言文件english.ldf;然后它加载russian.ldfukrainian.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比看起来更棘手,因为宏不是完全可扩展的。

相关内容