Fontspec 无法在与 tex 脚本相同的文件夹中找到字体文件

Fontspec 无法在与 tex 脚本相同的文件夹中找到字体文件

我在 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.otfSomeFont-Bold.otfSomeFont-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

相关内容