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%
}

背頁文件可在此處取得:背頁 MWE

該文檔未使用 進行編譯LuaLaTeX,表示未找到「Figtree-Regular」。我也嘗試過,XeLaTeX但似乎編譯甚至沒有完成。然而,這在我的本地設定(Mac 上的 TeXShop)上編譯沒有問題。我有兩個問題:

  1. 為什麼 Overleaf 找不到 Figtree-Regular?
  2. 理想情況下,該Figree.fontspec檔案也應為font/,但這樣做會導致編譯器完全找不到 Figtree 字體。我認為這是因為它找不到該.fontspec文件。有沒有辦法解決這個問題?編輯:正如大衛的評論中所提到的,沒有理由期待這種行為。我僅在.fontspec文件位於“標準 texmf 位置”的本地設定中觀察到此行為。

答案1

如果您希望 .fontspec 檔案受到尊重,您需要傳遞正確的字體名稱。\setmathfont{Figtree-Regular}會尋找Figtree-Regular.fontspec,不會尋找Figtree.fontspec。同樣,.fontspec 檔案的內容需要指定\defaultfontfeatures[Figtree-Regular]{...}您是否希望它具有任何效果,僅影響(或等)\defaultfontfeatures[Figtree]{...}的負載,而不影響任何帶有 .fontspec的內容。\setmathfont{Figtree}\setmainfont{Figtree}Figtree-Regular

如果您不想創建這麼多文件,您也可以將所有\defaultfontfeatures命令放在一個Figtree.fontspec.當你載入eg時,它不會被自動讀取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,
}

那你的例子就有效了。

相關內容