我正在与不熟悉 LaTeX 的人一起为共享项目设置软件包。我想使用一些本地字体。我使用了 XeLaTeX,效果很好。但是,我们还将使用可能无法使用这些字体的笔记本。
因为我打算尽量减少对所加载包的修改需要,所以我想知道是否有办法在 XeLaTeX 找不到第一个字体的情况下指定替代字体(例如在 HTML/CSS 中所做的那样)。
以下是一个 mwe:
\documentclass[11 pt, a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\setmainfont{Adobe Garamond Pro}
\begin{document}
This should be in \textit{Adobe Garamond Pro} if available.
\end{document}
答案1
这在 xelatex 和 lualatex 中都有效,并为我设置了 Pagella 中的文档:
\documentclass[11 pt, a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\ExplSyntaxOn
\NewDocumentCommand{\onlywarniffontnotfound}{}
{
\suppressfontnotfounderror = \c_one
%\font_suppress_not_found_error:
\msg_redirect_name:nnn {fontspec}{font-not-found}{warning}
}
\ExplSyntaxOff
\onlywarniffontnotfound
\setmainfont{Adobe Garamond Pro}
\expandafter\ifx\the\font\nullfont
\setmainfont{TeX Gyre Pagella}
\expandafter\ifx\the\font\nullfont
\typeout{hmm your document might be a bit white, sorry}
\else
\typeout{TeX Gyre Pagella}
\fi
\else
\typeout{you have Adobe Garamond Pro}
\fi
\begin{document}
\showoutput
This should be in \textit{Adobe Garamond Pro} if available.
\end{document}
(\onlywarniffontnotfound
由@egreg 提供)