Unicode 如何在OpenType PostScript OTF字体文件中用一个glyph替换另一个glyph?

Unicode 如何在OpenType PostScript OTF字体文件中用一个glyph替换另一个glyph?,unicode,fonts,opentype,Unicode,Fonts,Opentype,我正在尝试使用家族字体进行编程。这些字体打包为OpenType PostScript OTF文件 它的U+002D(连字符-减号)图示符与连字符效果很好,但不如减号效果好。 例如,它不与加号的水平条对齐。 另一方面,Nitti的U+2212(负号)字形是完美的负号(当然),这就是我编程时需要的。对我来说,实际使用代码点U+2212是不可行的;毕竟,U+002D是当你按下键盘上的减号时得到的,也是编程语言用于减法的 因此,我想从U+2212中窃取字形,并将其用于U+002D,使该字符看起来像减号

我正在尝试使用家族字体进行编程。这些字体打包为OpenType PostScript OTF文件

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

因此,我想从U+2212中窃取字形,并将其用于U+002D,使该字符看起来像减号

我怎么做

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

像这样的工具可以用来以简单的方式编辑字体


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

我同意Jukka的观点,有一些工具可以做到这一点

但是,请不要忘记,字体通常受到与软件非常相似的合同的保护。在本例中,您提供的链接(例如)指向一份法律文件,其中包括:

“除非本协议允许,否则您不得重命名、修改、改编, 翻译、逆向工程、反编译、反汇编、更改或 否则,请复制粗体字体软件。“


请注意,法律不允许您更改此字体。如果您阅读协议的其余部分,您将看到对字体的实际使用也有很多限制。确保您所做的不会破坏您的许可证…

对于子孙后代,以下是如何做到这一点:

  • 获取Adobe的字体工具并安装它们

  • 将OTF文件放入一个空目录

  • 运行
    ttx*.otf
    将otf文件转换为ttx(XML)

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

  • cmap
    部分中,将出现的
    连字符
    更改为
    减号
    。此表将字符映射到图示符。字符U+002D最初映射到连字符图示符;此更改将其映射到负号图示符

  • 在整个文件中,将
    NittiBasic
    的引用更改为
    NittiBasicM
    Nitti Basic
    更改为
    Nitti Basic M
    。一旦安装,这将区分字体的修改版本与原始版本

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

  • 运行
    ttx-b*.ttx
    将ttx文件转换回OTF

  • 最后,安装新创建的OTF文件


  • 我们不要介入法律问题;我同意,而且我不是律师——然而,我的回答确实指出,他可能采取的行动不应该是他现在正在采取的行动,我认为这与编程环境有关。开发人员应该更加了解他们所处的世界(有时)