前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 LaTeX 进行论文写作

使用 LaTeX 进行论文写作

作者头像
EmoryHuang
发布2023-03-12 14:33:10
2.5K0
发布2023-03-12 14:33:10
举报
文章被收录于专栏:EmoryHuang's Blog

使用 LaTeX 进行论文写作

前言

最近几个月一直在忙着跑实验,写论文,博客确实也是好久没有更新了,乘着最近论文搞得差不多了,碰巧也是在排版,来记录一下使用 LaTeX 进行论文写作的一些东西。

LaTeX 在线使用

有许多网站提供了 LaTeX 的在线练习使用,个人比较推荐 Overleaf,使用的人也比较多,不需要再下载安装。

基础知识

一个 LaTeX 文档是一个以 .tex 结尾的文本文件,可以使用任意的文本编辑器编辑,完成后你可以进行编译,转化为最常见的 PDF 格式。

我们通过一个简单的示例开始:首先在 Overleaf 上创建一个新的项目,名为 hello world,接着系统就自动创建了一个名为 main.tex 的文件并生成以下内容:

代码语言:javascript
复制
\documentclass{article}
\usepackage{graphicx} % Required for inserting images

\title{hello world}
\author{EmoryHuang}
\date{March 2023}

\begin{document}

\maketitle

\section{Introduction}

\end{document}

documentclass

1\documentclass{article} 指明文章的类型,花括号内的文本说明此文章的类型为 article,需要注意的是 \documentclass 命令必须出现在每个 LaTeX 文档的开头

除了 article 其他的类型还有 report, book 等等。

此外,我们还可以通过[]添加选项来进一步完善文档信息,例如 \documentclassa4paper,12pt{article}:设置纸张大小为 A4,主要文字大小为 12pt

添加宏包

2\usepackage{graphicx} 添加了一个名为 graphicx 的宏包,就和 python 中的 import xx 一样。

需要注意的是,%代表评论,之后同一行的字都不会被输出,类似地,可以使用 Ctrl+/ 来批量注释或批量取消注释。

此外,声明使用包的位置应该放置在文档的前导命令的位置,即 \documentclass{article}\begin{document} 之间,并使用 \usepackage[options]{package} 来引用包。

标题、作者、日期

4,5,6 行添加了标题、作者、日期信息,并通过第 10 行的 \maketitle 展现在文章中。

各位可以试试看在花括号内添加不同空格时的编译结果,观察实际输出结果。

代码语言:javascript
复制
% 下面两个编译结果是一样的
\title{hello world}
\title{hello        world}

文档开始

8 行和第 14 行分别使用\begin{document}\end{document} 命令将你的文本内容包裹起来。任何在 \begin{documnet} 之前的文本都被视为前导命令,会影响整个文档。任何在 \end{document} 之后的文本都会被忽视。

章节

12 行定义了一个名为 Introduction 的章节名。

如果需要的话,你可能想将你的文档分为章(Chatpers)、节(Sections)和小节(Subsections)。下列分节命令适用于 article 类型的文档:

  • \section{...}
  • \subsection{...}
  • \subsubsection{...}
  • \paragraph{...}
  • \subparagraph{...}

我们添加类似下面的章节:

代码语言:javascript
复制
\documentclass{article}
\usepackage{graphicx} % Required for inserting images

\title{hello world}
\author{EmoryHuang }
\date{March 2023}

\begin{document}

\maketitle

\section{Introduction}
This is the introduction.

\section{Methods}

\subsection{Stage 1}
The first part of the methods.

\subsection{Stage 2}
The second part of the methods.

\section{Results}
Here are my results.

\end{document}

这时你的文档应该是这个样子:

如图所示,你并不需要手动添加章节号。但是如果你不想要章节号,可以使用 \section*{}

摘要

摘要同样需要使用 \begin{abstract}\end{abstract} 命令将你的内容包裹起来

代码语言:javascript
复制
\maketitle

\begin{abstract}
This is the abstract
\end{abstract}

段落缩进、空格、换行

LaTeX 默认每个章节第一段首行顶格,之后的段落首行缩进。如果想要段落顶格,在要顶格的段落前加 \noindent 命令即可。如果希望全局所有段落都顶格,在文档的某一位置使用 \setlength{\parindent}{0pt} 命令,之后的所有段落都会顶格。

在排版时,另起一页的方式是 \newpage

此外,多个连续空格在 LaTeX 中被视为一个空格。多个连续空行被视为一个空行。空行的主要功能是开始一个新的段落。通常来说,LaTeX 忽略空行和其他空白字符,两个反斜杠(\\)可以被用来换行。

代码语言:javascript
复制
\documentclass{article}
\usepackage{graphicx} % Required for inserting images

\title{hello world}
\author{EmoryHuang}
\date{March 2023}

\begin{document}

\maketitle

\begin{abstract}
This is the abstract
\end{abstract}

\section{Introduction}
This is the first paragraph.

This is the second paragraph.

\section{Methods}

\subsection{Stage 1}
The first part of the methods.

\noindent The first part of the methods.

\subsection{Stage 2}
Multiple     consecutive spaces are treated as one space in LaTeX.

\section{Results}
Here are my results.

\end{document}

有序列表和无序列表

LaTeX 中同样支持有序列表和无序列表:

  • 有序列表:\begin{itemize}\end{itemize}
  • 无序列表:\begin{enumerate}\end{enumerate}
代码语言:javascript
复制
\begin{enumerate}
\item First thing
\item Second thing
\begin{itemize}
\item A sub-thing
\item Another sub-thing
\end{itemize}
\item Third thing
\end{enumerate}

字体

中文支持

如果你需要中文,可以使用 CTeX 宏包。只需要在文档的前导命令部分添加:

代码语言:javascript
复制
\usepackage[UTF8]{ctex}

字体效果

代码语言:javascript
复制
\textit{words in italics}
\textsl{words slanted}
\textsc{words in smallcaps}
\textbf{words in bold}
\texttt{words in teletype}
\textsf{sans serif words}
\textrm{roman words}
\underline{underlined words}

字体大小

代码语言:javascript
复制
normal size words
{\tiny tiny words}
{\scriptsize scriptsize words}
{\footnotesize footnotesize words}
{\small small words}
{\large large words}
{\Large Large words}
{\LARGE LARGE words}
{\huge huge words}

数学公式

关于使用 LaTeX 写数学公式的部分这里就不再详细介绍了,如果你想了解更多可以去看我的另一篇文章 使用 LaTeX 写数学公式 或者也可以在 这里 进行查询。

表格

目前有许多生成 LaTeX 表格的在线工具,这里推荐一个:

我们只需要把在 Excel 里面创建好的表格直接粘贴到里面就行。

尽管这样很方方便,但个人建议还是应当对表格的语法有所了解,以便做出针对性修改。

下面还是通过一个示例来说明:

代码语言:javascript
复制
\begin{table}[]
\begin{tabular}{llr}
\hline
\multicolumn{2}{c}{Item} &            \\ \cline{1-2}
Animal     & Description & Price (\$) \\ \hline
Gnat       & per gram    & 13.65      \\
           & each        & 0.01       \\
Gnu        & stuffed     & 92.50      \\
Emu        & stuffed     & 33.33      \\
Armadillo  & frozen      & 8.99       \\ \hline
\end{tabular}
\end{table}
代码语言:javascript
复制
\begin{tabular}{...}

一般来说,我们需要再定义表格时的花括号中指定表格的列及其对齐方式:

  • l,r,c 分别表示左、右、居中对齐
  • | 表示列的竖线

例如,{lll} 会生成一个三列的表格,并且保存向左对齐,没有显式的竖线;{|l|l|r|} 会生成一个三列表格,前两列左对齐,最后一列右对齐,并且相邻两列之间有显式的竖线。

在表格中一般存在以下标记:

  • & 用于分割列;
  • \\ 用于换行;
  • \hline 表示插入一个贯穿所有列的横着的分割线;
  • \cline{1-2} 会在第一列和第二列插入一个横着的分割线。

个人更喜欢使用 booktabs 来写表格,感觉整体上会更美观,间距也更舒服。

你只需要把 \hline\cline 替换成 \toprule\midrulecmidrule\bottomrule 即可。

代码语言:javascript
复制
\usepackage{booktabs}

\begin{table}[]
\begin{tabular}{llr}
\toprule
\multicolumn{2}{c}{Item} &            \\ \cmidrule{1-2}
Animal     & Description & Price (\$) \\ \midrule
Gnat       & per gram    & 13.65      \\
           & each        & 0.01       \\
Gnu        & stuffed     & 92.50      \\
Emu        & stuffed     & 33.33      \\
Armadillo  & frozen      & 8.99       \\ \bottomrule
\end{tabular}
\end{table}

图片

单张图片

在导入图片之前,我们需要引入 graphicx 包

代码语言:javascript
复制
\usepackage{graphicx}

\begin{figure}[htbp]
\centering
\includegraphics[scale=0.2]{Figure 1.png}
\caption{A simple example.}
\label{fig:fig1}
\end{figure}

htbp 是位置参数:

  • h 表示把图表近似地放置在这里(如果能放得下);
  • t 表示放在在页面顶端;
  • b 表示放在在页面的底端;
  • p 表示另起一页放置图表。

\centering 将图片放置在页面的中央。如果没有该命令会默认左对齐。

\includegraphics{...} 命令可以自动将图放置到你的文档中,花括号中写入图片的相对位置。

scale=0.2 是可选参数,scale 能够将图片按比例缩小。当然你也可以使用 width=5cm 来控制。

\caption{...} 命令定义了图片的标题,同样的,你不需要手动写入编号。

\label{fig:fig1} 命令创建了一个可以供引用的标签。

多张图片

多张图片也是类似的,需要导入 subfigure 包,并使用 \subfigure:

代码语言:javascript
复制
\usepackage{graphicx}
\usepackage{subfigure}

\begin{figure}[tb]
\centering
\subfigure[subfigure 1]{
\includegraphics[scale=0.2]{Figure 1.png}}
\subfigure[subfigure 2]{
\includegraphics[scale=0.2]{Figure 1.png}}
\caption{An example of subfigure}
\label{fig:fig2}
\end{figure}

引用

在论文写作过程中,我们经常会使用引用,当然在 LaTeX 中也非常方便。例如,在前面的例子中,我们在插入图片时为其定义了一个标签 fig:fig1,之后,我们就可以在任何地方引用它:

代码语言:javascript
复制
% use \ref{...}
As shown in Figure \ref{fig:fig1}

当然,不只是图片,应用场景同样还有表格、公式等,只要你使用 \label{...} 创建标签并使用 \ref{...} 引用即可。

文献

在引用参考文献之前,我们通常都会常见一个 bibTex 文献库用来引用,它通常是长这个样子的,包含标题、作者、会议、年份等信息:

代码语言:javascript
复制
% my_example.bib
@inproceedings{huang2023example,
  title = {this is title},
  booktitle = {Proceedings of the 28th {{ACM SIGKDD Conference}} on {{Knowledge Discovery}} and {{Data Mining}}},
  author = {Zhang, San and Li, Si},
  year = {2022},
  pages = {1463--1471},
  publisher = {{ACM}},
  address = {{Washington DC USA}},
  doi = {...},
  isbn = {...}
}

在创建了自己的文献库之后,就可以在正文中使用 \cite{...} 引用,花括号中的内容为 Citation Key,在这里是 huang2023example,和我们在文献库中的第一相同。

代码语言:javascript
复制
According to \cite{huang2023example}

...

\bibliographystyle{ACM-Reference-Format}
\bibliography{my_example}

在列举最后的参考文献时,只需要使用 \bibliographystyle{...} 定义样式并使用 \bibliography{...} 连接到你的文献库即可。

论文写作

上面介绍了那么多其实只是了解一个使用大概而已,真正写论文的时候我们肯定还是需要使用对应期刊的模版,这里以 ACM 模版为例,你可以在这里下载:https://www.acm.org/publications/proceedings-template

下载完成之后,进入 samples 文件夹,里面提供了很多模版以及对应的 PDF 阅览文件,这里我们常用的其实就是两个:

sample-acmsmall:单列模版

sample-sigconf:双列模版

找到你需要的 .tex 文件,直接放到编辑器编辑即可。

参考文献

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 LaTeX 进行论文写作
    • 前言
      • LaTeX 在线使用
        • 基础知识
          • documentclass
          • 添加宏包
          • 标题、作者、日期
          • 文档开始
          • 章节
          • 摘要
          • 段落缩进、空格、换行
          • 有序列表和无序列表
        • 字体
          • 中文支持
          • 字体效果
          • 字体大小
        • 数学公式
          • 表格
            • 图片
              • 多张图片
            • 引用
              • 文献
                • 论文写作
                  • 参考文献
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档