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}
例如,如果我们想将 A
、z
和 x
设置为加粗,可以这样写:
(\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
能让你在排版数学公式时更专业、更灵活。