使用纯 LuaTeX 输入 Unicode

使用纯 LuaTeX 输入 Unicode
grün
gr\"un
\bye

产量

grn
grün

是否可以使用纯 LuaTeX 正确呈现 Unicode ü?


是否也可以使用纯 TeX 和 METAFONT 字体?或者 METAFONT 字体必须如果想将其与 Unicode 输入一起使用,是否可以将其转换成其他内容?

答案1

可能使用 METAFONT 字体:

\catcode`ü=\active
\protected\def ü{\"u}

grün
gr\"un
\fontname\font
\bye

在此处输入图片描述

您可以研究 LuaTeX 手册的 6.3 到 6.5 节,看看使用虚拟字体的方法是否可行。但是,这需要大量工作来从现有字体中定义虚拟字体。使用欧洲现代字体(使用 LaTeX 术语的 T1 编码)可能更容易。

另一方面,您可以轻松地在 LuaTeX 中注入字体加载器并使用 OpenType 字体。例如

\input luaotfload.sty

\font\tenrm="Latin Modern Roman"
\tenrm

grün
gr\"un
\fontname\font

\bye

在此处输入图片描述

请注意,第二个“grün”打印错误,因为重音符号不在普通 TeX 使用的插槽中,因此需要重新定义重音符号命令,例如

\input luaotfload.sty

\def\"#1{#1^^^^0308}

\font\tenrm="Latin Modern Roman"
\tenrm

grün
gr\"un
\fontname\font

\bye

在此处输入图片描述

重新定义一些口音显然比许多活跃角色。

答案2

我不是这方面的专家,所以我无法准确解释它是如何工作的以及为什么会这样等等。但由于到目前为止没有人对您的第二个问题给出满意的答案,我尝试自己做出贡献。所以,如果您担心使用德语,我想我有一个解决方案。如果您还想使用希腊字母或数学符号等,那么恐怕,如果没有 LuaTeX 或支持 Unicode 的类似程序,这将无法工作。

这个问题在 TeX 的捷克-斯洛伐克发行版中得到了解决,如果我理解正确的话,它有自己的略微修改过的字体,并在内部将 utf8 输入转换为 iso8859-2 编码,其中显示了所有捷克和德语字符。请参阅https://www.ctan.org/pkg/csplain

例如,你可以写

Příliš žluťoučký kůň úpěl ďábelské ódy.

„Fix, Schwyz!“, quäkt Jürgen blöd vom Paß.

\bye

并且使用pdfcsplain而不是进行编译后pdftex,您将获得正确的结果。

相关内容