LaTeX 字体警告 - 未定义的字体形状(LuaLaTeX 数学字体)

LaTeX 字体警告 - 未定义的字体形状(LuaLaTeX 数学字体)

这可能与为什么数学字体没有显示,但是我在使用 LuaLaTeX 数学字体时遇到了这个错误。

显示为字体的唯一问题是\mathbf不显示粗体字体,所以我认为这两者可能是相关的。

例如,这里有一些示例文本和序言信息:

% preamble
    \RequirePackage{fontspec}
    \RequirePackage{unicode-math} 
    \unimathsetup{math-style=TeX}
    \RequirePackage[english]{babel}
    \defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase}
    \setmainfont{Minion Pro}
    \setsansfont{Myriad Pro}
    \setmonofont{Inconsolata Nerd Font}
    \unimathsetup{math-style=TeX}
    \setmathfont{Libertinus Math}

% text file
\documentclass{article}
\usepackage{random} % contains my fonts; I will provide a link to it
\begin{document}
\section{Testing Math Fonts}
Here is me trying to test out how math fonts work.
\[ 
   \text{Regular: } x + 1 = 2; \, \text{Bold: } \mathbf{x + 1 = 2}; \,  \text{Italic: }\mathit{x+1 = 2}
.\] 
 
\end{document}

以下输出显示斜体字体有效,但无效: enter image description here

巧合的是,我也遇到了这个警告: enter image description here

完整日志

因此,我认为这两者是相关的——字体形状未定义错误导致\mathbf无法显示。 在这种情况下,我该如何解决字体形状错误?

答案1

(评论太长,因此作为答案发布)

正如我在评论中已经指出的那样,我无法重现您在我的笔记本电脑上遇到的缺少粗体数学字体的问题,我的笔记本电脑使用的是 MacOS 13.0.1“Ventura”和 MacTeX2022,并应用了所有更新。

不过,还有一个单独的问题需要解决。由于衬线文本字体 (Minion Pro) 和数学字体 (Libertinus Math) 只是有点接近,但并不完全相同,你应该问自己为什么要使用命令\mathbf\mathit,因为它们会从文本字体加载字符,不是来自数学字体。要真正使用 Libertinus Math 字体的字形,您应该使用\symbf\symit—— 它们是软件包提供的宏unicode-math—— 而不是\mathbf\mathit

enter image description here

% !TEX TS-program = lualatex
\documentclass{article} % or some other suitable document classs
\RequirePackage[english]{babel}

%\RequirePackage{fontspec} % 'fontspec' is loaded automatically by 'unicode-math'
\RequirePackage{unicode-math} 
\unimathsetup{math-style=TeX}
\defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase}
\setmainfont{Minion Pro}
\setsansfont{Myriad Pro}
\setmonofont{Consolas} % I don't have the 'Inconsolata Nerd' font
%\unimathsetup{math-style=TeX} % no need to run the same command twice
\setmathfont{Libertinus Math}

\begin{document}
\begin{tabular}{lll}
Regular              & $xyz + 1 = 2$      & basic text and math font  \\
\textbf{Bold text}   & \textbf{x y z 1 2} & text-font bold glyphs \\
\textit{Italic text} & \textit{x y z 1 2} & text-font italic glyphs \\[1ex]
\textbf{Bold1}   & $\mathbf{xyz + 1 = 2}$ & math, but use text font glyphs \\
\textbf{Bold2}   & $\symbf{xyz + 1 = 2}$  & math, employ \verb+\symbf+ \\[1ex]
\textit{Italic1} & $\mathit{xyz + 1 = 2}$ & math, but use text font glyphs \\
\textit{Italic2} & $\symit{xyz + 1 = 2}$  & math, employ \verb+\symit+
\end{tabular}
\end{document}

相关内容