Elsevier期刊投稿LaTeX排版全攻略:从elsarticle模板到修订模式
第一次向Neurocomputing投稿时我差点在排版上栽了跟头。辛辛苦苦写了三个月结果因为\author命令里的可选参数顺序不对编辑直接把稿件退回连送审都没送。这件事让我明白Elsevier期刊排版不只是“把PDF生成出来”这么简单它有一套自己的格式协议。后来我把这套流程完整跑通了几次从环境搭建、elsarticle模板到最后的修订模式都踩过一遍所以想写一篇能直接照着做的经验帖给准备投Neurocomputing或同类Elsevier期刊的人省点时间。这篇文章不是LaTeX零基础教程而是围绕投稿Neucocomputing时最常被卡住的几个环节模板选择、环境配置、作者信息、图表公式、参考文献、修订模式。我把实际踩过的坑一条条写出来适合那种已经会用LaTeX写文章、但第一次准备投Elsevier期刊的人。如果你还在用Word硬刚也可以拿去说服自己换工具。1. 为什么我劝你别再用Word硬刚elsarticle模板与Neurocomputing的格式协议1.1 期刊Guide for Authors里没写明的分工逻辑Neurocomputing的投稿指南很长但真正规定排版细节的部分并不详细。它不是不要求而是默认“你要用LaTeX”或者“你要会用Word样式”。Elsevier系每年要处理几千篇投稿内部排版系统对LaTeX稿件有天然偏好公式、图表引用、参考文献都能自动抽取编辑加工成本低。Word稿件也能投但编辑要花更多时间校对格式一旦你的行号、字体、图表位置和预期不符退回重投的概率就高很多。所以我的建议很直接如果你投的是Neucocomputing这种计算科学类期刊直接用LaTeX写正文用官方模板elsarticle。这不是老派教条而是省事。你不需要手动调页码、不需要自己数行号、不需要折腾参考文献样式模板把这些全部封装好了。1.2 拿到模板包先做三件事很多新手从网盘或旧电脑里翻出一个elsarticle.cls版本可能停留在2.0时代然后辛辛苦苦写完才发现和Editorial Manager系统不兼容。正确做法是去期刊主页或Overleaf模板库重新拉一份当前模板包。一份标准的Neucocomputing模板包里通常有elsarticle.cls核心文档类决定整体版式elsarticle-template.tex示例主文件别急着清空model1-num-names.bst数字型参考文献样式model1-harv.bst作者年份型参考文献样式cas-sc.cls或cas-dc.cls有些Elsevier期刊新版在用但Neurocomputing目前仍走elsarticle拿到模板后先做三件事第一直接编译原始模板确保你的LaTeX环境能跑通第二看示例里\begin{frontmatter}到\end{frontmatter}之间的结构不要删除任何看起来“多余”的指令第三查一下下载到的.cls文件版本确保和你投稿系统要求的年份对应。我见过有人用了过老的elsarticle版本结果\cortext和\fnref在新系统里解析不出来首页脚注全部乱掉。1.3 Word和LaTeX在投稿场景下的对比做一个直观对比供还在纠结工具的人参考对比项WordLaTeX elsarticle行号手动加或依赖审阅模式preprint选项自动生成参考文献手工调整困难BibTeX一次生成公式编号编号易错\ref自动交叉引用图表浮动位置不稳定浮动体机制成熟与投稿系统兼容偶发格式错位元数据抽取稳定这不是说Word不能投而是说投稿这种需要反复修改的场景LaTeX的“文本编译”模式天然更适合。尤其在修订阶段改动文本后行号、引用编号会自动更新这是Word很难做到的。2. 本地环境搭建TeX Live发行版与VSCode插件的实际配置过程2.1 发行版选择为什么推荐TeX Live完整版“latex安装教程”是搜索热词说明太多人卡在环境第一步。如果你只想投Neucocomputing我推荐本地装TeX LiveWindows/Linux或MacTeXmacOS不建议装精简版。原因很简单elsarticle会调用\lineno、\amsmath、\graphicx、\booktabs、\url等常用宏包精简版缺了这个缺了那个编译一个报错一个报错后你还要再装宏包流程非常折腾。安装时选择完整scheme是省心方案。硬盘占用虽然大但换来的是“不会再因为缺宏包而中断工作流”。Overleaf也很方便但本地编译能提前发现依赖问题比如有些自定义宏包和elsarticle冲突时Overleaf不一定给你清晰的日志。对于经常写论文的人本地环境是值得投入的。2.2 VSCode LaTeX Workshop的配置片段编辑器选VSCode加LaTeX Workshop插件基本是社区主流。安装后打开设置JSON配置里建议直接覆盖这几个核心字段{ latex-workshop.latex.recipes: [ { name: latexmk, tools: [latexmk] } ], latex-workshop.latex.tools: [ { name: latexmk, command: latexmk, args: [ -synctex1, -interactionnonstopmode, -file-line-error, -pdf, -outdirout ] } ], latex-workshop.latex.option.maxPrintLine: 1000, latex-workshop.view.pdf.viewer: tab }这里有个重点-outdirout是可选设置但如果加了所有编译的中间文件会进入out/目录最终PDF也在里面。好处是根目录保持干净坏处是如果你用latexmk的-c清理时要把outdir一并指定。我自己是喜欢用outdir因为投Neucocomputing时经常要同时维护原稿、修改稿和cover letter根目录太乱容易找错文件。编译命令用pdflatex即可。elsarticle默认字体就是Computer Modern不需要xelatex。除非你插入了特殊中文字体或Unicode符号否则别自找麻烦换引擎。2.3 常见编译错误与排查顺序LaTeX报错信息很长但很多是误导。常见的几类缺宏包错误包含File xxx.sty not found。解决安装对应宏包或者改用scheme-full重装。计数器溢出Counter too large通常是用了字母编号的地方内容太多比如列表超过26项。引用警告There were undefined references说明没跑bibtex或者bibkey不一致。浮动体错乱Float too large for page不是致命错误但会让图表飞到后面需要调整大小或位置。排查顺序建议先看日志中第一个错误不要往后翻。第一个错误往往是根因后面的错误经常是由它连锁导致的。用VSCode的LaTeX Workshop时按住Ctrl点错误行可以跳转到编辑器对应位置比在日志里翻方便很多。3. 作者信息区排版通讯作者、基金标注和左侧照片的实现细节3.1 多作者、通讯作者和affiliation的对齐规则Neurocomputing论文动辄四五个作者作者信息区的格式错误非常容易被编辑挑出来。elsarticle的frontmatter里写法很固定\begin{frontmatter} \title{Your Title} \author[aff1]{First Author}\cortext[cor1]{Corresponding author} \author[aff2]{Second Author} \address[aff1]{Department of ..., University ...} \address[aff2]{School of ..., Institute ...} \end{frontmatter}注意几点。第一\cortext[cor1]要放在对应作者后面表示通讯作者标记不要单独写在标题下面。第二同一个作者有多个单位时\author[aff1,aff2]{...}要这样写单位顺序和论文首页显示顺序一致。第三如果作者姓名里有特殊字符比如带点或重音用\{e}等LaTeX命令不要直接复制Word里的Unicode字符。每次提交前我都用一个小技巧把PDF首页的作者姓名和投稿系统里填写的作者列表逐字对照。这种事情看起来不起眼但编辑送审前要确认作者列表一旦不一致邮件来回就能拖两三天。3.2 biography环境作者简介照片如何在文字左侧热词“latex 图片局右”或“作者介绍文字左侧加照片”指的都是期刊接收后常要求的Author Biography。在elsarticle模板里这个功能由biography环境提供\begin{biography}{Zhang San} \includegraphics[width3cm]{photo.jpg} Zhang San received the B.S. degree ... \end{biography}编译后照片会自动出现在文字左侧文字环绕在右侧。这个环境的内部实现是一个浮动框加\includegraphics所以你不用自己手动做文字绕排。需要注意三点照片文件名不要包含空格或中文否则编译时报找不到文件。width3cm只是一个经验值最终以期刊版面要求为准一般Template里会给出建议尺寸。biography环境应该放在正文之后通常在每个作者的介绍段落前加一个\section*{Biography}或者直接放在\appendix里不要放在frontmatter中。有些Elsevier期刊尤其新刊已经不在PDF里放作者照片而是要求投稿系统单独上传。投Neucocomputing前一定要看一眼Guide for Authors别辛辛苦苦排版完编辑告诉你这些内容不需要放进里PDF白做。3.3 基金脚注、ORCID与首页元数据基金项目信息在Neucocomputing稿件中通常以首页脚注形式出现。elsarticle的经典做法是\author[aff1]{Zhang San}\fnref{fn1} \fntext{fn1}{This work was supported by ...}\fnref和\fntext必须成对出现位置分别放在author行和frontmatter内部。ORCID同理用\author[aff1]{Zhang San}[orcid0000-0002-xxxx-xxxx]但不是所有期刊都要求。Neucocomputing目前对ORCID是“建议填写”不是强制项。我踩过的坑把这些脚注内容写在\thanks里。elsarticle对\thanks的支持不像传统article类那样好有时会编译不出来有时会跑到作者下面而不是页脚。统一用\fnref才稳。4. 图片、表格和公式编号正文排版里换回审稿人好感的细节4.1 图片浮动“局右”与\FloatBarrier的正确理解“latex图片局右”这个搜索词背后通常有两种需求一是想把小图放在页面右侧二是想控制浮动位置。先说前者figure环境默认居中真要局右可以这样\begin{figure}[htbp] \centering \begin{minipage}{0.5\linewidth} \raggedleft \includegraphics[width\textwidth]{fig1.pdf} \end{minipage} \caption{A right aligned figure.} \label{fig1} \end{figure}但我不建议在投稿稿里随手局右。期刊排版讲究统一审稿人更在意图片内容是否清晰而不是花样对齐。真正有用的是\FloatBarrier来自placeins宏包。它在\section前插入一个“浮动体屏障”强制前面的图片表格先输出避免图跑到下一节去。Neucocomputing对图片放置没有硬性要求但审稿阶段如果图和文字错位得离谱观感会差很多。\FloatBarrier可以缓解这种问题。图片尺寸方面记住一个原则用\linewidth、\textwidth这种相对大小不要写死3in。因为preprint是单栏final可能是双栏同一个表达式在两种版式下都能自适应写死大小很容易溢出。4.2 三线表与表格宽度的处理建议Elsevier期刊整体偏好简洁的三线表。用booktabs宏包顶部\toprule、中间\midrule、底部\bottomrule不要画竖线。示例\begin{table}[htbp] \centering \caption{Experimental results.} \label{tab:results} \begin{tabular}{lcc} \toprule Method Accuracy Time(s) \\ \midrule Baseline 0.85 12.3 \\ Proposed 0.94 9.8 \\ \bottomrule \end{tabular} \end{table}表格宽度不好控制时用tabularx环境配合X列更灵活\begin{tabularx}{\textwidth}{lXX}如果数据宽度超过\textwidth不要硬缩字号先检查列内容能不能精简。用\resizebox{\textwidth}{!}{...}强行缩放虽然能塞进去但字体大小会和正文不一致出版阶段会被专业排版人员嫌弃。审稿人不一定能看出来但编辑看出来就不太好。4.3 公式子编号(1a)(1b)的实现和误区想要公式编号变成(1a)、(1b)最标准的做法是amsmath的subequations环境\begin{subequations} \begin{align} x a b \\ y c d \end{align} \end{subequations}两个方程分别得到(1a)和(1b)。如果只有一个公式想直接得(1a)可以这样\begin{subequations} \begin{equation} z x y \end{equation} \end{subequations}生成的编号就是(1a)下一组subequations会重新从1a开始因为计数器被重置了。需要说明的是有些期刊不喜欢子编号但在数学、控制、机器学习领域非常常见Neurocomputing完全接受。不建议用\tag{1a}硬编码。\tag适合特殊情况但在后续修改插入公式后会乱。用subequations是自动的删掉某个公式后后面的编号会跟着变省心很多。公式引用统一用\eqref输出会带括号\eqref{eq1}显示为(1a)比\ref好看。5. 文献引用与BibTeX一次编译顺序解决参考文献消失问题5.1 选bstnum还是harv看期刊要求走Neucocomputing目前一般采用数字引用格式。模板包里的model1-num-names.bst就是干这个的。在你的主文件的参考文献部分写\bibliographystyle{model1-num-names} \bibliography{refs}如果期刊要求作者年份格式就把bst换成model1-harv.bst。注意不要在自己电脑里随便选一个通用的plain.bst或ieeetr.bst虽然能编译但引用输出样式和Neucocomputing的期望不一致编辑会要求返工。5.2 .bib条目里的那些“隐性炸弹”.bib文件看起来简单但最容易隐藏问题。第一同一作者同一年发表两篇论文必须在year后面加字母article{zhang2023a, author {Zhang, San}, title {...}, journal {...}, year {2023} } article{zhang2023b, author {Zhang, San}, title {...}, journal {...}, year {2023} }如果不加BibTeX会生成两个相同标签引用处会显示成?而且日志里的警告不容易被注意到。第二URL字段里的下划线、百分号要转义尽量用\url{}宏包包裹。第三作者姓名建议全写Last, First格式Elsevier的bst会对姓名重新排版你写Zhang, S.和Zhang, San得到的输出可能不一样。第四pages字段不要用p. 12-18这种写法直接写12--18两段数字之间要用双连字符否则页码看起来不专业。5.3 编译顺序和引用不显示的排查“latex如何加入参考文献”是经典热词本质上是编译顺序问题。必须按这个顺序跑pdflatex main.tex bibtex main pdflatex main.tex pdflatex main.tex第一次pdflatex生成aux文件bibtex读取aux并生成bbl第二三次pdflatex把引用写进PDF。如果在VSCode里用LaTeX Workshop的latexmk配方这个顺序是自动的不用管。但如果你用命令手动编译漏掉bibtex这一跑就会看到正文里引用全是[?]。如果按顺序跑了还是显示问号检查两件事第一主文件里是否漏写了\bibliography{refs}第二.bib文件里的标签是否大小写不一致。还有个别情况是文件编码问题.bib文件必须保存为UTF-8用Windows记事本存成GBK会导致中文注释乱码进而解析失败。6. 修订痕迹与投稿前自检别在最后一公里翻车6.1 LaTeX没有“修订模式”changes包、trackchanges与latexdiff很多人搜“latex 修订模式”但LaTeX并没有Word那种实时修订模式。替代方案有三个changes包用\added{text}、\deleted{text}、\replaced{new}{old}标注修改最终版本可以用\ufinaltrue关闭标记。trackchanges包类似但需要预定义各类作者的标记颜色。latexdiff命令行工具对修改前后的两个main.tex生成一个带高亮的新.tex文件。我建议在回复修改稿时用changes包因为它语法简单审稿人看到高亮和颜色就知道哪里改了。引用宏包后这样写\usepackage[final]{changes} ... \added{The newly added sentence.}在投稿前重新编译时如果期刊要求“clean version”把[final]改成[draft]或者用\setkeys{changes}{finalfalse}关闭标记再编译一次。这里有个坑颜色在高亮版本中很直观但在黑白打印时可能看不清所以不要只依赖颜色最好结合下划线样式。我自己也常用latexdiff尤其面对多轮修改时它的优势是能自动对比新旧版本不用手写\added。但latexdiff对大文件有时会排版出错尤其是包含复杂表格或TikZ图时经常需要人工修差分后的tex。如果投Neucocomputing的修改稿一般只要求标注本轮修改不是历史全纪录所以没必要对比太旧版本。6.2 行号、PDF元数据与字体嵌入检查修改稿提交前一定要用preprint选项编译\documentclass[preprint,12pt]{elsarticle}这个选项会自动加行号方便审稿人在审查意见里写“第123行”。如果看到PDF里没有行号检查你是不是用了final选项或者模板版本里还需要手动加\usepackage{lineno} \linenumbers还有一个容易被忽略的点PDF元数据。Editorial Manager会上传PDF并自动读取标题、作者如果元数据是空的系统会提示你手动补。elsarticle的frontmatter会自动把\title和\author写入PDF元数据但如果你的题目中有特殊符号比如或_需要在元数据层面用\texorpdfstring避免字符冲突。字体嵌入问题在LaTeX里不常见但如果你用了pdflatex并在图片中嵌入了非嵌入字体Acrobat属性里能看出来。投稿前用PDF阅读器检查一下字体属性确保所有字体都是Embedded。6.3 给Editorial Manager打包上传时的文件清点在Neucocomputing的投稿系统里除了PDF外你还要上传源文件。通常建议打包成一个zip里面包括主tex文件.bib文件.cls和.bst文件所有图片文件可能需要的elsarticle-num.bst等样式文件不要在zip里放out目录、.aux、.log等编译中间文件这些会给系统处理增加麻烦。上传后系统会重新编译PDF如果编译失败会在投稿状态里显示错误。我遇到过一次性上传全部文件后编译失败的情况最后检查发现是主文件里引用了本地绝对路径系统里根本没有那个目录。所以投稿前最后检查一下所有\includegraphics的路径都应该是相对路径文件名不含空格。再分享一个我自己的习惯投稿前用LaTeX Workshop的Clean辅助功能清理一次中间文件然后重新完整编译一遍确认从零状态能复现PDF。这个过程能筛掉百分之八十的“我电脑上能跑投稿系统不能跑”的尴尬。就我个人体会Neucocomputing的排版难关从来不在LaTeX本身而在你对模板细节的耐心程度。把上面这几块提前处理好后面每轮修改其实都很快。