在所有这些 LaTeX、XeTeX 等中,是否有任何选项可以处理输入,其格式与 Knuth 的 TeX 完全相同,但使用 UTF-8 编码?我的意思是,我想获取一个.tex
成功作为 pdfTeX 输入的文件,插入/替换一些西里尔文本内容,并生成一个看起来一样好的 .pdf。我还没有找到确切的答案,我想知道事情是否真的应该这么复杂。LaTeX 需要一些\usepackage
...,,\begin{document}
。\end{document}
我不喜欢被迫使用一些宏驱动的东西,而我唯一需要的只是用俄语书写的可能性。即使仍在使用旧的 8 位引擎,为什么不隐藏所有的拐杖,以便用户处理相同的语法?是否有任何 PeaNuTeX 可以涵盖这个领域,或者,也许是一些众所周知的 LaTeX 的命令行选项?
答案1
XeTeX 和 LuaTeX 都是原生 Unicode 引擎。XeTeX 内置了系统字体加载功能;而对于 LuaTeX,我们需要luaotfload
。系统字体或多或少需要获得字形覆盖,以允许使用 Unicode 西里尔文。例如,以下内容使用一种常见字体 (Calibri),使用来自http://masterrussian.com/russian_alphabet.shtml
\ifdefined\directlua
\input luaotfload.sty
\font\tenrm="[Calibri]:+tlig"
\else
\font\tenrm="[Calibri]:mapping=tex-text;"
\fi
\tenrm
There are 21 consonant letters in Russian: б, в, г, д, ж, з, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ. The consonant letter й is sometimes called a semivowel.
There are 10 vowel letters: а, э, ы, у, о, я, е, ё, ю, и.
Two letters of the Russian alphabets do not designate any sounds. They are the "soft sign" (ь) and the "hard sign" (ъ).
\bye
相同的 LaTeX 版本仅需要添加很少的代码(fontspec
,以提供用于 Unicode 字体加载的 LaTeX 接口):
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Calibri}
\begin{document}
There are 21 consonant letters in Russian: б, в, г, д, ж, з, к, л, м, н, п, р, с, т, ф, х, ц, ч, ш, щ. The consonant letter й is sometimes called a semivowel.
There are 10 vowel letters: а, э, ы, у, о, я, е, ё, ю, и.
Two letters of the Russian alphabets do not designate any sounds. They are the "soft sign" (ь) and the "hard sign" (ъ).
\end{document}