我正在尝试使用 Adobe Utopia 字体来处理文本,并mathdesign
使用utopia
字体来处理数学。但是对于此示例文档:
\documentclass{article}
\usepackage[utopia]{mathdesign}
\usepackage{fontspec}
\setmainfont{Utopia Std}
% \setmainfont{TeX Gyre Pagella} % Also doesn't work
\begin{document}
hello $world$
\end{document}
我收到警告:
LaTeX Font Warning: Font shape `TU/mdput/m/n' undefined
(Font) using `TU/lmr/m/n' instead on input line 186.
即使输出看起来不错。我搜索了一下,发现这lmr
是 Latin Modern 字体,但它没有出现在文档的任何地方(据我所知)。使用其他字体(例如TeX Gyre Pagella
也不起作用),即使我根本不使用其他字体:
\documentclass{article}
\usepackage[utopia]{mathdesign}
\begin{document}
hello $world$
\end{document}
如何正确消除该警告?
答案1
我找到了一种抑制错误消息的方法(感谢@egreg指出第一个想法是如何行不通的),但这是一个极其丑陋的黑客。老实说,我会忽略它,因为它无害。
\documentclass{article}
\usepackage[OT1,T1]{fontenc}
\usepackage[utopia, euro=false]{mathdesign}
\usepackage{substitutefont} % Ugly hack to suppress warning.
\substitutefont{TU}{mdput}{lmr} % Ugly hack to suppress warning.
\usepackage{fontspec}
\setmainfont{Lingua Franca}[NFSSFamily=mdput]
\begin{document}
hello $world$
\end{document}
另一个解决方法是使用unicode-math
STIX Two 加载数学符号,使用 Utopia(或克隆)加载字母。在这里,我使用免费的 Lingua Franca。
\documentclass{article}
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{Lingua Franca}[Scale = 1.0] % Or Utopia Std
\setmathfont{STIX Two Math}
\setmathfont{Lingua Franca Regular}[range=up,
Script=Default, script-features={}, sscript-features={}]
\setmathfont{Lingua Franca Italic}[range=it,
Script=Default, script-features={}, sscript-features={}]
\setmathfont{Lingua Franca Bold}[range=bfup,
Script=Default, script-features={}, sscript-features={}]
\setmathfont{Lingua Franca Bold Italic}[range=bfit,
Script=Default, script-features={}, sscript-features={}]
\begin{document}
Hello, \(\mathit{world}\)!
\end{document}
我添加了一些额外的选项来抑制无害的警告消息。我有预感你会希望我这么做。