Latex 俄语文本中的英语连字号
我有多语种的TeX文档,大部分是俄语的,但我也在括号中包含了一些英语术语,以使读者熟悉国际术语。比如这个短语 а 语法 (语义学) 也就是说 编程的两个属性 语言是它的语法和语义 看起来像 а программирования --- \文本信息 (\textit{\selectlanguage{english}语法\selectlanguage{俄语}) а\texit{Сааааа} (\textit{\selectlanguage{english}语义\selectlanguage{俄语}) 我还有\usepackage[英语,俄语]{babel} 代码看起来太冗长了,因为我需要在每个英文单词上使用\selectlanguage两次以使断字生效。没有这个,我就有两个 已满\hbox 消息,因为TeX无法在英文单词出现在行尾时使用连字符 有更好的解决方案吗?Latex 俄语文本中的英语连字号,latex,Latex,我有多语种的TeX文档,大部分是俄语的,但我也在括号中包含了一些英语术语,以使读者熟悉国际术语。比如这个短语 а 语法 (语义学) 也就是说 编程的两个属性 语言是它的语法和语义 看起来像 а программирования --- \文本信息 (\textit{\selectlanguage{english}语法\selectlanguage{俄语}) а\texit{Сааааа} (\textit{\selectlanguage{english}语义\selectlanguage{俄语}
回应阿列克谢·马利斯托夫。 MacTeX发行版有几个language.dat文件
- /usr/local/texlive/2009/texmf dist/source/generic/babel
- /usr/local/texlive/2009/texmf dist/doc/generic/babel
- /usr/local/texlive/2009/texmf/tex/generic/config
- /usr/local/texlive/2009/texmf var/tex/generic/config
- /usr/local/texlive/2009/texmf dist/tex/lambda/config
% 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装置。请告诉我正确的方向。您可以在每个英文单词上添加任意连字符(
\-
)
或者,您可以定义自己的环境来处理
文本IT
和语言选择。我认为\selectlanguage
应该遵循通常的范围规则,这样您就可以将想要成为英语的部分括在大括号中,大括号界定了本地范围:
Два неотъемлемых свойства языка программирования --- \textit{синтаксис}
({\textit{\selectlanguage{english}syntax}}) и \textit{семантика}
({\textit{\selectlanguage{english}semantics}}).
不过,我现在无法对此进行测试,因此如果您发现它不起作用,我很高兴您能通知我这一事实,以便我可以修改或删除此答案。您应该将英语和俄语连字符结合起来。 更改文件language.dat,添加以下内容:
ruseng ruenhyph
=russian
=english
并重新编译所有格式文件:
initexmf --dump
添加
我用MikTeX。我不知道你到底要做什么。我会尝试和实验
\setlanguage
宏。它对我很有效。我使用俄语和英语单词,不使用\setlanguage
MikTeX
提供initexmf
命令。我相信你的MacTeX也有类似的命令您可以使用
otherlanguage
环境或\foreighlanguage
宏,而不是使用\selectlanguage{}
两次,因为这是一个开关:
\begin{otherlanguage}{english}
Hello world
\end{otherlanguage}
或者,对于示例中的内联更改:
Два неотъемлемых свойства языка программирования --- \emph{синтаксис}
(\foreignlanguage{english}{\emph{syntax}}) и \emph{семантика}
(\foreignlanguage{english}{\emph{semantics}}).
事实上,如果您经常使用英语术语,您可以定义宏:
\newcommand{\englishterm}[1]{%
\foreignlanguage{english}{\emph{#1}}}
+1:但是为什么是环境呢?Qn引用水平模式中的用法
\def\russeng#1#2{1(\textit{\selectlanguage{english}syntax\selectlanguage{russian}}})}
将更轻松地完成此任务。我没有提到我使用MacTeX。对不起。我在邮件中添加了一些信息。最后我成功了。我使用的命令是“sudotexconfig init”。谢谢。我想所有文件语言.dat
都必须更改。最后我接受了这个答案。顺便说一下,宏可能有问题。在我的例子中,工作示例看起来像\newcommand{\englishterm}[1]{\foreignlanguage{english}{\emph{1}}}。无论如何,谢谢你提到\外语和宏。对于有同样问题的人来说,还有一件事:\sloppy命令可能非常有用。