我的多语言TeX文档主要使用俄语,但我也在括号中加入了一些英文术语,以使读者熟悉国际术语。例如短语
Дванеотъемлемыхсвойстваязыка программирования - синтаксис( syntax ) исемантика( semantics )。
只是意味着
编程的两个属性 语言是它的语法和语义。
看起来像
Дванеотъемлемыхсвойстваязыка программирования--- \ textit {синтаксис} (\ textit {\ selectlanguage {英语}语法\ selectlanguage {俄语}}) и\ textit {семантика} (\ textit {\ selectlanguage {英语}语义\ selectlanguage {俄语}})。
我也有\ usepackage [英语,俄语] {babel}。
代码看起来过于冗长,因为我需要在每个英文单词上使用\ selectlanguage两次来进行连字工作。如果没有这个,我会得到几个
Overfull \ hbox ...
消息,因为当TeX出现在行的末尾时,TeX无法连接英文单词。
有更好的解决方案吗?
回应Alexey Malistov。
MacTeX发行版有几个language.dat文件
我不确定我应该编辑哪一个。可能是前两个中的一个。它们是相同的
% File : language.dat
% Purpose : specify which hypenation patterns to load
% while running iniTeX
=USenglish
american ushyphen.tex
=english
UKenglish ukhyphen.tex
=british
french frhyphen.tex
dutch nehyph2.tex
german dehypht.tex
ngerman dehyphn.tex
但是哪一个?
此外,没有initexmf命令。谷歌搜索我发现模拟是updmap-sys。但我不确定......我害怕破坏我的TeX安装。请给我正确的方向。
答案 0 :(得分:2)
你应该结合英语和俄语连字符。 更改文件language.dat,添加以下内容:
ruseng ruenhyph
=russian
=english
并重新编译所有格式文件:
initexmf --dump
添加强>
我使用MikTeX。我不知道你要做什么。我会尝试和实验。
你应该添加“新语言ruseng”,其中包含英语和俄语。然后不需要\setlanguage
宏。它对我很有用。我使用俄语和英语单词,不要使用\setlanguage
。
您应该重新编译格式文件。 MikTeX
提供initexmf
命令。我确信您的MacTeX有类似的命令。
答案 1 :(得分:2)
您可以使用\selectlanguage{}
环境或otherlanguage
宏,而不是使用\foreighlanguage
两次,因为它是一个开关:
\begin{otherlanguage}{english}
Hello world
\end{otherlanguage}
或者,对于您的示例中的内联更改:
Два неотъемлемых свойства языка программирования --- \emph{синтаксис}
(\foreignlanguage{english}{\emph{syntax}}) и \emph{семантика}
(\foreignlanguage{english}{\emph{semantics}}).
事实上,如果你经常提供英语术语,你可以定义一个宏:
\newcommand{\englishterm}[1]{%
\foreignlanguage{english}{\emph{#1}}}
答案 2 :(得分:1)
您可以根据需要在每个英语单词上添加自由连字符(\-
)。
或者,您可以定义自己的环境来处理textit
和语言选择。
答案 3 :(得分:1)
我相信\selectlanguage
应该遵循通常的范围规则,这样你就可以将你想要成为英语的部分括在括号中,这样就划定了一个局部范围:
Два неотъемлемых свойства языка программирования --- \textit{синтаксис}
({\textit{\selectlanguage{english}syntax}}) и \textit{семантика}
({\textit{\selectlanguage{english}semantics}}).
我现在无法测试,所以如果你发现它不起作用,如果你告诉我这个事实我会很高兴,所以我可以修改或删除这个答案。