我想在使用 lmodern 数学字体的 LuaLaTeX 文档中默认将所有方程式设为粗体。这个问题建议使用 \boldmath,但在使用我当前的字体设置时,我无法让它工作。如何才能在这里默认获得粗体数学字符,而不将所有方程式包装在 \mathbf 中?
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{latinmodern-math.otf}
\begin{document}
\[ a = \alpha\times\beta\]
\[\mathbf{a = \alpha\times\beta}\]
\boldmath
\[a = \alpha\times\beta\]
\end{document}
答案1
\boldmath
选择粗体数学版本,该版本将具有“常用”数学组中设置的大多数或部分数学字体的粗体版本。但是拉丁现代数学没有粗体字体,因此这在这里没有任何用处。
通常\boldmath
只影响字母字符并选择粗体罗马文本字体。
不幸的是,unicode-math 使用命令名称的目的完全不同,这是当前 unicode-math 定义与经典 LaTeX 数学定义之间的主要不兼容性。这里\mathbf
不是改变字体,而是改变人物\mathbf
在同一个字体中,a 被替换为 U+1D41A MATHEMATICAL BOLD SMALL A,希腊文也是如此(在经典 TeX 中不会受到影响)
这意味着粗体效果不是通过重置字体或数学赋值来实现的\fam
,而是通过逐个标记逐个替换标记来表示粗体。这意味着虽然没有什么是不可能的,但隐藏显式参数形式可能很棘手且很脆弱。
其他字体集(如 stix)可能有更广泛的粗体支持,允许\boldmath
按预期工作,或者使用显式\mathbf
可能是最安全的做法,