如何使用 Fontforge 脚本将 .otf 转换为 .ttf(带有 Postscript 轮廓)?

Sep*_*ept 2 fonts fontforge

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

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

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

Mik*_*ans 5

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

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

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

    2018编辑:现在有两个以上类型:OpenType字体与- SVG-轮廓,这是一样的“一个SVG字体”,和OpenType与- CFF2-轮廓,这是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 延期。

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

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

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

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