我在两台机器上使用 LaTeX,一台 Mac M1 笔记本电脑和一台运行 Ubuntu 18.04.6 的旧台式机。昨天,我将 Ubuntu 机器上的 TeX Live 升级到 2023 版。我发现我必须将对字体的所有引用更改LibreBaskerville
为Libre Baskerville
。我将 Mac 升级到 MacTeX 2023,发现现在它找不到 或LibreBaskerville
。Libre Baskerville
(两台电脑都顺利使用了这种字体,因为我得到了帮助这个问题)Mac 上的错误信息是:
! Package fontspec Error: The font "Libre Baskerville-Regular" cannot be
(fontspec) found.
该字体似乎可用,因为在 Mac 上搜索 Libre Baskerville 会得到以下结果:
$ luaotfload-tool --find "Libre Baskerville" --fuzzy
luaotfload | resolve : Font "Libre Baskerville" found!
luaotfload | resolve : Resolved file name "/usr/local/texlive/2023/texmf-dist/fonts/truetype/impallari/librebaskerville/LibreBaskerville-Regular.ttf"
我怎样才能让两台计算机都找到 Libre Baskerville 字体?
更多细节
我运行来排版 .tex 文件的命令是:
latexmk -xelatex
Dissertate.sty
导致错误的LaTeX 命令(在 中)是:
\defaultfontfeatures[Libre Baskerville]{
Extension=.ttf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
BoldFont = *-Bold,
BoldItalicFont = *-BoldItalic,
SmallCapsFont = BaskervilleF-Regular.otf,
SmallCapsFeatures={Letters=SmallCaps,Scale=1.1},
Ligatures={Common,TeX}
}
\setmainfont{Libre Baskerville}
\newfontfamily\baskerville{Libre Baskerville}
给出的错误行号是上面显示的最后一行的行号。
Mac 上 TeX Live 的上一个版本(2020 年)可与扩展程序配合使用。Ubuntu上的 2023 版本需要.otf
更改为。现在和在 Mac 上都失败了。.ttf
.otf
.ttf
如果我删除 Mac 上的空间,这样就Libre Baskerville
始终如一LibreBaskerville
(两台计算机上都使用的方式),我会收到略有不同的错误消息:
! Package fontspec Error: The font "LibreBaskerville-BoldItalic" cannot be
(fontspec) found.
答案1
我找到了一个修复程序,它使 Tex Live 2023 能够在我的 Mac 和 Ubuntu 机器上与 Libre Baskerville 一起使用,包括数学规范,这需要 XeTeX。这很简单。首先,字体名称应该保留LibreBaskerville
(没有空格)。其次,我只需要更改 中的两行Dissertate.cls
,替换此处注释掉的行:
\defaultfontfeatures[LibreBaskerville]{
%Extension=.otf,
Extension=.ttf,
UprightFont = *-Regular,
ItalicFont = *-Italic,
BoldFont = *-Bold,
%BoldItalicFont = *-BoldItalic,
BoldItalicFont = LibreBskvl-BoldItalic,
SmallCapsFont = BaskervilleF-Regular.otf,
SmallCapsFeatures={Letters=SmallCaps,Scale=1.1},
Ligatures={Common,TeX}
}
我通过运行这个命令解决了这个问题:
luaotfload-tool --find "Libre Baskerville" --fuzzy
向我展示戴维斯洛在这个答案,然后检查 Regular 字体所在目录中的文件。BoldItalic 具有上面显示的特殊名称,并且文件是 .otf,而不是 .ttf。