Overleaf 上的 Fontspec 无法处理 .fontspec 文件

Overleaf 上的 Fontspec 无法处理 .fontspec 文件

我正在尝试使用非标准字体(无花果树),同时尽可能保持主目录整洁。目录如下所示:

font/
    Figtree-Bold.otf
    Figtree-BoldItalic.otf
    Figtree-Italic.otf
    Figtree-Regular.otf
Figtree.fontspec
main.tex

main.tex看起来像这样:

\documentclass{article}

\usepackage[quiet, no-math]{fontspec}
\usepackage[warnings-off={mathtools-colon, mathtools-overbracket}]{unicode-math}
\usepackage{firamath-otf}% set up main math font

\setmainfont{Figtree}
\setmathfont{Figtree-Regular}[range=up/{latin,Latin,num}]
\setmathfont{Figtree-Italic}[range=it/{latin,Latin}]
\setmathfont{Figtree-Bold}[range=bfup/{latin,Latin,num}]
\setmathfont{Figtree-BoldItalic}[range=bfit/{latin,Latin}]

\begin{document}
test $1 + 1 = 2$
\end{document}

看起来Figree.fontspec像这样:

\defaultfontfeatures[Figtree]{
Path = font/,
Extension = .otf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic%
}

Overleaf 文档可在此处获取:背面 MWE

该文档无法使用 进行编译LuaLaTeX,提示“Figtree-Regular”未找到。我也尝试使用 进行编译,XeLaTeX但似乎编译甚至没有完成。但是,在我的本地设置(Mac 上的 TeXShop)上,这可以毫无问题地进行编译。我有两个问题:

  1. 为什么 Overleaf 找不到 Figtree-Regular?
  2. 理想情况下,该Figree.fontspec文件也应该位于 中font/,但这样做会导致编译器完全找不到 Figtree 字体。我推测这是因为它找不到.fontspec文件。有办法解决这个问题吗?编辑:正如 David 的评论中提到的,没有理由期待这种行为。我只在文件位于.fontspec“标准 texmf 位置”的本地设置中观察到了这种行为。

答案1

如果希望 .fontspec 文件得到遵守,则需要传递正确的字体名称。\setmathfont{Figtree-Regular}将查找Figtree-Regular.fontspec,而不是Figtree.fontspec。同样,如果您希望 .fontspec 文件的内容\defaultfontfeatures[Figtree-Regular]{...}产生任何影响,则需要指定它是否只影响(或等)\defaultfontfeatures[Figtree]{...}的负载,而不是任何带有 的内容。\setmathfont{Figtree}\setmainfont{Figtree}Figtree-Regular

如果你不想创建那么多文件,你也可以将所有\defaultfontfeatures命令放在一个文件中Figtree.fontspec。例如,当你加载时,它不会自动读取Figtree-Regular,但只要你Figtree先加载,它就会被加载。

例如如果你输入Figtree.fontspec

\defaultfontfeatures[Figtree-Bold]{
  Path = font/,
  Extension = .otf,
}
\defaultfontfeatures[Figtree-BoldItalic]{
  Path = font/,
  Extension = .otf,
}
\defaultfontfeatures[Figtree]{
  Path = font/,
  Extension = .otf,
  UprightFont = *-Regular,
  BoldFont = *-Bold,
  ItalicFont = *-Italic,
  BoldItalicFont = *-BoldItalic%
}
\defaultfontfeatures[Figtree-Italic]{
  Path = font/,
  Extension = .otf,
}
\defaultfontfeatures[Figtree-Regular]{
  Path = font/,
  Extension = .otf,
}

那么你的例子就起作用了。

相关内容