使用 LuaLaTeX 或 XeLaTeX 修复模糊旧字体的连字映射

使用 LuaLaTeX 或 XeLaTeX 修复模糊旧字体的连字映射

我有一款前段时间购买的旧字体。它附带了我需要使用的各种连字符。该字体并非为 LaTeX 而设计,尽管它是一款高品质的 Type-1 字体,但对连字符的支持却相当复杂:各种连字符映射到各种字符,#某些连字符也是如此,而$另一些连字符也是如此,等等。它的设计让输入变得非常困难。:-)

在 LuaLaTeX 或 XeLaTeX 中使用它没有问题,但将连字符映射到不相关的字符是一个问题。这不仅很难输入,更重要的是,我担心我的文本会因为与这些愚蠢的标点符号混合而被淹没在无用的格式中,这些标点符号在设置为特定字体时才“看起来正确”。我无法更改字体(它有版权),也找不到使用更复杂的连字符方法的等效字体。

是否有任何合理文明的方式在 LuaLaTeX 或 XeLaTeX 中定义我自己的连字符映射,以便我可以按原样使用字体,键入“普通”文本,并让 LaTeX 引擎处理重新映射?

答案1

如果字体的字形名称不正确,并且没有或几乎没有内置连字符(正如我所怀疑的那样),那么任何自动化流程都无法对其进行处理。

在 luatex 中,可以使用 lua 代码在加载时修补字体,或者在 xetex、pdftex 和 luatex 中,使用 fontinst 和 afmtotfm/tftopl/vptovf/ 工具将其转换为虚拟字体,从而将其转换为传统的 8 位字体。但这两种方法都需要很高的专业知识,远远超出了这里回复所能解释的范围。

如果字体仅供您使用(而不是重新分发),那么只需在 fontforge 中修复它即可。版权并不禁止这样做,只要您不重新分发,即使字体供应商希望让您相信不是这样。

相关内容