资讯动态

数学建模竞赛AI工具使用详情LaTeX模板:结构、填写与避坑指南

发布时间:2026/10/18 17:34:46 来源:尧图企业网站定制
简介面向全国大学生数学建模竞赛参赛队伍这款基于XeLaTeX的AI工具使用详情LaTeX模板用于规范记录和展示竞赛中AI工具的实际应用。模板提供可定制的AI模型环境覆盖多种主流交互场景支持自动分页与长内容排版可满足长篇报告写作需求。资源包共26个文件约894KB包含4个tex格式模板主文件、9个常见AI模型图标png、2个使用说明与规定pdf、docx附赠资源及md转LaTeX脚本等结构清晰便于按需取用。已有143人学习下载。借助模板团队可高效协作编辑与审核AI工具使用记录无需在格式调整上耗费精力附带的图标素材、说明文档与转换脚本还能帮助快速生成图文并茂的规范报告使最终成果更专业易读在竞赛评审中更显优势。1. 数学建模竞赛 AI 工具使用详情模板先解决“记录如何不翻车”近两年数学建模竞赛的提交材料里多了一块“AI 工具使用详情”很多队伍用 Word 临时记流水账交上去的文档排版混乱、版本错乱甚至因为表格分页把评审信息挤没了。这套基于 XeLaTeX 的 AI 使用记录模板就是把这些记录变成一套可维护的排版工程你只需要按固定环境往里填对话、表格和结论模板自动处理分页、目录和模型类型归类。适合三个人分工协作的队伍——一个人提供记录素材一个人负责汇总一个人做最终校对改内容时不会碰坏样式。下面按我的使用习惯从工程结构讲到编译踩坑。2. 模板的工程结构拆开四个文件层看清职责再动手第一次打开压缩包很多人习惯直接双击 main.tex。这个动作本身没有错但这样做你很难理解为什么改一个颜色会把整个目录搞乱。我一般先把压缩包解压成目录然后按层去读文件而不是按文件名去猜。这套模板的分层方式和多数竞赛 LaTeX 模板一致核心思路是入口文件只做组装样式与数据分开存放。2.1 目录树与文件职责main.tex 只做组装数据单独存放mathmodel-ai/ ├── main.tex ├── mathmodel-ai.cls ├── sty/ │ ├── aiusage.sty │ └── theme.sty ├── data/ │ └── ai-record.tex ├── figs/ └── build.shmain.tex 负责加载文档类、引入样式包、定义赛题信息并在最后按顺序\input各个数据文件。mathmodel-ai.cls 是模板的“皮肤”页面尺寸、页眉页脚、章节编号格式都写在这里。sty/ 下的两个样式包aiusage.sty 定义 AI 交互环境theme.sty 管颜色和字体。data/ai-record.tex 是纯记录文件只放对话内容和结论figs/ 放示意图。build.sh 是我习惯保留的一键编译脚本。文件职责修改频率main.tex加载样式包定义赛题信息按序引入数据文件每支队伍一次mathmodel-ai.cls页面尺寸、章节样式、AI 环境定义定制时低频修改sty/aiusage.styAI 交互环境、表格环境、转义辅助命令一般不动sty/theme.sty颜色、字体、边框样式换主题时data/ai-record.texAI 工具使用记录的原始文本每次讨论后这套结构的价值在隔离。记录数据只进 data 文件版式只动 cls 和 stymain.tex 在比赛期间几乎不会被改到。用编辑器打开项目时也不会出现“不小心改了样式文件导致全文排版变样”的情况。如果你要新加一个 AI 交互场景优先改 aiusage.sty而不是去动 main.tex这样后续合并不容易冲突。2.2 环境与命令的分工AI 交互记录用环境包不用裸命令在 LaTeX 里写“一段 AI 对话记录”有两种做法。第一种是用\newcommand定义一个命令每次调用传参数第二种是定义一个环境用\begin{...}和\end{...}包裹内容。对 AI 使用记录这种“可长可短、内部还要嵌套列表”的内容环境是更稳的选择环境内部可以跨段落、嵌套条目而且样式统一由 cls 控制。裸命令适合单行引用比如在正文里提一句“某个模型参与了参数调优”但遇到多轮对话、表格、代码片段混合时环境的结构化优势就体现出来了。\newenvironment{aiConversation}[3][文本对话模型]{% \subsection{#2}% \par\noindent 模型{#1}\hfill 时间{#3}\par \begin{description} }{% \end{description} \vspace{\baselineskip} }这个环境定义里第一个参数是可选参数默认值是“文本对话模型”用方括号传入第 2 个参数是对话标题第 3 个参数是时间戳。环境开头会先渲染一个二级小节标题然后在标题下方显示“模型”和“时间”两个信息字段。内部套用 description 环境这样\item[提问]这种带标签的条目就能在同一个环境里区分提问、AI 回答、人工处理方式三个角色。\vspace{\baselineskip}在环境结束时补一个行距避免两个记录块贴在一起。用环境而不是裸命令的另一个原因是可嵌套性。真实比赛里一次建模讨论往往是“对话里带着表格、表格旁边贴着代码片段”只有环境才能把这些内容包在同一块样式里而不破坏整体断页。裸命令做不到这一点因为命令不能像环境那样包住一大段任意内容。2.3 长内容自动分页longtable、raggedbottom 与页面动态断页在 LaTeX 里“长内容自动分页”不是一个开关而是两种机制的配合页面排版和表格排版。页面排版遵循“盒子装满才断页”的原则段落超过页高就会自动移到下一页表格则是浮动体默认会被整体搬到页尾或下一页这在大记录表里非常致命。所以模板要做的两件事一是用\raggedbottom放宽页面底部对齐二是把跨页表从 tabularx 换成 longtable。longtable 的头部和底部可以分别定义这样长表格换页后表头会自动重复评审翻页时不会不知道列含义。% 模板样式文件中常见的长内容配置 \usepackage{longtable} \usepackage{needspace} \raggedbottom\raggedbottom表示页面底部不严格对齐允许最后一行的位置有少量浮动好处是避免了因为一页里有个大表格导致的整页空白。\needspace用于解决孤行标题问题在aiConversation环境前加一行\needspace{5\baselineskip}当页面剩余空间不足 5 行时会把整个环境推到下一页标题不会孤零零地留在页尾。这个细节在几十页的 AI 使用报告里非常实用否则你会频繁遇到“标题在页尾、内容在下一页”的排版事故。实际操作中我也见过有人用\newpage强行分页结果页面空白过大很像 Word 里按回车换页的效果。自动分页的核心是信任 LaTeX 的断页算法只在极端情况下用\needspace干预而不是到处插\newpage。3. 填写 AI 使用详情三个能直接抄进模板的实例模板壳子搭好了接下来就是往里面填内容。这一章我按“信息区 → 单次对话 → 汇总长表”三个层次写每一段都能直接复制进你的 main.tex 或 data 文件里再按实际情况替换文字。3.1 修改赛题信息与队伍信息只动一个区块% 信息区通常位于 main.tex 顶部比赛当天只需改这一块 \AIProjectTitle{赛题编号C2025-问题三} \AITeamInfo{某高校}{队员A / 队员B / 队员C} \AICompetitionPhase{建模阶段}三个命令都是模板预置的赋值宏具体名称以你下载的模板为准。\AIProjectTitle负责生成封面的赛题编号也会出现在页眉左侧\AITeamInfo连续两个花括号分别对应学校和队员中间不要用逗号或空格分隔因为模板内部会把第二个花括号的内容按“ / ”拆成三列显示\AICompetitionPhase表示当前阶段是建模、求解还是验证模板会把阶段名渲染在每页页脚。改完这一段先编译一次确认封面和页眉页脚都变了再动其他文件。如果改了不生效多数情况是模板里还有第二处赋值覆盖了它。常见做法是在 cls 文件里保留了一组默认值main.tex 里的赋值会覆盖默认值但如果你把信息写在了 data 文件里main.tex 的赋值就会被\input进去的内容覆盖。我的排查习惯是搜索宏名看它出现了几次最后出现的赋值才是生效值。3.2 记录一次对话式交互从时间戳到结果摘录每一次 AI 交互都可以抽象成四个字段提问、回答、处理方式、结论。模板的aiConversation环境正好对应这个结构。下面是一次完整记录\begin{aiConversation}[文本对话模型]{模型选择讨论}{2025-09-05 10:30} \item[提问] 本问题适合用什么模型建模 \item[AI回答] 建议先尝试多目标优化并用启发式算法做参数搜索。 \item[处理方式] 采纳了模型思路参数范围手工调整未直接使用生成代码。 \item[结论] 采用多目标优化模型后续以人工校准结果为准。 \end{aiConversation}方括号里的“文本对话模型”会显示在记录块的标题栏上第二个花括号是这段对话的小标题会生成一个二级小节第三个花括号是时间戳。四个\item[标签]构成记录主体模板会把标签加粗并缩进和正文明显区分。这里要强调“处理方式”这一条评审更关注你对 AI 结果的处理而不是 AI 回答本身。只写“采纳”太薄写清楚“改了哪里、哪些没采用、为什么”整份报告的规范感立刻不一样。提示AI 回答字段建议只写摘要和关键结论不要整段粘贴。完整对话可以放进附录正文里保留结构化记录阅读体验和查重效果都更好。3.3 长内容自动分页的汇总表让几十轮对话不断页不跳页比赛三天下来AI 使用记录可能有几十条。如果每一条都展开成 3.2 那样的大段记录报告会显得臃肿。常见做法是正文放一张汇总表详细记录放进附录。汇总表要跨页不能再用 tabularx必须用 longtable\begin{longtable}{p{0.18\textwidth} p{0.22\textwidth} p{0.55\textwidth}} \caption{AI 使用情况汇总表} \label{tab:ai-summary} \\ 时间 模型类型 用途摘要 \\ \endfirsthead 时间 模型类型 用途摘要 \\ \endhead 2025-09-05 09:00 文本对话模型 赛题理解与模型选择讨论 \\ 2025-09-05 14:00 代码生成模型 数据预处理脚本编写 \\ \bottomrule \end{longtable}\endfirsthead定义了表格第一页的表头\endhead定义后续每一页重复出现的表头这是 longtable 跨页的核心机制。caption要放在表头行的前面这样目录里能正确生成表条目。列宽用p{0.18\textwidth}这类比例写法三列加起来略小于一行的宽度避免超出页面。如果用了\bottomrule记得加载 booktabs 宏包否则会报错。汇总表里的事项不要写“聊了一会儿”这种话要写成“赛题理解与模型选择讨论”“数据预处理脚本编写”这种动词对象的结构。评审翻表的时候每行都能独立表达一次 AI 使用事件不需要再回读正文。4. 定制 AI 模型环境新增模型类型与交互场景的扩展点模板默认带了几种模型类型但比赛的 AI 工具可能不只有对话和代码。有的人用到 AI 绘图生成示意图有的人用检索工具查文献还有的人用语音转文字整理讨论纪要。这一章讲怎么把这些新场景接进模板改动范围集中在 cls 和 sty 两个文件。4.1 在 cls 里加一个模型类型分支从 chat 到 music% mathmodel-ai.cls 中模型类型分支最后一行是新增的 music 类型 \usepackage{xifthen} \newcommand{\aiToolType}[1]{% \ifthenelse{\equal{#1}{chat}}{文本对话}{}% \ifthenelse{\equal{#1}{code}}{代码生成}{}% \ifthenelse{\equal{#1}{draw}}{图像生成}{}% \ifthenelse{\equal{#1}{search}}{信息检索}{}% \ifthenelse{\equal{#1}{music}}{音频生成}{}% }这是一组按字符串匹配的分支宏不是 switch-case 结构。新增类型时复制一行把引号里的标识符和后面的中文显示名换掉即可。标识符是内部值data 文件里填什么这里就必须匹配什么比如数据文件里写了\aiToolType{music}这里定义了{music}才会显示“音频生成”。常见的翻车点是\equal比较时不会忽略空格{chat }和{chat}是两个不同的值数据文件里稍微多打一个空格匹配就会静默失败页面显示空白。如果你需要给某个类型单独配一段说明文字可以在 cls 里再加一个%注释提醒自己但更规范的做法是把说明写进\aiToolType的显示值里让它直接出现在报告上而不是藏在代码注释里。4.2 用颜色区分 AI 生成与人工修订两种可行方案对比报告里除了记录 AI 工具的使用还要交代哪些内容是 AI 生成的、哪些是人工改过的。颜色是最好的视觉标记。模板基础的方案是在 theme.sty 里定义两个颜色变量% sty/theme.sty 中定义颜色 \definecolor{aiBackground}{HTML}{F5F5F5} \definecolor{aiHighlight}{HTML}{1F4E79} % 简单强调命令用于标记人工修订部分 \newcommand{\aiNote}[1]{{\color{aiHighlight}\textbf{#1}}}aiBackground是浅灰背景色aiHighlight是深蓝强调色。\aiNote命令把文字变成深蓝加粗适合标记“这里人工改过”的段落。如果只是标记少量文字这个方案够用改动量小维护成本低。方案改动位置维护成本视觉能力颜色宏方案sty/theme.sty低文字颜色、字体粗细tcolorbox 方案cls 或主题文件中边框、阴影、跨页盒子如果想把整个人工修订段落用灰色底纹框起来就需要升级到 tcolorbox。在 cls 里加载\usepackage[most]{tcolorbox}再用\newtcolorbox定义一个新的浮框环境。tcolorbox 支持跨页断框、圆角、阴影效果更像一份正式的审核报告但代价是会增加编译时间而且 tcolorbox 的选项很多新手容易配置出错。我的建议是报告页数在 30 页以内时颜色宏方案完全够用要提交最终定稿版时再考虑 tcolorbox 的完整框线方案。4.3 数据与样式分离把记录文件拆出去的好处定制完模型类型最后一个建议是保持 data 文件的纯净性。main.tex 里只需要一行引入代码% main.tex 中按序加载数据文件 % \input 会把文件内容当作 main.tex 的一部分来编译 \input{data/ai-record.tex}data 文件与排版样式分离的最大价值在协作场景。负责记录的人不需要懂 LaTeX 语法只需要按模板约定填写内容负责排版的人不碰数据文件只维护 cls 和 sty。这样在 Git 协作时两个角色几乎不会改到同一个文件冲突概率大幅下降。如果你把 AI 记录直接写在 main.tex 里三个人同时编辑同一个文件合并时大概率会把环境标记拆散出现“File ended while scanning use of \begin”一类的问题。这是组队比赛最容易踩的协作坑下一章展开讲。5. 避坑与常见问题XeLaTeX 编译与协作中的七个翻车现场模板本身能编译通过但换一台电脑、换一个编辑器、换一种输入内容问题就来了。这一章七条全部是我在这类模板上实际遇到过的现象、原因和解决办法。5.1 中文乱码编译通过但全是方块现象编译不报错PDF 里中文全部变成方块或乱码。原因源文件被保存成了 GBK 或带 BOM 的编码而 XeLaTeX 默认按 UTF-8 读取文件或者模板没有明确指定中文字体方案。解决把编辑器右下角编码切换成 UTF-8无 BOM同时在文档类里指定一套不依赖操作系统的字体方案\documentclass[12pt,fontsetfandol]{ctexart}fontsetfandol是 ctex 宏包自带的开源中文字体Windows、macOS、Linux 以及云编译平台都不会缺字体。换成这套设置之后中文乱码问题的复发率会低很多。注意如果模板原本用\setCJKmainfont{SimSun}指定了 Windows 字体到 macOS 上依然会报找不到字体这属于第 5.4 条的范围。5.2 长表格跨页后表头丢失现象汇总表内容超过一页第二页起没有表头读者不知道新的一页每一列是什么。原因用了 tabularx 或 tabular 环境它们本质是单页盒子不会自动拆页。解决换成 longtable并用\endfirsthead和\endhead定义重复表头见 3.3 节代码。还有一个细节表格的caption要放在\endfirsthead之前的行里否则跨页后表头会带着表格编号重复显示编号在每页都会冒出来非常丑。5.3 AI 回答里的特殊字符导致编译中止现象从网页复制 AI 回答进模板编译报Missing $ inserted或Misplaced alignment tab character。原因AI 回答文本里通常含有%、_、、#这些在 LaTeX 里都有语法含义。%是注释符是表格列分隔符_是下标符号#是宏参数占位符。解决在 data/ai-record.tex 文件头部加一段注释提醒自己凡是粘贴的内容统一把%写成\%_写成\_写成\#写成\#。如果内容里含有大段代码更稳妥的做法是把代码放进verbatim环境该环境下特殊字符不需要转义但代价是代码块不能分页。5.4 同一份模板在不同电脑上字体不一致现象同一份压缩包自己的电脑编译正常队友那边报Font SimSun not found或者重新编译后字体变了样。原因模板在 cls 里写死了操作系统字体名而对方电脑没安装对应字体。Windows 的 SimSun/SimHei 在 macOS 和 Linux 上默认不存在。解决统一改用fontsetfandol或者把字体配置改成按系统自动选择。ctex 宏包支持fontsetwindows、fontsetmac、fontsetfandol三种模式前两个依赖系统字体fandol 是自带字体。比赛队伍里有人用 Windows、有人用 Mac 的情况很常见建议在 README 或模板注释里写清楚编译要求是“XeLaTeX ctex 最新版”。如果队友的 TeXLive 版本太老连fontsetfandol都不认识那就要么升级发行版要么在本地把字体文件打包进项目目录用相对路径加载。注意云编译平台默认不带 SimSun 等商业字体如果你打算用在线编译尽量选 fandol 方案否则大概率出现“本地编译正常、传上去就乱码”的问题。5.5 Git 合并把环境标记拆乱现象两个人同时改了 data/ai-record.tex合并之后编译报File ended while scanning use of \begin{aiConversation}。原因一个人的改动删了\end{aiConversation}另一个人的改动在别处加了内容Git 按行合并时把环境首尾拆到了不同版本里。解决拆分文件。data 目录下不要只放一个 ai-record.tex按天或按阶段拆成多个文件比如ai-record-0904.tex、ai-record-0905.tex。每次讨论后只提交当天的文件跨天几乎不冲突。如果一定要多人共用一个文件就约定“谁改谁负责编译验证”提交前本地跑两遍编译有问题先解决再推。5.6 长报告编译到一半内存不足现象报告快写完时编译报TeX capacity exceeded, sorry [main memory size...]。原因单文件过大宏展开次数过多或者模板里某个递归命令在长内容下反复展开超出了 TeX 引擎默认内存上限。解决先把最可控的部分处理掉——把 AI 记录按 5.5 的方式拆成多个文件用\input分段加载这是最有效的手段。如果仍然超限再调整 texmf.cnf 里的main_memory和extra_mem_top参数。不过比赛场景下拆文件通常就能解决硬调内存上限属于最后手段而且云编译平台一般不允许改全局配置。5.7 目录页码对不上现象封面后的目录页码和正文实际页码不一致或者新加的章节没出现在目录里。原因只编译了一遍。LaTeX 的目录和交叉引用机制是第一遍写辅助文件第二遍读辅助文件才生成正确的页码。任何一次增删内容之后都至少需要编译两遍。解决养成习惯每次完整编译执行两遍 xelatex或者直接用集成工具里的“构建两次”按钮。如果模板还带索引或参考文献可能还需要 makeindex、biber但纯 AI 使用记录模板一般不需要。这一条是进入下一章自动化脚本的引子。6. 把模板交到团队手里Git 忽略规则与一键编译脚本模板能正常编译、能定制、能避开大部分坑最后一步是让团队里每个人都用同一套流程编译避免“我这边好好的到你那就报错”。这一章讲一个低成本方案用 Git 管理模板用一键脚本统一编译行为。6.1 一份能直接用的 .gitignore# .gitignore——LaTeX 项目建议默认忽略的中间产物 *.aux *.log *.out *.toc *.synctex.gz *.bbl *.blg *.nav *.snm build/.aux、.toc、.out是两遍编译的辅助文件每次编译都会重新生成纳进版本管理只会制造大量无意义的 diff。*.synctex.gz是编辑器反向定位文件只在本地调试时有用。唯一要提交的是.tex、.cls、.sty、.bib和.gitignore本身。图片资源如果体积不大也建议提交否则队友拉下来缺图封面直接空白。6.2 提交前强制走一遍编译脚本#!/bin/bash set -e rm -rf build mkdir -p build cd build xelatex -interactionnonstopmode ../main.tex xelatex -interactionnonstopmode ../main.tex cp main.pdf ../AI工具使用报告_最终版.pdf脚本先清空 build 目录再建新目录保证不会残留旧 PDF 误导人。-interactionnonstopmode让编译过程遇到错误不进入交互模式自动继续直到结束这样脚本不会卡死在等待输入的界面。两遍 xelatex 是必须的第一遍生成.aux和.toc第二遍读取这些文件解决交叉引用和目录页码。cp把最终的 PDF 复制到项目根目录文件名带“最终版”三个字省得队友分不清哪个是刚编译出来的。set -e的作用是编译失败时立即退出不执行后面的复制步骤避免保留一个过期 PDF 让人误用。这个脚本适合放进模板根目录配合 6.1 的 .gitignore 一起用。团队拉取代码后只需要执行bash build.sh编译通过就看到了 PDF。不要依赖编辑器里的“一键编译”按钮那是个黑匣子不同编辑器的默认编译引擎不同有的默认是 pdfLaTeX有的会跳过第二遍编译导致目录页码错误。以前有一次我改了 cls 里的一个颜色值本地编译通过就提交了。第二天队友拉下来编译直接报错查了半天发现是我的 TeXLive 版本太新用了对方还没有的宏包参数。从那以后每次动模板我都强制走一遍“本地编译两遍 → 检查目录页码 → 再提交”的流程队友再没遇到过编译问题。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑