![Overleaf 上的 Fontspec 無法處理 .fontspec 文件](https://rvso.com/image/472708/Overleaf%20%E4%B8%8A%E7%9A%84%20Fontspec%20%E7%84%A1%E6%B3%95%E8%99%95%E7%90%86%20.fontspec%20%E6%96%87%E4%BB%B6.png)
我正在嘗試使用非標準字體(無花果樹)在背面,同時保持主目錄盡可能乾淨。目錄如下所示:
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)上編譯沒有問題。我有兩個問題:
- 為什麼 Overleaf 找不到 Figtree-Regular?
- 理想情況下,該
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,
}
那你的例子就有效了。