引言:为什么需要系统化的工作流

在数学建模竞赛、课程论文、毕业设计等场景中,LaTeX 排版已成为学术写作的标准选择。然而,LaTeX 的学习曲线陡峭,从环境配置到语法调试往往消耗大量时间。

现代 IDE(如 VS Code + 插件、Trae、Cursor 等)集成了 AI 智能助手,可以大幅降低 LaTeX 的使用门槛。但”会用 AI”和”用好 AI”之间存在显著差异:无序的提问会导致反复修改、格式混乱甚至编译失败;而建立系统化的工作流,则可以让 AI 成为高效的协作者而非简单的”代码生成器”。

本文档基于一个真实的数学建模竞赛项目(煤矿巷道锚杆支护问题)的完整开发过程,提炼出一套可复制的 AI 辅助 LaTeX 写作方法论。该项目最终产出了:

  • 主论文(完整 LaTeX 排版)
  • 问题 3/4 独立报告
  • 12 幅矢量图(Python matplotlib → PDF/SVG)
  • 配套数据文件与求解代码

第一阶段:环境准备——一次配置,长期受益

必要组件

组件推荐选择用途
TeX 发行版MiKTeX / TeX Live编译引擎(含 XeLaTeX)
编辑器 / IDETrae / VS Code + LaTeX Workshop代码编写 + 实时预览
PythonAnaconda / 官方 Python 3.10+数据处理 + 绘图生成 PDF
字体SimSun / SimHei / Times New Roman中文显示与学术排版

验证安装

打开终端,依次执行以下命令确认各组件就绪:

# 检查 XeLaTeX 编译器
xelatex --version

# 检查 Python 与关键库
python --version
pip show numpy scipy matplotlib

关键提示:首次运行 XeLaTeX 时,MiKTeX 会自动下载缺失的宏包。请保持网络畅通,并允许自动安装。这一步只需忍受一次,后续所有编译都会非常快。

第二阶段:建立标准模板——让 AI 有章可循

模板的重要性

AI 生成 LaTeX 的质量高度依赖于你提供的上下文。如果你只说”帮我写一篇论文”,AI 会输出一个通用的、可能不符合你需求的模板。但如果你提供一个结构化的模板框架,AI 就能在正确的骨架上填充内容。

以下是本项目使用的标准模板前缀:

\documentclass[12pt,a4paper]{article}

% 中文支持
\usepackage[UTF8]{ctex}

% 数学公式
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{mattools}

% 图表与排版
\usepackage{graphicx}
\usepackage{booktabs}       % 三线表
\usepackage{tabularx}       % 自适应宽度表格
\usepackage{longtable}      % 跨页长表
\usepackage{tikz}           % 绘图
\usepackage{tcolorbox}      % 彩色文本框

% 页面设置
\usepackage{geometry}
\geometry{left=2cm,right=2cm,top=2.5cm,bottom=2.5cm}

% 行距与缩进
\setlength{\parindent}{2em}
\linespread{1.25}

% 超链接
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=blue!70!black}

\begin{document}
% === 正文从这里开始 ===
\end{document}

建议将上述 preamble 保存为一个独立文件(如 template_preamble.tex),每次新开文档时直接引用。这样全局样式一致、减少沟通成本、修改一处即可全局生效。

第三阶段:与 AI 协作的核心策略

这是本文档的核心部分。以下策略均来自实战经验总结。

策略一:分块生成,逐节推进

  • 错误做法:一次性要求 AI 生成整篇 30 页论文。
  • 正确做法:按章节/问题拆分任务,每次聚焦一个模块。

按逻辑顺序分块推进:封面+摘要 → 问题1内容 → 问题2内容 → 问题3-4 → 参考文献 → 附录。

理由很简单:

  • 单次生成的 token 有限制,长文档会被截断或丢失细节
  • 分块便于逐段校对,发现问题时只需重写该块
  • 可以针对不同章节使用不同的提示词侧重点

策略二:提供充分的上下文信息

AI 无法读心术。你需要主动提供:

信息类型示例
论文主题与背景”这是一篇关于锚杆预紧力矩建模的数学建模论文”
目标读者与风格”学术论文风格,使用’本文”本研究’等正式表述”
已有数据/公式”扭矩系数 K 通过最小二乘法回归得到,公式为 T = K P d”
图表清单”需要插入图1(变量关系图)和表3(工况参数对比)“
格式约束”使用三线表(booktabs),图片宽度为 90% 文本宽”
编译引擎”使用 XeLaTeX 编译,支持中文 ctex 宏包”

策略三:先出大纲,再填充细节

推荐的两阶段对话模式:

阶段 A — 大纲确认(不写任何 LaTeX 代码):

“我需要写一篇关于 XXX 的论文,包含以下内容……请先给出详细的大纲,包括每节的标题和要点。”

阶段 B — 逐节生成(基于确认后的大纲):

“好的大纲,现在请帮我写第一章绪论的完整 LaTeX 代码,包括背景介绍和研究现状两个小节。”

这样做的好处是避免写到一半发现结构不合理而推倒重来。

策略四:图文分离,各自最优

本项目采用的工作流是图形由 Python 生成,LaTeX 只负责引用

Python (matplotlib/seaborn) → PDF/SVG 矢量图 → \includegraphics → 编译 → 最终 PDF

为什么不用 LaTeX 直接画图?

  • PGF/TikZ 适合画示意图(流程图、架构图),但画数据可视化图效率远不如 matplotlib
  • Python 绘图可以复用数据处理管道,确保图与数的一致性
  • PDF 格式的矢量图嵌入 LaTeX 后在任何缩放比例下都清晰

Python 绘图并导出 PDF 的标准模式:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimSun', 'SimHei']
plt.rcParams['axes.unicode_minus'] = False   # 解决负号显示问题

fig, ax = plt.subplots(figsize=(10, 6.5))

# ===== 绘图逻辑 =====
ax.plot(x_data, y_data, 'o-', linewidth=1.5)
ax.set_xlabel('预紧力矩 $T$ (N$\cdot$m)')
ax.set_ylabel('预紧力 $P$ (kN)')
ax.set_title('图X: xxx关系曲线')
ax.grid(True, alpha=0.3)

# ===== 导出为矢量 PDF =====
plt.savefig('output/图X_xxx.pdf', format='pdf', bbox_inches='tight', dpi=300)
plt.savefig('output/图X_xxx.svg', format='svg', bbox_inches='tight')
plt.close()

第四阶段:高效 Prompt 模板库

以下是经过实战检验的 prompt 模板,可直接套用或微调。

Prompt 模板 A:生成特定章节

请为我的 LaTeX 论文写 [章节名称] 部分。

  • 背景:[一句话说明研究主题]
  • 本节要点:[列出 3–5 个要覆盖的关键点]
  • 包含元素:[公式编号、表格引用、图注位置等要求]
  • 格式要求:中文撰写,学术正式语气,使用 booktabs 三线表,公式使用 equation 环境,图使用 figure+includegraphics

Prompt 模板 B:生成三线表

请用 LaTeX 的 booktabs 宏包生成如下表格:

  • 表标题:[标题文字]
  • 列定义:[列名及数量,是否需要自适应宽度 tabularx]
  • 数据行:[直接贴入数据,或描述数据特征让 AI 填充]
  • 特殊需求:[是否需要合并单元格 multirow、跨页 longtable 等]

Prompt 模板 C:生成带推导的公式组

请在 LaTeX 中实现以下公式的推导与排版:

  • 起始条件:[已知的基本方程或物理定律]
  • 推导步骤:[逐步变换过程,每步一行 equation]
  • 最终形式:[目标公式的样子]
  • 附加要求:[是否需要对关键项做文字解释、是否需要编号交叉引用]

Prompt 模板 D:报错修复

我的 LaTeX 文件编译报错,请帮我定位原因并修复:

  • 编译命令:xelatex -interaction=nonstopmode file.tex
  • 报错信息:[粘贴完整的 error 日志片段,特别是带 ! 的行]
  • 相关代码:[粘贴报错位置附近的源码(前后各 5–10 行)]
  • 尝试过的方案:[如果有的话,避免 AI 重复建议]

常见错误速查

错误信息常见原因与解决方法
Missing $ inserted数学符号未放入数学模式,加 $...$ 或 equation 环境
Undefined control sequence使用了未加载的宏包命令,检查 \usepackage 是否齐全
Overfull \hbox表格超出页面宽度,改用 tabularx 或缩小字号 (\small)
大括号不匹配用编辑器的括号匹配功能检查 {} 配对
中文显示为方框未加载 ctex 宏包或字体缺失,确认 \usepackage[UTF8]{ctex} 存在

第五阶段:编译与迭代工作流

标准编译流程

编辑 .tex → XeLaTeX 编译 → 检查日志 → 查看 PDF → 有错误?
                                                    ↓ 是 ↓
                                              修正源码 → 再次编译
                                                    ↓ 否 ↓
                                                  完成 ✓

一键编译脚本

为了避免每次手动输入编译命令,建议创建批处理脚本 compile.bat

@echo off
chcp 65001 >nul
set TEXFILE=%~n1

echo ========================================
echo   编译 %TEXFILE%.tex ...
echo ========================================

:: 第一遍:生成目录和交叉引用
xelatex -interaction=nonstopmode "%TEXFILE%.tex"

:: 第二遍:解析所有引用
xelatex -interaction=nonstopmode "%TEXFILE%.tex"

echo.
echo ========================================
echo   编译完成!输出文件:%TEXFILE%.pdf
echo ========================================

:: 自动打开 PDF
start "" "%TEXFILE%.pdf"

使用方式:将 .bat 文件拖到 .tex 文件上即可一键编译并打开 PDF。

推荐的迭代节奏

频率操作目的
每写完一个小节编译一次及时发现格式问题
每完成一个大章通读 PDF 全文检查逻辑连贯性和图表质量
定稿前连续编译两遍确保所有交叉引用和目录正确
提交前更换电脑/干净环境测试确保无本地路径依赖

第六阶段:项目管理最佳实践

推荐目录结构

项目根目录/
├── 论文终稿.tex              % 主论文 LaTeX 源文件
├── 论文终稿.pdf              % 编译产物
├── compile.bat               % 一键编译脚本

├── 问题1_2/                   % 问题 1&2 相关素材
│   ├── 图1_xxx.pdf           % Python 生成的矢量图
│   ├── 图1_xxx.svg           % SVG 备份(可编辑)
│   └── ...

├── 问题3_4_偏心受力与围岩分类/
│   ├── 问题3_4_完整报告.tex
│   ├── 代码/
│   │   ├── problem_3_4_solver.py
│   │   └── transformer_solver.py
│   ├── 图表/
│   └── 数据/

└── 暂存/                     % 草稿和临时文件

版本控制习惯

即使不使用 Git,也应遵循以下简单规则:

  1. 保留历史版本:每次大改动前复制一份 .tex.tex.bak 或加日期后缀
  2. 图文件命名规范化图序号_简短描述.pdf,如 图3_扭矩系数对比柱状图.pdf
  3. 路径不要硬编码:LaTeX 中使用相对路径,不要用绝对路径
  4. 清理编译副产品:提交前删除 .aux.log.toc.out 等临时文件

常见陷阱与规避方法

陷阱症状规避方法
AI 产生幻觉公式编造了不存在的定理或错误的推导链要求 AI 明确标注每个公式的来源/依据
表格溢出页面Overfull hbox 警告,内容被截断使用 tabularx 替代 tabular,或缩小字体
编码混乱中文乱码、特殊字符丢失统一 UTF-8 编码,XeLaTeX + ctex
图片路径错误编译成功但图片显示为空白框使用相对路径,编译前确认文件存在
交叉引用失效”??” 显示代替编号编译至少两遍;检查 label/ref 配对
宏包冲突两个宏包重定义同一命令逐一排查最近添加的 usepackage

总结:核心原则清单

与 AI 协作写 LaTeX 的六大原则:

  1. 模板先行:准备好固定的 preamble 和文档结构,减少重复沟通成本
  2. 分块生成:每次只让 AI 写一个章节或一个组件,控制粒度
  3. 上下文充分:主动提供背景、数据和格式要求,不要假设 AI 能猜到
  4. 图文分离:Python 负责画图,LaTeX 负责排版,各司其职
  5. 频繁编译:每完成一块就编译一次,小问题及时修,别攒到最后
  6. 精确反馈:修改时描述具体位置和期望效果

一句话总结:AI 是你的 LaTeX 加速器,不是替代品。你负责结构和决策,AI 负责语法和排版。 建立好工作流之后,一篇 20+ 页的论文可以在数小时内从零到定稿。