如果你最近在投Elsevier旗下期刊,八成会撞上这么一件事:期刊投稿系统要求参考文献必须按“作者姓氏+名字首字母缩写、年份、文章标题、期刊缩写、卷号、页码、DOI”的固定顺序排列,而你手头要么是Word自动生成的引用,要么是LaTeX模板里不知道哪里冒出来的乱码文献。这时候,Overleaf、EndNote、BibTeX这三个工具要是配合不好,光是格式就能让你改一下午。
这篇文章不是概念科普,而是基于我自己实际投稿Elsevier期刊的完整流程整理出来的一套操作方法。我会把三个工具各自负责什么、为什么要这样分工、每一步具体怎么点,以及我踩过的坑全部讲清楚。内容适合正在准备论文投稿的研究生、青年教师,也适合刚接触LaTeX不久、被参考文献折腾到头秃的科研新手。只要照着做,投Elsevier期刊的参考文献格式基本不会出大乱子。
1. 先理清楚:Overleaf、EndNote、BibTeX各自干什么,为什么能凑到一起
1.1 三个工具的“岗位分工”
先说人话版本。
Overleaf是一个在线LaTeX编辑平台,你不需要在本地装TeX Live,打开浏览器就能写论文,而且它内置了大量期刊官方模板,Elsevier旗下很多期刊都能直接在Overleaf里选到。
EndNote是文献管理软件,用来收集文献、整理文献库、给文献分组打标签。它最大的优势是支持从Web of Science、PubMed、Google Scholar等数据库批量导入文献记录,还能在Word里插入引文。
BibTeX则是一个独立的参考文献排版工具,它不参与论文正文排版,专门负责根据你在LaTeX代码里写的\cite{key}命令,从.bib文献数据库文件中提取对应条目,再按期刊要求的格式生成参考文献列表。
这三个工具的配合逻辑其实很简单:EndNote负责“管文献”,把参考书目整理干净;BibTeX负责“排文献”,解决投稿格式问题;Overleaf负责“写论文”,把正文和参考文献最终编译成一个PDF文件。
1.2 为什么这套组合比Word+EndNote更适合Elsevier投稿
很多人在纠结要不要放弃Word。我的观点是:如果期刊提供官方LaTeX模板,能用LaTeX就尽量别用Word。原因很实在,Elsevier的期刊模板对格式的控制是“硬编码”级别的,LaTeX会自动把参考文献目录、图表、公式都排列得整整齐齐,基本不需要手动调间距;而Word里你调整一个错位的参考文献编号,可能要连带改好几处。
另外,Overleaf和EndNote之间通过BibTeX搭桥,做到“一次整理、多处复用”。比如你同时投两个不同期刊,换模板后只需要换\bibliographystyle,参考文献列表的格式就会自动变化,不需要手动重排几百条文献。Word+EndNote虽然也可以切换style,但在复杂长文档里经常出现编号错乱、引文顺序不稳定问题。
当然,如果你是给导师提交论文初稿,导师更习惯Word批注修改,那么混合流程也完全可以:初稿用Word写、EndNote管文献,定稿后转Overleaf。但我的建议是投稿阶段直接走LaTeX路线,省心。
2. 投稿前必懂:Elsevier参考文献格式的底层规则
2.1 Elsevier对参考文献的硬性要求
Elsevier各期刊的参考文献标准样式略有差异,但大部分都遵循“编号顺序制”或“作者-年份制”,其中以“编号顺序制(numbered)”最常见。以我投过的几个期刊为例,格式化要求一般包括:
- 作者姓名:姓在前,名缩写在后,如“Zhang, X.M.”,姓与名缩写之间用逗号,多个作者用逗号分隔;
- 文章标题:首字母大写,不需要书名号;
- 期刊名称:期刊名缩写,不可写全称;
- 出版年份:用括号括起来,放在标题之后;
- 卷号、期号、页码、DOI依次排列。
举例来说,一篇标准文献在参考文献列表里长这样:
[1] J. van den Berg, Z. Wang, X. Zhang, et al., A review on energy consumption in data centers, Appl. Energy 302 (2021) 117512. https://doi.org/10.1016/j.apenergy.2021.117512.这个格式是否规范,完全取决于你用的style文件。EndNote里的Style文件和BibTeX的.bst文件就是干这个的。
2.2 BibTeX的样式体系
在Overleaf的Elsevier LaTeX模板里,通常已经预设了BibTeX样式。打开模板主文件,你会看到类似这样的代码:
\bibliographystyle{elsarticle-num} \bibliography{myrefs}elsarticle-num是Elsevier官方提供的编号制参考文献样式,也是大部分Elsevier期刊的默认格式。它的特点就是按正文引用顺序编号,实际操作中只要保证\cite命令位置正确,参考文献列表就能自动按序排列。
.bib文件则负责存放文献数据。一个最简单的BibTeX条目长这样:
@article{zhang2021datacenter, author = {Zhang, Xiaomei and Wang, Lan and Berg, J. van den}, title = {A review on energy consumption in data centers}, journal = {Applied Energy}, year = {2021}, volume = {302}, pages = {117512}, doi = {10.1016/j.apenergy.2021.117512} }这里每一项字段都要尽量填写完整,否则BibTeX在排版时会漏掉信息,或直接报警告。最关键的字段是author、title、journal、year、volume、pages、doi。有些新手习惯只填前四项,结果编译出来参考文献列表缺页缺卷,审稿人一眼就能看出不仔细。
提示:尽量不要手动创建
.bib文件,而是让EndNote自动导出。手动输入不仅容易打错字段,还会在处理特殊字符、重音符时留下隐患。
3. EndNote端准备:把文献库变成“投稿可用”的状态
3.1 下载正确的Elsevier输出格式
EndNote默认自带的Styles列表里,能看到“Elsevier (numeric)”等样式,但我建议你先别依赖旧版本自带的style,因为不同年份、不同子刊的格式细节会变。
正确做法是先去EndNote官网下载最新的Elsevier投稿样式。在EndNote官网的Styles页面搜索“Elsevier”,找到合适的.ens文件下载。下载后双击.ens文件,EndNote会自动把它安装到Styles目录下。然后打开EndNote,在“Tools > Output Styles > Open Style Manager”里勾选刚刚安装的样式,让它出现在快捷列表里。
如果你投的是Elsevier的子刊,比如Applied Energy、Journal of Cleaner Production这类,有的期刊官网会额外提供专属style文件,优先使用期刊给的那一版。我见过不少投稿人用通用的Elsevier样式导出的文献里,期刊缩写没有正常还原,就是因为样式文件和期刊专用术语表不匹配。
3.2 必做一步:搞定期刊缩写与Journal Term Lists
这里必须单独拉出来说,因为“EndNote X9导出文献格式没有缩写”这个问题几乎天天有人在论坛里问。
EndNote里有个功能叫“Journal Term Lists”,作用是把期刊全称自动替换成语料库里的缩写形式,比如把“Applied Energy”替换成“Appl. Energy”。如果你的文献里期刊名字是全称,而且EndNote没有匹配到对应的缩写术语表,导出的参考文献里就会出现全称期刊名,这不符合Elsevier的要求。
解决方式分两步。
第一步,打开EndNote,菜单栏选“Tools > Open Term Lists > Journals Term List”,查看已有的期刊缩写列表。里面如果没有你需要的期刊,手动添加:点击“Terms > New Term”,分别填写全称和两个缩写(JCR缩写和ISO缩写)。
第二步,从期刊官网或Elsevier的期刊名称缩写列表导入批量数据。网上也有人整理好的.txt术语表文件,直接通过“Lists > Import List”导入即可。
实际操作中,我习惯在投每个期刊前,先把该期刊近三年的参考文献列表里的期刊名都过一遍,在Term Lists里补上缺失的缩写。这个动作看起来很笨,但能规避绝大多数“文献格式没有缩写”的问题。
3.3 从EndNote导出BibTeX文件
EndNote里导出BibTeX的方法有几种,我最常用的是“File > Export”,然后在“Output Style”栏选择“BibTeX Export”。
导出的.txt文件其实内容已经是.bib格式,你把它重命名成.bib就能直接用了。注意导出的文件默认可能是UTF-8编码,在Overleaf里基本没问题,但如果本地用老旧的TeX编辑器,可能会遇到编码问题。建议导出后先用文本编辑器打开,确认中文和特殊符号没有变成乱码,再上传到Overleaf。
中文文献是另一个容易出问题的点。EndNote导出的BibTeX里,中文作者名和中文标题会被原样保留成汉字,这时编译BibTeX大概率会报错。我的做法是:在EndNote里先把中文文献的作者名做成拼音,标题保留英文翻译或直接写Chinese Title字段,再导出。这样做虽然信息不够完整,但能保证编译通过、格式稳定。
4. Overleaf端实操:从空项目到能编译出规范参考文献
4.1 复制Elsevier官方模板,而不是从零搭建
不要自己做模板,强烈建议你去Overleaf模板库直接搜索“Elsevier”,选择官方维护的Elsevier Article (elsarticle)模板,点击“Open as Template”即可。
这个模板自带elsarticle.cls和elsarticle-num.bst等核心文件,还包含了sample.tex和sample.bib,能直接编译出一个完整示例。很多人第一次打开模板会有点懵,不知道哪些文件该删哪些该留。我的建议是:先保留所有文件,编译通过后,再把sample.tex里的正文内容替换成自己的章节结构。
从模板起步有几个好处:参考文献样式不用自己调整,模板的脚注、图表positioning都配置好了,而且Overleaf自带的编译器环境一般都能直接跑通,不用额外安装宏包。
4.2 把bib文件放进去并在TeX文件中声明引用
在Overleaf项目里,点击左上方“Menu”,可以上传.bib文件。如果你在本地已经通过EndNote导出了myrefs.bib,上传后在文件列表里能看到。
然后打开.tex主文件,在文档结束的\end{document}前加上:
\bibliographystyle{elsarticle-num} \bibliography{myrefs}elsarticle-num可以替换成其他样式,比如作者-年份制的elsarticle-harv。实际投Elsevier时,期刊要求用哪种样式,就会在投稿指南里写明,如果不确定,可以先默认用elsarticle-num。
接下来是引用操作。在正文需要插入引文的位置写:
The energy consumption of data centers has become a major concern \cite{zhang2021datacenter}.注意这个zhang2021datacenter必须和.bib文件里某个条目的key完全一致,区分大小写和后缀。我见过不少人编译后参考文献列表空白,检查半天,才发现.bib里key写的是Zhang2021而.tex里引用的是zhang2021。
4.3 编译时如何查看BibTeX日志
在Overleaf里,你按“Recompile”后,系统会自动执行pdflatex → bibtex → pdflatex → pdflatex多轮编译。日志区里能看到一段类似这样的输出:
This is BibTeX, Version 0.99d (TeX Live 2022) The top-level auxiliary file: main.aux The style file: elsarticle-num.bst Database file #1: myrefs.bib很多新手看到这串英文以为报错了,其实这是正常现象,是BibTeX在告诉你“我读了哪个aux文件、用了哪个bst样式、加载了哪个bib数据库”。真正出问题的情况是后面出现:
Warning--I didn't find a database entry for "zhang2021"或者说:
There were undefined references.如果出现这些提示,就需要回到.bib文件检查对应条目的key是否一致,或者检查.bib文件是否成功上传、文件名是否在\bibliography{}里写对。记住不要在文件名里带空格或中文,避免各种奇怪问题。
4.4 修改和修订阶段:Overleaf修订模式怎么配合
投稿后如果编辑部要求大修、小修,修改稿阶段经常需要标注出“哪些地方做了修改”。虽然参考文献格式不需要用修订模式标出,但修改稿的diff文件会让审稿人觉得你很细心。Overleaf的“Review”功能可以对比不同版本之间的差异,把改动用红字显示。操作方法是在菜单里找到“Review”,创建新的Review版本,再把你修改后的文本粘贴进来,系统就能自动生成修订对比。
这里提一个经验:改参考文献格式时,尽量不要在修订模式下直接改正文的\cite位置,因为编号是自动生成的,新增或删除一篇引用,后面的所有编号都会变。审稿人如果看到红字里全是编号变化,会觉得你动了全文,会招来多余的质疑。正确的做法是:把新加文献的\cite放在正文对应句子的标点前,一次编译后,在对编辑的Response里说明“引文编号为自动更新,新增了第X、Y篇参考文献”即可。
5. 常见报错与日常问题排查实录
5.1 编译日志常见信息速查表
我把日常使用中最常遇到的几类提示和解决方法整理成了表格,方便你对照排查:
| 日志信息 | 含义 | 处理方式 |
|---|---|---|
This is BibTeX, Version 0.99d... The top-level auxiliary file: main.aux | BibTeX正常启动,正在读取文件 | 无需处理,属正常输出 |
I didn't find a database entry for "XXX" | .bib中没有找到该key对应的条目 | 检查.tex中的\cite{XXX}和.bib中的key是否一致 |
There were undefined references | 存在无法解析的引用 | 重新编译,正常情况下多编译两次会消失;若仍在,检查\bibliography{}路径 |
The style file: elsarticle-num.bst | 正在使用该bst样式 | 确认与期刊要求一致 |
Repeated entry | .bib中出现了重复条目 | 打开.bib删除重复的@article{...}块 |
Warning--I didn't find a database entry for ... | 引用了不存在或拼写错误的key | 在Overleaf中按Ctrl+F查找key并修正 |
Missing $ inserted | .bib标题或作者名中含有特殊符号,如&、%、_ | 在特殊符号前加\转义,如\& |
这份表格我在本地用A4纸打印了一份贴在工位上,写论文时基本当“速查手册”用。Overleaf的日志窗口虽然不会弹出一堆红字,但只要有Warning,最好一条条看完再继续写。
5.2 EndNote安装和网络相关问题怎么处理
“EndNote安装”这个话题看起来简单,但我在不同电脑上装了无数遍,踩过的坑不少。最常见的两个问题:
第一个是安装时提示“EndNote is waiting for user”。这通常出现在安装界面弹出了某个自定义选项、或者是许可证激活窗口被遮挡的时候。注意看一下任务栏里有没有闪烁的小窗口,点进去确认就能继续。如果始终卡住,建议先关闭杀毒软件或安全卫士,再以管理员身份运行安装程序。
第二个是“EndNote安全频道支持出错”这类报错。遇到这个问题,优先检查EndNote版本是否过旧、系统证书是否过期,以及网络连接是否正常。可以尝试在EndNote里点击“Help > Check for Updates”,或者直接卸载后安装最新版。如果更新后仍报错,多半是系统时间不对或网络环境里有干扰,把电脑放到常规网络环境下重试。
5.3 PubMed文献如何精准导入EndNote和BibTeX
你可能会想:为什么单独提PubMed?因为很多生物、医学、环境科学领域的Elsevier期刊,参考文献大量来自PubMed数据库。而PubMed默认导出的格式和EndNote、BibTeX之间有一个“最后一次转换”的坑。
在PubMed检索结果页面,勾选需要的文献,点“Send to”,在“Choose Destination”里选“Citation Manager”,Format选择“PubMed (NLM)”格式,然后直接下载.nbib文件。这个.nbib文件双击后能直接用EndNote打开,文献信息几乎无损导入。
如果要把PubMed文献转成BibTeX,最省事的路径是:先用EndNote导入.nbib,再通过EndNote导出成BibTeX格式。不要直接从PubMed导出“CSV”或“RIS”,然后试图让BibTeX读取,字段映射很可能错乱,最后参考文献列表里会多出一堆不需要的字段。
实际经验:无论从哪个数据库导入,进EndNote后都要随手筛查一遍“Author”字段。数据库里常见的“张三, Li, Yan”这种姓名格式如果不清理,导出BibTeX后BibTeX会把人名解析成彼此独立的作者,参考文献缩写出问题就在所难免。
5.4 中文文献在BibTeX里显示乱码怎么处理
中文文献混排在英文文献里,是很多国内科研人都会遇到的问题。Elsevier期刊一般不接受中文文献作为参考文献,但在写开题报告、学位论文阶段,你经常需要本地使用BibTeX管理中文文献。
BibTeX原生不支持中文,除非你用XeLaTeX和ctex宏包,否则中文文献大概率变乱码。我的处理方案是:对于本地学位论文,直接用XeLaTeX编译,.bib文件保持UTF-8编码,中文就能正常显示。如果投稿Elsevier,则不建议在.bib里放中文文献,而是把关键中文文献的信息转译成英文格式,并在文稿中说明中文原意。
另外补充一点:在EndNote里编辑中文文献时,不要直接在“Title”里混入汉字和LaTeX特殊字符。导出BibTeX后,你还需要手工检查一遍中英文混合的title,给汉字部分加上\texorpdfstring之类的保护命令,但这个操作比较高级,新手别轻易尝试,直接转译为英文最稳妥。
5.5 审稿人要求修改引用编号或缩写怎么办
有时候大修意见会包含“请将参考文献中的期刊缩写补充完整”或“引用编号请按照期刊要求采用顺序编号制”。这种修改分两种情况。
如果是格式问题,比如当前用的bst样式是elsarticle-num但期刊实际要求作者-年份制,你只需要改\bibliographystyle{}为期刊指定的样式,然后重新编译。EndNote端不需要动,因为.bib是数据文件,与样式无关。
如果期刊要求“参考文献中必须包含文章的DOI”,但当前.bib条目里没有这一项,那就需要回到EndNote,为缺失的记录补全DOI字段,并重新导出BibTeX。不要试图在Overleaf的.bib里手动添加一行doi = {...},虽然也可以,但很麻烦,不如直接在EndNote里补齐数据,保证EndNote库本身也是最新、最完整的。
6 个人经验:这套流程里我最想提醒你的几个细节
整套流程走下来,有一件事我很后悔没有早一点做:在开始写正文之前,先花半小时把EndNote文献库整理干净。这里的“干净”指的是:每个条目的作者、标题、期刊、卷号、页码、DOI都完整,且没有重复项。如果一开始不整理,到论文写了一半时再回头补数据,工作量会翻倍。
另一个细节是:每次编译完,养成滚动日志的习惯。Overleaf的日志区不会主动弹窗报错,很多Warning藏在后面,你不主动看就很容易忽略。尤其是“I didn't find a database entry”这类提示,它影响的可能只是某一条引文,但如果不处理,参考文献列表缺条目会直接拖累投稿进度。
最后,关于EndNote和Zotero之争,其实没必要纠结哪个更好。如果你已经用顺手了EndNote,那继续用就好;如果你还在起步阶段,Zotero的免费和跨平台确实有吸引力。但如果你要投的期刊刚好提供LaTeX模板,整个“EndNote导出BibTeX、Overleaf编译”这套流程依然离不开对.bib数据库的依赖,这时候选择一个文献管理软件并用好它,比换来换去更重要。
试过几次之后你就会发现,参考文献格式并不难,难的是一开始就把这条路理顺。希望这篇避坑指南能帮你少走一段弯路。