通过第一篇论文上手LaTeX,你可以的!

时间:2022-12-05 06:36:15

前段时间在赶一篇ICCVW的论文,这也是我第一次写论文(当然除了毕设论文)。当时一开始着手写的时候,就面临这样一个问题:第一次写论文,要先用word排版,还是直接LaTeX呢?我想很多朋友也会面临这样的选择
而我最终选择了直接LaTeX排版,这个过程中我发现:在有现成模板的情况下,LaTeX的上手并没有那么困难!当然,还需要再强调一下,本文适合于想要边赶论文,边上手LaTeX的朋友,如果是想从Hello world开始,仔仔细细了解LaTeX的,那么建议看一下其他的入门资料,比如刘海洋的《LaTeX入门》。


下面进入正题:

1 环境配置

LaTeX是基于TeX的排版系统,它有这自己的语法,所以就像编程语言一样也需要有一个相应的编译环境。
我使用的是Windows 下面的CTeX(Chinese TeX),下载链接: CTeX ,参考百度经验: link,并使用其中的WinEdt编辑器进行代码编辑和编译。编辑软件可以根据自己的需要自行选择。

2 获取论文模板

一般的会议论文或者期刊论文,都会在主页上提供相应的论文模板(大多是LaTeX和Word两种形式的模板供选择)。以我这次的ICCVW为例,在 link 上可以找到相应的模板下载链接: iccv2017AuthorKit.zip,下载解压之后就可以看到一个latex文件夹和一个word文件夹。

3 编译现有的模板来look look

准备好上面的1和2两个步骤之后,就可以打开WinEdt编辑器,并在WinEdt中打开解压后的latex文件夹下面的.tex文件(Attention:latex文件夹下面可能会有两个.tex文件,一个是review版本的,一个是final版本的。一般投稿的时候使用的是review版本,被accept之后才需要使用final版本),.tex文件可以类比为C++中的.cpp文件。打开之后,在WinEdt中直接编译(WinEdt中提过多种编译的方式,我使用的是PDFTeXify),就可以看到生成的排版好的pdf文件(就相当于编译.cpp文件看到程序的运行效果)。 后面对pdf文件进行保存就是水到渠成的事情了。

4 在模板中填充自己的内容

有了步骤3作为基础,我们就有了“活学活用,举一反三”的资本了!接下来要做的,就是不断对照.tex文件中的代码和编译后的pdf,稍微加上一些度娘的辅助,就可以轻松明白latex的一些基础的语法了。下面我挑一些比较典型的部分分享一下:

1 整体把握

浏览一下.tex文件,如果熟悉前端的朋友会感觉格外亲切,因为LaTeX的语法类似于HTML之类的标记语言。
在:

\begin{document}
...
\end{document}

之间就是论文的主体部分,有点像C++的main函数,而在它们前面的代码是对一些package的包含,又有点像C++ include头文件的味道,另外就是对论文排版格式的一些规定(这些通过注释和参照编译后的pdf,基本上能够明白)。
在论文的主体部分,通过\title 定义标题,通过\author 定义作者,在\begin{abstract}` 和 `\end{abstract} 之间填充摘要,这些都是很简单的,可以结合编译后的pdf看看可视化的结果。
接下来是正文部分,正文部分的每一个章节用\section{} 分隔,大括号中的内容是章节的标题,如果有子章节,就得使用\subsection{},需要注意的是,编译的时候会自动对章节进行编号,相当方便。
上面就是对.tex整体的浏览,论文的文字部分就是用上面的方式不断填充。下面介绍论文的图片、表格、公式以及参考文献几个关键部分。

2 插入图片

如果是双列(two column)的排版方式的话,插入图片一般有两种形式,一种是占用两列的图片,一种是只占用一列的图片。
下面来看看占用两列的图片的插入代码:

%%% Figure 1
\begin{figure*}[t]
\begin{center}
\includegraphics[width=\textwidth,height=6.5cm]{Figure1.png}\\
\end{center}
\caption{}
\label{figure1}
\end{figure*}

其中:

  1. \begin{figure*}[t] 中的figure后面加*就表示插入的图片是占用两列的,[t]表示在所在页的最上方(top)插入图片,也可以使用[h]表示在代码所在的位置(here)插入图片,中括号中还有一些其它的字母可以使用,具体的问度娘;
  2. \includegraphics[width=\textwidth,height=6.5cm]{Figure1.png} 中括号中是设置图片的宽高,大括号里面是图片的名称(图片放在.tex文件所在的路径下);
  3. \caption{} 的大括号里面的内容是图片的标题;
  4. \label{figure1} 的figure1是一个交叉引用的标志,后面会详细说使用方法。

再来看看只占用一列的图片的插入代码:

%%% Figure 2
\begin{figure}[t]
\begin{center}
\includegraphics[width=0.45\textwidth]{Figure2.png}
\end{center}
\caption{Time dimension is added as a third dimension (use the normalized coordinates).}
\label{figure2}
\end{figure}

很简单,只需要把*去掉,其它组成部分的含义都和上面的一样。
这里需要注意的是,像上面的章节编号一样,图片、表格和公式都会在编译的时候按照在代码中出现的先后顺序进行编号。

3 插入表格

有了上面插入图片的经验,插入表格也是同样的道理,在想要插入表格的地方按照插入表格的语法插入就行,语法类似于Markdown(其实我并不清楚是LaTeX类似于Markdown还是Markdown类似于LaTeX)。
当然还有一个简便的方法,就是利用工具自动生成LaTeX格式的表格代码,例如: LaTeX Table Generator

4 插入公式

插入公式也是类似:

\begin{equation}
1+1=2
\label{eq1}
\end{equation}

公式的语法类似于Markdown,具体的需要用到的时候问度娘就行,细心的朋友会发现,这里也有类似于上面插入图片时出现的\label{eq1}(其实在插入图表的时候也可以有这一项),上面说这是交叉引用的时候使用的。那么下一小节就来揭开谜底!

5 交叉引用

在于读论文的时候,我们经常看到类似于:
通过第一篇论文上手LaTeX,你可以的!
通过第一篇论文上手LaTeX,你可以的!
通过第一篇论文上手LaTeX,你可以的!
Figure、Table或者Eq. 的后面的数字是有颜色的,然后单击一下该数字页面就会自动跳转到相应的Figure、Table或者Eq.所在的位置。在代码中其实是这样实现的:

Figure~\ref{figure1}

其中~\ref{figure1} 中的figure1需要与索引的图片定义中的\label{figure1} 大括号内的内容保持一致。
表格和公式也是一样的道理:

Table~\ref{table1}
Eq.~\ref{eq1}

6 插入参考文献

有了上面的交叉引用作为基础,参考文献的插入就很好理解了,参考文献也是一种交叉引用的,不同的是参考文献的具体信息是存放在latex文件夹中的一个.bib后缀的文件中。每一篇参考文献都有类似BibTeX的格式:

@article{Alpher02,
author = {A. Alpher},
title = {Frobnication},
journal = {Journal of Foo},
volume = 12,
number = 1,
pages = {234--778},
year = 2002
}

可以在谷歌学术上获得相应参考文献的BibTeX格式如下图所示(百度学术上也可以):
通过第一篇论文上手LaTeX,你可以的!
最后将论文中所有的参考文献都以BibTeX格式放进.bib文件中,就可以在代码中进行引用了。
在论文中引用相应的参考文献的代码如下:

~\cite{Alpher02}

需要注意,这里的Alpher02应该和.bib文件中对应的参考文献的第一行的内容Alpher02一致,才能正确引用!


到这里,差不多就能完成整篇论文的LaTeX排版了,其他的一些细节比如加粗,斜体之类的就是一些简单的语法,直接问度娘即可。