为什么我不应该在 XeTeX 中使用 EC 字体?

为什么我不应该在 XeTeX 中使用 EC 字体?

在今天早些时候我提出的一个问题的评论中如何在 TeX 中定义 \sc?,两位用户表示将 ec 字体与纯 XeTeX 一起使用不是一个好主意。

我很好奇为什么,因为我已经使用它们很长一段时间了,没有任何问题。

示例(我觉得不错):

\font\tenrm=ecrm1000 \def\rm{\tenrm}
\rm

éducation % French
virtù % Italian
Constitución % Spanish
\bye

答案1

纯文本的编码是错误的,因此您将得到不正确的字符,例如

\font\tenrm=ecrm1000 \def\rm{\tenrm}
\rm

éducation % French
virtù % Italian
Constitución % Spanish
Fuß % German


\bye

在此处输入图片描述

由于格式是通过加载 Unicode 编码模式构建的,因此 ec 字体和默认 cm 字体的连字符也是错误的。

答案2

XeTeX 和 LuaTeX 读取 Unicode 输入(UTF8 文件)并在 Unicode 中内部工作。即,它需要 Unicode 字体,它会以 Unicode 加载连字模式。

EC 字体是在 1992 年 T1 编码在科克达成一致后立即设计的。当时还没有支持 Unicode 的 TeX,T1 编码设计为 8 位(单一字体中有 265 个字符)。它遵循 ASCII 编码(英语和典型的非字母字符)和 ISO-8859-1(西欧国家、重音符号,但不包括德语 ß)。T1 编码中剩余的空格被东欧国家带有拉丁重音符号的字符占据。这些剩余的空格是随意设置的,没有使用任何编码标准。

Unicode 在其前 256 个位置上遵循 ASCII 编码 + iso-8859。这就是为什么几乎所有来自西欧国家(iso-8859-1)的重音字符(á、é 等)都可以在 XeTeX(Unicode)中使用。但并非所有(德语 ß)以及东欧国家使用的字符(č、ř、ž 等)都无法使用。

如果您有支持 Unicode 的 TeX,最佳解决方案是使用 Unicode 字体。不要阅读在 Unicode 之前编写的旧手册,不要使用不兼容且古老的 T1 编码。

相关内容