在 (La)TeX 中使用西里尔字母有哪些不同的方法?它们的优点和缺点是什么?
答案1
inputenc
+babel
用法
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
优点
标准 — 适用于任何 LaTeX 安装。.tex 文件中可以使用任何编码。适用于hyperref
。它也可以适用于xetex
和luatex
,前提是inputenc
未加载 并且编码为 UTF-8。
缺点
有了pdftex
,西里尔字母就变成了活动符号——因此既不能用西里尔字母名称定义命令,也不能将它们用在 等的参数中\label
。.aux\cite
和 .toc 文件中的西里尔字母变得不可读。
笔记
如果出现此错误:未知选项“russian”。您拼写错误或未找到语言定义文件 francais.ldf尝试安装该texlive-lang-cyrillic
包。(来源)
答案2
对于多语言文本pdflatex
(而不是使用xelatex
或lualatex
引擎),最好的选择是使用 UTF-8 编码输入和babel
:
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\begin{document}
Text in English
\begin{otherlanguage*}{russian}
Текст на русском языке
\end{otherlanguage*}
A word and another \foreignlanguage{russian}{слово}
\end{document}
T2A 编码中有许多可用的字体pdflatex
:
为了有更广泛的选择,XeLaTeX 或 LuaLaTeX 是最好的。
答案3
西拉特克斯
用法
\documentclass{article}
\usepackage{fontspec} % loaded by polyglossia, but included here for transparency
\usepackage{polyglossia}
\setmainlanguage{russian}
\setotherlanguage{english}
% XeLaTeX can use any font installed in your system fonts folder
% Linux Libertine in the next line can be replaced with any
% OpenType or TrueType font that supports the Cyrillic script.
\newfontfamily\russianfont[Script=Cyrillic]{Linux Libertine}
\begin{document}
Привет
\begin{english}
Hello!
\end{english}
\end{document}
用 编译xelatex
。
优点
在新的 TeX 发行版中开箱即用。西里尔字母可自由用于控制序列名称、标签等。
缺点
我们需要一个相当现代的 TeX 发行版。(还有什么?)
答案4
使用 UTF-8
如果您使用的是 UTF-8,您有一个俄语键盘并且您只想输入俄语文本,那么最好的做法是:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\begin{document}
ЛаТеХ
\end{document}
这样你就不必改变你的行为。输入 LaTeX 文本和输入其他文本一样容易。通常你也有正确的连字模式,所以你可以使用 LaTeX 的全部功能。:-)