
PDF 檔案內部使用字形名字。例如,出現在 PDF 文件中的≈
( U+2248
;TeX )名稱可能是.\approx
approxequal
人們可以透過以下方式在 TeX 產生的 PDF 檔案中找到這些名稱:
- 編譯 TeX 程式碼
\pdfcompresslevel=0
, - 檢查生成的 PDF 文件作為文字文件,以及
- 尋找以 開頭的行
/CharSet
。
(資料取自烏爾麗克·費雪的回答其他地方提供了更多資訊)。
顯然,字形名稱與字體相關。那麼它們是由字體決定的嗎?所有字體格式都會使用這樣的名稱嗎?哪些字體格式使用文字名稱?所有 PDF 文件中的所有字形都有這樣的名稱嗎?
PDF 檔案中的字形名稱是如何決定的?現有的是誰決定的?它們是做什麼用的?(為什麼 PDF 不按數字引用字形?顯然,有些讀者依賴字形名稱(請參閱下面有關超連結檢測問題的連結),因此 PDF 格式或一些讀者使一些關於這些名字的假設。使用名稱中介一定是有原因的。也許這與 Unicode 相對於 PDF 的年齡有關。
對我來說,PDF 字形名稱的問題出現在這裡:
- 在產生的 PDF 檔案中操作字形的 Unicode 代碼點需要了解字形名稱。值得注意的是,
glyphtounicode.tex
地圖從字形名稱到 Unicode 碼點,例如\pdfglyphtounicode{approximatelyequal}{2245}
:如何修復 glyphtounicode.tex 中遺失或不正確的映射 - 至少有一個 PDF 閱讀器使用字形名稱來進行 HTTP URL 檢測的啟發式:\input{glyphtounicode} 和 \pdfgentounicode=1 從類似連結的文字建立不需要的超連結
類似的問題是如何找到 \pdfglyphtounicode 所需的正確字形名稱,但這個主題還有更多內容要討論。
答案1
據我了解,字形名稱是由字體決定的。 (注意術語「字形」的使用;字元和字形是相關的,但不能互換。但那是另一個故事了。)
我的理解是,字體提供的名稱取決於字體的供應商——它們可能在某種程度上是「有意義的」(例如,ascii 字母、unicode、描述性名稱…),或者它們可能只是供應商的內部代碼,就像金屬活字時代的情況一樣(如舊的單型技術符號列表所示)。
事情可能會改變,但是…不要屏住呼吸。
除了 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 頁及以下)中討論了這些方法。