如果字体不可用,请跳过 \setsansfont

如果字体不可用,请跳过 \setsansfont

有没有办法\setsansfont根据字体是否可用来设定条件,或者如果出现错误则跳过该行?

我正在使用fontspecXeLaTeX 来使用TeX Gyre 英雄字体,但如果该字体不可用,我想恢复为默认字体,以便如果其他人编译该文档但没有安装该字体,他们会得到可读的内容,而不仅仅是错误。

一个简单的例子:

\documentclass{article}

\usepackage{fontspec}
\setsansfont{TeX Gyre Heros}

\begin{document}

{\sffamily blah}

\end{document}

更新:据报道,这是“检查 XeLaTeX 中缺少的字体/字符?“,但实际上这个问题涉及字体中是否有单个字符。

我想知道的是:我能否测试整个字体是否可用,如果不可用则使用默认值。

答案1

最新版本fontspec\IfFontExistsTF

\documentclass{article}

\usepackage{fontspec}

\IfFontExistsTF{Non Existent}{%
  \setsansfont{Non Existent}%
}{}

\begin{document}

{\sffamily blah \fontname\font}

\end{document}

在“false”分支中您可以添加不同的声明。

在此处输入图片描述

如您所见,无衬线字体是默认字体。

相关内容