latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体
本文已加入專欄文章目錄,歸入「基本使用」文章系列。
名詞約定
- 本文所稱字體,特指 ttf,otf 和 ttc 格式的字體
- 本文默認(rèn)使用 macOS 操作系統(tǒng),安裝了 TeX Live 發(fā)行版,執(zhí)行 xelatex 進(jìn)行編譯
字體文件在哪里
一開始,字體在電腦的兩個地方
- 系統(tǒng)預(yù)裝
- 主要在目錄 /Library/Fonts/ 和 /System/Library/Fonts/
- 少量 Downloadable font assets 在目錄 /System/Library/Assets/com_apple_MobileAsset_Font5(路徑末尾的 5 可能為其他數(shù)字)
- 發(fā)行版預(yù)裝
- ttf 字體在目錄 $TEXMFDIST/fonts/truetype
- otf 字體在目錄 $TEXMFDIST/fonts/opentype
- 其中,$TEXMFDIST 是發(fā)行版主文件樹的位置,一般為 /usr/local/texlive/<dist-info>/texmf-dist,可通過 kpsewhich --var-value TEXMFDIST 來獲取
macOS 下的字體調(diào)用,問題的引入
在使用 fontspec 時,
- 系統(tǒng)預(yù)裝的字體,只能通過字體名來調(diào)用
- 發(fā)行版預(yù)裝的字體,只能通過文件名來調(diào)用
而在 Windows 里,系統(tǒng)和發(fā)行版預(yù)裝的字體,都可以通過字體名和文件名兩種方式來調(diào)用。這樣,就會遇到 tex 文件的可移植性問題。
一種解決方案
對普通用戶比較友好的解決方案是,在 Font Book.app(字體冊應(yīng)用)里,新建 Font Library(字體資源庫), 然后把發(fā)行版預(yù)裝字體的兩個目錄添加進(jìn)去。
- 優(yōu)勢
- 發(fā)行版預(yù)裝字體也能通過字體名調(diào)用了
- 字體名可以在字體冊里便利查詢
- 劣勢
- 發(fā)行版里新安裝的字體,不會自動導(dǎo)入
- 發(fā)行版預(yù)裝字體較多,可能讓字體冊卡死
- 已經(jīng)導(dǎo)入的字體,某些會在一段時間后被自動禁用,筆者尚不知曉解決方案
另一種解決方案
往字體冊添加字體,有兩種方式
- 打開字體文件(默認(rèn)使用字體冊應(yīng)用打開),點擊「安裝」,這會把字體拷貝到 ~/Library/Fonts/ 目錄。同時,在字體冊里,該字體會列入名為「用戶」 的字體資源庫。
- 使用字體冊的「加入字體」功能,把字體加入某個字體資源庫。這些字體不會被拷貝到 ~/Library/Fonts/ 目錄。 (這是第一個解決方案里提到的方式)
打開終端,執(zhí)行下面兩行,將在 ~/Library/Fonts/ 目錄創(chuàng)建發(fā)行版字體目錄的符號鏈接,這樣也可以讓使用者在字體冊里「見到」發(fā)行版中的字體。
ln -s `kpsewhich -var-value TEXMFDIST`/fonts/truetype ~/Library/Fonts/texlive-truetype ln -s `kpsewhich -var-value TEXMFDIST`/fonts/opentype ~/Library/Fonts/texlive-opentype與第一種方案相比,
- 優(yōu)勢
- 發(fā)行版新安裝的字體,會在下次打開字體冊應(yīng)用時自動導(dǎo)入
- 劣勢
- 所有字體都在名為「用戶」的字體庫里,不能分庫也不能自定義庫名
補充
- 在使用 xecjk/ctex宏包集 設(shè)置中文字體時,以上信息依然有效
沒寫的內(nèi)容
- 用戶其他目錄下的字體與texmf 的OSFONTDIR 變量
- 對未加入字體冊的字體,查看它們的信息
- 參考資料
部分參考資料
[1] Mac OS X:字體位置及其目的 (en-us) - support.apple.com
[2] 在 Mac 上的“字體冊”中創(chuàng)建字體集和資源庫 - support.apple.com
[3] fontspec (xelatex) finding fonts by name, installed or in TEXMFHOME - TeX.SX
[4] The fontspec package, Font selection for XeLaTeX and LuaLaTeX, sec. 2 - ctan.org/pkg/fontspec
總結(jié)
以上是生活随笔為你收集整理的latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 由于超出容量限制_限制特高压系统中的过电
- 下一篇: 最简单人工智能python_Python