这可能与为什么数学字体没有显示,但是我在使用 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}
因此,我认为这两者是相关的——字体形状未定义错误导致\mathbf
无法显示。 在这种情况下,我该如何解决字体形状错误?
答案1
(评论太长,因此作为答案发布)
正如我在评论中已经指出的那样,我无法重现您在我的笔记本电脑上遇到的缺少粗体数学字体的问题,我的笔记本电脑使用的是 MacOS 13.0.1“Ventura”和 MacTeX2022,并应用了所有更新。
不过,还有一个单独的问题需要解决。由于衬线文本字体 (Minion Pro) 和数学字体 (Libertinus Math) 只是有点接近,但并不完全相同,你应该问自己为什么要使用命令\mathbf
和\mathit
,因为它们会从文本字体加载字符,不是来自数学字体。要真正使用 Libertinus Math 字体的字形,您应该使用\symbf
和\symit
—— 它们是软件包提供的宏unicode-math
—— 而不是\mathbf
和\mathit
。
% !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}