我在 CentOS 7 上使用 xelatex,字体文件位于本地文件夹中。(这些字体在使用 Ubuntu 的另一台计算机上运行。)
我正在使用 TexLive 2022 的 XeTeX。我尝试了几种不同的语法来实现这一点,这些语法是我从不同的网站读到的,但都不起作用。我怎样才能让 xelatex 找到字体文件并使用它们?
这是最新的无效代码:
\usepackage{fontspec}
\setmainfont{<path to current directory/fontname.otf>}[
Bold = <path to current directory/name.otf>
Italic = <path to current directory/name.otf>
]
我收到的错误是:
! Package fontspec Error: The font "<fontname.otf>" cannot be found.
错误中不显示路径,只显示字体名称。我尝试在类型和名称说明符之前和之后放置 {fontname},但都不起作用。我尝试将整个路径放入每个说明符中,并使用“Path”变量,但都不起作用。我尝试了在不同脚本中看到的其他各种想法,但都不起作用。正确的语法是什么?
答案1
如果文件名是SomeFont-Regular.otf
,SomeFont-Bold.otf
和SomeFont-Italic.otf
,你可能想要类似
\setmainfont{SomeFont}[
UprightFont = {*-Regular},
BoldFont = {*-Bold},
ItalicFont = {*-Italic},
Path = {./},
Extension = {.otf}
]
其中花括号是出于谨慎考虑。
如果你在多个地方加载字体,请将所有内容放在一个块中,而不是保留多个副本,因为这些副本可能会不一致。例如,
\defaultfontfeatures[SomeFont]{
UprightFont = {*-Regular},
BoldFont = {*-Bold},
ItalicFont = {*-Italic},
Path = {./},
Extension = {.otf}
}
\setmainfont{SomeFont}
\setsansfont{SomeFont}
您还可以将该\defaultfontfeatures[SomeFont]
命令放入名为的文件中SomeFont.fontspec
,这样您就可以\setmainfont{SomeFont}
在主文档中写入并对文件进行所有调整.fontspec
。