PDF 文件内部使用字形名称. 例如, PDF 文件中出现的≈
( U+2248
;TeX )名称可能是。\approx
approxequal
可以通过以下方式在 TeX 生成的 PDF 文件中找到此类名称:
- 使用以下方式编译 TeX 代码
\pdfcompresslevel=0
: - 将生成的 PDF 文件作为文本文件进行检查,并
- 寻找以 开头的行
/CharSet
。
(信息取自Ulrike Fischer 的回答其他地方,提供了更多信息)。
显然,字形名称与字体相关。那么它们是由字体决定的吗?所有字体格式都使用这样的名称吗?哪些字体格式使用文本名称?所有 PDF 文件中的所有字形都有这样的名称吗?
PDF 文件中的字形名称是如何确定的?谁决定了现有的?它们是用来做什么的?(为什么 PDF 不通过数字来引用字形?显然有些读者依赖字形名称(请参阅下面关于超链接检测的问题链接),因此 PDF 格式或一些读者一些对这些名称的假设。使用名称中介肯定是有原因的。也许这与 Unicode 相对于 PDF 的年代有关。)对于 (La)TeX 用户来说,关于这个主题还有什么需要了解的?
对我来说,PDF 字形名称的问题出现在这里:
- 操作生成的 PDF 文件中字形的 Unicode 代码点需要了解字形名称。值得注意的是,
glyphtounicode.tex
地图来自字形名称转换为 Unicode 代码点,具体行如下\pdfglyphtounicode{approximatelyequal}{2245}
:如何修复 glyphtounicode.tex 中缺失或不正确的映射 - 至少有一个 PDF 阅读器使用字形名称作为 HTTP URL 检测的启发式方法:\input{glyphtounicode} 和 \pdfgentounicode=1 会从类似链接的文本创建不需要的超链接
类似的问题是如何找到 \pdfglyphtounicode 所需的正确字形名称,但这一主题还有更多的内容需要讨论。
答案1
据我了解,字形名称由字体决定。(请注意“字形”一词的使用;字符和字形是相关的,但不能互换。但那是另一个故事。)
据我了解,字体提供的名称取决于字体的供应商——它们可能在某种程度上是“有意义的”(例如,ascii字母,unicode,描述性名称,...)或者它们可能只是供应商的内部代码,就像金属类型时代的情况一样(如旧的monotype技术符号列表所示)。
事情可能会改变,但是......不要屏住呼吸。
除了 ulrike 所说的,unicode 还使用名称和数字。这里一个重要(但可能不相关的一点)是,一旦分配了名称和数字,它们永远不会改变,即使这个名字被证明是错误的,或者只是不明智的。
第二点是,有些字形不是必须由一个唯一的unicode命名。unicode应该定义意义,而不是形状。“变体”字形(具有相同的含义但不同的形状)可以用多个 unicode 表示,主要有两种方式:
通过使用组合变音符号,如(U+2264) 和 U+20D2
\nvarleq
的复合符号\leq
,“组合长垂直覆盖”;几乎没有任何由垂直取消否定的关系由单个 unicode 表示,除非 unicode 分配的基本原则发生变化,否则这将保持常态。通过添加定义的“变体选择器”(U+FE00)来指定认可(即 unicode 官方规定)无法通过添加组合变音符号来修改的变体,例如
\lvertneqq
(小于但不等于,仅等号的垂直否定,U+2268,U+FE00)。
Unicode 技术报告 #25,数学的 unicode 支持,在第 2.17 和 2.18 节(第 26 页及后续页面)中讨论了这些方法。