aoi学院

Aisaka's Blog, School of Aoi, Aisaka University

一个非常快速的LaTeX入门教程

LaTeX

LaTeX是一款开源免费并且应用相当广泛的排版工具,它不仅能对文字、公式、图片进行精确而复杂的排版,并且还能保证全文各个章节格式的一致性。

像平时看到的论文、书籍,几乎无一例外都是使用LaTeX生成的

LaTeX同时提供相当数量的宏包,作为对基础排版功能的扩充

像乐谱、原理图,甚至简单的动画也都可以用它完成

求职也可以用LaTeX来做一份专业的简历

本篇博客将消除大家对LaTeX复杂难用的刻板印象,并让你快速上手这款文字排版的必备神器。


介绍

LaTeX的主要优势是它会将文档的内容和排版区分开来,这就好像是html和css的关系

同时也正如Markdown,它也是一种将内容和排版分开的标记语言,并且Markdown的语法非常轻量,非常适合于简单文字的创作

像很多wiki,比如GitHub的文档,都是使用Markdown语法生成的。

和Markdown类似,LaTeX的格式和排版也可以随后轻易地替换,通常也就是一两行代码的事,例如你可以轻易的将一篇普通文档切换为科学期刊,甚至是幻灯片

当然每个工具都有适用的地方,我也不会鼓吹在所有的情况下都去用LaTeX,如果你只是记记笔记,不怎么需要大篇幅排版的情况下,使用word这类所见即所得的工具自然也会方便很多。


使用

常用的Tex发行版一般有两个:TeX Live 和 MiKTeX

TeX Live提供的包很全,但占用空间大;MiKTeX占用空间小,安装速度快,但如果遇到本地缺少的包则需要联网下载。大家可以根据实际情况考虑,如果你的网络连接不太稳定,则可以选择下载TeX Live一劳永逸,如果大家不希望本地配置环境,只是想快速尝试的话,也可以使用Overleaf这款可以免费在线使用的TeX编辑器。

我使用的是TeX Live,可以在这个页面下载离线的安装包

不过TeX Live的安装速度有些慢,大家可能需要耐心等待。安装完毕后,我们可以打开TeX Live自带的编辑器TeXworks

当然大家完全可以使用自己喜欢的任意文本编辑器,我个人比较喜欢的是vscode,关于vscode和LaTeX的环境配置我会放在末尾给大家讲解


操作

LaTeX中所有的命令都以\(反斜杠)开头,后面可以跟一个花括号,代表这个命令的参数,比如这里的documentclass指定了文档的类型

最广泛使用的文档类型有article,代表普通的文章,其它常用的还有book、report等等。如果你希望创建一个幻灯片格式的文档,则可以在这里使用beamer。由于我们需要在文档中显示中文,这里需要使用一个叫作ctexart的文档类型,它支持简体中文和英文的混排

另外千万不要忘记在这里指定文档的编码格式,UTF8是TeXworks编辑器默认使用的编码类型,如果不去正确设置它的话,文档中的中文可能会变成一堆乱码

要注意的是,所有位于\begin{document}之前的内容都被称作是前言(preamble),它就像是html中的head标签,你可以在这里设置文档的格式、页面的尺寸,也可以指定文档中需要导入的宏包等等

下面介于\begin{document}和\end{document}之间的内容称为文档的正文(body),我们在这片区域输入的所有内容,将会被排版到最终生成的文档中

在前言区块内,我们可以通过\title{}命令给文档设置一个标题,\author命令可以用来指定作者的名字,\date命令可以用来指定文档的修改日期(可以配合使用\today命令自动生成当天的日期)。要显示这些信息,我们还需要在文档的正文区添加一个\maketitle命令,这个命令会在当前位置生成文档的标题,标题的内容就是之前在前言区(preamble)设定的信息

接下来我们来了解一下LaTeX中最基础的格式化命令

如果要加粗文字,我们可以使用\textbf{}命令,需要加粗的内容可以直接写在花括号中(bf,bold font)

如果要设置斜体字,我们可以使用\textit{}命令(it,italic)

如果是设置下划线标记的文字,我们可以使用\underline{}命令

如果要在文章中添加一个新的段落,可以通过输入两个换行符来完成。需要注意的是单独的一个换行符只会生成一个空格,并不会开启新的段落


章和节

和其它的排版工具一样,我们可以将文章按结构分成多个章节。要开启一个新的章节,我们可以使用\section{}命令,花括号中的内容代表章节的名字。如果要在章节下创建一个子章节或者二级章节,则可以使用\subsection{}命令。同理要创建三级章节,可以使用\subsubsection{}命令

如果是对书籍排版的话,比如文档类型是ctexbook,还可以加入比section更大的chapter,通常用来表示书籍中的第几章

比chapter还要大的还有part,通常用来表示书籍中的第几部


图片

如果要在文档中添加图片,则需要在前言中引用graphicx这个包,这个包里面包含若干个绘制图片的指令

随后在正文中,我们可以使用\includegraphics{}命令在当前位置添加一张图片,后面花括号中的head是图片文件的名字。在名字中,我们可以直接省略掉后面png的扩展名部分

我们可以给\includegraphics{}命令添加一个可选的参数,在方括号中写入width=0.5\textwidth,这里的\textwidth代表当前文本区域的宽度

如果希望给图片添加标题,可以先将图片嵌套在一个figure环境中,随后我们可以通过\caption{}命令指定图片的标题,同时我们也可以通过\centering命令将图片居中显示


列表

要在LaTeX中显示列表,我们需要先切换到列表的“环境”。环境(environment)是LaTeX中的一个专用术语,它就像是编程语言里面的作用域,任何介于\begin{}和\end{}之间的内容都属于同一个环境,位于同一个环境中的内容将会共享相同的文字格式。

对于无序列表的创建,可以使用itemize环境。列表中的每一个元素都需要以\item开头

对于有序列表,可以使用enumerate环境,与无序列表相同,列表中的元素同样需要以\item开头


数学公式

在熟练掌握语法之后,你可以非常快速地生成任意复杂的公式。LaTeX允许你在段落内直接添加公式,它们被称作行内公式(inline equation),行内公式需要写在两个美元符号之间,比如这段代码将生成爱因斯坦的质能守恒方程 E=mc^2

如果我们希望将公式显示在单独一行,则可以使用equation这个“环境”。同时你也可以将displaymath环境简写为\[…\]的形式。(equation会在公式右边打印编号,displaymath则不会)

对于复杂的公式,则需要熟记公式中经常用到的一些指令,比如RSA公式为例:\over代表几分之几,分子在前分母在后,由于这里的分子是另一个表达式,所以需要用花括号括起来,但这里的花括号并不会直接显示在最终的公式中,\varghi在这里代表小写的符号φ,\phi则表示大写的Φ

另外对于LaTeX公式语法的测试,推荐这个在线的公式编辑器。可以在这里快速测试想要排版的公式,也可以通过这里的按钮快速查阅公式的语法


表格

可以使用tabular环境在当前位置创建一个表格,tabular环境要求我们传入一个参数,用来指定表格的尺寸,这里的{ c c c }代表表格一共有三列,其中每一列的内容都居中对齐(centering),可以替换c为l表示左对齐、r表示右对齐

下面的区域定义了表格中需要显示的内容,其中每列的数据需要以 & 符号隔开,表格每一行的数据需要以\\分割

可以在上面加入竖线为表格添加竖直的边框,水平方向的边框则需要通过\hline命令添加,甚至可以输入两次\hline来添加双横线的效果

如果我们需要单独指定每一列的宽度,可以将c改成p,并在后面的花括号里输入列宽,这里的p代表paragraph,是一种允许设置列宽的列格式

和图表类似,如果希望给表格添加标题,可以先将整个表格放在一个table环境里,随后我们可以通过\caption{}命令指定表格的标题,并通过\center命令将表格居中显示


总结

以上内容可以说是LaTeX排版中最最基础的用法,另外作为经典的入门资料,我十分推荐这本《一份(不太)简短的LaTeX介绍》。这篇文档展示了LaTeX中,各个功能的详尽示例和用法,例如可以查阅到之前讲到的公式用法

可以把它当作一本使用手册,遇到特定的排版问题也都可以在其中搜索查阅。另外这本文档本身也是用LaTeX编写的,你可以在其中找到这篇文档的源码,顺便学习一下这篇100多页的手册是如何编排的


vscode配置LaTeX

系统中先安装TeX Live,然后下载一个名为LaTeX Workshop的插件即可

安装完毕后,你可以通过view latex这个命令打开文档的预览窗口,快捷键是 Ctrl+Alt+V

当你保存文档的时候,这个插件会自动编译文档,并更新右边的预览窗口

你也可以在同目录下找到生成的pdf文件


参考资料

https://www.bilibili.com/video/BV11h41127FD