使用 OpenType 字体和 mathdesign 时字体形状未定义

使用 OpenType 字体和 mathdesign 时字体形状未定义

我正在尝试使用 Adob​​e 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-mathSTIX 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}

我添加了一些额外的选项来抑制无害的警告消息。我有预感你会希望我这么做。

相关内容