latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体
本文已加入专栏文章目录,归入「基本使用」文章系列。
名词约定
- 本文所称字体,特指 ttf,otf 和 ttc 格式的字体
- 本文默认使用 macOS 操作系统,安装了 TeX Live 发行版,执行 xelatex 进行编译
字体文件在哪里
一开始,字体在电脑的两个地方
- 系统预装
- 主要在目录 /Library/Fonts/ 和 /System/Library/Fonts/
- 少量 Downloadable font assets 在目录 /System/Library/Assets/com_apple_MobileAsset_Font5(路径末尾的 5 可能为其他数字)
- 发行版预装
- ttf 字体在目录 $TEXMFDIST/fonts/truetype
- otf 字体在目录 $TEXMFDIST/fonts/opentype
- 其中,$TEXMFDIST 是发行版主文件树的位置,一般为 /usr/local/texlive/<dist-info>/texmf-dist,可通过 kpsewhich --var-value TEXMFDIST 来获取
macOS 下的字体调用,问题的引入
在使用 fontspec 时,
- 系统预装的字体,只能通过字体名来调用
- 发行版预装的字体,只能通过文件名来调用
而在 Windows 里,系统和发行版预装的字体,都可以通过字体名和文件名两种方式来调用。这样,就会遇到 tex 文件的可移植性问题。
一种解决方案
对普通用户比较友好的解决方案是,在 Font Book.app(字体册应用)里,新建 Font Library(字体资源库), 然后把发行版预装字体的两个目录添加进去。
- 优势
- 发行版预装字体也能通过字体名调用了
- 字体名可以在字体册里便利查询
- 劣势
- 发行版里新安装的字体,不会自动导入
- 发行版预装字体较多,可能让字体册卡死
- 已经导入的字体,某些会在一段时间后被自动禁用,笔者尚不知晓解决方案
另一种解决方案
往字体册添加字体,有两种方式
- 打开字体文件(默认使用字体册应用打开),点击「安装」,这会把字体拷贝到 ~/Library/Fonts/ 目录。同时,在字体册里,该字体会列入名为「用户」 的字体资源库。
- 使用字体册的「加入字体」功能,把字体加入某个字体资源库。这些字体不会被拷贝到 ~/Library/Fonts/ 目录。 (这是第一个解决方案里提到的方式)
打开终端,执行下面两行,将在 ~/Library/Fonts/ 目录创建发行版字体目录的符号链接,这样也可以让使用者在字体册里「见到」发行版中的字体。
ln -s `kpsewhich -var-value TEXMFDIST`/fonts/truetype ~/Library/Fonts/texlive-truetype ln -s `kpsewhich -var-value TEXMFDIST`/fonts/opentype ~/Library/Fonts/texlive-opentype与第一种方案相比,
- 优势
- 发行版新安装的字体,会在下次打开字体册应用时自动导入
- 劣势
- 所有字体都在名为「用户」的字体库里,不能分库也不能自定义库名
补充
- 在使用 xecjk/ctex宏包集 设置中文字体时,以上信息依然有效
没写的内容
- 用户其他目录下的字体与texmf 的OSFONTDIR 变量
- 对未加入字体册的字体,查看它们的信息
- 参考资料
部分参考资料
[1] Mac OS X:字体位置及其目的 (en-us) - support.apple.com
[2] 在 Mac 上的“字体册”中创建字体集和资源库 - 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
总结
以上是生活随笔为你收集整理的latex字体_[LaTeX 引擎] XeLaTeX + macOS,通过字体名调用发行版字体的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 由于超出容量限制_限制特高压系统中的过电
- 下一篇: 判断非负整数是否是3的倍数_六年级小升初