
我很想知道使用時哪種字體擴充效果更好XeLaTeX編譯 TeX 文檔。我剛剛下載了字體阿萊格雷亞從CPAN,它附帶一個fonts
資料夾,其中包含具有多種格式的字體的資料夾:
FOLDER FONT FILE EXTENSION
afm *.afm
enc *.enc
map just one file: Alegreya.map
pfm *.pfm
tfm *.tfm
truetype *.ttf
type1 *.pfb
vf *.vf
我對字體一無所知,我甚至不知道有這麼多字體格式,我不知道它們的用途。
我嘗試type1
透過truetype
添加以下內容來格式化我的 TeX 文件:
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont[ Path = ./alegreya/fonts/truetype/huerta/alegreya/,
Extension = .ttf,
BoldFont = Alegreya-Bold,
ItalicFont = Alegreya-Italic,
BoldItalicFont = Alegreya-BoldItalic,
SmallCapsFont = AlegreyaSC-Regular,
SmallCapsFeatures = {Letters = SmallCaps},
Numbers = OldStyle
]{Alegreya-Regular}
我的文件的序言(與type1
使用Path = ./alegreya/fonts/truetype/huerta/alegreya/
和相同Extension = .pfb
)。這兩種格式都有效,我沒有遇到任何編譯錯誤,而且 PDF 看起來不錯。
我的問題是:是否有我應該使用的與 XeLaTeX 一起使用的首選字體?關於字體嵌入的最佳實踐是什麼(如果有)?我該用什麼,ttf,PFB或其他?
乾杯!
答案1
首先讓我們來看看所有文件。這是我猜的(但我不是這裡的專家...)。另請查看下面 Beeton 女士的評論,其中討論了我的一些誤解,並提供了有關某些擴展的更多信息:
- afm:Adobe 字體規格文件
- enc:編碼文件
- map:映射,告訴 TeX
.tfm
字體如何與實際 type1/truetype/metafont 字體相關 - pfm:印表機輪廓公製字型文件
- tfm:TeX 字型公製文件
- ttf:TrueType 字型文件
- pfb:Type 1 PostScript 字型檔(二進位)
- vf:TeX 虛擬字型文件
問題關於.ttf
處理 vs. T1 的這裡當然也在這個網站的某個地方。
.vf
文件大致是“虛擬”字體的 TeX 字體規格文件。這些可能由不同字體的字元組成。例如,您可以使用常規字體中的字母和補充字體中的數字來建立包含舊式數字的字體。它們還可以告訴 TeX 如何建構原始字體中不存在的字符,包括連字(例如ffi
)和重音字符(例如é
)。與.tfm
文件一樣,它們還包括邊界框、斜體校正、連字的使用所需的度量資訊(例如f
+ i
->fi
)等所需的度量資訊。這裡有關此主題的非常好的資訊。
最後作為您問題的明確答案:您應該.ttf
在此處使用該文件。由於 XeLaTeX 能夠處理這些字體,因此您應該使用它。更好的是.otf
,但我不想在這裡展開多餘的字體討論。
答案2
原則上,XeTeX 可以很好地處理.otf
或.ttf
字體檔案。但是,在某些情況下,.ttf
字體版本缺少一些元資料(為了與舊版本的 Windows 相容),因此當兩者都可用時,您應該更喜歡.otf
.
較舊的字體格式是類型1,它由一對資料檔案.pfa
或.pfb
和一個指標檔案組成.afm
。雖然 XeTeX 對 Type 1 字體有一些支持,但您很可能會發現它有缺陷(不自動支援字元變體,不支援運算符seac
);盡可能避免使用 XeTeX 的 Type 1 格式。
XeTeX 對其他類型的文件不感興趣。 (.pfm
檔案只是.afm
轉換為 Windows 特定二進位格式的檔案。 .enc
、.map
、.tfm
、.vf
是傳統 TeX/pdfTeX 的支援文件。)