如何在 LuaLaTeX 中默认将所有数学符号设为粗体

如何在 LuaLaTeX 中默认将所有数学符号设为粗体

我想在使用 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可能是最安全的做法,

相关内容