PDF 文件中的字形(字元)名稱是如何決定的?

PDF 文件中的字形(字元)名稱是如何決定的?

PDF 檔案內部使用字形名字。例如,出現在 PDF 文件中的( U+2248;TeX )名稱可能是.\approxapproxequal

人們可以透過以下方式在 TeX 產生的 PDF 檔案中找到這些名稱:

  1. 編譯 TeX 程式碼\pdfcompresslevel=0
  2. 檢查生成的 PDF 文件作為文字文件,以及
  3. 尋找以 開頭的行/CharSet

(資料取自烏爾麗克·費雪的回答其他地方提供了更多資訊)。

顯然,字形名稱與字體相關。那麼它們是由字體決定的嗎?所有字體格式都會使用這樣的名稱嗎?哪些字體格式使用文字名稱?所有 PDF 文件中的所有字形都有這樣的名稱嗎?

PDF 檔案中的字形名稱是如何決定的?現有的是誰決定的?它們是做什麼用的?(為什麼 PDF 不按數字引用字形?顯然,有些讀者依賴字形名稱(請參閱下面有關超連結檢測問題的連結),因此 PDF 格式或一些讀者使一些關於這些名字的假設。使用名稱中介一定是有原因的。也許這與 Unicode 相對於 PDF 的年齡有關。

對我來說,PDF 字形名稱的問題出現在這裡:

類似的問題是如何找到 \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 頁及以下)中討論了這些方法。

相關內容