如何从零开始，入门 LaTeX？
LaTeX是一种“非所见即所得”的排版系统，用户需要输入特定的代码，保存在后缀为.tex的文件中，通过编译得到所需的pdf文件，例如以下代码： 最后输出的结果是一个pdf文件，内容是”Hello, world!“。 如何理解“非所见即所得”呢？在这里举个“所见即所得”的例子：Word。Word的界面就是一张A4纸，输入的时候是什么样子，最后呈现出来就是什么样子。这给了我们极高的自由度，也非常容易上手，但是有如下问题： - 对于对细节不敏感的用户，Word的排版常常会在细节存在问题，比如两段话之间行间距不同、字体不同、标题样式不同等； - 对于撰写论文的用户，Word的标题、章节、图表、参考文献等无法自动标号，也很难在正文中引用； - 对于有公式输入需求的用户，Word自带的公式不稳定，而公式插件效果常常不好。 相比之下，使用LaTeX进行排版，就像是在铺好的轨道上驾驶火车一样。使用LaTeX没有办法像Word一样非常自由，但是可以保证规范性，这使得LaTeX非常适合用于论文的排版。在学习的过程中，也将会感受到这一点。 无论是LaTeX还是Word，其归根结底都只是排版工具，用Word也可以排出LaTeX的效果，用LaTeX也可以排出Word的效果。另外，笔者最建议的书写工具是Markdown，其书写的过程中可以不在意排版，也支持使用LaTeX语法输入公式，与LaTeX之间的转换非常方便。 官方的地址是http://mirror.ctan.org/systems/texlive/Images/texlive2021.iso，但是可能速度较慢，以下是一些国内的镜像地址： 其中的iso文件可以使用压缩软件解压，或者加载到光盘，接下来直接安装就行了。对于其他操作系统的用户（如MacOS），可以参考TeX Live 下载及安装说明 | 始终 (liam.page)中的方法。 对于新手，最推荐的编辑器是TeXworks，非常适合用来上手，也避免了配置环境带来的问题。如果想要提高效率的话，可以选用： LaTeX编译的结果是pdf文件，建议选用专业的pdf阅读器或pdf编辑器。特别是在阅读beamer类型的文件时，不同的阅读器效果差别极大。在这里推荐Acrobat： TeX有多种文档类型可选，笔者较常用的有如下几种类型： 不同的文件类型，编写的过程中也会有一定的差异，如果直接修改文件类型的话，甚至会报错。以下统一选用ctexart。在编辑框第一行，输入如下内容来设置文件类型： 另外，一般也可以在\documentclass处设置基本参数，笔者通常设置默认字体大小为12pt，纸张大小为A4，单面打印。需要将第一行的内容替换为： 文件的正文部分需要放入document环境中，在document环境外的部分不会出现在文件中。 为了完成一些功能（如定理环境），还需要在导言区，也即document环境之前加载宏包。加载宏包的代码是\usepackage{}。本份教程中，与数学公式与定理环境相关的宏包为amsmath、amsthm、amssymb，用于插入图片的宏包为graphicx，代码如下： 另外，在加载宏包时还可以设置基本参数，如使用超链接宏包hyperref，可以设置引用的颜色为黑色等，代码如下： 标题可以用\title{}设置，作者可以用\author设置，日期可以用\date{}设置，这些都需要放在导言区。为了在文档中显示标题信息，需要使用\maketitle。例如： 正文可以直接在document环境中书写，没有必要加入空格来缩进，因为文档默认会进行首行缩进。相邻的两行在编译时仍然会视为同一段。在LaTeX中，另起一段的方式是使用一行相隔，例如： 这样编译出来就是两个段落。在正文部分，多余的空格、回车等等都会被自动忽略，这保证了全文排版不会突然多出一行或者多出一个空格。另外，另起一页的方式是： 笔者在编写文档时，为了保证美观，通常将中文标点符号替换为英文标点符号（需要注意的是英文标点符号后面还有一个空格），这比较适合数学类型的文档。 在正文中，还可以设置局部的特殊字体： 对于ctexart文件类型，章节可以用\section{}和\subsection{}命令来标记，例如： 在有了章节的结构之后，使用\tableofcontents命令就可以在指定位置生成目录。通常带有目录的文件需要编译两次，因为需要先在目录中生成.toc文件，再据此生成目录。 插入图片需要使用graphicx宏包，建议使用如下方式： 其中，[htbp]的作用是自动选择插入图片的最优位置，\centering设置让图片居中，[width=8cm]设置了图片的宽度为8cm，\caption{}用于设置图片的标题。 LaTeX中表格的插入较为麻烦，可以直接使用Create LaTeX tables online – TablesGenerator.com来生成。建议使用如下方式： LaTeX中的列表环境包含无序列表itemize、有序列表enumerate和描述description，以enumerate为例，用法如下： 另外，也可以自定义\item的样式： 定理环境需要使用amsthm宏包，首先在导言区加入： 其中{theorem}是环境的名称，{定理}设置了该环境显示的名称是“定理”，[section]的作用是让theorem环境在每个section中单独编号。在正文中，用如下方式来加入一条定理： 其中[定理名称]不是必须的。另外，我们还可以建立新的环境，如果要让新的环境和theorem环境一起计数的话，可以用如下方式： 另外，定理的证明可以直接用proof环境。 最开始选择文件类型时，我们设置的页面大小是a4paper，除此之外，我们也可以修改页面大小为b5paper等等。 一般情况下，LaTeX默认的页边距很大，为了让每一页显示的内容更多一些，我们可以使用geometry宏包，并在导言区加入以下代码： 另外，为了设置行间距，可以使用如下代码： 默认的页码编码方式是阿拉伯数字，用户也可以自己设置为小写罗马数字： 另外，aiph表示小写字母，Aiph表示大写字母，Roman表示大写罗马数字，arabic表示默认的阿拉伯数字。如果要设置页码的话，可以用如下代码来设置页码从0开始： 行内公式通常使用$..$来输入，这通常被称为公式环境，例如： 公式环境通常使用特殊的字体，并且默认为斜体。需要注意的是，只要是公式，就需要放入公式环境中。如果需要在行内公式中展现出行间公式的效果，可以在前面加入\displaystyle，例如 行间公式需要用$$..$$来输入，笔者习惯的输入方式如下： 这种输入方式的一个好处是，这同时也是Markdown的语法。需要注意的是，行间公式也是正文的一部分，需要与正文连贯，并且加入标点符号。 关于具体的输入方式，可以参考在线LaTeX公式编辑器-编辑器 (latexlive.com)，在这里只列举一些需要注意的。 上标可以用^输入，例如a^n，效果为 a^n ；下标可以用_来输入，例如a_1，效果为 a_1 。上下标只会读取第一个字符，如果上下标的内容较多的话，需要改成^{}或_{}。 分式可以用\dfrac{}{}来输入，例如\dfrac{a}{b}，效果为 \dfrac{a}{b} 。为了在行间、分子、分母或者指数上输入较小的分式，可以改用\frac{}{}，例如a^\frac{1}{n}，效果为 a^\frac{1}{n} 。 括号可以直接用(..)输入，但是需要注意的是，有时候括号内的内容高度较大，需要改用\left(..\right)。例如\left(1+\dfrac{1}{n}\right)^n，效果是 \left(1+\dfrac{1}{n}\right)^n 。 在中间需要隔开时，可以用\left(..\middle|..\right)。 另外，输入大括号{}时需要用\{..\}，其中\起到了转义作用。 对于加粗的公式，建议使用bm宏包，并且用命令\bm{}来加粗，这可以保留公式的斜体。 在这里可以使用cases环境，可以用于分段函数或者方程组，例如 效果为 f(x)=\begin{cases}     x, & x>0, \\     -x, & x\leq 0. \end{cases} 多行公式通常使用aligned环境，例如 效果为 \begin{aligned} a & =b+c \\ & =d+e \end{aligned} 矩阵可以用bmatrix环境和pmatrix环境，分别为方括号和圆括号，例如 效果为 \begin{bmatrix}     a & b \\     c & d \end{bmatrix} 。如果要输入行列式的话，可以使用vmatrix环境，用法同上。 这个教程比较简短，涉及到的东西也比较少，耐心学习完后，应该能满足日常使用的需求。 LaTeX的使用还需要一定的熟练度，仍有时间的读者还可以考虑：