如何在OpenType PostScript OTF字体文件中将一个字形替换为另一个字形?

时间:2012-12-28 11:14:23

标签: unicode fonts opentype

我正在尝试使用Nitti Basic系列中的字体进行编程。这些字体打包为OpenType PostScript OTF文件。

它的U + 002D(HYPHEN-MINUS)字形作为连字符效果很好,但不如减号。 例如,它不与加号的水平条对齐。 另一方面,Nitti的U + 2212(MINUS)字形是完美的减号(当然),这就是我在编程时所需要的。实际使用代码点U + 2212对我来说是不可行的。毕竟,当您按下键盘上的减号时,你会得到U + 002D,这是编程语言用于减法的。

所以相反,我想从U + 2212偷取字形并将其用于U + 002D,以便该字符看起来像一个减号。

我该怎么做?

更新:是的,可以在源代码中使用U + 002D作为连字符。 如上所述,我需要一个减号。

3 个答案:

答案 0 :(得分:3)

我同意Jukka,有工具可以做到这一点。

但是,请不要忘记字体通常受到与软件非常相似的合同的保护。在这种情况下,您提供的链接例如指向一个阅读的法律文件(除其他外):

  

“除非此处允许,否则您不得重命名,修改,改编,   翻译,逆向工程,反编译,反汇编,改动或   否则复制Bold Monday字体软件。“

请注意,您不允许合法地更改此字体。如果您阅读协议的其余部分,您会看到对字体实际使用的许多限制。确保你没有因为你正在做的事情而违反许可证......

答案 1 :(得分:2)

FontForge之类的工具可用于以简单的方式编辑字体。

请注意,在编程中,HYPHEN-MINUS也有多种用途:作为减号,但也(在某些语言中)允许在标识符和注释中使用,它通常出现在连字符的角色中。在某些用途中,HYPHEN字形看起来很奇怪。

答案 2 :(得分:1)

对于后人,这是如何做到的:

  1. 获取Adobe的AFDKO字体工具并进行安装。

  2. 将OTF文件放入空目录。

  3. 运行ttx *.otf将OTF文件转换为TTX(XML)。

  4. 在文本编辑器中编辑每个TTX文件:

    1. cmap部分中,将hyphen的出现次数更改为minus。此表将字符映射到字形。字符U + 002D最初映射到连字符字形;此更改将其映射到减号字形。

    2. 在整个文件中,将NittiBasicNittiBasicMNitti Basic的次数更改为Nitti Basic M。这将区分修改后的字体与原始字体的版本。

  5. 重命名TTX文件,将Nitti Basic替换为Nitti Basic M

  6. 运行ttx -b *.ttx将TTX文件转换回OTF。

  7. 最后,安装新创建的OTF文件。