news 2026/7/15 6:52:22

LaTeX实战指南:从零构建一篇包含图表、公式与算法的完整论文

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LaTeX实战指南:从零构建一篇包含图表、公式与算法的完整论文

1. LaTeX入门:从零搭建论文骨架

第一次用LaTeX写论文时,我被它严谨的排版效果震撼了——就像突然从手写笔记升级到印刷品。但打开空白文档的那一刻又有点懵,这玩意儿到底怎么开始?其实搭建论文骨架比想象中简单得多,咱们用做汉堡来比喻:最外层的面包是文档类型声明,中间的配料就是你的章节内容。

先看这个基础模板,我习惯保存在main.tex里:

\documentclass[12pt,a4paper]{article} % 汉堡的面包胚:A4纸大小12号字 \usepackage[UTF8]{ctex} % 中文支持就像番茄酱,必不可少 \usepackage{geometry} % 调整页边距的工具 \geometry{left=2.5cm,right=2.5cm} % 给文字留出舒适的呼吸空间 \title{基于深度学习的图像识别研究} % 汉堡顶层的芝麻 \author{张三} % 包装盒上的标签 \date{\today} % 生产日期 \begin{document} \maketitle % 把标题作者组装起来 \begin{abstract} % 汉堡的包装纸说明 本文提出了一种新型卷积神经网络结构... \end{abstract} \section{引言} % 第一层牛肉饼 深度学习在计算机视觉领域取得了... \section{方法} % 第二层芝士 我们的模型架构如图\ref{fig:model}... \end{document}

几个新手常踩的坑我得特别提醒:

  1. 中文支持必须加载ctex宏包,否则编译出来全是乱码
  2. 每个\begin{xxx}必须对应\end{xxx},就像汉堡每层配料不能漏放
  3. 反斜杠\是LaTeX的魔法符号,写路径时要用正斜杠/

说到文档结构,学术论文通常包含这些关键部分:

  • 摘要(Abstract):200字以内的精华浓缩
  • 引言(Introduction):讲清楚研究背景和贡献
  • 相关工作(Related Work):展示你对领域的了解
  • 方法(Methodology):核心创新点所在
  • 实验(Experiments):用数据说服读者
  • 结论(Conclusion):总结与展望

提示:写大纲时先用%注释占位,比如%\section{实验},这样能保持结构清晰又不影响编译

2. 图表插入:让数据会说话

论文里的图表就像汉堡里的生菜和番茄——没有它们,再好的内容也显得干巴巴。但LaTeX处理图片的figure环境刚开始确实让人头大,我花了三天才搞明白那些[htbp]到底什么意思。

先说单图插入的标准姿势:

\begin{figure}[!htb] % [!htb]表示"就放这里,别乱跑" \centering \includegraphics[width=0.8\textwidth]{model.png} \caption{神经网络架构图} % 图的标题要像新闻标题一样精准 \label{fig:model} % 这是图的身份证号 \end{figure}

这里有几个参数需要特别注意:

  • width=0.8\textwidth:图片占页面宽度的80%
  • !htb中的!表示"尽量听话",去掉后LaTeX会按自己的审美排版
  • label要放在caption之后,否则引用会出错

当需要对比多个子图时,subfigure环境就是神器:

\begin{figure*}[t] % *表示跨栏显示 \centering \subfigure[训练损失]{ \includegraphics[width=.45\linewidth]{loss.png} \label{fig:loss} } \subfigure[准确率]{ \includegraphics[width=.45\linewidth]{acc.png} \label{fig:acc} } \caption{模型训练曲线} \label{fig:training} \end{figure*}

表格排版更是门艺术,三线表是学术论文的标配:

\begin{table}[h] \caption{不同模型在ImageNet上的表现} \label{tab:performance} \centering \begin{tabular}{lccr} % l左对齐 c居中 r右对齐 \toprule 模型 & 准确率(\%) & 参数量(M) & 推理时间(ms) \\ \midrule ResNet18 & 69.8 & 11.7 & 45 \\ MobileNetV2 & 71.9 & 3.4 & 32 \\ Ours & \textbf{73.2} & 4.1 & 38 \\ \bottomrule \end{tabular} \end{table}

注意:表格内容较多时,用\resizebox{\textwidth}{!}{...}自动缩放,但字体大小要保持可读性

3. 数学公式:优雅表达理论

公式是技术论文的灵魂,LaTeX的数学模式让我从此告别Word的公式编辑器。先说三种插入方式:

  1. 行内公式:$E=mc^2$显示为E=mc²
  2. 独立公式:$$ \nabla \cdot \mathbf{D} = \rho $$
  3. 带编号公式:
\begin{equation} \hat{y} = \sigma(Wx + b) \label{eq:forward} \end{equation}

复杂公式排版示例:

\begin{align} \mathcal{L} &= \frac{1}{N}\sum_{i=1}^N \ell(f(x_i), y_i) \nonumber \\ &+ \lambda \sum_{l=1}^L \|\mathbf{W}_l\|_F^2 \label{eq:loss} \end{align}

常用数学符号速查表:

类型代码示例显示效果
上下标x^{2}, a_{i}x², aᵢ
分式\frac{a}{b}½
根式\sqrt[3]{x}³√x
希腊字母\alpha, \beta, \Gammaα, β, Γ
运算符\times, \cup, \otimes×, ∪, ⊗
矩阵\begin{bmatrix} 1&0\\0&1 \end{bmatrix}[1 0; 0 1]

当公式太长需要换行时,multline环境是更好的选择:

\begin{multline} f(x) = 1 + 2x + 3x^2 + 4x^3 + 5x^4 \\ + 6x^5 + 7x^6 + 8x^7 + \cdots \end{multline}

4. 算法伪代码:清晰展示逻辑

算法描述是论文的核心竞争力,用algorithmicx宏包排版的伪代码既专业又美观。先看这个完整示例:

\begin{algorithm}[!t] \caption{基于梯度下降的优化算法} \label{alg:gd} \begin{algorithmic}[1] % [1]显示行号 \Require 学习率$\eta$, 最大迭代次数$T$ \Ensure 最优参数$\theta^*$ \State 初始化参数 $\theta_0$ \For{$t = 1$ to $T$} \State 计算梯度 $g_t \gets \nabla_\theta L(\theta_{t-1})$ \If{$\|g_t\| < \epsilon$} \Comment{收敛判断} \State \textbf{break} \EndIf \State 更新参数 $\theta_t \gets \theta_{t-1} - \eta g_t$ \EndFor \State \Return $\theta_t$ \end{algorithmic} \end{algorithm}

关键要点解析:

  • \Require\Ensure分别定义输入输出
  • \For\If等控制结构会自动缩进
  • \Comment添加右侧注释
  • [!t]确保算法出现在段落顶部

复杂算法可能需要以下进阶技巧:

  1. 函数调用:
\Function{Softmax}{$z$} \State $e_z \gets \exp(z - \max(z))$ \State \Return $e_z / \sum(e_z)$ \EndFunction
  1. 多条件判断:
\If{$x > 0$} \State \Return $\log(x)$ \ElsIf{$x == 0$} \State \Return 0 \Else \State \Return NaN \EndIf

5. 代码展示:技术细节可视化

相比伪代码,真实代码片段能让重现实验更容易。listings宏包支持语法高亮:

\usepackage{xcolor} \usepackage{listings} \lstset{ basicstyle=\ttfamily\small, keywordstyle=\color{blue}, commentstyle=\color{green}, numbers=left, frame=single } \begin{lstlisting}[language=Python,caption=训练代码] def train(model, dataloader, criterion, optimizer): model.train() for inputs, labels in dataloader: optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() # 反向传播 optimizer.step() # 参数更新 print(f'Loss: {loss.item():.4f}') \end{lstlisting}

常用配置参数说明:

参数作用推荐值
language编程语言Python/C++/MATLAB
basicstyle基础字体样式\ttfamily\small
numbers行号位置left/none
backgroundcolor背景色\color{gray!10}
breaklines自动换行true
captionpos标题位置b(底部)/t(顶部)

对于长代码,可以用\lstinputlisting引入外部文件:

\lstinputlisting[language=C++]{src/main.cpp}

6. 参考文献管理:BibTeX自动化

参考文献管理是论文写作中最容易被低估的环节。手动维护引用就像用算盘记账——不是不行,只是太费劲。BibTeX才是现代科研人的选择。

先创建refs.bib文件,添加如下条目:

@article{resnet, title={Deep Residual Learning for Image Recognition}, author={He, Kaiming and others}, journal={CVPR}, year={2016}, pages={770-778} } @inproceedings{transformer, title={Attention Is All You Need}, author={Vaswani, Ashish and others}, booktitle={NeurIPS}, year={2017}, pages={6000-6010} }

在文中引用:

如ResNet\cite{resnet}和Transformer\cite{transformer}所示...

文末插入参考文献列表:

\bibliographystyle{IEEEtran} % 样式可选plain/abbrv/IEEEtran \bibliography{refs}

三种引用方式对比:

  1. 直接引用:\cite{key}→ [1]
  2. 带页码引用:\cite[page 5]{key}→ [1, p5]
  3. 作者年份式:\citep{key}→ (Author, 2023)

专业建议:用Zotero+Better BibTeX插件管理文献,能自动生成BibTeX条目

7. 编译与调试:高效工作流

LaTeX编译就像做化学实验——步骤错了就会炸。推荐的工作流是:

  1. 用VS Code + LaTeX Workshop插件
  2. 编译顺序:XeLaTeX → BibTeX → XeLaTeX ×2
  3. 错误排查:从第一个报错开始解决

常见错误及解决方案:

错误类型典型表现解决方法
缺失宏包! LaTeX Error: File xxx.sty not foundtlmgr install xxx
引用未定义LaTeX Warning: Citation xxx undefined运行BibTeX
图片路径错误! LaTeX Error: File xxx not found检查路径大小写
数学符号未识别! Undefined control sequence加载amsmath宏包
表格内容溢出内容超出页面边界\scalebox缩放或调整字体

最后分享我的.latexmkrc配置,实现一键编译:

$pdf_mode = 1; $bibtex_use = 2; $pdflatex = 'xelatex -synctex=1 -interaction=nonstopmode %O %S';
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 6:47:39

SAP ABAP 标准Excel导出:兼容Web的实战方案解析

1. 为什么需要兼容Web的Excel导出方案 在SAP ABAP开发中&#xff0c;导出数据到Excel是再常见不过的需求了。传统上我们习惯使用OLE&#xff08;Object Linking and Embedding&#xff09;或DOI&#xff08;Desktop Office Integration&#xff09;这两种方式&#xff0c;它们确…

作者头像 李华
网站建设 2026/7/15 6:45:58

鸿蒙打包、签名、加固、上架全流程实战(商用 APP 上线终极教程)

一、前言很多开发者可以顺利完成鸿蒙功能开发、UI适配、性能优化、隐私权限合规&#xff0c;但最终卡在打包报错、签名异常、上线审核驳回。对于商用、政企、银行级鸿蒙项目&#xff0c;能开发只是基础&#xff0c;能规范打包、安全加固、稳定上线交付才是职业化能力。日常开发…

作者头像 李华
网站建设 2026/7/15 6:41:08

VisualAD:抛弃文本分支!纯视觉零样本异常检测首次超越CLIP,CVPR2026

本文核心贡献如下: 挑战主流范式:首次系统论证零样本异常检测中文本分支并非必要,纯视觉即可学习判别性异常特征。 提出VisualAD框架:在冻结ViT中直接插入可学习的正常与异常标记,通过多层自注意力交互编码高层异常语义。 设计SCA+SAF模块:空间感知交叉注意力注入细粒度…

作者头像 李华
网站建设 2026/7/15 6:40:52

新能源领涨,西藏矿业涨停

A股早间速览&#xff1a;4月2日市场数据报告 一、大盘指数表现 截至4月2日收盘&#xff0c;A股三大指数集体下跌&#xff0c;市场整体呈现调整态势。具体数据如下&#xff1a; 上证指数&#xff1a;报3919.29点&#xff0c;跌幅 -0.74% 。深证成指&#xff1a;报13486.94点&…

作者头像 李华