当主字体缺少一些字形时,是否可以告诉 fontspec 回退到另一种字体?在下面的示例中,TeX Gyre Termes 缺少 SUBSCRIPT ONE 字形(尽管日志文件中似乎没有任何警告!),我想告诉 luatex 使用另一种字体(例如 Libertine)的字形。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\begin{document}
onesub₁ onesup¹
\end{document}
(我意识到在这种情况下我可以使用数学下标,但我的内容是从书目数据库中提取的,不应该使用特定于 TeX 的编码。)
答案1
日志文件显示一条警告:
Missing character: There is no ₁ (U+2081) in font TeXGyreTermes:mode=node;script=latn;language=DFLT;+tlig;!
您可以为下标数字定义一个动作:
\documentclass{article}
\usepackage{fontspec}
\usepackage{newunicodechar}
\setmainfont{TeX Gyre Termes}
\newfontfamily{\fallback}{Libertinus Serif}
\newunicodechar{₁}{%
{\iffontchar\font`₁ \else\fallback\fi₁}%
}
\begin{document}
onesub₁ onesup¹
\end{document}
或者,使用\textsubscript
:
\documentclass{article}
\usepackage{fontspec}
\usepackage{newunicodechar}
\setmainfont{TeX Gyre Termes}
\newunicodechar{₁}{%
{\iffontchar\font`₁ ₁\else\textsubscript{1}\fi}%
}
\begin{document}
onesub₁ onesup¹
\end{document}