跳转至

9.8 字体描述符

Font Descriptors

9.8.1 概述

General

字体描述符指定了简单字体或CIDFont作为整体的度量和其他属性,这与单个字形的度量是不同的。这些字体度量提供了信息,使得符合规范的阅读器能够在字体程序不可用时合成一个替代字体或选择一个相似的字体。字体描述符还可以用于将字体程序嵌入到PDF文件中。

字体描述符不能与Type 0字体一起使用。从PDF 1.5开始,字体描述符可以与Type 3字体一起使用。

字体描述符是一个字典,其条目指定了各种字体属性。所有字体描述符中共同的条目——无论是简单字体还是CIDFont——列在了表122中。CIDFont的字体描述符中的额外条目在9.8.3《CIDFont的字体描述符》中进行了描述。所有整数值应为字形空间中的单位。字形空间到文本空间的转换描述在9.2.4《字形定位和度量》中。

表 122 – 所有字体描述符共同的条目
类型
Type name (必需) 描述此字典的PDF对象类型;对于字体描述符,应为 FontDescriptor
FontName name (必需) 字体的PostScript名称。该名称应与引用此字体描述符的字体或CIDFont字典中的 BaseFont 值相同。
FontFamily 字节串 (可选;PDF 1.5;应在标记PDF文档中的Type 3字体中使用) 指定首选字体家族名称的字节串。

示例 1

对于字体 Times Bold Italic,FontFamily 为 Times。

FontStretch name (可选;PDF 1.5;应在标记PDF文档中的Type 3字体中使用) 字体拉伸值。它应为以下名称之一(从最窄到最宽):UltraCondensed、ExtraCondensed、Condensed、SemiCondensed、Normal、SemiExpanded、Expanded、ExtraExpanded 或 UltraExpanded。
这些值的具体解释因字体而异。

示例 2

在一种字体中,Condensed 可能与另一种字体中的 Normal 最为相似。

FontWeight 数字 (可选;PDF 1.5;应在标记PDF文档中的Type 3字体中使用) 字体的重量(厚度)分量,表示完全限定字体名称或字体说明符。可能的值为100、200、300、400、500、600、700、800或900,每个数字表示一个比其前一个更深的重量。400表示正常粗细;700表示加粗。

这些值的具体解释因字体而异。

示例 3

在一种字体中,300可能与另一种字体中的500最为相似。

Flags 整数 (必需) 一组定义字体各种特性的标志(参见9.8.2《字体描述符标志》)。
FontBBox 矩形 (必需,Type 3字体除外) 一个矩形(参见7.9.5《矩形》),以字形坐标系表示,指定字体的边界框。这应该是最小的矩形,包含了将所有字形的原点对齐并填充后形成的形状。
ItalicAngle 数字 (必需) 以从竖直方向逆时针方向表示的度数,表示字体的主垂直笔画的角度。

示例 4

9点钟位置为90度,3点钟位置为-90度。

对于向右倾斜的字体(几乎所有斜体字体都是这样的),该值应为负数。

Ascent 数字 (必需,Type 3字体除外) 字形在该字体中超过基线的最大高度。带有重音符号的字符的高度应排除在外。
Descent 数字 (必需,Type 3字体除外) 字形在该字体中低于基线的最大深度。该值应为负数。
Leading 数字 (可选) 连续文本行基线之间的间距。默认值:0。
CapHeight 数字 (必需,具有拉丁字母的字体,Type 3字体除外) 扁平大写字母顶部的垂直坐标,从基线开始测量。
XHeight 数字 (可选) 字体的 x 高度:平坦的非上升小写字母(如字母x)顶部的垂直坐标,从基线开始测量,在具有拉丁字母的字体中。默认值:0。
StemV 数字 (必需,Type 3字体除外) 字形中主垂直笔画的水平厚度。
StemH 数字 (可选) 字形中主水平笔画的垂直厚度。默认值:0。
AvgWidth 数字 (可选) 字体中字形的平均宽度。默认值:0。
MaxWidth 数字 (可选) 字体中字形的最大宽度。默认值:0。
MissingWidth 数字 (可选) 对于字体字典的 Widths 数组中未指定宽度的字符代码使用的宽度。只有当所有这些字符代码映射到实际宽度与 MissingWidth 条目值相同的字形时,它才会产生可预测的效果。默认值:0。
FontFile (可选) 包含Type 1字体程序的流(参见9.9《嵌入字体程序》)。
FontFile2 (可选;PDF 1.1) 包含TrueType字体程序的流(参见9.9《嵌入字体程序》)。
FontFile3 (可选;PDF 1.2) 包含由流字典中的 Subtype 条目指定格式的字体程序的流(参见表126)。
ToUnicode ASCII 字符串或字节字符串 (可选;仅在Type 1字体中有意义;PDF 1.1) 列出字体子集中的字符名称的字符串。该字符串中的名称应采用PDF语法——即,每个名称前有斜杠(/)。这些名称可以以任何顺序出现。名称 .notdef 应被省略,但应在字体子集中存在。如果此条目不存在,字体子集的唯一指示应为 FontName 条目中的子集标签(参见9.6.4《字体子集》)。

最多只应存在FontFile、FontFile2和FontFile3中的一个条目。

A font descriptor specifies metrics and other attributes of a simple font or a CIDFont as a whole, as distinct from the metrics of individual glyphs. These font metrics provide information that enables a conforming reader to synthesize a substitute font or select a similar font when the font program is unavailable. The font descriptor may also be used to embed the font program in the PDF file.

Font descriptors shall not be used with Type 0 fonts. Beginning with PDF 1.5, font descriptors may be used with Type 3 fonts.

A font descriptor is a dictionary whose entries specify various font attributes. The entries common to all font descriptors—for both simple fonts and CIDFonts—are listed in Table 122. Additional entries in the font descriptor for a CIDFont are described in 9.8.3, "Font Descriptors for CIDFonts". All integer values shall be units in glyph space. The conversion from glyph space to text space is described in 9.2.4, "Glyph Positioning and Metrics".

Table 122 – Entries common to all font descriptors
Key Type Value
Type name (Required) The type of PDF object that this dictionary describes; shall be FontDescriptor for a font descriptor.
FontName name (Required) The PostScript name of the font. This name shall be the same as the value of BaseFont in the font or CIDFont dictionary that refers to this font descriptor.
FontFamily byte string (Optional; PDF 1.5; should be used for Type 3 fonts in Tagged PDF documents) A byte string specifying the preferred font family name.

EXAMPLE 1

For the font Times Bold Italic, the FontFamily is Times.

FontStretch name (Optional; PDF 1.5; should be used for Type 3 fonts in Tagged PDF documents) The font stretch value. It shall be one of these names (ordered from narrowest to widest): UltraCondensed, ExtraCondensed, Condensed, SemiCondensed, Normal, SemiExpanded, Expanded, ExtraExpanded or UltraExpanded.
The specific interpretation of these values varies from font to font.

EXAMPLE 2

Condensed in one font may appear most similar to Normal in another.

FontWeight number (Optional; PDF 1.5; should be used for Type 3 fonts in Tagged PDF documents) The weight (thickness) component of the fully-qualified font name or font specifier. The possible values shall be 100, 200, 300, 400, 500, 600, 700, 800, or 900, where each number indicates a weight that is at least as dark as its predecessor. A value of 400 shall indicate a normal weight; 700 shall indicate bold.

The specific interpretation of these values varies from font to font.

EXAMPLE 3

300 in one font may appear most similar to 500 in another.

Flags integer (Required) A collection of flags defining various characteristics of the font (see 9.8.2, "Font Descriptor Flags").
FontBBox rectangle (Required, except for Type 3 fonts) A rectangle (see 7.9.5, "Rectangles"), expressed in the glyph coordinate system, that shall specify the font bounding box. This should be the smallest rectangle enclosing the shape that would result if all of the glyphs of the font were placed with their origins coincident and then filled.
ItalicAngle number (Required) The angle, expressed in degrees counterclockwise from the vertical, of the dominant vertical strokes of the font.

EXAMPLE 4

The 9-o’clock position is 90 degrees, and the 3-o’clock position is –90 degrees.

The value shall be negative for fonts that slope to the right, as almost all italic fonts do.

Ascent number (Required, except for Type 3 fonts) The maximum height above the baseline reached by glyphs in this font. The height of glyphs for accented characters shall be excluded.
Descent number (Required, except for Type 3 fonts) The maximum depth below the baseline reached by glyphs in this font. The value shall be a negative number.
Leading number (Optional) The spacing between baselines of consecutive lines of text. Default value: 0.
CapHeight number (Required for fonts that have Latin characters, except for Type 3 fonts) The vertical coordinate of the top of flat capital letters, measured from the baseline.
XHeight number (Optional) The font’s x height: the vertical coordinate of the top of flat nonascending lowercase letters (like the letter x), measured from the baseline, in fonts that have Latin characters. Default value: 0.
StemV number (Required, except for Type 3 fonts) The thickness, measured horizontally, of the dominant vertical stems of glyphs in the font.
StemH number (Optional) The thickness, measured vertically, of the dominant horizontal stems of glyphs in the font. Default value: 0.
AvgWidth number (Optional) The average width of glyphs in the font. Default value: 0.
MaxWidth number (Optional) The maximum width of glyphs in the font. Default value: 0.
MissingWidth number (Optional) The width to use for character codes whose widths are not specified in a font dictionary’s Widths array. This shall have a predictable effect only if all such codes map to glyphs whose actual widths are the same as the value of the MissingWidth entry. Default value: 0.
FontFile stream (Optional) A stream containing a Type 1 font program (see 9.9, "Embedded Font Programs").
FontFile2 stream (Optional; PDF 1.1) A stream containing a TrueType font program (see 9.9, "Embedded Font Programs").
FontFile3 stream (Optional; PDF 1.2) A stream containing a font program whose format is specified by the Subtype entry in the stream dictionary (see Table 126).
ToUnicode ASCII string or byte string (Optional; meaningful only in Type 1 fonts; PDF 1.1) A string listing the character names defined in a font subset. The names in this string shall be in PDF syntax—that is, each name preceded by a slash (/). The names may appear in any order. The name . notdef shall be omitted; it shall exist in the font subset. If this entry is absent, the only indication of a font subset shall be the subset tag in the FontName entry (see 9.6.4, "Font Subsets").

At most, only one of the FontFile, FontFile2, and FontFile3 entries shall be present.

9.8.2 字体描述符标志

Font Descriptor Flags

字体描述符中 Flags 条目的值应为一个无符号的32位整数,其中包含指定字体各种特性的标志。标志字中的位位置从1(低位)到32(高位)编号。表123展示了这些标志的含义;所有未定义的标志位为保留位,符合规范的写入者应将其设置为0。图48展示了具有这些特性的字体示例。

表 123 – 字体标志
位位置 名称 含义
1 FixedPitch 所有字形具有相同的宽度(与比例或变宽字体不同,后者具有不同的宽度)。
2 Serif 字形有衬线,即在字形笔画的顶部和底部绘制的短笔画(无衬线字体没有衬线)。
3 Symbolic 字体包含超出Adobe标准拉丁字符集的字形。该标志和非符号标志不能同时设置或同时清除。
4 Script 字形类似于草写字体。
6 Nonsymbolic 字体使用Adobe标准拉丁字符集或其子集。
7 Italic 字形具有倾斜的主要垂直笔画。
17 AllCap 字体不包含小写字母;通常用于显示目的,如标题或头条。
18 SmallCap 字体包含大写字母和小写字母。大写字母类似于该字体系列中的常规版本;小写字母的字形与相应的大写字母相同,但其大小和比例进行了调整,使其与该字体系列中的小写字形具有相同的大小和笔画粗细。
19 ForceBold 请参见本小节中的注释1。

Nonsymbolic 标志(Flags 条目中的第6位)指示字体的字符集是Adobe标准拉丁字符集(或其子集),并且使用这些字形的标准名称。此字符集在D.2《拉丁字符集和编码》中列出。如果字体包含此字符集以外的字形,则应设置 Symbolic 标志,并清除 Nonsymbolic 标志。换句话说,任何字符集不是Adobe标准字符集子集的字体,应视为符号字体。这会影响字体的隐式基本编码,并可能影响符合规范的阅读器的字体替换策略。

123

注释 1

这种符号字体和非符号字体的分类是PDF特有的。一个字体可能包含一些用于拉丁书写系统的附加字符,但这些字符不在Adobe标准拉丁字符集中;PDF将此类字体视为符号字体。使用两个标志表示单一二进制选择是历史上的偶然。

ForceBold 标志(第19位)应决定是否即使在非常小的文本尺寸下,符合规范的阅读器仍应使用额外像素来绘制加粗字形。如果设置了 ForceBold 标志,则加粗字形的特征在小文本尺寸下可能会加粗。

注释 2

通常,当字形在非常低分辨率的设备(如显示屏)上绘制时,加粗字形的特征可能只有1个像素宽。由于这是基于像素的设备上的最小特征宽度,普通(非加粗)字形的特征也会显示为1个像素宽,因此无法与加粗字形区分。

示例

这段代码示例演示了一个字体描述符,其中 Flags 条目设置了 SerifNonsymbolicForceBold 标志(第2、6和19位)。

7 0 obj
    << /Type /FontDescriptor
       /FontName /AGaramond-Semibold
       /Flags 262178                        % Bits 2, 6, and 19
       /FontBBox [ −177 −269 1123 866 ]
       /MissingWidth 255
       /StemV 105
       /StemH 45
       /CapHeight 660
       /XHeight 394
       /Ascent 720
       /Descent −270
       /Leading 83
       /MaxWidth 1212
       /AvgWidth 478
       /ItalicAngle 0
    >>
endobj

The value of the Flags entry in a font descriptor shall be an unsigned 32-bit integer containing flags specifying various characteristics of the font. Bit positions within the flag word are numbered from 1 (low-order) to 32 (high-order). Table 123 shows the meanings of the flags; all undefined flag bits are reserved and shall be set to 0 by conforming writers. Figure 48 shows examples of fonts with these characteristics.

Table 123 – Font flags
Bit position Name Meaning
1 FixedPitch All glyphs have the same width (as opposed to proportional or variable-pitch fonts, which have different widths).
2 Serif Glyphs have serifs, which are short strokes drawn at an angle on the top and bottom of glyph stems. (Sans serif fonts do not have serifs.)
3 Symbolic Font contains glyphs outside the Adobe standard Latin character set. This flag and the Nonsymbolic flag shall not both be set or both be clear.
4 Script Glyphs resemble cursive handwriting.
6 Nonsymbolic Font uses the Adobe standard Latin character set or a subset of it.
7 Italic Glyphs have dominant vertical strokes that are slanted.
17 AllCap Font contains no lowercase letters; typically used for display purposes, such as for titles or headlines.
18 SmallCap Font contains both uppercase and lowercase letters. The uppercase letters are similar to those in the regular version of the same typeface family. The glyphs for the lowercase letters have the same shapes as the corresponding uppercase letters, but they are sized and their proportions adjusted so that they have the same size and stroke weight as lowercase glyphs in the same typeface family.
19 ForceBold See description after Note 1 in this sub-clause.

The Nonsymbolic flag (bit 6 in the Flags entry) indicates that the font’s character set is the Adobe standard Latin character set (or a subset of it) and that it uses the standard names for those glyphs. This character set is shown in D.2, "Latin Character Set and Encodings". If the font contains any glyphs outside this set, the Symbolic flag shall be set and the Nonsymbolic flag shall be clear. In other words, any font whose character set is not a subset of the Adobe standard character set shall be considered to be symbolic. This influences the font’s implicit base encoding and may affect a conforming reader’s font substitution strategies.

123

NOTE 1

This classification of nonsymbolic and symbolic fonts is peculiar to PDF. A font may contain additional characters that are used in Latin writing systems but are outside the Adobe standard Latin character set; PDF considers such a font to be symbolic. The use of two flags to represent a single binary choice is a historical accident.

The ForceBold flag (bit 19) shall determine whether bold glyphs shall be painted with extra pixels even at very small text sizes by a conforming reader. If the ForceBold flag is set, features of bold glyphs may be thickened at small text sizes.

NOTE 2

Typically, when glyphs are painted at small sizes on very low-resolution devices such as display screens, features of bold glyphs may appear only 1 pixel wide. Because this is the minimum feature width on a pixel- based device, ordinary (nonbold) glyphs also appear with 1-pixel-wide features and therefore cannot be distinguished from bold glyphs.

EXAMPLE

This code sample illustrates a font descriptor whose Flags entry has the Serif, Nonsymbolic, and ForceBold flags (bits 2, 6, and 19) set.

7 0 obj
    << /Type /FontDescriptor
       /FontName /AGaramond-Semibold
       /Flags 262178                        % Bits 2, 6, and 19
       /FontBBox [ −177 −269 1123 866 ]
       /MissingWidth 255
       /StemV 105
       /StemH 45
       /CapHeight 660
       /XHeight 394
       /Ascent 720
       /Descent −270
       /Leading 83
       /MaxWidth 1212
       /AvgWidth 478
       /ItalicAngle 0
    >>
endobj

9.8.3 CIDFonts 的字体描述符

Font Descriptors for CIDFonts

9.8.3.1 概述

General

除了表122中的条目外,CIDFonts的FontDescriptor字典还可以包含表124中列出的条目。

表 124 – CIDFonts的附加字体描述符条目
位位置 名称 含义
Style 字典 (可选)一个字典,包含描述字体中字形样式的条目(见9.8.3.2,“样式”)。
Lang 名称 (可选;PDF 1.5)指定字体语言的名称,可能用于编码中语言未由编码本身暗示的情况。该值应为Internet RFC 3066定义的代码之一,语言标识标签,或(PDF 1.0)ISO 639定义的2个字符的语言代码(见参考书目)。如果此条目缺失,则应认为语言未知。
FD 字典 (可选)一个字典,其键标识CIDFont中的字形类别。每个值应为一个字典,包含条目,这些条目应覆盖该类别字形在主字体描述符字典中的对应值(见9.8.3.3,“FD”)。
CIDSet (可选)一个流,标识CIDFont文件中存在的CID。如果此条目存在,则CIDFont应仅包含CIDSystemInfo字典定义的字符集合中的字形子集。如果此条目缺失,CIDFont子集的唯一标识应为FontName条目中的子集标签(见9.6.4,“字体子集”)。
流的数据应以CID为索引,按位组织为一个位表。位应存储在字节中,且高位在前。每个位应对应一个CID,第一个字节的最重要位应对应CID 0,接下来的位对应CID 1,以此类推。

In addition to the entries in Table 122, the FontDescriptor dictionaries of CIDFonts may contain the entries listed in Table 124.

Table 124 – Additional font descriptor entries for CIDFonts
Bit position Name Meaning
Style dictionary (Optional) A dictionary containing entries that describe the style of the glyphs in the font (see 9.8.3.2, "Style").
Lang name (Optional; PDF 1.5) A name specifying the language of the font, which may be used for encodings where the language is not implied by the encoding itself. The value shall be one of the codes defined by Internet RFC 3066, Tags for the Identification of Languages or (PDF 1.0) 2-character language codes defined by ISO 639 (see the Bibliography). If this entry is absent, the language shall be considered to be unknown.
FD dictionary (Optional) A dictionary whose keys identify a class of glyphs in a CIDFont. Each value shall be a dictionary containing entries that shall override the corresponding values in the main font descriptor dictionary for that class of glyphs (see 9.8.3.3, "FD").
CIDSet stream (Optional) A stream identifying which CIDs are present in the CIDFont file. If this entry is present, the CIDFont shall contain only a subset of the glyphs in the character collection defined by the CIDSystemInfo dictionary. If it is absent, the only indication of a CIDFont subset shall be the subset tag in the FontName entry (see 9.6.4, "Font Subsets").
The stream’s data shall be organized as a table of bits indexed by CID. The bits shall be stored in bytes with the high-order bit first. Each bit shall correspond to a CID. The most significant bit of the first byte shall correspond to CID 0, the next bit to CID 1, and so on.

9.8.3.2 样式

Style

Style字典包含定义CIDFont样式属性和值的条目。仅定义了Panose条目。Panose的值应为一个包含以下元素的12字节字符串:

  • 字体家族类别和子类别ID字节,这些字节在TrueType字体的“OS/2”表的sFamilyClass字段中给出。此字段在微软的TrueType 1.0字体文件技术规范中有文档说明。
  • 十个字节用于字体的PANOSE分类编号。PANOSE分类系统在惠普公司的PANOSE分类指标指南中有文档说明。

有关这些文档的更多信息,请参阅参考书目。

示例

这是字体描述符中Style条目的示例:

/Style << /Panose < 01 05 02 02 03 00 00 00 00 00 00 00 > >>

The Style dictionary contains entries that define style attributes and values for the CIDFont. Only the Panose entry is defined. The value of Panose shall be a 12-byte string consisting of these elements:

  • The font family class and subclass ID bytes, given in the sFamilyClass field of the “OS/2” table in a TrueType font. This field is documented in Microsoft’s TrueType 1.0 Font Files Technical Specification.
  • Ten bytes for the PANOSE classification number for the font. The PANOSE classification system is documented in Hewlett-Packard Company’s PANOSE Classification Metrics Guide.

See the Bibliography for more information about these documents.

EXAMPLE

This is an example of a Style entry in the font descriptor:

/Style << /Panose < 01 05 02 02 03 00 00 00 00 00 00 00 > >>

9.8.3.3 FD

FD

一个CIDFont可能由不同类别的字形组成,每个类别需要不同的字体全局属性,这些属性出现在字体描述符中。

示例 1

例如,拉丁字形可能需要与汉字字形不同的属性。

字体描述符应定义一组默认属性,适用于CIDFont中的所有字形。字体描述符中的FD条目应包含这些默认值的例外。

FD字典中每个条目的键应是字形类别的名称——即CIDFont字符集合中的一个特定子集。条目的值应为一个字体描述符,其内容应仅覆盖该类别的字体全局属性。该字体描述符应仅包含度量信息条目;它不应包含FontFileFontFile2FontFile3表格122中列出的任何条目。

FD字典应至少包含比例拉丁字形的度量信息。通过这些字形的信息,可以创建更精确的替代字体。

字形类别的名称依赖于字符集合,该集合由CIDSystemInfo字典中的RegistryOrderingSupplement条目标识。表125列出了Adobe-GB1、Adobe-CNS1、Adobe-Japan1、Adobe-Japan2和Adobe-Korea1字符集合的有效键。

表格125 – CJK字体中的字形类别
字符集合 类别 类别中的字形
Adobe-GB1 字母
符号
通用
汉字
HRoman
HRomanRot
假名
比例
比例Rot
全宽拉丁字母、希腊字母和西里尔字母字形
特殊符号
无字体依赖的字形,如线条绘制
全宽汉字(中文)字形
半宽拉丁字母字形
与HRoman相同,但旋转以便在竖排中使用
日本假名(片假名和平假名)字形
比例拉丁字形
与比例相同,但旋转以便在竖排中使用
Adobe-CNS1 字母
符号
通用
汉字
HRoman
HRomanRot
假名
比例
比例Rot
全宽拉丁字母、希腊字母和西里尔字母字形
特殊符号
无字体依赖的字形,如线条绘制
全宽汉字(中文)字形
半宽拉丁字母字形
HRoman相同,但旋转以便在竖排中使用
日本假名(片假名和平假名)字形
比例拉丁字形
比例相同,但旋转以便在竖排中使用
Adobe-Japan1 字母
数字字母
符号
符号Rot
通用
通用Rot
假名(H)
假名Rot(H)
HRoman
HRomanRot
假名
汉字
比例
比例Rot
注音
全宽拉丁字母、希腊字母和西里尔字母字形
数字字形
特殊符号
与Dingbats相同,但旋转以便在竖排中使用
无字体依赖的字形,如线条绘制
与通用相同,但旋转以便在竖排中使用
半宽假名(片假名和平假名)字形
与HKana相同,但旋转以便在竖排中使用
半宽拉丁字母字形
与HRoman相同,但旋转以便在竖排中使用
全宽假名(片假名和平假名)字形
全宽汉字(中文)字形
比例拉丁字形
与比例相同,但旋转以便在竖排中使用
用于设置注音的字形(小字形,用于标注其他字形的含义或读音)
Adobe-Japan2 字母
符号
保定汉字
全宽拉丁字母、希腊字母和西里尔字母字形
特殊符号
全宽汉字字形
Adobe-Korea1 字母
符号
通用
韩文
汉字
HRoman
HRomanRot
假名
比例
比例Rot
全宽拉丁字母、希腊字母和西里尔字母字形
特殊符号
无字体依赖的字形,如线条绘制
韩文和字母字形
全宽汉字(中文)字形
半宽拉丁字母字形
HRoman相同,但旋转以便在竖排中使用
日本假名(片假名和平假名)字形
比例拉丁字形
比例相同,但旋转以便在竖排中使用

示例 2

这个例子说明了一个包含两个条目的FD字典。

/FD << /Proportional 25 0 R
       /HKana 26 0 R
    >>

25 0 obj
    << /Type /FontDescriptor
       /FontName /HeiseiMin-W3-Proportional
       /Flags 2
       /AvgWidth 478
       /MaxWidth 1212
       /MissingWidth 250
       /StemV 105
       /StemH 45
       /CapHeight 660
       /XHeight 394
       /Ascent 720
       /Descent −270
       /Leading 83
    >>
endobj

26 0 obj
    << /Type /FontDescriptor
       /FontName /HeiseiMin-W3-HKana
       /Flags 3
       /AvgWidth 500
       /MaxWidth 500
       /MissingWidth 500
       /StemV 50
       /StemH 75
       /Ascent 720
       /Descent 0
       /Leading 83
    >>
endobj

A CIDFont may be made up of different classes of glyphs, each class requiring different sets of the font-wide attributes that appear in font descriptors.

EXAMPLE 1

Latin glyphs, for example, may require different attributes than kanji glyphs.

The font descriptor shall define a set of default attributes that apply to all glyphs in the CIDFont. The FD entry in the font descriptor shall contain exceptions to these defaults.

The key for each entry in an FD dictionary shall be the name of a class of glyphs—that is, a particular subset of the CIDFont’s character collection. The entry’s value shall be a font descriptor whose contents shall override the font-wide attributes for that class only. This font descriptor shall contain entries for metric information only; it shall not include FontFile, FontFile2, FontFile3, or any of the entries listed in Table 122.

The FD dictionary should contain at least the metrics for the proportional Latin glyphs. With the information for these glyphs, a more accurate substitution font can be created.

The names of the glyph classes depend on the character collection, as identified by the Registry, Ordering, and Supplement entries in the CIDSystemInfo dictionary. Table 125 lists the valid keys for the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, Adobe-Japan2, and Adobe-Korea1 character collections.

Table 125 – Glyph classes in CJK fonts
Character Collection Class Glyphs in Class
Adobe-GB1 Alphabetic
Dingbats
Generic
Hanzi
HRoman
HRomanRot
Kana
Proportional
ProportionalRot
Full-width Latin, Greek, and Cyrillic glyphs
Special symbols
Typeface-independent glyphs, such as line-drawing
Full-width hanzi (Chinese) glyphs
Half-width Latin glyphs
Same as HRoman but rotated for use in vertical writing
Japanese kana (katakana and hiragana) glyphs
Proportional Latin glyphs
Same as Proportional but rotated for use in vertical writing
Adobe-CNS1 Alphabetic
Dingbats
Generic
Hanzi
HRoman
HRomanRot
Kana
Proportional
ProportionalRot
Full-width Latin, Greek, and Cyrillic glyphs
Special symbols
Typeface-independent glyphs, such as line-drawing
Full-width hanzi (Chinese) glyphs
Half-width Latin glyphs
Same as HRoman but rotated for use in vertical writing
Japanese kana (katakana and hiragana) glyphs
Proportional Latin glyphs
Same as Proportional but rotated for use in vertical writing
Adobe-Japan1 Alphabetic
AlphaNum
Dingbats
DingbatsRot
Generic
GenericRot
HKana
HKanaRot
HRoman
HRomanRot
Kana
Kanji
Proportional
ProportionalRot
Ruby
Full-width Latin, Greek, and Cyrillic glyphs
Numeric glyphs
Special symbols
Same as Dingbats but rotated for use in vertical writing
Typeface-independent glyphs, such as line-drawing
Same as Generic but rotated for use in vertical writing
Half-width kana (katakana and hiragana) glyphs
Same as HKana but rotated for use in vertical writing
Half-width Latin glyphs
Same as HRoman but rotated for use in vertical writing
Full-width kana (katakana and hiragana) glyphs
Full-width kanji (Chinese) glyphs
Proportional Latin glyphs
Same as Proportional but rotated for use in vertical writing
Glyphs used for setting ruby (small glyphs that serve to
annotate other glyphs with meanings or readings)
Adobe-Japan2 Alphabetic
Dingbats
HojoKanji
ull-width Latin, Greek, and Cyrillic glyphs
pecial symbols
ull-width kanji glyphs
Adobe-Korea1 Alphabetic
Dingbats
Generic
Hangul
Hanja
HRoman
HRomanRot
Kana
Proportional
ProportionalRot
Full-width Latin, Greek, and Cyrillic glyphs
Special symbols
Typeface-independent glyphs, such as line-drawing
Hangul and jamo glyphs
Full-width hanja (Chinese) glyphs
Half-width Latin glyphs
Same as HRoman but rotated for use in vertical writing
Japanese kana (katakana and hiragana) glyphs
Proportional Latin glyphs
Same as Proportional but rotated for use in vertical writing

EXAMPLE 2

This example illustrates an FD dictionary containing two entries.

/FD << /Proportional 25 0 R
       /HKana 26 0 R
    >>

25 0 obj
    << /Type /FontDescriptor
       /FontName /HeiseiMin-W3-Proportional
       /Flags 2
       /AvgWidth 478
       /MaxWidth 1212
       /MissingWidth 250
       /StemV 105
       /StemH 45
       /CapHeight 660
       /XHeight 394
       /Ascent 720
       /Descent −270
       /Leading 83
    >>
endobj

26 0 obj
    << /Type /FontDescriptor
       /FontName /HeiseiMin-W3-HKana
       /Flags 3
       /AvgWidth 500
       /MaxWidth 500
       /MissingWidth 500
       /StemV 50
       /StemH 75
       /Ascent 720
       /Descent 0
       /Leading 83
    >>
endobj