基于 UTF8 的纯 TeX

基于 UTF8 的纯 TeX

在所有这些 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}

相关内容