在学术论文中,公式、算法和代码的呈现需兼顾准确性、可读性和规范性,不同学科(如理工科、计算机科学、社科量化分析)可能存在细微差异,但核心原则一致。以下是标准格式指南及示例:
一、公式(Mathematical Formulas)
1. 编号与引用
编号规则:
全篇连续编号(如公式(1)、(2)),或按章节编号(如公式(2.1)、(2.2))。
编号置于公式右侧,用小括号括起,与公式水平对齐。
引用方式:
正文中首次引用需完整标注(如“根据公式(1),可得……”),后续可简化为编号(如“由(2)可知……”)。
避免将编号嵌入公式内部(错误示例:y=ax(1)+b)。
2. 格式规范
排版工具:
LaTeX:使用 `
或
equation` 环境自动编号,如:latex \begin{equation} E = mc^2 \label{eq:energy} \end{equation}
Word:通过【插入】→【公式】输入,右键选择【编号】手动添加,或使用 MathType 插件。
字体与符号:
变量用斜体(如 ( x, y, \alpha )),常量用正体(如 ( \pi, e ))。
运算符(如 ( +, -, = ))和括号用正体,矩阵括号用
\left( \right)
自动调整大小。多行公式:
使用
align
环境(LaTeX)或【公式工具】→【对齐】(Word)保持等号对齐,如:latex\begin{align}\frac{\partial L}{\partial w} &= 2(w^Tx - y)x, \\\frac{\partial L}{\partial b} &= 2(w^Tx - y).\end{align}
3. 示例
latex\begin{equation}\hat{y} = \sigma(W^Tx + b), \quad \sigma(z) = \frac{1}{1 + e^{-z}} \label{eq:logistic}\end{equation}
效果:
[
\hat{y} = \sigma(WTx + b), \quad \sigma(z) = \frac{1}{1 + e{-z}} \tag{1}
]
二、算法(Algorithms)
1. 伪代码规范
结构要求:
明确输入(Input)、输出(Output)、初始化(Initialization)和主循环(Loop)。
使用缩进表示层级关系,关键步骤加注释(用
//
或%
)。编号与标题:
算法独立成段时,标题为“算法1”(或“Algorithm 1”),置于算法框上方居中。
标题与算法框间空1行,编号与标题间空1个全角空格。
2. 排版工具
LaTeX:使用
algorithm
和algpseudocode
宏包,如:latex\begin{algorithm}\caption{梯度下降法更新参数}\label{alg:gd}\begin{algorithmic}[1]\Require 学习率 $\eta$, 最大迭代次数 $T$\Ensure 优化参数 $\theta$\State 初始化 $\theta_0$\For{$t = 1$ to $T$}\State 计算梯度 $\nabla_\theta J(\theta_{t-1})$\State 更新参数: $\theta_t \leftarrow \theta_{t-1} - \eta \nabla_\theta J(\theta_{t-1})$\EndFor\end{algorithmic}\end{algorithm}
Word:手动绘制表格或使用 Algorithm2e 插件,设置边框为细实线。
3. 示例
算法1 梯度下降法更新参数
输入: 学习率 η, 最大迭代次数 T输出: 优化参数 θ1. 初始化 θ₀2. for t = 1 to T do3. 计算梯度 ∇θJ(θₜ₋₁)4. 更新参数: θₜ ← θₜ₋₁ − η∇θJ(θₜ₋₁)5. end for
三、代码(Code)
1. 呈现原则
完整性:提供关键代码段(如核心函数、模型训练部分),避免冗长全量代码。
可复现性:注明编程语言、库版本(如
Python 3.8, PyTorch 1.12
)。注释规范:
行内注释用
#
(Python)或//
(C++),块注释用"""
或/* */
。避免过度注释,重点解释非直观逻辑(如“// 防止梯度爆炸”)。
2. 排版方式
独立代码块:
使用等宽字体(如
Courier New
),字号比正文小0.5pt(如小四号→五号)。添加灰色背景或细边框区分正文,如:
pythondef train_model(X, y, epochs=100):model = LinearRegression()for epoch in range(epochs):loss = model.fit(X, y)if epoch % 10 == 0:print(f"Epoch {epoch}, Loss: {loss:.4f}")return model
行内代码:用反引号包裹(如
`torch.nn.Linear`
),或加粗显示。
3. 引用与说明
引用位置:代码块上方或下方需说明其功能(如“列表1 Python实现梯度下降”)。
变量说明:对关键变量(如
X, y, epochs
)在正文中提前定义,或在代码下方用表格注释:变量名 类型 说明 X
ndarray 输入特征矩阵 (n×d) y
ndarray 标签向量 (n×1)
四、交叉引用与目录生成
交叉引用:
LaTeX中用
\label
和\ref
引用公式/算法(如“如公式(\ref{eq:logistic})所示”)。Word中通过【引用】→【交叉引用】选择对应标签。
目录生成:
LaTeX自动生成“List of Algorithms”,Word需手动插入目录并更新域代码。
五、常见错误与修正
错误类型 | 错误示例 | 修正方法 |
---|---|---|
公式编号重复 | 公式(1)后直接出现公式(3) | 全选文档→按F9更新所有域代码,或检查是否删除公式后未更新。 |
算法缩进混乱 | 循环体未对齐 | 使用LaTeX的algorithmic 环境或Word的自动缩进功能。 |
代码字体不一致 | 正文与代码混用宋体/Times New Roman | 统一代码块字体为Courier New 或Consolas 。 |
符号未斜体 | 公式中变量 x 用正体 | 检查LaTeX中是否误用 \text{x} ,或Word中未启用公式自动斜体。 |
六、学科差异补充
计算机科学:算法需详细到可复现,代码需包含数据预处理和评估指标。
工程学科:公式需标注单位(如 F (N)),算法需验证收敛性。
社科量化:公式侧重统计模型(如 Y=β0+β1X+ϵ),代码需包含回归诊断。
通过规范格式,可显著提升论文的专业性和可读性,避免因排版问题被审稿人质疑严谨性。