OpenType 字体文件命名表

来源 微软 发布时间 2014-12-29

这是一篇自动翻译的文章,若你的英文良好请浏览来源网页。

名字-命名表

命名表允许多语种的字符串与 OpenType相关 TM 字体文件。 这些字符串可以代表版权声明,字体名称,姓氏, 风格名称。 把这个表短,字体制造商 不妨在语言的一些小使有限的一组条目; 以后,字体可以“本土化”和字符串翻译。 其他部分的OpenType字体文件需要 这些字符串可以 称他们仅仅通过他们的。 这需要一个特定的字符串 客户可以通过其网络ID,字符编码的ID,语言 ID和名称ID。请注意,一些平台可能需要单字节字符 字符串,而其他人可能需要双字节字符串。

由于历史的原因,某些应用程序安装字体使用Macintosh平台上执行 版本控制(平台ID 1)字符串从名称表。 因此,我们强烈建议所有字体的名称表包括Macintosh平台 字符串,版本号的语法(名5)遵循 指南本文档。

命名表如下:

名称 描述
ushort 格式 格式选择(= 0)。
ushort 计数 名称记录数。
ushort stringoffset 偏移到字符串存储启动(从 启动表)。
NameRecord NameRecord [数] 名称记录的地方 计数 是的记录数。
(变量)   对于实际的字符串 数据存储。

每个 NameRecord 看起来像这样:

名称 描述
ushort PlatformId 网络ID。
ushort encodingid 平台特定的编码ID。
ushort languageid 语言ID。
ushort nameid 名称ID。
ushort 长度 字符串的长度(以字节为单位)。
ushort 偏移 字符串偏移量从存储区启动 (在。

以下是ID注意 特定值列在这里,是预定义的唯一的四种描述;新 的可以通过苹果开发者技术支持注册表添加。 相似的字符编码表,这是按 namerecords平台ID,然后平台特定的ID,然后语言ID,然后通过名称

平台标识,特定于平台的编码标识和语言标识

平台ID 平台名称 平台特定的编码 ID 语言ID
0 Unicode 各种
1 Macintosh(苹果) 脚本管理码 各种
2 ISO [推荐] ISO编码 [推荐]
3 微软 微软编码 各种
4 自定义 自定义

值得注意的是,网络ID 2(ISO)已过时的OpenType 规范V1.3。 它的目的是代表ISO / IEC 10646,而Unicode标准 ;都有相同的字符码分配。

网络ID值240到255保留用户自定义 平台。 DTS注册不注册 平台指定这些值。

Unicode平台特定的编码系统(平台ID = 0)

编码ID 描述
0 Unicode 1语义
1 Unicode 1.1语义
2 ISO 10646:1993语义
3 Unicode 2起语义,Unicode BMP只有。
4 Unicode 2起语义,Unicode全部曲目。

一种新的编码的Unicode平台ID将被分配如果一个新的Unicode字符 移动版,为了正确 语义指定字符编码。 Unicode 平台特定的编码系统1和2之间的区别仅仅是历史原因; Unicode 1.1实际上是相同的曲目和编码ISO 10646:1993(之前。

目前没有语言ID为Unicode平台定义。 这意味着它可以编码的使用的表而不是CMAP 字符串的名称。

微软平台特定的编码系统(平台ID = 3)

平台ID 编码ID 描述
3 0 符号
3 1 Unicode BMP只有
3 2 shiftjis
3 3 中华人民共和国
3 4 BIG5
3 5 Wansung
3 6 johab
3 7 保留
3 8 保留
3 9 保留
3 10 Unicode全部曲目

当建立一个Unicode字体的Windows平台,ID应3 和编码的ID应该是1。 当建立一个符号字体为Windows平台, ID应该是3,编码标识应。 当建筑 字体将被使用在麦金塔平台,ID应该是1和 编码ID应该是0。

微软语言ID(网络ID = 3)

语言ID(下表中的LCID)指的是一种价值 确定在一个特定的字符串是书面语言。 通过微软的指定语言ID的五十以下,随着 相应的代码页。 有85个额外的语言ID的分配。 一个完整的列表,请 微软全球发展 网站或 知识库文章q224804 。


小学语文 区域名称 LCID 赢得CP OEM CP
阿尔巴尼亚 阿尔巴尼亚 (041c;SQI)    
巴斯克 巴斯克 (042d euq;) 1252 850
白俄罗斯 白俄罗斯 (0423,比利时) 1251 866
保加利亚语 保加利亚 (0402,BGR) 1251 866
加泰罗尼亚 加泰罗尼亚 (0403;猫) 1252 850
克罗地亚 克罗地亚 (041a,SHL) 1250 852
捷克 捷克 (0405;CSY) 1250 852
丹麦 丹麦 (0406;丹) 1252 865
荷兰(2): 荷兰(标准) (0413;民盟) 1252 850
荷兰(2): 比利时(弗兰德) (0813;NLB) 1252 850
英语(6): 美国 (0409;ENU) 1252 437
英语(6): 英国 (0809;ENG) 1252 850
英语(6): 澳大利亚 (0c09;ENA) 1252 850
英语(6): 加拿大 (1009;ENC) 1252 850
英语(6): 新西兰 (1409;等等) 1252 850
英语(6): 爱尔兰 (1809;埃尼) 1252 850
爱沙尼亚 爱沙尼亚 (0425,ETI) 1257 775
芬兰 芬兰 (040b;翅) 1252 850
法国 法语(标准) (040c;FRA) 1252 850
法国 比利时 (080c;FRB) 1252 850
法国 加拿大 (0c0c;FRC) 1252 850
法国 瑞士 (100C;FRS) 1252 850
法国 卢森堡 (140C型;FRL) 1252 850
德国 德国(标准) (0407;Deu) 1252 850
德国 瑞士 (0807;DES) 1252 850
德国 奥地利 (0c07;DEA) 1252 850
德国 卢森堡 (1007;删除) 1252 850
德国 列支敦士登 (1407;12月) 1252 850
希腊 希腊 (0408;ELL) 1253 737或869 4
匈牙利 匈牙利 (040e;匈奴) 1250 852
冰岛 冰岛 (040f;ISL) 1252 850
意大利(2): 意大利(标准) (0410;ITA) 1252 850
意大利(2): 瑞士 (0810;其) 1252 850
拉脱维亚 拉脱维亚 (0426,LVI) 1257 775
立陶宛 立陶宛 (0427,LTH) 1257 775
挪威(2): 挪威(挪威语) (0414;也没有) 1252 850
挪威(2): 挪威(新) (0814;非) 1252 850
波兰 波兰 (0415;PLK) 1250 852
葡萄牙(2): 葡萄牙语(巴西) (0416;PTB) 1252 850
葡萄牙(2): 葡萄牙(标准) (0816;PTG) 1252 850
罗马尼亚(2): 罗马尼亚 (0418,ROM) 1250 852
俄罗斯 俄罗斯 (0419;俄罗斯) 1251 866
斯洛伐克 斯洛伐克 (041b;天空) 1250 852
斯洛文尼亚 斯洛文尼亚 (0424,SLV) 1250 852
西班牙(3): 西班牙语(传统) (040a;ESP) 1252 850
西班牙(3): 墨西哥 (080a;ESM) 1252 850
西班牙(3): 西班牙语(现代) (0c0a;ESN) 1252 850
瑞典 瑞典 (041d;SVE) 1252 850
土耳其 土耳其 (041f;TRK) 1254 857
乌克兰 乌克兰 (0422,乌克兰) 1251 866

4 737是默认的,但869(IBM希腊)将可在安装时通过 在 自定义设置一个虚假的希腊地点的选择。

Macintosh的平台特定的编码标识
(脚本管理码),(平台ID= 1)

代码 脚本 代码 脚本
0 罗马 17 马拉雅拉姆
1 日本 18 僧伽罗人
2 中文(繁体) 19 缅甸
3 韩国 20 高棉
4 阿拉伯语 21 泰国
5 希伯来语 22 老挝
6 希腊 23 格鲁吉亚
7 俄罗斯 24 亚美尼亚
8 rsymbol 25 中文(简体)
9 梵文 26 西藏
10 果鲁穆奇 27 蒙古族
11 古吉拉特语 28 天啊
12 奥里亚语 29 斯拉夫语
13 孟加拉语 30 越南
14 泰米尔 31 信德
15 泰卢固语 32 解释的
16 坎那达语    

Macintosh的语言ID(平台ID = 1)

代码 语言 代码 语言
0 英国 59 普什图语
1 法国 60 库尔德
2 德国 61 克什米尔
3 意大利 62 信德
4 荷兰 63 西藏
5 瑞典 64 尼泊尔
6 西班牙 65 梵文
7 丹麦 66 马拉地语
8 葡萄牙 67 孟加拉语
9 挪威 68 阿萨姆语
10 希伯来语 69 古吉拉特语
11 日本 70 旁遮普
12 阿拉伯语 71 奥里亚语
13 芬兰 72 马拉雅拉姆
14 希腊 73 坎那达语
15 冰岛 74 泰米尔
16 马耳他 75 泰卢固语
17 土耳其 76 僧伽罗人
18 克罗地亚 77 缅甸
19 中文(繁体) 78 高棉
20 乌尔都语 79
21 印地语 80 越南
22 泰国 81 印度尼西亚
23 韩国 82 跟屁虫
24 立陶宛 83 马来语(罗马 脚本)
25 波兰 84 马来语(阿拉伯 脚本)
26 匈牙利 85 阿姆哈拉语
27 爱沙尼亚 86 提格里尼亚语
28 拉脱维亚 87 五倍子
29 萨米 88 索马里
30 法罗群岛 89 斯瓦希里语
31 波斯语/波斯 90 卢旺达,卢旺达
32 俄罗斯 91 润地
33 中文(简体) 92 加语/切瓦
34 佛兰德 93 马达加斯加
35 爱尔兰的盖尔 94 世界语
36 阿尔巴尼亚 128 威尔士
37 罗马尼亚 129 巴斯克
38 捷克 130 加泰罗尼亚
39 斯洛伐克 131 拉丁
40 斯洛文尼亚 132 quenchua
41 意第绪语 133 瓜拉尼
42 塞尔维亚 134 艾马拉人
43 马其顿 135 鞑靼
44 保加利亚语 136 维吾尔族
45 乌克兰 137 宗卡
46 白俄罗斯 138 爪哇(罗马脚本)
47 乌兹别克斯坦 139 巽他(罗马脚本)
48 哈萨克 140 加利西亚语
49 阿塞拜疆语(西里尔脚本) 141 南非荷兰语
50 阿塞拜疆(阿拉伯 脚本) 142 布列塔尼语
51 亚美尼亚 14 因纽特语
52 格鲁吉亚 144 苏格兰盖尔
53 摩尔达维亚 145 马恩岛语
54 柯尔克孜族 146 爱尔兰语(点以上)
55 塔吉克语 147 同安
56 土库曼 148 希腊(多音)
57 蒙古(蒙古 脚本) 149 格陵兰岛
58 蒙古(西里尔脚本) 150 阿塞拜疆(罗马脚本)

ISO具体编码(平台ID = 2)[推荐]

代码 ISO编码
0 7位ASCII
1 ISO 10646
2 ISO 8859-1

有没有ISO特定语言 ID。

自定义平台特定的编码 IDS(网络ID = 4)

ID 自定义编码
0-255 基于Windows NT 相容映射

在情况下,自定义平台CMAP是目前光学传递函数的Windows NT 兼容性,编码ID必须设置为Windows字符值 (范围在0~255,含)目前在PFM文件 的原始类型的。 看到“CMAP的台对更多的细节 基于Windows NT的兼容性CMAP 。

目前没有语言ID为自定义平台定义。 这意味着它可以编码的使用的表而不是CMAP 字符串的名称。

名称标识

下列名称ID是预先定义的,它们适用于所有平台 除非另有说明。 名称ID 21到255,包容,保留 未来标准名称。 名称ID 256到32767,包容,保留 字体具体的名称,如引用的字体的布局 特征。

代码 意义
0 版权声明。
1 字体名称。 高达四的字体可以分享字体名称,字体风格形成连接组(常规,斜体,粗体,斜体加粗所定义的OS / 2.fsselection位设置)。
2 字体家族名称。 字体家族名称distiguishes字体用同一个字体家族名称组(名1)。 这是假定地址样式(斜体,斜)和体重( 光,大胆的,黑色的,等)。 一个重量或风格没有特别的差异(例如 字体中等重量,不 斜体和fsselection位6套)应该有字符串“定期” 存储在这个位置。
3 独特的字体标识符
4 全字体名称;这应该是一个字符串1和2 组合。 例外:如果字体是“正规”作为字符串 2表示,然后用家族的名字中包含字符串 1。
对全字体名以上定义的一个例外是 微软平台字符串CFF OpenType字体:在这种情况下,最全的字体名称 字符串必须在CFF名称索引PostScript字体相同。
5 版本字符串。 应该从语法 版<号码>。<号码>”(大写,小写,或混合,用空格 之间的“版本”和数量)。
字符串必须包含一个版本号 以下形式:一个或多个数字(0-9)的值小于65535,其次是 期,随后由一个或多个数字的值小于65535。 除了一位将终止小数量的任何字符。 一个字符如 “;”有助于分离不同的版本信息。
在第一个匹配字符串 可以通过安装软件的使用比较的字体 版本。 注意一些安装程序可能需要字符串 开始与 “版本”,跟版本号上面。
6 对于字体PostScript名称;名称ID 6指定的字符串是用来调用 PostScript语言字体对应于该OpenType字体。 如果没有名字的ID 6 ,然后是没有定义的方法调用这个字体 PostScript解释器。
OpenType字体 包括6名ID的名称应包括这两名 名称ID 6,和特点如下:
  1. 平台:1 [苹果];平台特定的编码:0 [罗马];[英]语言:0。
  2. 平台:3 [微软];平台特定的编码:1 [UNICDOE];语言:0x409 [英语(美国)]。
名称ID 6名称除上述两,如果存在的话,必须 忽视。

当转换为ASCII,这两个名称字符串 必须相同;不超过63个字符;和限制 可打印的ASCII码的子集,33到126,除了10个字: “[ ’,‘]’,'(',')”,“{”,“}”,“<”,“>”,“/”,“ 。

在CFF OpenType字体,这两个名称字符串,当 转换为ASCII码,也必须向字体名称相同 存储在CFF姓名索引。

“后记名“ 这里意味着字符串相同的两个相同名字的ID字符串 上述6。

根据 PostScript语言字体使用特殊的字体格式,为 PostScript字体的调用方法不同,和的语义产生 PostScript语言字体不同。 该方法用于调用这个字体 取决于名20的存在。

如果一个名称ID 20这个字体 ,然后默认的假设应该是 后记名名6定义应该用 “ composefont”调用。 这篇后记的名字叫然后 PostScript语言CIDFont资源对应的符号 的OpenType字体。 这个名字是有效的通过,一个合适 PostScript语言CMAP参考,实例名称为 ,PostScript语言“composefont”算子。

如果 没有名字的ID为20的这个字体,则默认假设 应按名称ID 6定义PostScript名称应使用 “ findfont”调用,在PostScript解释器上下文 定位字体。 这个名字是那么的后记 PostScript语言字体资源对应 的OpenType字体符号的名称。 这名有效传递给 PostScript语言“findfont”算子。 请注意,这是 意味着产生的字体字典 接受/编码阵列,如字体时引用的是 PostScript字体类型0。

注意本规范适用于 只有数据叉OpenType字体。 Macintosh资源叉TrueType 等Macintosh sfnt包裹的字体可用于 “findfont”调用供应 PostScript字体名称,以便调用 在PostScript解释器的字体,在喜欢资源 风格映射表。

开发商可能会选择忽略 默认使用适当的时候。 例如,PostScript打印机 的版本早于2015不能处理的CID字体 资源,与CJK OpenType字体可以下载/ cff-cid只有 一套1型PostScript字体。 传统CJK TrueType字体, 没有名称,编号20,还可以最有效地下载 为CID字体资源。 定义的情况下,全套的 违约不应该遵循在 本文档的范围。
 
7 商标;这是用来保存这个字体任何 商标公告/信息。 这样的信息应该是基于法律咨询 。 这是 明显的 版权分开。
8 制造商名称。
9 设计师;对 字体设计师的名字。
10 描述字体的描述。 可以包含版本信息,使用建议,历史,
11 URL URL字体供应商;供应商(与 协议,如FTP,HTTP:/ /,:/ /)。 如果一个独特的序列号是 嵌入URL,它可以用于注册的字体。
12 URL的URL设计;字体设计师 (与协议,如FTP,HTTP:/ /,:/。
13 许可描述;描述 字体可以合法使用,或为不同的示例场景 许可使用。 这场应该用平实的语言,不是 法律术语。
14 许可证信息的URL;URL附加 许可信息可以发现。
15 保留设置为零。
16 家庭的首选;为 历史原因,字体家庭包含最多四个款式,但 字体设计者可以组四种以上的字体给一家人。 首选的家庭可以让字体设计师家庭分组包含 超过包括优先。 如果是不同的ID 1这个ID是唯一的存在。
17 优选的亚科;允许字体设计者们的首选亚科的分组是 比ID 2更多的描述。 如果是不同的ID 2必须 为家庭的首选独特的ID是唯一的存在。
18 兼容全(苹果只);在 Macintosh,菜单名称使用的是美好的资源建设。 这通常与。 如果你想要的字体名称 出现不同的姓名,你可以插入 兼容姓名ID 18。
19 示例文本;这可以 是字体名称,或任何其他文本,设计师认为是 最好样本显示字体。
20 后记CID findfont 名称;其字体的出现意味着6持有nameid PostScript字体名称是用来“composefont“ 调用以PostScript解释器调用字体。 定义名称看。

在名称 ID 20串举行的值被解释为一个PostScript字体名称是 用来与 “findfont”调用,以便在PostScript解释器调用 字体。

如果名称ID 20 字体中,必须有一名ID 20记录每个 Macintosh平台CMAP子表中的字体。 一个特别的名字ID 20记录与编码的匹配 CMAP指定相关的子表。 一名ID为20的记录相匹配的一个CMAP 子表当他们有相同的平台和平台特定的编码标识, 和相应的语言/。 名称ID 20记录都是Macintosh CMAP子只用。 CMAP为子表的版本字段是一个比为 相应名称ID 20记录语言的ID值,与CMAP 子表版场0例外。 这个版本的领域,意思是 “不 特定语言”,对应于语言ID值0xFFFF,或 十进制65535,ID 20记录相应的名称。

当 翻译成ASCII码,这个名称的字符串必须被限制为可打印的ASCII子集 ,代码33到126,除了10个字: “[ ’,‘]’,'(',')”,“{”,“}”,“<”,“> ',' / ',' 。

请注意,本规范仅适用于数据叉 OpenType字体。 Macintosh资源叉TrueType和Macintosh sfnt包字体用于 “findfont”调用供应PostScript字体名称,以便在 PostScript解释器调用字体,在喜欢的资源类型映射 表。

注意,一个特定的名称ID 20弦总是 对应于一个特定的Macintosh CMAP子表。 然而,一些主机 OpenType / TTF字体也包含后表,格式4,它提供了一个从字形 ID编码值的映射,而且 对应于一个特定的Macintosh CMAP子表。 不幸的是, 后表格式4包含不确定 Macintosh CMAP子表匹配,也不提供超过1 。 主机字体包含后表格式4,也应该只包含一个单一的Macintosh CMAP子表,和一个单一的名称ID 20弦。 当有一个以上的Macintosh CMAP 子表和一个以上的名称ID 20弦,没有定义 哪一个符合后表格式4。

 

虽然苹果和微软 支持名字字符串相同的解释可能有所不同。 但由于名称 字符串存储平台,编码和语言(各自为政 字符串苹果和微软平台),这不应存在 问题。

MS字体此表的关键信息涉及 字符串使用1,2和4。 为了更好的帮助理解,一些 名称用法的例子,重量级别和风格的旗帜已创建。

注意,OS / 2和Windows都需要所有的名称字符串是 定义Unicode。 因此所有的“名”表中的字符串为平台id = 3 (微软)两个字节需要。 Macintosh的字体需要 单字节字符串。

的例子,这些字符串可以定义:

0。 从字体供应商的版权字符串。 版权蒙纳公司的PLC,1990

1。 用户看到的名字。 时代新罗马

2。 该样式的名称。 大胆的

3。 一个唯一的标识符,应用程序可以存储识别字体 使用。 蒙纳:宋体黑体:1990

4。 完整的,唯一的希望,字体的可读名称。 使用此名称。 时代新罗马大胆
(如果这是一个闪光的OpenType字体,微软平台字符串 然后价值会timesnewroman大胆,在4名以上的 定义。)

5。 从字体供应商发布和版本信息。 版本1 1990年6月1日初发布 ,

6。 名称的字体将被称为PostScript打印机上。 timesnewroman大胆

7。 商标的字符串。 时代新罗马是一个注册商标 蒙纳公司。

8。 制造商 蒙纳公司的PLC

9。 设计师。 斯坦利莫里森

10。 描述 设计1932对泰晤士报。 良好的可读性和窄的宽度,更字每 线比,允许。

11。 URL的供应商。 http://www.monotype.com

12。 URL的设计师。 http://www.monotype.com

13。 许可证的描述。 这个字体可以安装在所有您 机和打印机,但你不可能卖或给这些字体 其他任何人。

14。 许可证信息的URL。 http://www.monotype.com/license/

15。 保留。 设置为零。

16。 家庭的首选。 没有名称的字符串,因为它是作为1名 ID相同(字体名称)。

17。 优选的亚科。 没有名称的字符串,因为它是作为名称 ID 2相同(字体家族名称)。

18。 兼容全(苹果只)。 没有名称的字符串,因为它是作为4名 ID相同(姓名)。

19。 示例文本。 快速的棕色狐狸跳过 懒狗。

20。 后记CID findfont名称。 目前没有名称的字符串。 因此,该名称的名称ID 后记6定义应使用“findfont“ 调用在PostScript 解释器上下文定位字体。

以下是唯一的名称ID 6和20在CFF OpenType字体Kozuka Mincho性病日本定期例(其他名称IDS也在这个字体 本):
6。 后记的名字: kozminstd定期 。 因为名字的ID是20,字体(见下文),然后定义的名称名后记 ID 6应使用“调用 composefont”的上下文的字体定位。
20。 后记CID: kozminstd-regular-83pv-rksj-h ,在记录1名 平台[苹果],平台特定的脚本1 [日本],[英]语言:0xFFFF。 这个名字是一个字符串的后记 名称应使用在PostScript解释器上下文定位 字体“findfont”调用,并与 编码由以下CMAP指定相关的子表,必须在字体: 平台:1 [苹果];平台特定的编码: 1 [日本];语言:0 [不语。

最后更新2002.10.14

QQXIUZI.CN 千千秀字