使用 LaTeX 进行论文写作
使用 LaTeX 进行论文写作
前言
最近几个月一直在忙着跑实验,写论文,博客确实也是好久没有更新了,乘着最近论文搞得差不多了,碰巧也是在排版,来记录一下使用 LaTeX 进行论文写作的一些东西。
LaTeX 在线使用
有许多网站提供了 LaTeX 的在线练习使用,个人比较推荐 Overleaf,使用的人也比较多,不需要再下载安装。
基础知识
一个 LaTeX 文档是一个以
.tex
结尾的文本文件,可以使用任意的文本编辑器编辑,完成后你可以进行编译,转化为最常见的 PDF 格式。
我们通过一个简单的示例开始:首先在 Overleaf 上创建一个新的项目,名为 hello world
,接着系统就自动创建了一个名为 main.tex
的文件并生成以下内容:
1 | \documentclass{article} |
documentclass
第 1
行 \documentclass{article}
指明文章的类型,花括号内的文本说明此文章的类型为 article
,需要注意的是 \documentclass
命令必须出现在每个 LaTeX 文档的开头。
除了 article
其他的类型还有 report
, book
等等。
此外,我们还可以通过
[]
添加选项来进一步完善文档信息,例如\documentclass[a4paper,12pt]{article}:设置纸张大小为 A4,主要文字大小为 12pt
添加宏包
第 2
行 \usepackage{graphicx}
添加了一个名为 graphicx
的宏包,就和 python 中的 import xx
一样。
需要注意的是,%
代表评论,之后同一行的字都不会被输出,类似地,可以使用 Ctrl+/
来批量注释或批量取消注释。
此外,声明使用包的位置应该放置在文档的前导命令的位置,即
\documentclass{article}
与\begin{document}
之间,并使用\usepackage[options]{package}
来引用包。
标题、作者、日期
第 4,5,6
行添加了标题、作者、日期信息,并通过第 10
行的 \maketitle
展现在文章中。
各位可以试试看在花括号内添加不同空格时的编译结果,观察实际输出结果。
1 | % 下面两个编译结果是一样的 |
文档开始
第 8
行和第 14
行分别使用\begin{document}
和 \end{document}
命令将你的文本内容包裹起来。任何在 \begin{documnet}
之前的文本都被视为前导命令,会影响整个文档。任何在 \end{document}
之后的文本都会被忽视。
章节
第 12
行定义了一个名为 Introduction 的章节名。
如果需要的话,你可能想将你的文档分为章(Chatpers)、节(Sections)和小节(Subsections)。下列分节命令适用于 article 类型的文档:
\section{...}
\subsection{...}
\subsubsection{...}
\paragraph{...}
\subparagraph{...}
我们添加类似下面的章节:
1 | \documentclass{article} |
这时你的文档应该是这个样子:
如图所示,你并不需要手动添加章节号。但是如果你不想要章节号,可以使用
\section*{}
。
摘要
摘要同样需要使用 \begin{abstract}
和 \end{abstract}
命令将你的内容包裹起来
1 | \maketitle |
段落缩进、空格、换行
LaTeX 默认每个章节第一段首行顶格,之后的段落首行缩进。如果想要段落顶格,在要顶格的段落前加 \noindent
命令即可。如果希望全局所有段落都顶格,在文档的某一位置使用 \setlength{\parindent}{0pt}
命令,之后的所有段落都会顶格。
在排版时,另起一页的方式是
\newpage
此外,多个连续空格在 LaTeX 中被视为一个空格。多个连续空行被视为一个空行。空行的主要功能是开始一个新的段落。通常来说,LaTeX 忽略空行和其他空白字符,两个反斜杠(\\
)可以被用来换行。
1 | \documentclass{article} |
有序列表和无序列表
LaTeX 中同样支持有序列表和无序列表:
- 有序列表:
\begin{itemize}
和\end{itemize}
- 无序列表:
\begin{enumerate}
和\end{enumerate}
1 | \begin{enumerate} |
字体
中文支持
如果你需要中文,可以使用 CTeX 宏包。只需要在文档的前导命令部分添加:
1 | \usepackage[UTF8]{ctex} |
字体效果
1 | \textit{words in italics} |
字体大小
1 | normal size words |
数学公式
关于使用 LaTeX 写数学公式的部分这里就不再详细介绍了,如果你想了解更多可以去看我的另一篇文章 使用 LaTeX 写数学公式 或者也可以在 这里 进行查询。
表格
目前有许多生成 LaTeX 表格的在线工具,这里推荐一个:
- tablesgenerator:https://www.tablesgenerator.com/
我们只需要把在 Excel 里面创建好的表格直接粘贴到里面就行。
尽管这样很方方便,但个人建议还是应当对表格的语法有所了解,以便做出针对性修改。
下面还是通过一个示例来说明:
1 | \begin{table}[] |
1 | \begin{tabular}{...} |
一般来说,我们需要再定义表格时的花括号中指定表格的列及其对齐方式:
l,r,c
分别表示左、右、居中对齐|
表示列的竖线
例如,{lll}
会生成一个三列的表格,并且保存向左对齐,没有显式的竖线;{|l|l|r|}
会生成一个三列表格,前两列左对齐,最后一列右对齐,并且相邻两列之间有显式的竖线。
在表格中一般存在以下标记:
&
用于分割列;\\
用于换行;\hline
表示插入一个贯穿所有列的横着的分割线;\cline{1-2}
会在第一列和第二列插入一个横着的分割线。
个人更喜欢使用 booktabs
来写表格,感觉整体上会更美观,间距也更舒服。
你只需要把 \hline
和 \cline
替换成 \toprule
,\midrule
,cmidrule
和 \bottomrule
即可。
1 | \usepackage{booktabs} |
图片
单张图片
在导入图片之前,我们需要引入 graphicx 包
1 | \usepackage{graphicx} |
[htbp]
是位置参数:
h
表示把图表近似地放置在这里(如果能放得下);t
表示放在在页面顶端;b
表示放在在页面的底端;p
表示另起一页放置图表。
\centering
将图片放置在页面的中央。如果没有该命令会默认左对齐。
\includegraphics{...}
命令可以自动将图放置到你的文档中,花括号中写入图片的相对位置。
[scale=0.2]
是可选参数,scale
能够将图片按比例缩小。当然你也可以使用 width=5cm
来控制。
\caption{...}
命令定义了图片的标题,同样的,你不需要手动写入编号。
\label{fig:fig1}
命令创建了一个可以供引用的标签。
多张图片
多张图片也是类似的,需要导入 subfigure
包,并使用 \subfigure
:
1 | \usepackage{graphicx} |
引用
在论文写作过程中,我们经常会使用引用,当然在 LaTeX 中也非常方便。例如,在前面的例子中,我们在插入图片时为其定义了一个标签 fig:fig1
,之后,我们就可以在任何地方引用它:
1 | % use \ref{...} |
当然,不只是图片,应用场景同样还有表格、公式等,只要你使用 \label{...}
创建标签并使用 \ref{...}
引用即可。
文献
在引用参考文献之前,我们通常都会常见一个 bibTex
文献库用来引用,它通常是长这个样子的,包含标题、作者、会议、年份等信息:
1 | % my_example.bib |
在创建了自己的文献库之后,就可以在正文中使用 \cite{...}
引用,花括号中的内容为 Citation Key,在这里是 huang2023example
,和我们在文献库中的第一相同。
1 | According to \cite{huang2023example} |
在列举最后的参考文献时,只需要使用 \bibliographystyle{...}
定义样式并使用 \bibliography{...}
连接到你的文献库即可。
论文写作
上面介绍了那么多其实只是了解一个使用大概而已,真正写论文的时候我们肯定还是需要使用对应期刊的模版,这里以 ACM 模版为例,你可以在这里下载:https://www.acm.org/publications/proceedings-template。
下载完成之后,进入 samples
文件夹,里面提供了很多模版以及对应的 PDF 阅览文件,这里我们常用的其实就是两个:
sample-acmsmall
:单列模版sample-sigconf
:双列模版
找到你需要的 .tex
文件,直接放到编辑器编辑即可。