目录
一、下载模板包
通过以下链接下载模板文件:
https://mirrors.ctan.org/macros/latex/contrib/elsarticle.zip
进入overleaf界面,左上角点击New project 创建新项目,然后找到Upload project上传项目。
选择刚刚下载的压缩包文件,注意不需要解压缩,直接选择文件上传即可。上传Overleaf后会自动解压缩。
二、模板包说明
Overleaf打开上传的模板文件后,会有以下文件:
1、主要文档类文件
文件名 | 说明 |
---|---|
elsarticle.cls | 主类文件,定义了 \documentclass{elsarticle} 的排版规则。你文档的编译核心。 |
elsarticle-template-num.tex | 数字引用风格的示例主文件(参考文献为 [1], [2]...)。推荐新手从这个文件入手。 |
elsarticle-template-harv.tex | 作者-年份引用风格示例,如 (Smith et al., 2020) 。 |
elsarticle-template-num-names.tex | 数字+作者风格,如 [1] Smith et al. 。 |
elsarticle-num.bst | BibTeX 样式文件,对应数字引用格式 [1] 。 |
elsarticle-num-names.bst | BibTeX 样式:数字 + 姓名格式 [1] Smith et al. 。 |
elsarticle-harv.bst | BibTeX 样式:作者-年份风格。 |
elsarticle.cls文件在包里面找不到,因为已经内置在系统里了,不需要额外下载。
2、测试 & 示例文件
文件名 | 说明 |
---|---|
elstest-1p.pdf , elstest-3p.pdf , elstest-5p.pdf | 1-column、3-column、5-column 样式测试输出文件 |
elstest-1pdoubleblind.pdf | 双盲审稿格式演示 |
elsdoc.pdf , elsdoc.tex | 官方说明文档及源码,说明如何使用模板和各项命令 |
1pseperateaug.pdf , 1psingleauthorgroup.pdf | 额外结构示例 |
3、支持宏包和工具
文件名 | 说明 |
---|---|
pdfwidgets.sty | 支持 PDF 表单控件(极少使用) |
rvdtx.sty | 帮助生成 .dtx 文档说明文件 |
makefile | 用于 Linux 命令行下 make 自动化构建(可忽略) |
4、其他辅助文件
文件名 | 说明 |
---|---|
README | 模板包说明 |
manifest.txt | 模板文件清单 |
changelog.txt | 模板历史更新说明 |
elsarticle.ins , elsarticle.dtx | 用于生成 .cls 文件的源文件,非日常写作所需 |
其他文件用不上都可以删除,我这里只保留elsarticle-num.bst 和elsarticle-template-num.tex。根据自己的期刊所要求的参考文献样式保留对应的模板文件。
三、模板tex文件使用
1、导言区
1.1、文档类声明
\documentclass[preprint,12pt]{elsarticle}
-
elsarticle
: Elsevier标准文档类 -
preprint
: 预印本模式(单栏布局) -
12pt
: 基本字体大小
这一部分不需要自己进行修改,使用默认的。
1.2、常用宏包加载
\usepackage{amssymb} % 提供数学符号
\usepackage{amsmath} % 提供公式环境
根据自己的需要添加宏包。
有的教程会添加 \usepackage{graphicx} 实际上现在的版本已经给内置了,不需要添加。
列出常用宏包,可以按需添加:
- \usepackage{hyperref} 添加超链接、目录跳转、参考文献跳转等
- \usepackage{caption} 控制图表标题格式
- \usepackage{subcaption} 多子图
- \usepackage{cleveref} 自动识别引用类型(图、表、章、节),如 Fig. 1、Table 2
1.3、期刊名称
\journal{Nuclear Physics B}
将里面的期刊名字,换成自己的投稿的期刊名。
2、文档内容
\begin{document}
...
\end{document}
文档内容,将前置部分和正文内容包含在里面。这里不用更改,知道即可。
3、前置部分
\begin{frontmatter}
...
\end{frontmatter}
-
frontmatter
是 Elsevier 模板特有结构,用于组织论文前置内容(标题、作者、摘要、关键词、亮点等); -
graphicalabstract
和highlights
是 Elsevier 的可选要求,不投稿可以删除; -
\sep
用于在关键词之间添加逗号。
这里不用更改,知道即可。
3.1、标题
\title{}
在里面输入自己文章的标题。
3.2、作者
\author{}
例如:
\author[1]{Zhang San\corref{cor1}}
\ead{zhangsan@zzia.edu.cn}
\cortext[cor1]{Corresponding author.}
\author[2]{Li Si}
\author[1]{Wang Wu}
\affiliation[1]{
organization={School of Information Engineering, University of AA},
city={Zhengzhou},
postcode={450046},
state={Henan},
country={China}
}
\affiliation[2]{
organization={School of Computer Science, University of BB},
city={Hangzhou},
postcode={310014},
state={Zhejiang},
country={China}
}
按照这个模板写即可。
3.3、摘要
\begin{abstract}
...
\end{abstract}
在里面填入论文的摘要内容。
3.4、图文摘要
\begin{graphicalabstract}
...
\end{graphicalabstract}
一般不用填写,看期刊要求填写。
3.5、亮点
\begin{highlights}
\item Research highlight 1
\item Research highlight 2
\end{highlights}
一般不用填写,看期刊要求填写。
3.6、关键词
\begin{keyword}
...
\end{keyword}
关键词之间用\sep隔开。\sep
用于在关键词之间添加逗号。
例:
\begin{keyword}
aaa \sep bbb \sep ccc
\end{keyword}
4、正文
在对应的各级标题下,添加内容。
例:
\section{Example Section} %一级标题
\label{sec1}
\subsection{Example Subsection} %二级标题
\label{subsec1}
\subsubsection{Mathematics} %三级标题
如果想另起一行,空出一行即可。
例:
如果出现浮动的图表把原本正文的位置占了,可以通过以下步骤强制排版。
导言区添加以下宏包:
\usepackage{placeins}
主要作用是控制浮动体(如图、表格)的“漂浮行为。
然后在需要固定的地方,加入以下代码,就可以阻止,图表的移动越界。
\FloatBarrier
\FloatBarrier
的作用就是设定一个“屏障”,让所有浮动体必须在这个位置之前输出完毕,之后才可以继续新的内容。
5、公式
5.1、 公式插入
将自己编辑好的公式,截图给AI工具,让它给转换为Latex格式。将Latex格式的公式,添加到自己文件中对应的位置。记得查看是否和原公式一致,不一致将其更改。插入的公式会按照先后顺序自动编号。
例:
\begin{equation}
f(x) = (x+a)(x+b)
\label{eq:1}
\end{equation}
如果不想要自动编号,将\begin{equation}...\end{equation}改为\begin{equation*}...\end{equation*}
例:
\begin{equation*}
f(x) = (x+a)(x+b)
\label{eq:1}
\end{equation*}
- 如果想要正文部分的文字是公式的形式,用$...$将其放进去。
- 希腊字母的使用,也需要用$...$,再加上\字符。
- 有的字符由于与定义的字符会产生冲突,也需要用\,作为区分。例如:%作为注释,要想在正文中出现需要加反义字符\。
例:
5.2、 公式引用
使用 \eqref 引用公式。
例:
注:引用的公式一定要有 \label 定义标签,不然无法引用。
6、图片
6.1、 图片插入
单图
例:
\begin{figure}[t]
\centering
\includegraphics[width=1.0\linewidth]{figures/fig1.jpg}
\caption{aaaa.}
\label{fig1}
\end{figure}
[t]表示图片放置在页面顶部
[ ] 这里用于设置图片显示位置的优先级,有以下四个位置,可以填一个或者多个,软件按设定的优先级顺序进行排版:
- t:顶部(top)- 表示图形应该尽可能放置在页面的顶部。
- b:底部(bottom)- 表示图形应该尽可能放置在页面的底部。
- h:当前位置(here)- 表示图形应该尽可能放置在当前位置。
- p:单独一页(page of floats)- 表示图形应该放置在包含浮动元素的单独页面上。
\centering: 使图形水平居中
\includegraphics[width=1.0\linewidth]{figures/fig1.eps}:
插入图形文件,路径为figures/fig1.jpg,宽度设置为当前行宽的1.0倍
支持的图片格式为:.pdf
、.png
、.jpg、.eps
\caption{aaaa.}: 设置图标题
\label{fig1}: 设置图形标签,用于在文中引用
多图
此时需要导入额外的宏包。
\usepackage{subcaption}
例:
\begin{figure}[htbp]
\centering
\begin{subfigure}[t]{0.46\linewidth}
\centering
\includegraphics[width=\linewidth]{figures/fig1_a.jpg}
\subcaption{a}\label{fig:1a}
\end{subfigure}\hfill
\begin{subfigure}[t]{0.46\linewidth}
\centering
\includegraphics[width=\linewidth]{figures/fig1_b.jpg}
\subcaption{b}\label{fig:1b}
\end{subfigure}
\caption{aaaa.}
\label{fig:1}
\end{figure}
6.2、 图片引用
使用 \ref 引用图片
例:
6.3、 格式修改
发现此时格式和论文上出现的格式不同。
- 论文中标题是 Fig. 1.aaaa.
- 引用时是 Fig. 1
- 引用子图时是 Fig. 1(a)
在导言区导入以下宏包:
\usepackage{caption}
\captionsetup[figure]{labelsep=period}
\renewcommand{\figurename}{Fig.}
\usepackage{subcaption}
\captionsetup[subfigure]{labelformat=parens, labelsep=space}
\makeatletter
\renewcommand*\p@subfigure{}
\makeatother
\usepackage{cleveref}
\Crefname{figure}{Fig.}{figures}
\crefname{figure}{Fig.}{figures}
\crefformat{subfigure}{Fig.~\thefigure(#1)}
\Crefformat{subfigure}{Fig.~\thefigure(#1)}
- \usepackage{caption}:
引入 caption
宏包,用于自定义图表标题的格式。
- \captionsetup[figure]{labelsep=period}:
设置所有图(figure
)标题。labelsep=period
:编号和标题之间用“点号”分隔(如 Fig. 1. 标题
)。
- \renewcommand{\figurename}{Fig.}:
修改图编号前缀: 将默认的 Figure
改为 Fig.
。效果:Figure 1
→ Fig. 1
- \usepackage{subcaption}:
引入 subcaption
宏包,支持子图(如 (a)
、(b)
)功能。
- \captionsetup[subfigure]{labelformat=parens, labelsep=space}:
对子图设置标题格式:labelformat=parens
:子图标签加括号,如 (a)
。labelsep=space
:标签和文字之间用空格隔开(默认是冒号或点号)。
- \makeatletter
\renewcommand*\p@subfigure{}
\makeatother
这个操作清除子图编号引用前的前缀 \p@subfigure
,否则 \ref{fig:1a}
可能输出 Fig. 1a
或 1a
。
- \usepackage{cleveref}:
引入 cleveref
宏包,自动添加图表等引用的前缀,例如:\cref{fig:1}
→ Fig. 1
\Crefname{figure}{Fig.}{figures}
\crefname{figure}{Fig.}{figures}
设置图与子图的引用前缀 \Crefname
:句首用,首字母大写 → Fig.
\crefname
:句中用,小写或自定义为 Fig.
保持统一
- \crefformat{subfigure}{Fig.~\thefigure(#1)}
\Crefformat{subfigure}{Fig.~\thefigure(#1)}
设置子图引用格式 让 \cref{fig:8a}
或 \Cref{fig:8a}
输出:Fig. 8(a)
而不是 Fig. 8a
此时使用 \Cref 或 \cref 引用图片
例:
现在变成了需要的格式,如果需要其他格式的,按照上面的导言区宏包指令说明进行修改。
注意:引用子图时,需要确保导入子图的代码位于正文引用之前,不然会出现编号错误的情况
排版时,要想解决子图引用出现在子图之前,同时确保编号正确,需使用以下代码。强制更改当前编号,同时不影响后续编号。
\makeatletter
\renewcommand{\thefigure}{%输入编号} %强制更改编号
\makeatother
....
\makeatletter
\renewcommand{\thefigure}{\@arabic\c@figure} %恢复默认编号环境
\makeatother
例:
7、表格
7.1、表格插入
导言区加入以下代码,配置表格:
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}
\sisetup{
table-number-alignment = center,
table-format = 1.4,
detect-weight = true,
detect-inline-weight = math
}
- \usepackage{booktabs}
用于创建专业、简洁的表格线。
提供三个命令 \toprule
:顶部粗线 \midrule
:中间分割线 \bottomrule
:底部粗线
-
\usepackage{multirow}
用于在表格中合并多行单元格(如同 Word 的“合并行”功能)。
-
\usepackage{siunitx}
数值小数点对齐(默认不能做到) 科学计数法、单位格式支持
-
\sisetup{...}
table-number-alignment = center
让数值按小数点居中对齐 table-format = 1.4
指定表格列最多显示 1位整数 + 4位小数(自动对齐) detect-weight = true 使得 \bfseries
(加粗)在表格中有效 detect-inline-weight = math
检测数学环境中的字体粗细,确保加粗/正常保持一致
自己编辑好的表格,截图给AI工具,让它给转换为Latex格式。将Latex格式的表格,添加到自己文件中对应的位置。记得查看是否和原表格一致,不一致的将其更改。插入的表格会按照先后顺序自动编号。
例:
7.2、表格引用
使用 \ref 引用表格
显然这种引用格式不太符合要求。
在导言区导入以下宏包:
\usepackage{cleveref}
此时使用 \Cref 或 \cref 引用表格
例:
7.3、格式修改
- 表格标题都是居左
- 表格编号和标题分行显示
导言区插入以下代码,要放在宏包 \usepackage{caption} 之后:
\captionsetup[table]{justification=raggedright, singlelinecheck=false}
\captionsetup[table]{labelsep=space}
在表格代码部分,\caption{} 在标题名字前加入 \\
例:
8、参考文献
8.1、插入参考文献
新建一个.bib文件,这里我命名的是references.bib,于存放BibTex的引用格式。
下载参考文献的引用时,选择Bib Tex。
将内容复制到.bib文件里面。对方框里的内容就行修改,修改为参考文献编号,方便引用。
引用指令为 \cite 。开始引用前把以下代码,放到后面需要参考文献的部分。否则参考文献的引用会出现问号。
\bibliographystyle{elsarticle-num}
\bibliography{你的.bib文件名}
例:
8.2、格式修改
多个引用时。格式和论文上格式不同。
- 论文中多个引用是[1-3]
在导言区 \documentclass[preprint,12pt]{elsarticle} 后面加入以下:
\biboptions{sort&compress}
得到正确格式: