字体扩展和转换

字体扩展和转换

mtpro2字体包中有各种字体相关文件:在下面type1*.pfm*.pfb文件;在下面有tfm一些*.tfm文件(TeX 字体指标?)。还有一个名为的 TeX 文件,mtp2.tex它可以在纯 TeX(以及 LaTeX 类似物)下加载字体。我想自己重写所有宏来加载这些字体,而不是使用看似复杂的文件mtp2.tex,主要是因为我希望以特定的方式加载它们(我想在 OpTeX 中加载它们,就像加载其他数学字体一样)。对于这个特定任务,最好使用格式的字体*.otf。我应该如何将它们转换为*.otf?我应该只考虑*.pbf文件(我可以在 FontForge 中打开)还是也应该考虑其他文件?

答案1

当考虑 Type1 字体时,有关字体的信息位于两个文件中:file.pfb使用贝塞尔曲线定义轮廓(它是二进制压缩格式,但可以转换为文本格式.pfa)和file.afm声明字体的度量。

Type 1 字体可以包含任意数量的字符,这些字符通过其标准名称(如 Aacute、Rcaron 等)而不是代码来引用。字体中许多字符的代码未设置,但应用程序可以将这些名称映射到 Unicode。例如,LuaTeX(使用 ConTeXt 的字体加载器)可以做到这一点,因此您可以编写例如:

\font\f=[cyklopr.afm]

(lua字体加载器加载后)并且可直接访问字体cyklopr.afm+中的所有902个字符。cyklopr.pfb

但我担心,当我们使用数学字体时,事情就不会那么简单了。OTF Unicode 数学字体中实现了许多特殊功能。OpenType 格式的 Unicode 数学字体标准是在 2010 年 (cca) 制定的,但 PFB+AFM 更古老,数学字体在这里没有标准化。因此,将 PFB+AFM 转换为 OTF 并不像文本字体那样简单(我们只需要从名称映射到 Unicode)。

在我看来,David Carlisle 的上述评论并不正确。Type1 字体不是 256 个字符的字体。但 1990 年使用的典型应用程序的内部编码每个字符只有 8 位,即它们只能声明 256 个字符的编码。TeX 或 PDFTeX 就是此类应用程序的示例。它们使用 256 个字符的 TFM 文件来处理字体。典型的单个 Type1 字体在 TeX 发行版中具有更多具有各种 256 个字符编码的 TFM。每个这样的 TFM 都必须连接到一个编码向量,该向量将 256 个代码映射到 Type1 字体中使用的字符名称。每个这样的 TFM 都是通过潜望镜向整个土地(整个 Type1 字体)投掷的一个视图。

Ulrike Fisher 的第一条评论不正确:OpTeX 实现了完整的 Unicode 数学支持,并建议使用它。7 位数学 CM+AMS 仅以预加载格式用作可用于实验的字体,而不用于严肃的排版。每当用户写类似的东西时,\fontfam[LMfonts]就会加载相应的 Unicode 数学。原因是:只加载一种数学字体要简单得多。在过去,我们不得不使用许多数学系列\textfont0,,\textfont1...因为没有一种字体包含所有数学符号和所有数学字母。但现在,这样的 Unicode 数学字体已经存在。

我理解 OP 的要求:让事情变得更简单,而不是使用许多 TFM 潜望镜。但不幸的是,对于 Math 字体,从 PFB+PFA 到 OTF 的转换并不简单。但你可以尝试一下:通过 fontforge 读取 PFB+AFM 并将其导出为 OTF:)。

相关内容