字体名称中的合法字符是什么?

时间:2015-08-09 05:12:48

标签: fonts true-type-fonts opentype woff

在“消费”字体名称时我应该期待什么字符?在“生成”字体名称时我应该避免哪些字符?不同的操作系统,传统桌面应用程序,移动或网络应用程序( - > CSS)和不同的字体格式(如OpenType,TrueType,WOFF,PostScript,SVG等)之间是否存在差异?

2 个答案:

答案 0 :(得分:5)

根据W3。在有效的字体名称中只能使用ISO-10646字符。

根据Adobe,PostScript字体不得包含空格,并且只能使用标准ASCII字符集中的字符。名称也不应超过29个字符。

建议使用连字符分隔字体系列名称和样式定义,并出于优化目的使用大写和小写字符,因为一些解析器在能够搜索第一个大写字符后跟一个字符串时效果最佳小写字符。

Macintosh字体菜单中使用的标准名称来自 与Type 1轮廓字体关联的FOND资源。 FOND资源 从技术上讲,名称最多可包含31个字符,并且可能包含空格,但由于已知错误,超过30个字符的任何内容都不起作用。

在Windows环境中,字体菜单名称在打印机中指定 字体指标(PFM)文件,不得超过31个字符;存在与Macintosh相同的限制为30个字符的建议。

Adob​​e的命名惯例被认为是行业标准。

如果您正在寻求测试,请查看此回归测试:http://search.cpan.org/~mhosken/Font-TTF-1.05/lib/Font/TTF/Font.pm

答案 1 :(得分:3)

您列出的几乎所有格式都是OpenType的版本:

  • modern TrueType指的是带有TrueType glyph outlines
  • 的OpenType字体
  • WOFF简单地包装“SFNT”结构化字体,这些日子基本上只是OpenType字体,允许可选的每表压缩。
  • 现代PostScript指的是带有CFF block的OpenType字体,它使用带有Type2 charstrings的嵌入字体格式描述轮廓(实际上不是PostScript。只有“Type 1”字体是PostScript字体,但是当OpenType完全取消Adobe退役的Type 1时,将其整个字体目录转移到带有CFF块的OpenType上)
  • 在字体上下文中的SVG可以引用两个不同的东西:“svg fonts”,即a dead technology,以及OpenType字体的新变体with SVG outlines

所以这真的是一个问题“OpenType允许哪种命名格式”,以及“在其中,哪种格式支持最广泛”。值得庆幸的是,OpenType naming table specification拥有大部分信息。

重要的一点是,您没有定义“一个”姓氏,而是为不同的受众定义了几次。查看名称表的“名称ID”部分,您将看到几个字段都用于存放字体名称,仅适用于不同的上下文:

  1. 字体系列名称,自由字符串形式。这在“普通应用程序”中用于告诉您正在查看的字体。
  2. 字体子系列名称,例如“斜体”,“斜”等。
  3. 此字体的唯一标识符。明智的ID涉及ID 1和2的某些组合以及一些“当此文件被发布时”的信息,但您也可以自由形式。
  4. “全字体名称”。通常,只需命名ID 1和2,用空格分隔,但如果需要,可以偏离此。
  5. 字体版本字符串,包含应该是什么样的规则
  6. 后记名称。这个是特别的,你应该阅读它的用途。名称​​绝不必须与真实的字体名称匹配。不过,确保它确实是好的形式。
  7. 作为一个真实世界的例子,让我们看一下Palatino Linotype的名称字符串:

    1. “Palatino Linotype”
    2. “常规”
    3. “Palatino Linotype Regular 1998年4月”
    4. “Palatino Linotype”
    5. “Version 5.00”
    6. “PalatinoLinotype罗马”
    7. 就平台差异而言,并非每个平台都需要所有这些字符串才能使字体可安装或可用。点击this SO question获取更多相关信息。例如,对于webfonts,名称ID 1在技术上是足够的,因为字体播放的“角色”由我们提供的@font-face规则确定,但对于桌面应用程序,ID 2到5很重要。当然对于postscript设备,ID 6至关重要,因此如果没有它,操作系统往往不会将字体识别为“正确”。