2

我正在尝试使用 Fontforge 脚本将 .otf 字体转换为 .ttf 字体(带有 Postscript 轮廓)。

默认选项转换为带有 Truetype 轮廓的 .ttf。

如果有人可以提供一些指示,我将不胜感激。

4

1 回答 1

5

OpenType 如何工作的快速课程:OpenType 有两种风格:OpenType-with-CFF-Data 和 OpenType-with-Truetype-Outlines

  1. 带有 CFF 块的 OpenType 字体使用 Type2“字符串”轮廓定义,允许三次曲线建模。它们类似于 Postscript,但在技术上不是 Postscript。人们只是出于历史原因一直这样称呼它。

  2. 带有 TrueType 表的 OpenType 字体使用 TrueType 轮廓定义,它只允许二次曲线建模。

    2018 年编辑:现在还有两种类型:OpenType-with-SVG-Outlines,“SVG 字体”不同,OpenType-with-CFF2-Outlines,它是 CFF 的大修,专门用于OpenType 而不是作为嵌入无关的大纲语言)

这两个轮廓模型是互斥的,因此您可以选择您喜欢的任何一个,但不能同时选择两者。

现在,按照惯例,CFF-OT(和 CFF2-OT)字体使用.otf扩展名,TTF-OT(和 SVG-OT)使用.ttf扩展名,但它们都只是 OpenType 字体,只是 CFF/TFF(/ CFF2/SVG)数据块。因此,当我们谈论otf字体时,我们真正的意思是“Postscript opentype 字体”(这是一个误称,因为 CFF 使用 Type2 语言,而不是 PostScript 语言),而当我们谈论ttf字体时,我们真正的意思是“TrueType opentype 字体”。但是,要意识到的重要一点是,扩展并没有以任何方式定义字体。只有它的内容。我们可以将字体重命名为.gif扩展名,它仍然是内容指定的那种字体。因此,对于字体引擎,扩展名一点也不重要,就像图像预览器会愉快地打开.jpg文件一样,即使它有.png扩展名。

询问将otf按惯例是“postscript”字体(但又不是真的是 Type2)变成 attf按惯例是“truetype”字体,因此不能包含“postscript”(但仍然是 Type2 ),加上ttf应包含“后记大纲”的附加要求,没有任何意义:这就像问如何将软铅笔转换为硬铅笔,但使用软铅:你已经完成了,你正在询问如何创建您开始使用的东西。

带有“postscript”轮廓的 Opentype 字体是otf.

当然,您可以将 CFF 字体转换为 TrueType 字体,但这是一种有损转换:在数学上不可能完美地将三次 Bezier 曲线(用于 Type2)转换为二次 Bezier 曲线(用于 TrueType),所以你要最终得到与原始字体近似的字体。

所以我的建议是:不要打扰。任何支持 OpenType 字体的引擎都支持 CFF 和 TrueType,并且转换为 .ttf 不会做任何有意义的事情,同时会放大字体大小(用于感知上的完美转换)或由于有损轮廓而使字体相对于原始字体不正确转换。

于 2015-09-26T19:33:35.413 回答