IEEE投稿LaTeX工程化实践:模板、编译与源文件打包 1. 先想清楚为什么IEEE投稿这条路要用LaTeX第一次给IEEE的会议投文章我用Word排版排到凌晨三点双栏、公式编号、参考文献顺序改一处崩三处。后来换成LaTeX前两个小时确实痛苦但一旦工程跑通后面每一次改稿、每一个合作者接手效率差距是碾压级的。这篇就把我从零搭环境、改模板、调编译、到最后把源文件打包上传的整条链路摊开讲重点放在那些官方模板文档里不会写、但第一次投稿一定会踩的坑上。核心关键词先摆出来LaTeX、IEEE论文模板、IEEEtran文档类、BibTeX参考文献、latexmk编译、投稿源文件打包这些是贯穿全文的主线。适合谁看三类人第一次投IEEE会议或期刊、只会Word的研究生用LaTeX写过普通报告但没碰过IEEEtran的作者以及被合作者甩了一个编译不过的工程包、需要快速救火的同学。读完你应该能做到本地跑通一份双栏IEEE格式的稿件图表参考文献全部正确页数可控最后打出一个投稿系统能接受的PDF和源文件压缩包。1.1 从Word切到LaTeX真正的取舍点在哪很多人把这件事理解成排版工具之争其实不是。Word的问题不在于它排不出双栏而在于格式与内容是耦合的你在正文里手动调过的每一处行距、每一个图注字号都是一颗定时炸弹等审稿意见回来要求加两页内容前面的手工微调全部失效你得从头再捋一遍。LaTeX把这层关系倒过来了——内容写在.tex里格式交给.cls文档类你调版面的时候是在调参数不是在拖文本框。对IEEE投稿来说这个倒置有三个直接好处。第一是模板即规范出版方给的IEEEtran.cls已经把栏宽、字号、图注位置、参考文献样式全部定死你只要不违规改动格式审查这一关基本不会出问题。第二是参考文献自动编号IEEE要求按正文引用顺序编号用BibTeX加上IEEEtran.bst顺序是自动排的插一条删一条都不用手工维护。第三是多人协作可合并纯文本文件能diff、能合并不会出现两个人同时改一份docx、最后互相覆盖的惨剧。代价也很实在你要花时间学语法要接受编译一次才知道结果的反馈延迟还要处理各种看不懂的报错。我的判断标准很简单——如果你的稿子有超过10个公式、超过5张图、参考文献超过20条LaTeX的投入产出比就是正的。低于这个量级用什么都行别为了用而用。1.2 整条工作流的四层结构先建立地图新手最容易犯的错是直接下载模板、双击打开、开始写然后在某个报错上卡一整天。我建议先在心里建一张四层地图出问题时能快速定位是哪一层坏了层级组成出问题时的典型症状发行版层TeX Live 或 MiKTeX提供编译器与宏包提示File xxx.sty not found模板层IEEEtran.cls、.bst、示例.texUndefined control sequence \IEEEPARstart源码层你的.tex、.bib、图片文件图片不显示、引用显示为[?]编译链层pdflatex、bibtex、latexmk 的调用顺序参考文献空白、目录不更新、页码错乱这张表看着朴素但非常救命。比如引用显示成问号90%的人在源码层找问题其实那是编译链层——.bbl文件根本没生成。后面第5节我会把这张表展开成一份速查清单。2. 环境搭建发行版、编辑器与工程管理环境这一步我的建议是别折腾花活一次装对之后三年不用管。太多人在这里追求最轻量最优雅结果宏包缺一半每次编译都在补装。你要的是能跑通IEEE模板不是搭一个艺术装置。2.1 TeX发行版TeX Live 与 MiKTeX 怎么选目前主流就两个选择外加一个在线方案。我把对比列清楚你按自己的场景对号入座方案安装体积宏包策略适合场景我的评价TeX Live 完整版约 5–8 GB一次装全离线可用长期写论文、网络不稳、要投稿首选装完基本不再折腾TeX Live 基础版 按需装约 500 MB 起用tlmgr手动补磁盘紧张、有经验可以但要预判会用到哪些包MiKTeX约 300 MB 起缺什么自动装什么Windows 用户、临时应急方便但自动装包偶尔会卡住在线编译平台无需安装平台预装常见宏包换电脑、多人共享工程应急可以长期主力不推荐选TeX Live完整版的理由很实际投稿前你最不想遇到的事就是本地能编译、换台机器缺个包。完整版把常见宏包全带上了.bst、字体、图片转换工具一应俱全离线也能跑。安装时记得做两件事一是把安装目录下的bin/...加进系统PATH二是装完在终端敲一句验证pdflatex --version bibtex --version latexmk --version三条都有版本号输出说明环境通了。如果只有前两条有、latexmk报找不到说明发行版里的latexmk没随主包安装用tlmgr install latexmk补一下即可。这一步别跳过后面所有自动化编译都依赖它。提示Windows上装完一定要重开终端再验证PATH变量的改动对已经打开的窗口不生效。我见过不止一个人在这上面浪费半小时。2.2 编辑器与辅助工具的组合拳编辑器这块没有标准答案我给一个务实组合一个支持正反向搜索的编辑器 一个PDF阅读器 一个终端。所谓正反向搜索就是点源码跳到PDF对应位置、点PDF跳回源码行这个功能在改几十页双栏稿时是刚需找一张图的代码位置不用翻半天。编辑器上主流的代码编辑器配LaTeX插件就够用配置里记得打开三件事编译命令用latexmk、开启保存时自动编译、开启PDF正反向同步。喜欢开箱即用的也有专门面向LaTeX的编辑器优点是零配置缺点是定制性差一些。用什么不重要重要的是统一入口——所有编译都从同一个按钮或同一条命令触发别今天点按钮、明天敲命令出了问题不知道是谁的锅。辅助工具里有两个东西我强烈建议装上。一个是latexindent格式化源码用团队协作时能避免你改缩进我改内容的无意义冲突。另一个是pdffonts随poppler工具集提供投稿前用它检查PDF字体是否全部嵌入这个后面第6节会细讲。2.3 工程目录与版本管理从第一天就做对我见过最惨的工程目录是这样的根目录下堆着main.tex、main(1).tex、main_final.tex、main_final_v2.tex图片散落在各处.aux文件混在里面。这种工程一旦要交源文件你会花两小时清理。我的习惯是固定一套目录结构从第一篇论文用到现在paper/ ├── main.tex # 主文件只放结构和引用 ├── sections/ │ ├── intro.tex │ ├── method.tex │ └── exp.tex ├── figs/ │ ├── arch.pdf │ └── result.png ├── refs.bib # 参考文献库 ├── IEEEtran.cls # 模板类文件 ├── IEEEtran.bst # 参考文献样式 ├── .gitignore └── README.md # 记录编译命令和宏包版本正文拆到sections/下用\input{}引入好处是Git冲突范围小、单文件不容易长到几千行。.gitignore至少要挡住这些中间产物*.aux *.log *.out *.toc *.bbl *.blg *.fls *.fdb_latexmk *.synctex.gz *.pdf注意*.pdf也建议忽略——编译产物不该进版本库否则每次编译都产生一个巨大的二进制diff。但投稿前要单独备份一份编译好的PDF那是你的存档。提示.bbl文件要不要忽略取决于你的投稿要求。有些出版方要求提交.bbl因为他们的编译环境可能不跑BibTeX这种情况下你要在最后打包时手动带上但平时开发阶段忽略它。3. 模板获取与骨架改造把官方模板变成自己的工程这一步是新手翻车率最高的地方原因不是技术难而是拿到模板之后不知道该动哪里、不该动哪里。3.1 模板的正确获取姿势与常见陷阱模板只有一个正确来源出版方作者中心提供的官方模板包。别从师兄的网盘拿别从第三方镜像站下更别用某个论坛流传的精简版。原因很实在——模板会更新旧版本的.cls可能和新版排版规范不一致而你根本无从判断手里这份是哪一年的。下载下来通常是一个压缩包里面包含IEEEtran.cls文档类、若干.bst参考文献样式会议和期刊用的不是同一个、一个示例.tex、一个示例.bib、以及一份说明文档。先别急着改示例文件第一步是原样编译一遍示例确认你的环境能跑通官方代码。这一步能排除掉80%的环境问题——如果官方示例都编不过那一定是你环境的问题不是模板的问题。常见的下载陷阱有三个。第一是用了会议模板写期刊、或者反过来两者在作者信息块、页眉、参考文献样式上都有差异投错版本会在格式初审被打回。第二是只下载了.tex没下载.cls本地编译时用的其实是系统里预装的旧版IEEEtran.cls结果格式微妙地不对。第三是模板包里带了README说明你没看里面通常写了明确的编译命令和已知问题。3.2 拆解模板骨架每一段在干什么拿到示例文件后我建议你逐段读一遍而不是直接替换内容。一份典型的会议模板主文件骨架长这样\documentclass[conference]{IEEEtran} \IEEEoverridecommandlockouts \usepackage{cite} \usepackage{amsmath,amssymb,amsfonts} \usepackage{algorithmic} \usepackage{graphicx} \usepackage{textcomp} \usepackage{xcolor} \begin{document} \title{Your Paper Title Here} \author{ \IEEEauthorblockN{First Author} \IEEEauthorblockA{\textit{Department Name} \\ \textit{Institution Name}\\ City, Country \\ authorexample.com} \and \IEEEauthorblockN{Second Author} \IEEEauthorblockA{\textit{Department Name} \\ \textit{Institution Name}\\ City, Country \\ author2example.com} } \maketitle \begin{abstract} Your abstract goes here. \end{abstract} \begin{IEEEkeywords} Keyword1, Keyword2, Keyword3 \end{IEEEkeywords} \section{Introduction} \label{sec:intro} Text... \section{Conclusion} Text... \bibliographystyle{IEEEtran} \bibliography{refs} \end{document}逐段说清楚\documentclass[conference]{IEEEtran}这一行决定了整篇的版面规则。会议用conference选项期刊通常不带这个选项或者用journal具体看你下载的模板说明。这个选项写错后面调页数会调到怀疑人生因为会议和期刊的行距、栏间距、页边距都不同。\IEEEoverridecommandlockouts这行是模板要求的配合某些宏包使用示例里有就保留别自作聪明删掉。\author{}块里\IEEEauthorblockN放姓名、\IEEEauthorblockA放单位地址邮箱多个作者之间用\and分隔。这里有个细节单位信息里用\textit{}斜体是模板惯例不是强制的但保持和示例一致最省事。\begin{IEEEkeywords}是IEEE特有的关键词环境它有自己的排版样式不要用\textbf{Keywords:}手打那样格式审查会挑出来。\bibliographystyle{IEEEtran}和\bibliography{refs}两行是参考文献入口refs对应refs.bib不带扩展名。会议和期刊用的.bst文件名可能不同看你模板包里给的是哪个。3.3 从示例到自己的工程改造清单拿到能编译的示例后按这个顺序改造每一步编译一次出问题能立刻定位把示例.tex复制成main.tex示例.bib复制成refs.bib两个原始文件保留作对照。改标题、作者块、摘要、关键词先不写正文编译一次看首页对不对。建sections/目录把正文按章节拆文件用\input{sections/intro}引入编译一次确认路径没错。建figs/目录放一张测试图写一个figure环境编译一次确认图片能找到。往refs.bib里加一条测试文献正文\cite{}一次跑完整编译链第5节确认引用能出来。这套流程看着啰嗦但它把环境、路径、引用三类问题分离开了。一次性全改完再编译报错信息会互相掩盖排起来非常痛苦。注意.cls和.bst文件不要修改。有些人为了微调格式去改文档类源码这在投稿阶段是明确禁止的格式审查可能会要求你用原始模板重排。所有能调的都在你的.tex里调。4. 核心排版实操图表、公式、参考文献的IEEE写法这一节是全篇最实用的部分。IEEE模板有一套自己的排版习惯跟你平时写普通LaTeX文档不太一样照着通用教程写格式上会出各种小毛病。4.1 作者信息、脚注与首页布局首页布局是格式审查第一眼看的地方几个细节值得单独说。作者块里的单位信息标准写法是部门 / 单位 / 城市国家 / 邮箱四行用\\换行。多个作者用\and分隔模板会自动排成一行多个或者换行你不用管。别手动加\hspace调间距不同页宽下会错位。脚注用\footnote{}但IEEE模板里脚注默认排在当前栏的底部不是页面底部这是双栏排版的正常行为别以为是bug。如果脚注内容太长跨栏了考虑改成正文里的括号说明。首页底部通常会有版权声明区这个区域投稿阶段一般留空或按模板注释处理等录用后出版方会告诉你怎么填。别自己往里塞内容。还有个容易忽略的点\maketitle必须放在\begin{document}之后、摘要之前顺序错了会导致标题排版异常或者直接报错。4.2 图与表位置参数、图注方向、跨栏处理IEEE的双栏排版对浮动体位置很敏感我踩过的坑基本都在这里。单栏图的标准写法\begin{figure}[!t] \centering \includegraphics[width\columnwidth]{figs/arch.pdf} \caption{System architecture of the proposed framework.} \label{fig:arch} \end{figure}几个关键点。[!t]里的!是告诉编译器尽量放页顶配合t能减少浮动体乱跑。width\columnwidth表示占满单栏宽度这是最稳妥的写法写成width0.9\textwidth在双栏里会溢出到另一栏外面这是新手最常犯的错——双栏文档里单栏宽度是\columnwidth不是\textwidth。跨两栏的大图用figure*环境\begin{figure*}[!t] \centering \includegraphics[width\textwidth]{figs/pipeline.pdf} \caption{Overall pipeline.} \label{fig:pipeline} \end{figure*}注意figure*环境的图只能出现在页面顶部而且通常会推迟到下一页别指望它能放在你写代码的那个位置。这是LaTeX的浮动机制不是bug接受它然后把\ref写好就行。表格这块IEEE的惯例是表标题在表格上方而且模板里\caption放在tabular之前\begin{table}[!t] \renewcommand{\arraystretch}{1.2} \caption{Comparison of Different Methods} \label{tab:cmp} \centering \begin{tabular}{|c|c|c|} \hline Method Accuracy Time \\ \hline Baseline 0.81 12s \\ Ours 0.89 15s \\ \hline \end{tabular} \end{table}\renewcommand{\arraystretch}{1.2}是我每次都加的一行默认行高在双栏里显得挤加到1.2到1.3之间视觉上舒服很多而且不会撑破栏宽。竖线|在IEEE模板里是允许的但越来越多的作者倾向用booktabs宏包的无竖线三线表更清爽。用booktabs的话记得\usepackage{booktabs}然后\toprule、\midrule、\bottomrule替换\hline。提示表格宽度超过栏宽是最常见的溢出原因。两个解决办法一是缩小字号在tabular前加\small或\footnotesize二是用\resizebox{\columnwidth}{!}{...}把整个表格缩放到栏宽。后者会让字号不一致我一般优先用前者。4.3 公式、定理与算法块公式部分IEEEtran和标准LaTeX基本一致但有几个习惯值得遵守。行内公式用$...$独立公式用equation环境编号会自动生成不要手动写(1)。多行对齐用align环境需要amsmath宏包模板里通常已经带了\begin{equation} \label{eq:loss} \mathcal{L} \frac{1}{N}\sum_{i1}^{N} \left\| y_i - \hat{y}_i \right\|^2 \end{equation}公式里引用用\eqref{eq:loss}会自动带括号用\ref{}则不带括号。这个细节很多人不注意混着用会导致正文里出现(1)和1两种格式。定理类环境IEEEtran自带\newtheorem支持但默认样式和期刊要求可能有差异。稳妥做法是在导言区自己定义\newtheorem{theorem}{Theorem} \newtheorem{lemma}{Lemma} \newtheorem{definition}{Definition}算法伪代码模板包里的algorithmic宏包可以直接用\begin{algorithm} \caption{Iterative Optimization} \label{alg:opt} \begin{algorithmic} \STATE \textbf{Input:} dataset $D$, learning rate $\eta$ \STATE Initialize parameters $\theta$ \FOR{$t 1$ to $T$} \STATE Compute gradient $g_t$ \STATE Update $\theta \leftarrow \theta - \eta g_t$ \ENDFOR \STATE \textbf{Output:} $\theta$ \end{algorithmic} \end{algorithm}注意algorithmic和algorithmicx是两个不同的包语法不通用。模板包里给的是哪个就用哪个别自己换换了容易和模板的其他设置冲突。4.4 参考文献BibTeX的正确用法与顺序问题IEEE要求参考文献按正文首次引用顺序编号这个用BibTeX加IEEEtran.bst是自动的但你得做对几件事。第一.bib文件里的条目类型要写对。会议论文用inproceedings期刊用article技术报告用techreport书写用book。类型写错生成的格式就错比如把会议论文写成article会缺会议地点信息。第二\cite{}的键名要唯一且有意义。我的习惯是作者姓年份关键词比如zhang2024attention比ref1、ref2好维护一百倍。第三编译顺序不能省。很多人编译一次看到引用是[?]就慌了其实只是没跑BibTeX。完整流程是pdflatex→bibtex→pdflatex→pdflatex。四步一步都不能少。原因后面第5节细讲。第四如果某条文献你想让它出现在参考文献列表里但正文没引用比如推荐阅读用\nocite{key}。全部引用用\nocite{*}但投稿时慎用会把你.bib里所有条目都塞进去。一个我用了很久的小技巧.bib文件单独用Git管理多个项目共享同一份文献库需要哪条就\cite哪条不用每次重新录入。代价是库会越来越臃肿定期清理一次就行。4.5 页数控制双栏排版的压缩手法投稿最痛的场景之一内容写完了页数超了半页。IEEE会议一般有明确的页数上限超了要么删内容要么压排版。压排版有几个层次从温和到激进手法具体做法压缩效果风险调整浮动体位置把[!htbp]改成[!t]让图表靠页顶0.1–0.3 页几乎无平衡末页两栏导言区加\usepackage{balance}末尾\balance0.1–0.2 页几乎无微调图表尺寸width0.95\columnwidth0.1–0.3 页图变模糊缩紧公式间距导言区调\abovedisplayskip等参数0.1–0.2 页观感略挤局部负间距特定位置\vspace{-2mm}每处极小多点累积会难看缩小参考文献字号\footnotesize包住bibliography0.2–0.4 页部分会议要求禁止我的一般顺序是先\balance再调浮动体再看图表能不能缩最后才动间距。\vspace负值属于最后一招用多了整篇看起来像被压扁了审稿人第一印象会打折扣。还有一个进阶技巧如果参考文献占了快一栏可以用\IEEEtriggeratref{N}配合\IEEEtriggercmd{\enlargethispage{-Xpt}}让参考文献在某个位置换栏把空间省出来。这个参数需要试几次属于精调手段。5. 编译链路与报错排查实录这一节是我最想写给新手的部分。LaTeX的报错信息质量参差不齐很多报错指向的位置和真正的原因隔着十万八千里。掌握了排查思路能省下大量时间。5.1 为什么必须编译四遍一次讲透很多人不理解为什么要跑四遍觉得是玄学。其实每一步都有明确分工第一遍pdflatex解析源码生成.aux文件记录章节编号、公式编号、图表编号、交叉引用位置和.log文件。此时所有\ref、\cite都是占位符因为你引用的东西还没确定编号。bibtex读取.aux里记录的引用键名去.bib里查对应的条目按.bst样式格式化输出.bbl文件。如果.aux里没有引用记录第一遍没跑或者编译失败bibtex会直接报错。第二遍pdflatex读入.bbl把参考文献列表排出来同时更新.aux里的编号信息。此时正文里的\cite能对上号了但章节和图表编号可能还有一轮变化。第三遍pdflatex把第二遍产生的新编号同步到所有交叉引用位置。为什么还需要第三遍因为参考文献列表变长会改变页码页码变了目录和引用又得更新一次。绝大多数情况下三遍就收敛了保险起见跑四遍。这套流程手工敲太麻烦所以我一直用latexmk它自动判断需要跑几遍latexmk -pdf -bibtex -interactionnonstopmode main.tex参数解释-pdf指定用pdflatex生成PDF-bibtex启用BibTeX处理-interactionnonstopmode让编译遇到错误不中断方便一次看到所有报错。日常开发加个-pvc开启持续监听保存文件自动重编译latexmk -pdf -bibtex -pvc main.tex清理中间文件用latexmk -C注意-C会连PDF一起删只想清中间文件用-c。提示nonstopmode下编译不会停但错误仍然记录在.log里。养成出问题先看.log的习惯用编辑器搜索!定位第一个错误——LaTeX的错误有连锁反应第一个错误之后的一大堆报错往往是它引起的修好第一个后面可能全消失。5.2 常见报错速查表下面这张表是我这些年攒下来的覆盖了九成以上的新手问题现象常见原因处理方式引用显示为[?]没跑BibTeX或.bbl未生成跑完整四步编译或直接用latexmk参考文献列表为空\bibliography{}路径错或.bib有语法错检查文件名不带.bib后缀看.blg日志图片不显示只有一个空框路径错、扩展名错、文件名大小写不符用相对路径Linux下严格区分大小写Undefined control sequence \IEEEPARstart没用IEEEtran文档类检查\documentclass那行File xxx.sty not found宏包没装tlmgr install 包名中文编译报错或乱码用了pdflatex编中文投稿一般避免中文确需中文用XeLaTeX配ctex表格/图片溢出到栏外宽度用了\textwidth双栏内改用\columnwidth页数莫名超了浮动体堆积、末页两栏不平衡加\balance调浮动体位置参数编译卡住不结束图片过大或死循环宏压缩图片到300dpi检查自定义宏字体嵌入警告PDF里有Type 3字体用pdffonts检查换图片格式重编交叉引用显示??.aux未更新再编译一遍确认没有中断的错误Too many unprocessed floats浮动体数量超过限制加\clearpage或调整位置参数这张表建议收藏。特别是第一条和第二条几乎每个新手都会遇到而且看起来吓人实际上就是编译顺序问题。5.3 从日志里读线索三个实战案例光看表格不够我举三个真实遇到过的场景讲讲排查思路。案例一图片编译后变成空白框。第一反应是路径错但路径明明对。打开.log搜索文件名发现一行警告File figs/result.PDF not found。问题是扩展名写了.PDF大写而文件实际是.pdf。Windows下不区分大小写Linux和在线平台区分本地能编、上传就崩这类问题在跨平台时特别多。解决办法所有文件名统一小写扩展名统一小写别用空格和特殊字符。案例二参考文献顺序和正文引用顺序对不上。检查.bib没发现问题.bbl里顺序却是乱的。原因是.aux文件残留了上一次编译的旧引用记录——你删掉了几条\cite但.aux还在。解决办法latexmk -c清中间文件重新完整编译。这类幽灵问题在频繁改稿时很常见清理重编基本都能解决。案例三投稿系统提示PDF字体未嵌入。本地看PDF一切正常上传后被拒。用pdffonts检查pdffonts main.pdf输出里有一列emb全是yes才合格。发现有no的通常是某张图片是从别的PDF里截出来的带了未嵌入的字体。解决办法把那张图重新导出成高分辨率PNG或者在导出PDF时勾选嵌入所有字体。6. 投稿前的自检、打包与提交流程内容写完、格式调好最后一公里反而是最容易出岔子的地方。投稿系统对文件的要求很具体不符合就是打回重传赶上截稿日就很被动。6.1 PDF层面的硬性检查上传前我会固定跑这几项检查。字体嵌入前面说过pdffonts main.pdfemb列全yes。这一项不过很多系统直接拒收。PDF版本有些系统只接受PDF 1.4到1.7。用pdfinfo main.pdf看版本号。pdflatex默认生成的版本通常没问题但如果你用了某些图片处理工具合并过PDF版本可能被改高。页面尺寸IEEE通常是US Letter。如果你本地默认是A4版面比例会有细微差异虽然多数情况能过但严格的书会要求Letter。在文档类选项里可以指定\documentclass[conference,letterpaper]{IEEEtran}页数逐页数一遍确认没超上限。注意参考文献和附录算不算页数不同会议要求不同去看征稿说明。作者信息与匿名要求双盲评审的会议要求正文和PDF属性里都不能出现作者信息。除了把\author{}块清空还要检查PDF元数据pdfinfo main.pdf | grep -i author如果有残留在导言区加\hypersetup{pdfauthor{},pdftitle{},pdfkeywords{}}需要hyperref宏包。注意hyperref要在大部分宏包之后加载位置放错会引发一堆奇怪的报错。6.2 源文件打包清单很多会议在录用后会要求提交源文件用于出版方重新排版。打包不是把整个文件夹压缩一下就完事得按清单来文件类别具体文件是否必须说明主文件main.tex必须确认能独立编译章节文件sections/*.tex视情况如果用了\input就必须带参考文献refs.bib必须通常还要带.bbl文档类IEEEtran.cls必须用官方原版别用修改过的文献样式IEEEtran.bst必须会议和期刊版本可能不同图片figs/*必须优先给矢量格式PDF/EPS编译产物.aux.log不要中间文件别塞进去生成结果main.pdf视要求有的系统单独上传不放进压缩包打包时有个细节把main.tex里的所有路径改成相对路径并且确认在解压后的新目录里能编译通过。我习惯的做法是解压到一个全新目录跑一遍latexmk能出PDF才算打包合格。这一步能抓出本地能编、换机器就崩的问题比如你引用了一个系统字体、或者依赖了某个没打包的图片。还有一个常被忽略的点.bib文件里的特殊字符。作者名里的重音符号、标题里的和%都要正确转义\、\%否则出版方那边编译会报错。我的一般做法是打包前把.bib通读一遍重点看标题字段。6.3 上传环节与几个实操心得投稿系统五花八门但流程大体一致填元数据标题、摘要、关键词、作者、上传PDF、上传源文件、确认作者顺序、生成预览、提交。几个容易出错的点作者顺序。系统里填的顺序必须和PDF里一致这个不一致在录用后改起来非常麻烦。提交前对着PDF首页核对一遍。摘要粘贴。系统里的摘要输入框通常不支持LaTeX公式把公式转成纯文本或者删掉。我见过有人直接粘贴带$...$的段落预览里显示成一堆美元符号。关键词。系统要求的关键词和论文里的IEEEkeywords是两回事前者用于分配审稿人要选准后者是排版用的。别混。预览确认。系统生成的预览PDF一定要下载下来看一眼有时候转换过程会把某些符号弄乱尤其是特殊字符和公式。这一步花两分钟能避免提交后才发现问题。注意提交前把整个工程目录复制一份存档命名带上日期和版本号。后续加实验、改稿、写回复都基于存档开新分支别在原始目录上直接改。这个习惯救过我一次——审稿意见要求补实验我在新分支上改原稿完整保留最后对比两个版本的差异非常方便。最后说点个人的体会。LaTeX这套东西前期的学习成本是实打实的我第一次配环境、改模板、调编译断断续续折腾了差不多两个周末。但之后每一篇论文从新建工程到出初稿格式我基本能控制在一小时内剩下的时间全花在内容上。这个投入产出比只要你打算认真做几年研究就是划算的。真要说有什么建议那就是别在环境上追求完美——能编译、能出图、能跑参考文献就够了。把精力留给那些真正影响论文质量的事情排版工具永远只是工具。