
本文初步介绍了怎么从输入LaTeX代码到生成PDF的过程,旨在为对LaTeX感兴趣的初学者提供参考。带反斜杠 \ 深蓝色高亮的 syntax 为LaTeX命令。建议在电脑上观看,可直接复制代码到编译器上运行。
1输出文字内容
用 LaTeX 编译引擎编译 LaTeX 代码写的文章可以有多种方式生成最终的 PDF 文件。最简单就是用专业的 LaTeX 代码编译器来写代码了。编译器会生成 .tex[1]格式的文件,这是我们需要写入文章内容的文件。
上面出现了“编译”、“编译引擎”、“代码编译器”的“生词”。首先解释一下这都是些啥玩意儿。编译,其实就是计算机把代码拿去跑一下。编译引擎就是用来把 .tex文件生成PDF[2]。用不同的编译引擎来编译,其实相当于从一个地方去另一个地方,是搭飞机,还是搭汽车,还是搭小轿车,还是搭公交车的区别,这些交通工具就是编译引擎,目的相同,中间过程各有不同。为了能够正常输出中文,请检查编译器设置,使用 UTF-8 编码,及使用 xelatex 引擎编译。具体包含中文字段的排版将在以后的推送中详细说明。
然后,了解下 .tex文件的组成第一行定义文件类型,命令为
\documentclass{文件类型}
文件类型可选:article, book, report, ctexart, ctexbook等,其中 article , book , report ,若不添加其他能输出中文的宏包(package),默认的是只能输出英文排版。而ctexart, ctexbook默认即可输出中文。若您的编译器报错显示找不到 ctexart.sty 请把文章类型设定为 article (命令 \documentclass{article}),下文中含有中文的内容请自行用英文代替。
然后就是要告诉LaTeX开始文档了,命令
\begin{document}文档内容\end{document}
其中\begin{document}和\end{document}中间就是你要写的文档的内容。
所以,一个简单的输出中文的例子:
\documentclass{ctexart}\begin{document}你好,世界。\end{document}
这里需要注意的地方,是 \documentclass{文件类型} 到 \begin{document} 之间,称为导言区,这部分的区域,可以加入用于实现不同功能的宏包。例如:
\documentclass{ctexart}\usepackage{amsmath}\begin{document}
这里加入了amsmath[3]宏包用于排版数学公式和符号。
同理可以加入其他宏包,例如:
\documentclass{ctexart}\usepackage{amsmath}\usepackage{geometry}\begin{document}
这里 geometry[4]宏包可以用于设定页边距等关于页面的参数,例如
\documentclass{ctexart}\usepackage{amsmath}\usepackage[ left = 1 cm, right = 1 cm, top = 2cm, bottom = 2cm]{geometry}\begin{document}
中间用[ ]括号定义了,左边距是1厘米等。
导言区内,还可以说明作者,和文档的标题,例如:
\documentclass{ctexart}\title{世界史}\author{张三}\begin{document}
这里说明了,文档标题是:世界史,作者是:张三。但是仅仅只这样还无法在文档里输出标题和作者,还需要在\begin{document}和\end{document}中间加入\maketitle ,即:
\documentclass{ctexart}\title{世界史}\author{张三}\begin{document}\maketitle文档内容\end{document}
因为在\begin{document}和\end{document}中间才是显示的内容。这里需要说明下,\maketitle 会同时自动输出日期,可以在导言区用\date{2019年1月1日}来自定义日期。
如果需要生成目录。也可以在 \begin{document} 和 \end{document} 中间加入\tableofcontents ,即:
\documentclass{ctexart}\title{世界史}\author{张三}\date{2019年1月1日}\begin{document}\maketitle\tableofcontents文档内容\section{第一小节}你好\section{第二小节}世界\end{document}
值得注意的是,目录需要编译两次才能正常显示,编译第一次的时候,会生成一个文件,专门用于记录所有层次结构(chapter , section , subsection 等) 的名称。第二次编译的时候才会调用这个记录文件[5],才能把目录正常输出到pdf里。
这里用\section{节的名称}来设置文档的section结构,同理还有\chapter{章的名称},\subsection{第二层的节名称},和\subsubsection{第三层的名称}。但是默认的section层次只有三层,就是最多用到 \subsubsection{ }。在section下面还有 \paragraph{ } 段落结构。
例如:
\documentclass{ctexart}\title{世界史}\author{张三}\date{2019年1月1日}\usepackage[ left = 1 cm, right = 1 cm, top = 2cm, bottom = 2cm]{geometry}\begin{document}\maketitle\tableofcontents文档内容\section{第一小节}你好\subsection{中国}中国在地球上\subsection{地球}地球在太阳系里\subsubsection{太阳系}太阳系在银河系里\section{第二小节}世界\end{document}
编译两次之后,结果如图:
2
排版公式
公式的输出之前,你要告诉LaTeX,这是公式,可以用 $a = b$ 或者 $$ a = b $$ 来输出公式,这两者的区别是:$a = b$ 会紧接着上面的内容输出,而 $$ a = b $$ 会换行之后居中输出。用 $ $ 或 $$ $$括起来,叫做数学模式,例如:
\documentclass{ctexart}\begin{document}中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $\\中国在地球在,地球在太阳系里,太阳系在银河系里。$$ a = b $$\end{document}
这里的 \\ 是换行的意思,如果不加 \\ 那所有空格都会被 LaTeX 排版的时候跳过,如图:
这里要再提一下\begin{ }和\end{ }中 { } 括号括起来的是环境的名称,\begin{}和\end{}之间构成一个环境,例如equation环境:
\documentclass{ctexart}\begin{document}中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $\\中国在地球在,地球在太阳系里,太阳系在银河系里。$$ a = b $$中国在地球在,地球在太阳系里,太阳系在银河系里。\begin{equation}A = b\end{equation}\end{document}
equation环境会生成自动编号的公式,可用于出版物的公式引用。
\sum_{k = 1}^{n} n^2 是求和。
\documentclass{ctexart}\begin{document}中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $\\中国在地球在,地球在太阳系里,太阳系在银河系里。$$ a = b $$中国在地球在,地球在太阳系里,太阳系在银河系里。\begin{equation}A = b\end{equation}\begin{equation}\sum_{k = 1}^{n} k^2 = \frac{1}{6}n(n+1)(2n+1)\end{equation}\end{document}
其中\frac{1}{6}就是输出上下形式的分数,
3
符号
\underline{ } 输出下划线
\overline{text} 在 text 上方输出横线
\rightarrow 输出向右的单线的箭头
\Longrightarrow 输出长的双线的箭头
\sigma 希腊字母
\Sigma 大写的希腊字母
输出希腊字母和\underline{ } , \overline{ } 都要在数学模式下,
其中\text{ }用于在数学模式下输出文本,如果$\underline{\text{你好abc}}$不加\text{ },即$\underline{你好abc}$,那只会输出abc而且是斜体的,数学符号那样的abc,只有加了\text{ }才能输出“你好”。
\documentclass{ctexart}\usepackage{amsmath}\begin{document}中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $中国在地球在,地球在太阳系里,太阳系在银河系里。$ a = b $\\中国在地球在,地球在太阳系里,太阳系在银河系里。$$ a = b $$中国在地球在,地球在太阳系里,太阳系在银河系里。\begin{equation}A = b\end{equation}\begin{equation}\sum_{k = 1}^{n} k^2 = \frac{1}{6}n(n+1)(2n+1)\end{equation}这些是希腊字母:$\alpha , \beta ,\theta , \phi , \Phi , \sigma ,\Sigma$。\\中国在地球在,$\text{\underline{地球}}$在$\overline{\text{太阳系}}$里,太阳系在银河系里。\end{document}
编译后如下:
注释:
[1]:这里强调是 .tex格式的文件。因为tex文件容易指代不清楚,.tex文件在编译的过程中会生成 .toc , .aux , .log , .tex 等由LaTeX编译引擎产生的文件。这里 .tex指的是众多文件中的一个文件。
[2]:从tex原始代码到PDF中间有非常繁琐负责的过程,反复调用[1]中提到的 .toc , .aux , .log , .tex 等文件。不过我们不用担心,编译器会做好这件事情,我们只需点个按钮,就可以从tex源码得到PDF。
[3]: amsmath 宏包由 American Mathematical Society (AMS) 开发,极常用,几乎所有的公式排版都需要这个宏包支持。
[4]: geometry 宏包最简单的用法是用来设置页边距。
[5]: 众多 tex 文件中, .aux 文件就是记录这些信息的文件。
声明:
版权所有,转载至其他公众号请与作者联系。作者不保证本文叙述绝对严谨,初衷是用简易的语言让初学者上手。
图文 / Abner

排版 / Abner