在 tex 源代码中同时使用 unicode 和俄语

在 tex 源代码中同时使用 unicode 和俄语

编辑:最后我最终使用了特克斯(使用自动刷新的 Evince 查看器)- 按照@Andrey Vihrov 的建议。不过,我接受了得票最多的答案。

我迷路了。找遍了 tex.stackexchange 也没找到好的解决方案。只建议使用 babel 或 xetex...

我希望能够在我的 latex 源文件中同时使用俄语(西里尔文)和 unicode 字符。例如,这不能编译:

In Dahl’s dictionary there is a similar sounding word “дуван”...
“C’est auprès de son père, écrivain de la nation pisane à la douane de Bougie, à
la fin du douzième siècle[todo], que le célèbre mathématicien Léonard Bonacci...

如果我使用 babel 并将其设置为俄语,则编译器会丢弃其他非俄语 unicode 字符。如果我将 babel 设置为英语 - 那么俄语不起作用:

Package inputenc Error: Unicode char \u8:д not set up for use with LaTeX.

请注意,我并不真正关心“连字符”之类的东西 - 如果需要,我可以自己手动完成。我只想让我的源文档编译成 lagex。

问题是我的主要文档是用英文排版的,其中有很多涉及欧洲各地语言的不同引文。

仅使用 LaTeX (dvi) 是否可行?还是我必须求助于其他方法?我非常希望继续使用 LaTeX - 因为我的所有编译工具都是为它设置的。

无论如何,我都希望得到一些建议。

答案1

您需要向 LaTeX 声明您打算使用的语言(T2A 代表西里尔字母):

\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,french,english]{babel}

\begin{document}

In Dahl’s dictionary there is a similar sounding word “\foreignlanguage{russian}{дуван}”.

\begin{otherlanguage*}{french}
“C’est auprès de son père, écrivain de la nation pisane à la douane de Bougie, à
la fin du douzième siècle[todo], que le célèbre mathématicien Léonard
Bonacci
\end{otherlanguage*}

\end{document}

在此处输入图片描述

主要问题是字体只有 256 个字形位置,而用法语和俄语书写则需要超过 256 个字形。(也许这并不完全正确,但即使字形数量少于 256,也需要为法语和俄语提供特殊的输出编码;那么德语和俄语、波兰语和俄语,或三种语言的混合呢?)

你总是可以定义一个缩写,比如\RUS,用于排版俄语中的孤立单词

\newcommand{\RUS}[1]{\foreignlanguage{russian}{#1}}

(或者,更有效地,\newcommand{\RUS}{\foreignlanguage{russian}})。这样做的好处是,连字符将是正确的。

不同的方法需要使用包含所有需要的字形的 OpenType 字体,但当然fontspec需要 XeLaTeX 或 LuaLaTeX。

答案2

作为 egreg 答案的扩展:babel\foreignlanguage并不是真正需要打印西里尔文的。他的答案中的要点是T2A:它告诉 latex 你想在文档中使用西里尔文,因此 latex 激活了 utf8 所需的定义(不要忘记 unicode 中有很多字符,如果每次都加载所有字符的定义,latex 的速度会大大降低)。

在使用西里尔文之前,您仍必须更改为字体编码 T2A。您可以通过设置默认值来避免这种情况:

\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}%
%\usepackage[russian,french,english]{babel}
\DeclareTextSymbolDefault{\cyrd}{T2A}
\DeclareTextSymbolDefault{\cyru}{T2A}
\DeclareTextSymbolDefault{\cyrv}{T2A}
\DeclareTextSymbolDefault{\cyra}{T2A}
\DeclareTextSymbolDefault{\cyrn}{T2A}
% etc
\begin{document}

In Dahl’s dictionary there is a similar sounding word дуван.

C’est auprès de son père, écrivain 


\end{document}

相关内容