Featured image of post 学术论文latex--以IEEEtrans为例子

学术论文latex--以IEEEtrans为例子

第一次写学术论文套用IEEEtrans模板以及一些踩坑的地方

背景

笔者第一次写学术论文,其研究方向是弹性光网络,本次投递的期刊是JLT。在后续调整论文格式时候使用LATEX来写。而本文主要描述了在使用LATEX写论文时候,一些论文注意细节和LATEX的使用用法。以便帮助后续学弟和学妹们更快的完成论文的撰写。

准备工作

LATREX下载

【LaTex】LaTex的下载与安装(2024新手小白超详细、超简洁 Windows系统)_latex下载-CSDN博客

安装完成后会有下面两个软件:

texlive: LATEX本体,负责编译.tex文件,并生成对应的.pdf文件

TexStudio: 编写.tex文件的编辑器(类似于代码编辑,还有许多其他的编辑器可以自行下载如Overleaf, 在线LaTeX编辑器)。

论文LATEX模板下载(以IEEEtrans为例)

IEEE-Template Selector

IEEE里面的期刊通过上述链接选择对应的期刊下载LATEX模板。如果不是,则百度对应的期刊名到官网下载对应的LATEX模板。

这里我选择的是Journal of Lightwave Technology期刊的LATEX模板IEEEtrans。下载内容如下图:

latex_catogarey

IEEEtran.cls提供给模板的接口,bare_jrnl_new_sample4.tex是IEEEtrans对应的期刊的latex模板,点击打开bare_jrnl_new_sample4.tex并选择pdfLaTex编译运行,则会输出对应的pdf。(笔者是用latex自带的Texwork打开的,可以用其它编辑器打开)

latex_sample

LATEX论文撰写

一篇论文的结构在模板里面已经非常清晰了,文件里面的头文件基本上不用变化。只需找到模板中对应的代码段(title, abstract, author, IEEEkeywords, section, subsection, …)把内容填进去。如果有什么不懂的可以百度或者查看目录下面的New_IEEEtran_how-to.pdf帮助文档,笔者这里主要介绍一些需要自定义并且可能会出现问题的地方。

图片

为了方便管理图片,这里我这里把整篇论文要用到的图片都放在模板路径下面的figures文件夹里,然后再模板文件中**\begin{document}上一行加入\graphicspath{{figures/}}**,这样就规定了图片的路径。

latex_catogarey1

要在论文中插入一张图片代码如下:

1
2
3
4
5
6
\begin{figure}[t]
\centering
\includegraphics[width=0.5\textwidth]{fig1.pdf}
\caption{Co-propagation and Counter-propagation}
\label{fig1}
\end{figure} 

[t]:表示将当前图片放置在当前页面的顶部(h当前位置,b表示底部…)

\centering:表示图片居中

width=0.5\textwidth:表示设置图片的宽度为半个页面宽度(注:这里没有设置高度所以会保持长宽的比例)

fig1.pdf:表示插入的图片文件名,上面已经设置好图片的路径,所以这里直接填入文件名就行

\caption:设置图片的标题

\label{fig1}:设置图片的唯一标志,为了方便文中引用该图片。这里笔者设置的名称是fig1,使用\ref{fig1}便可以引用

fig1

要在论文中插入多张图片代码如下(竖排):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
\begin{figure}[!t]
\centering
\subfloat[Performance comparisons in NSFNET]{ 
\includegraphics[width=0.4\textwidth]{gN1A.pdf}%
\label{BBPa} 
}
\hfil
\subfloat[Performance comparisons in COST239]{
\includegraphics[width=0.4\textwidth]{gN2A.pdf}%
\label{BBPb} 
}
\caption{Performance comparisons on blocking probability among the conventional PCMSA, BI-PCMSA, and BI-CI schemes and the BCSRA scheme in (a) NSFNET and (b) COST239 network.}
\label{BBP} 
\end{figure}

!t:系统忽略“美学”标准,放置在顶部(这里加不加!感觉没有上面区别)

\hfil:填充两张图片中间的空白

\subfloat:设置子图

fig2

要在论文中插入多张图片代码如下(横排):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
\begin{figure*}[!t]
\centering
\subfloat[]{\includegraphics[width=2.5in]{fig1.png}%
\label{fig_first_case}}
\hfil
\subfloat[]{\includegraphics[width=2.5in]{fig1.png}%
\label{fig_second_case}}
\\
\subfloat[]{\includegraphics[width=2.5in]{fig1.png}%
\label{fig_first_case}}
\hfil
\subfloat[]{\includegraphics[width=2.5in]{fig1.png}%
\label{fig_second_case}}
\caption{Dae. Ad quatur autat ut porepel itemoles dolor autem fuga. Bus quia con nessunti as remo di quatus non perum que nimus. (a) Case I. (b) Case II.}
\label{fig_sim}
\end{figure*}

\begin{figure}*:设置跨栏的图片

\hfil:填充两张图片中间的空白

\\:图片换行

fig3

表格

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
\begin{table}[!b]
\begin{center}
\caption{Flow of Lightpath Requests in Fig. \ref{fig2}(a)}
\label{tab2}
\renewcommand{\arraystretch}{1.5}
\setlength{\tabcolsep}{8pt}
\resizebox{0.5\textwidth}{!}{
\begin{tabular}{| c | c | c | c | c | c | c |}
\hline
request & route & e1 & e2 & e3 & e4 & e5\\
\hline
$R_1$ & 1-2-4 & 1 & 0 & 0 & 1 & 0\\
\hline
$R_2$ & 2-3-1 & 0 & -1 & 1 & 0 & 0\\
\hline
$R_3$ & 4-3 & 0 & 0 & 0 & 0 & -1\\
\hline 
\end{tabular}
}
\end{center}
\end{table}

\begin{table}[!b]:设置表格为页面底部 \begin{center}:表格居中

\caption:表格标题

\renewcommand{\arraystretch}{1.5}:设置表格的行距为1.5倍

\setlength{\tabcolsep}{8pt}:设置表格的列宽

\resizebox{0.5\textwidth}{!}:设置表格宽的大小为半个页面大小,并保持长宽比例

\begin{tabular}:设置表格的形式,上述代码“|”设置表格的竖线(c表示单元格内水平对齐,l表示单元格左对齐…, ),“\hline”设置表格的横线。然后将内容填入表格,”&“表示水平下一列,”\\“表示下一行

如果想单独设置表格某一列的列宽可以使用p{xx},下面就是设置第二列的列宽为6cm

1
\begin{tabular}{| l | p{6cm}|}

image-20250218215507591

算法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
\begin{algorithm}[!b]
\caption{Analysis of bidirectional spectrum resource.}\label{alg:alg2}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\begin{algorithmic}[1]
\REQUIRE The core $C$ and frequency slot position $f$ of the lightpath, and the link information of the request, information of the request
\ENSURE $Flag$ and $CIFA$
\STATE $Flag=0, CI=0, free\_slot=0$.
\STATE Temporarily modify the link information of the current lightpath.
\FOR {each $e \in l_r^{temp}$}
	\FOR {$k = 1:F{S_r}$}
	\STATE $free\_slot$=$free\_slot+|\alpha _{{c_i}}^{f + k}|$
		\FOR {each ${c_{ac}} \in AC{S_c}$}
			\IF {   $\eta _{c,{c_{ac}}}^{f + k} =  = 2$}
				\STATE \textbf{return}
			\ELSIF {$\eta _{c,{c_{ac}}}^{f + k} =  = 1$}
				\STATE $CI=CI+1$
			\ELSIF {$\eta _{c,{c_{ac}}}^{f + k} =  = 0$}
				\STATE \textbf{continue}
			\ENDIF
		\ENDFOR
	\ENDFOR
	\IF {$free\_slot = = 0$}
		\STATE Estimate the value of fragmentation and $CIFA$ metric according to \eqref{eq4}\eqref{eq6}\eqref{eq7}.
	\ELSE
		\STATE \textbf{return}
	\ENDIF
\ENDFOR
\STATE $Flag=1$
\STATE \textbf{return} $Flag, CIFA$
\end{algorithmic}
\label{alg2}
\end{algorithm}

\begin{algorithm}[!b]:设置算法位置为底部

\caption:设置算法标题

\renewcommand{\algorithmicrequire}{\textbf{Input:}}:将require换成input \renewcommand{\algorithmicensure}{\textbf{Output:}}:将ensure换成output

\begin{algorithmic}[1]:算法开始,并从1开始标号

\REQUIRE:设置输入参数

\ENSURE:设置输出参数

\FOR \ENDFOR \IF \ELSE \ENDIF:与写伪代码一样

\STATE:设置这一行的内容

\label{alg2}:算法的标签,方便引用\ref{alg2}

列表

列表这一块的话

无序列表:

1
2
3
4
5
6
7
\begin{list}{}{}
\item{bare\_jrnl.tex}
\item{bare\_conf.tex}
\item{bare\_jrnl\_compsoc.tex}
\item{bare\_conf\_compsoc.tex}
\item{bare\_jrnl\_comsoc.tex}
\end{list}

有序列表:

1
2
3
4
5
6
7
\begin{enumerate}
\item{bare\_jrnl.tex}
\item{bare\_conf.tex}
\item{bare\_jrnl\_compsoc.tex}
\item{bare\_conf\_compsoc.tex}
\item{bare\_jrnl\_comsoc.tex}
\end{enumerate}

符号列表:

1
2
3
4
5
6
7
8
\subsubsection*{\bf A simple bulleted list}
\begin{itemize}
\item{bare\_jrnl.tex}
\item{bare\_conf.tex}
\item{bare\_jrnl\_compsoc.tex}
\item{bare\_conf\_compsoc.tex}
\item{bare\_jrnl\_comsoc.tex}
\end{itemize}

list

公式

文章中的正文中出现的公式可以用**$F{S_{{r_i}}} = \left[ {\frac{{{w_i}}}{{{C_{slot}} \cdot m}}} \right] + GB$**,

需要标号的公式可以用如下句柄:

1
2
3
4
\begin{equation}
\label{eq1}
F{S_{{r_i}}} = \left[ {\frac{{{w_i}}}{{{C_{slot}} \cdot m}}} \right] + GB,
\end{equation}

后续文中需要引用公式的时候可以使用\eqref{eq1}来引用该公式的标号。 如果公式已经在mathtype中编辑好那么可以直接复制公式到tex文件中。

mathtype -> 预置 ->剪切与复制预置 ->选择LaTex

\[F{S_{{r_i}}} = \left[ {\frac{{{w_i}}}{{{C_{slot}} \cdot m}}} \right] + GB\]

这样复制过来的直接就是latex公式代码了!!!(记得把[ ]去掉)

equation

参考文献

笔者第一次在弄论文的参考文献时踩了很大的坑。我们知道论文的参考文献要满足以下几个条件(以Journal of Lightwave Technology为例):

  1. 参考文献的格式要符合从作者-标题-期刊名-页数-年月份
  2. 参考文献中引用文献的期刊名要保持斜体和缩写
  3. 参考文献中引用文献的作者数量太长的话要缩写或者简写
  4. 文章中的引用文献的序号需要要保持从大到小

我们知道设置参考文献的方式有两种

bibitem:

想如下的代码形式,使用\bibitem直接在文中把参考文献的格式一一调整好包括作者姓名,期刊名要缩写和斜体。

1
2
3
4
5
6
7
\begin{thebibliography}{10}
\bibliographystyle{IEEEtran}
\bibitem{Bao2023}
B. Bao, H. Yang, Q. Yao, L. Guan, J. Zhang, and M. Cheriet, “Resource Allocation With Edge-Cloud Collaborative Traffic Prediction in Integrated Radio and Optical Networks,” {\it{IEEE Access}}, vol. 11, pp. 7067–7077, 2023.
\bibitem{Shao2023}
J. Shao, S. Zhang, W. Sun, and W. Hu, “Dynamic frequency slot allocation on IP-over-EON access links with multiple-type and time-varying traffic,” {\it{J. Opt. Commun. Netw.}}, vol. 15, no. 6, pp. 304–317, 2023, doi: 10.1364/JOCN.481355.
\end{thebibliography}

{10}表示序号需要的宽度,统一使用两位数的宽度序号。

\bibliographystyle{IEEEtran}表示参考文献风格

{Bao2023}表示该文献的标签并且在所有文献中必须是唯一的,引用时使用\cite{Bao2023}

所有文献的形式编辑好以后直接运行就行,参考文献的顺序会按照编辑好的顺序排序

bibtex

这种方法需要建立参考文献数据库,引用的时候调用所需要的参考文献。每篇文献有它自己的引用的bib文件(可以在网上下载)。下面就是包含两篇文章的文献数据库(是不是有点想json文件的形式,属性–字段,python里面也叫做字典)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
@ARTICLE{9611289,
author={Zhang, Juan and Bao, Bowen and Yao, Qiuyan and Ren, Danping and Hu, Jinhua and Zhao, Jijun},
journal={IEEE Access}, 
title={Resource Allocation Scheme Based on Complete Planning Process for Immediate and Advance Reservation in SDM-EONs}, 
year={2021},
volume={9},
number={},
pages={153575-153585},
keywords={Resource management;Planning;Optical fiber networks;WDM networks;Routing;Optimization;Quality of service;Advanced reservation (AR);blocking probability;complete planning process;elastic optical networks (EONs);immediate reservation (IR);space division multiplexing (SDM)},
doi={10.1109/ACCESS.2021.3127317}
}
@article{Ma2023,
author = {Ma, Yudong and Yang, Xin and Sun, Qang and Zhao, Yue},
doi = {10.1364/JOCN.496417},
issn = {19430639},
journal = {Journal of Optical Communications and Networking},
number = {9},
pages = {687--699},
title = {{Dynamic resource allocation for multicast in SDM-EON: time-decoupled dynamic path cross talk and joint weight}},
volume = {15},
year = {2023}
}

把所有文献的bib文件整合成一个文献数据库并放在模板文件同级目录下,在参考文献的代码部分加上\bibliography{bibfile}就可以调用对应的bibfile.bib文献数据库,当在文档中想使用引用时, 插入 LaTeX 命令\cite{9611289,Ma2023}。参考文献的排序会按照引用的先后顺序排列好

最后

  1. 用LaTeX编译你的 .tex 文件 , 这是生成一个 .aux 的文件, 这告诉 BibTeX 将使用那些应用;
  2. 用BibTeX 编译 .bib 文件;
  3. 再次用LaTeX 编译你的 .tex 文件,这个时候在文档中已经包含了参考文献,但此时引用的编号可能不正确;
  4. 最后用 LaTeX 编译你的 .tex 文件,如果一切顺利的话, 这是所有东西都已正常了.

在理解上述的两种方法之后,笔者便思考两者哪一个能更快的实现上述的要求。思考一番后,第二种方法看起来确实是比较便捷。因为这种方法不仅不需要手动去调整参考文献的格式(自动生成IEEEtrans的风格),而且参考文献的排序会按照引用的先后顺序排列好。

为了快速的收集bib文件,笔者选择了一款文献管理工具mendeley.com/autoupdates/installers/1.19.5,只需把参考文献导入mendeley,它能够快速的导出所有文献的bib文件并直接生成文献数据库。它也可以查看对应期刊的参考文献风格。

最后出现以下结果!!!

fail

可以看到图中生成的参考文献并没有满足我说的要求,在看了一下bib文件中的内容之后,发现bibtex生成的参考文献是根据bib中每个文献对应的属性字段来生成的。而有些文章的属性字段缺失,作者也不能保证缩写和简写,并且期刊名也不能缩写。这可能需要对每一篇文章的bib内容调整。笔者一直也在寻找解决的办法,导致浪费了大量的时间。如果您有更好的解决方案,欢迎与笔者联系!

在与导师商量的之后,最后决定用第一种方法生成参考文献

第一种方法看似内容和格式也要自己一个一个的敲上去,但是笔者在用mendeley的时候可以查看IEEEtrans的风格的参考文献,**发现格式非常统一和正确!!!**于是直接从mendeley把参考文献的内容(Formatted Citation)直接导入来并粘贴到模板中就行了(不是bib文件)

mendeley

但是还有一个难题就是,刚刚说了第一种方法参考文献生成的时候是按照编辑的顺序排列的,文章中引用的参考文献的需要顺序并没有按照从小到大,所以说我们还需要对这些bibitem调整顺序以便确保文中的引用文献的序号需要从小到大。

这里介绍一个使用LaTeX的bibitems引用时按照引用顺序对文献进行编号 - 脂环 - 博客园排序方法能根据引用的顺序把参考文献调整好。最后生成的参考文献的结果要检查一下是否格式正确!

总结

最后,本文主要对在使用latex去撰写论文时如何自定义自己的公式,图片,表格,算法,列表,和参考文献提供了笔者所使用的方法和一些细节并给出了一些建议。由于笔者也是第一次使用latex撰写论文,每个细节都是自己上网或者AI搜索解决的,一些方面的方法和细节无法做到最优。如果读者有更好的想法或者有什么问题欢迎与我讨论。(qq: 1693592330)

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计