1. 简介

在本教程中,我们将介绍如何在 LaTeX 中实现加粗的数学符号。

在科学和数学文献中,我们经常使用加粗字体来表示向量和矩阵,以区别于标量值。因此,正确地加粗符号对于排版的清晰性和专业性至关重要。

2. 示例

假设我们有如下数学表达式:

(Ax - \alpha)^Tz = x \iff \left( \int_{a}^{b}cf(u)du \right) + \nabla \Psi_x = \Omega_x

它渲染后的效果如下:

我们可以使用多种方式将其中的符号设置为加粗。

3. 使用 \mathbf 命令

LaTeX 原生支持 \mathbf 命令,它用于设置粗体文本,适用于字母和数字,但不适用于所有数学符号。

使用方式如下:

\mathbf{symbols_or_command}

例如,如果我们想将 Azx 设置为加粗,可以这样写:

(\mathbf{A}\mathbf{x} - \alpha)^T\mathbf{z} = \mathbf{x} \iff \left( \int_{a}^{b}cf(u)du \right) + \nabla \Psi_{\mathbf{x}} = \Omega_{\mathbf{x}}

效果如下:

但如果你尝试对整个表达式使用 \mathbf

\mathbf{(Ax - \alpha)^Tz = x \iff \left( \int_{a}^{b}cf(u)du \right) + \nabla \Psi_x = \Omega_x}

结果如下:

可以看到,小写希腊字母、括号、运算符和关系符号并未加粗。因此,\mathbf 并不适合所有数学符号的加粗需求。

4. 使用 \bm 命令(推荐)

一个更强大的选择是使用 bm 宏包提供的 \bm 命令。

我们可以单独加粗某些符号:

(\bm{A}\bm{x} - \bm{\alpha})^T\bm{z} = \bm{x} \iff \left( \int_{a}^{b}cf(u)du \right) + \nabla \Psi_{\bm{x}} = \Omega_{\bm{x}}

渲染效果如下:

如果你希望对整个公式加粗:

\bm{(Ax - \alpha)^Tz = x \iff \left( \int_{a}^{b}cf(u)du \right) + \nabla \Psi_x = \Omega_x}

渲染结果如下:

可以看到,所有符号都正确加粗,并且间距也保持良好。

⚠️ 注意:为了确保 \bm 正常工作,应将 bm 宏包放在所有字体定义或加载字体的宏包之后引入。

4.1. 局部取消加粗

有时候我们希望加粗整个公式,但保留其中某个符号为正常字体。

例如,我们希望加粗根号符号,但变量 a 保持普通字体:

\bm{\sqrt{\mbox{\unboldmath$a$}}}

效果如下:

技巧:当需要加粗一个命令但不想影响其参数时,可以使用 \unboldmath 来取消部分符号的加粗。

4.2. \boldsymbol\bm 的别名

bm 宏包还提供了 \boldsymbol 命令作为 \bm 的别名,主要是为了兼容旧的 AMS 宏包 amsbsy 中的同名命令。

两者功能相似,但 \bm 在处理符号间距方面表现更好。

4.3. \bm 是否总是有效?

通常来说,\bm 可以处理几乎所有的输入内容。但在处理某些复杂命令时可能会失败,因为它在分析符号间距时可能出现混淆。

遇到这种情况时,可以尝试将命令包裹在额外的大括号中:

\bm{{\cmd{args}}}

⚠️ 注意:这样做可能会影响排版间距,需要手动调整符号位置。

5. \mathbf\bm 的对比

特性 \mathbf \bm
支持符号范围 有限,不支持希腊字母等 几乎支持所有数学符号
字形变化 会改变字体样式 仅加粗,保持原样
易用性 无需额外宏包 需要引入 bm 宏包
推荐场景 简单加粗,如大写拉丁字母 复杂公式、符号加粗

下图展示了两者在加粗效果上的差异:

6. 总结

✅ 如果你不想引入额外宏包,可以使用 \mathbf,但它的支持范围有限。
✅ 更推荐使用 bm 宏包中的 \bm 命令,它功能更强大,支持所有数学符号加粗。
✅ 注意加载顺序:bm 应在字体相关宏包之后引入。
✅ 如果需要对公式局部取消加粗,可以使用 \unboldmath

使用 \bm 能让你在排版数学公式时更专业、更灵活。


原始标题:How to Get Bold Math Symbols in Latex