一、公式排版为什么重要?
数学公式是理工科学术论文的核心表达工具。公式排版不规范会导致:
| 问题 | 后果 |
|---|---|
| 编号混乱/缺失 | 审稿人无法引用具体公式 |
| 对齐不整齐 | 论文显得不专业 |
| 公式溢出栏宽 | 产生Overfull警告,内容被截断 |
| 跨页断裂不当 | 一个完整推导被分割,阅读困难 |
| 符号不一致 | 同一变量前后用不同字体/格式 |
二、公式编号规范
2.1 基本编号规则
| 规则 | 说明 |
|---|---|
| 重要公式必须编号 | 后续会引用的公式都要有编号 |
| 编号从(1)开始连续递增 | 全文统一编号 |
| 编号位于公式右侧 | LaTeX默认行为 |
| 辅助性/中间步骤可不编号 | 不会被引用的推导步骤 |
| 引用时用"Eq. (1)"或"(1)" | 保持全文引用格式统一 |
2.2 LaTeX实现
带编号的公式(equation环境):
\begin{equation}
L = \frac{1}{N}\sum_{i=1}^{N}\|f(x_i;\theta) - y_i\|^2
\label{eq:loss}
\end{equation}
效果:公式居中,右侧自动编号为(1)。
不编号的公式(equation*环境):
\begin{equation*}
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
\end{equation*}
行内公式(适合简短表达):
The learning rate is $\alpha = 0.001$.
2.3 按章节编号
部分期刊/论文要求公式按章节编号(如2.1, 2.2...):
% 在导言区添加
umberwithin{equation}{section}
效果:第2节的公式编号为(2.1), (2.2)...
2.4 引用公式
% 标准引用
As defined in Eq.~(\ref{eq:loss}), the loss function...
% 或使用eqref(自动加括号)
As shown in \eqref{eq:loss}...
注意: 使用~防止"Eq."和编号之间在换行时被分开。
三、多行公式对齐
3.1 align环境(最常用)
适合多个相关公式需要按等号或其他符号对齐:
\begin{align}
f(x) &= ax^2 + bx + c \label{eq:f1}\\
g(x) &= \frac{\partial f}{\partial x} = 2ax + b \label{eq:f2}\\
h(x) &= \frac{\partial^2 f}{\partial x^2} = 2a \label{eq:f3}
\end{align}
关键语法:
&标记对齐位置(通常放在=前面)\\换行- 每行自动获得独立编号
部分行不编号:
\begin{align}
f(x) &= ax^2 + bx + c \label{eq:main}\\
&= a(x + \frac{b}{2a})^2 + c - \frac{b^2}{4a}
onumber\\
&= a(x - h)^2 + k \label{eq:vertex}
\end{align}
onumber使该行不产生编号(中间推导步骤常用)。
3.2 aligned环境(嵌套在equation中)
多行对齐但只要一个编号:
\begin{equation}
\begin{aligned}
\mathcal{L} &= \mathcal{L}_{cls} + \lambda_1 \mathcal{L}_{reg}
+ \lambda_2 \mathcal{L}_{aux}\\
&= -\sum_{i}y_i\log\hat{y}_i
+ \lambda_1\|w\|^2
+ \lambda_2 D_{KL}(p\|q)
\end{aligned}
\label{eq:total_loss}
\end{equation}
效果:整个多行公式共享一个编号。
3.3 split环境(类似aligned)
\begin{equation}
\begin{split}
H(X,Y) &= -\sum_{x}\sum_{y} p(x,y)\log p(x,y)\\
&= -\sum_{x}\sum_{y} p(x,y)[\log p(x) + \log p(y|x)]\\
&= H(X) + H(Y|X)
\end{split}
\label{eq:entropy}
\end{equation}
3.4 cases环境(分段函数)
\begin{equation}
f(x) = \begin{cases}
x^2, & \text{if } x \geq 0\\
-x^2, & \text{if } x < 0
\end{cases}
\label{eq:piecewise}
\end{equation}
3.5 对齐方式总结
| 环境 | 编号方式 | 适用场景 |
|---|---|---|
equation |
单个编号 | 单行公式 |
equation* |
无编号 | 不需要引用的公式 |
align |
每行一个编号 | 多个独立但相关的公式 |
align* |
全部无编号 | 推导过程不需引用 |
aligned(在equation中) |
共享一个编号 | 多行公式视为一个整体 |
split(在equation中) |
共享一个编号 | 单个长公式拆成多行 |
cases |
通常一个编号 | 分段函数/条件定义 |
四、长公式处理
4.1 长公式折行(单栏)
当公式超过栏宽时,需要手动折行:
\begin{equation}
\begin{split}
\mathcal{L}_{total} = {}
& \alpha\cdot\mathcal{L}_{CE}(y, \hat{y})
+ \beta\cdot\mathcal{L}_{dice}(y, \hat{y})\\
& + \gamma\cdot\mathcal{L}_{focal}(y, \hat{y})
+ \delta\cdot\|W\|_F^2
\end{split}
\end{equation}
折行原则:
- 在
+或-运算符之前折行 - 续行缩进一层(视觉上清晰)
- 不在括号内部折行
4.2 双栏论文中的宽公式
IEEE双栏论文中,公式超出单栏宽度时使用figure*或equation跨双栏:
方法一:使用\begin{figure*}包裹(不推荐)
方法二:缩小公式(推荐先尝试)
% 使用小号字体
{\small
\begin{equation}
\text{很长的公式}
\end{equation}
}
方法三:拆分公式为多行
\begin{equation}
\begin{aligned}
P(A|B) &= \frac{P(B|A)\cdot P(A)}{P(B)}\\
&= \frac{P(B|A)\cdot P(A)}
{\sum_{i=1}^{n}P(B|A_i)\cdot P(A_i)}
\end{aligned}
\end{equation}
方法四:跨双栏公式(必要时)
在IEEE双栏模板中,使用\begin{figure*}环境内嵌公式可实现跨栏,但这不是标准做法。更推荐的方式是将公式拆分使其适应单栏宽度。
五、公式跨页处理
5.1 禁止公式跨页
默认情况下LaTeX允许在公式前后分页。如需阻止:
% 方法1:使用samepage环境
\begin{samepage}
\begin{equation}
...
\end{equation}
紧跟公式的解释文字...
\end{samepage}
% 方法2:在公式前添加禁止分页命令
opagebreak
\begin{equation}
...
\end{equation}
% 方法3:增加分页惩罚
\predisplaypenalty=10000 % 禁止在公式前分页
\postdisplaypenalty=10000 % 禁止在公式后分页
5.2 允许长推导跨页
对于很长的连续推导(如align环境中10+行公式),强制不跨页可能导致大面积空白。此时应允许跨页:
% 允许align环境跨页(默认允许,通常无需设置)
\allowdisplaybreaks
\begin{align}
... % 长推导
\end{align}
选择性允许跨页:
\allowdisplaybreaks[1] % 1=轻微允许, 4=强制允许
在特定行禁止断裂:
\begin{align}
a &= b + c\\
&= d + e
otag\\* % \\* 禁止在此行后分页
&= f
\end{align}
5.3 跨页处理的最佳实践
| 场景 | 建议 |
|---|---|
| 单个独立公式 | 不要跨页(保持完整) |
| 紧邻的公式+解释文字 | 不要分开(用samepage) |
| 长连续推导(>5行) | 允许在合理位置跨页 |
| 公式+紧跟的"where..."定义 | 不要分开 |
| 证明过程中的推导 | 可跨页,但保持逻辑完整性 |
六、公式中的符号规范
6.1 字体约定
| 类型 | 字体 | LaTeX命令 | 示例 |
|---|---|---|---|
| 标量变量 | 斜体 | 默认或$x$ |
x, y, z |
| 向量 | 粗斜体 | \boldsymbol{x}或\mathbf{x} |
x |
| 矩阵 | 粗体大写 | \mathbf{A}或\boldsymbol{A} |
A |
| 集合 | 花体/黑板粗体 | \mathcal{X}或\mathbb{R} |
花体X |
| 函数名 | 正体 | \mathrm{softmax}或\text{ReLU} |
softmax |
| 常数/固定值 | 正体 | \mathrm{e}, \mathrm{i} |
e, i |
| 文字说明 | 正体 | \text{if}或\mathrm{s.t.} |
if, s.t. |
6.2 常见错误
| 错误 | 正确写法 |
|---|---|
$max(x,y)$(斜体max) |
$\max(x,y)$(正体max) |
$log(x)$(斜体log) |
$\log(x)$ |
$argmin$(全斜体) |
$\mathop{\arg\min}$或定义\DeclareMathOperator |
$softmax$(斜体) |
$\mathrm{softmax}$或$\text{softmax}$ |
向量用箭头$\vec{x}$ |
工程领域通常用粗体$\mathbf{x}$ |
6.3 自定义运算符
% 在导言区定义(避免正文中反复使用\mathrm)
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator{\softmax}{softmax}
\DeclareMathOperator{\ReLU}{ReLU}
\DeclareMathOperator{\tr}{tr} % 矩阵的迹
\DeclareMathOperator{\diag}{diag} % 对角矩阵
% 使用
\begin{equation}
\theta^* = \argmin_{\theta}\mathcal{L}(\theta)
\end{equation}
七、公式标点符号
学术论文中公式是句子的一部分,需要遵循标点规则:
7.1 标点规则
| 情况 | 规则 | 示例 |
|---|---|---|
| 公式是句子结尾 | 公式末加句号 | ... = 2a. |
| 公式后面还有内容 | 公式末加逗号 | ... = f(x), |
| 多行公式中间行 | 中间行加逗号,最后行加句号 | 每行末加,或. |
| 公式前用冒号引出 | 公式前加冒号 | The loss is defined as: |
7.2 LaTeX中添加标点
\begin{equation}
\mathcal{L} = -\sum_{i=1}^{N} y_i \log \hat{y}_i.
\end{equation} % 注意末尾的句号在公式内部
\begin{align}
f(x) &= ax^2 + bx + c, \label{eq:1}\\
g(x) &= 2ax + b. \label{eq:2}
\end{align} % 第一行逗号,最后一行句号
八、公式间距微调
8.1 常用间距命令
| 命令 | 宽度 | 用途 |
|---|---|---|
\, |
细间距(3mu) | 积分dx前:\int f(x)\,dx |
\: |
中间距(4mu) | 偶尔用于分隔 |
\; |
粗间距(5mu) | 集合条件分隔 |
\quad |
1em | 公式内分组/条件分隔 |
\qquad |
2em | 公式与条件说明之间 |
\! |
负细间距(-3mu) | 缩紧过宽的间距 |
8.2 实际应用
% 积分
\int_0^{\infty} f(x)\,dx
% 条件定义
P(A|B) = \frac{P(B|A)P(A)}{P(B)}, \quad \text{where } P(B)>0
% 集合
\{x \in \mathbb{R} \mid x > 0\}
% 或
\{x \in \mathbb{R} \,|\, x > 0\}
九、常见排版错误速查
| 错误 | 现象 | 修复方法 |
|---|---|---|
| 公式超出栏宽 | Overfull hbox警告 | 拆分为多行或缩小 |
| 编号重复 | 两个公式编号相同 | 检查是否误用了\tag |
| 引用显示"??" | 编号未解析 | 编译两次pdflatex |
| 符号正斜体混乱 | max显示为斜体 | 使用\max而非max |
| 括号大小不匹配 | 括号太小包不住内容 | 使用\left(和\right) |
| 分数太小难以阅读 | 行内分数过小 | 改用\dfrac或独立公式 |
| 下标重叠 | 多层下标挤在一起 | 调整下标层级或用文字说明替代 |
| align中&位置错误 | 对齐点不在等号处 | &放在=前面 |
十、总结
公式排版三条核心规则:
- 重要公式编号,中间步骤不编号 -- 使用equation+label,中间用nonumber
- 多行公式按等号对齐 -- align环境中&对齐,视觉整齐清晰
- 不允许公式溢出栏宽 -- 宁可拆行也不能超宽
日常写作速记:
单行有编号 → equation + \label
单行无编号 → equation*
多行各有编号 → align
多行共享编号 → equation + aligned/split
分段函数 → cases
长公式折行 → split,在运算符前断行
数学公式的排版质量直接反映作者的学术素养。花时间把公式排好,审稿人在阅读时的流畅体验会转化为对论文整体质量的正面印象。

