LaTex入门手册

1 什么是LaTex

LaTex是一种基于TEX的排版系统,由美国计算机科学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代开发,它非常适合生成高质量的技术和科学文档。

LaTex不是什么文字处理软件,而是一种排版语言,用户通过编辑纯文本文件来描述文档内容和格式,然后利用LaTex编译器生成格式化后的文档输出。这种源文件与输出分离的特点,使得作者可以专心于文档内容而不必操心格式问题。

和TeX一样,LaTex也采用了“所见即所得”的编辑方式。用户只需要使用LaTex提供的语法标记来描述文档,无需操心字体、间距、页边距等排版细节,LaTex编译器会自动进行格式化生成最终文档,这极大地减轻了用户的工作量。

LaTex与TeX的不同之处在于,LaTex推荐了一套宏包和文档结构规范,用户可以更方便地编写复杂文档而不必关心底层的排版实现。举个例子,在TeX中插入一个目录需要手动规定标题格式、计算段落位置等,而在LaTex中,通过内置的\tableofcontents命令就可以一键生成目录。

目前LaTex可以在多种操作系统上运行,并有丰富的免费编辑器可供选择。TeX Live是LaTex最常见的发行版本,包含了TeX和LaTex的所有工具。利用这些资源,任何人都可以轻松编写和发布高质量文档。

本文同时存在一个LaTex版本的文档,作为LaTex的简单示例,该文档可见于LaTex手册。此外,本文只作抛砖之用,目前已有诸多优秀的LaTex学习资料珠玉在前,这其中包括但不仅限于:

  • The Not So Short Introduction to LATEX 2ε:非常经典的LaTex入门手册,强烈建议没接触过LaTex的用户阅读该资料。
  • Documentation - Overleaf, Online LaTeX Editor:Overleaf是一个在线的LaTex工具,使用该工具可以免于配置环境的繁琐过程,与此同时,Overleaf网站还提供了较为完整且清晰的LaTex使用手册,诸如图片、表格和伪代码等内容的生成均可在其文档中找到,建议编写LaTex文档遇到不会使用的操作时可以参考该网站。
  • chatgpt:编译LaTex文档时往往会有层出不穷的bug,在后chatgpt时代,用户仅需将出问题的代码段和报错信息输入至chatgpt,chatgpt便往往可以帮助用户解决棘手的问题。

2 LaTex的优势

2.1 LaTex VS Microsoft Word

与常用的文字处理软件Microsoft Word相比,LaTex具有以下显著优点:

  1. 排版效果出众

    LaTex的排版算法经过多年发展,专门针对技术文档进行了优化。它可以自动进行段落折行、页边距设定、正确使用空格等排版布局,使得生成的文档非常美观大方。相比之下,Word默认的排版算法并不专业,很难达到LaTex的水准。

  2. 支持数学公式

    LaTex有非常出色的数学公式排版能力,内置了大量数学符号和布局功能。用户可以手动输入公式控制符,也可以使用一些GUI软件辅助生成。这为编写包含复杂公式的学术论文提供了很大便利。Word的数学公式支持也比较弱。

  3. 分离内容和样式

    LaTex文档的内容和显示样式是分离的,用户只需要关心如何输入内容,显示格式完全由LaTex自动处理。这类似于网页开发中的HTML/CSS分离。相比之下,Word文档的内容和样式是耦合在一起的,用户需要手动设置样式。

  4. 跨平台兼容性好

    LaTex生成的PDF文档可以在不同系统上显示一致的格式,而Word文档在不同环境下则可能出现明显差异。LaTex的这一跨平台优势,使得它非常适合内容协作和共享。

  5. 引用、目录、索引等支持强大

    LaTex对文档内的交叉引用、目录、索引、列表等元素都有非常好的本机支持,可以自动编号并更新,大大减轻了用户的工作量。这对于学术论文写作尤其有用。Word虽然也提供了这些功能,但自动更新不如LaTex智能。

  6. 版本控制友好

    LaTex文档是一个纯文本文件,非常适合利用版本控制系统(比如Git)进行多人协作。也方便对文档进行差异比较。而Word文档因为有样式设置,版本控制时会产生大量无意义的diff。

  7. 宏包系统扩展强大

    LaTex提供了宏包机制,用户可以导入使用各种宏包来扩展文档功能,方便维护和定制。这对于大型文档尤为方便,用户无需关心宏包内部的实现细节。Word虽然也可以导入插件,但功能扩展不如LaTex宏包强大和方便。

  8. 分章编辑

    LaTex支持在单独文件中编辑文档的不同章节,然后在主文档中导入组合。这在编写长文档时可以模块化整个过程,较易维护和协作。Word不支持这种分章编辑方式。

  9. 开源免费

    LaTex是一个完全开源免费的排版系统,用户可以免费获取TeX发行版以及各种高质量的编辑器和辅助工具,无需支付任何费用。相比之下,Microsoft Word需要支付高额费用才能购买授权。

2.2 LaTex的应用范围

LaTex具有出色的技术文档排版能力,主要应用于以下领域:

学术论文写作

LaTex可以轻松排版包含复杂公式和图表的学术论文,并可以自动生成文献目录及引用标记。因此它已成为学术界的标准工具,主要学术期刊和会议也提供LaTex模板供作者提交论文。

数学和科学公式排版

LaTex内置了大量数学符号,可以正确、美观地排版数学和科学公式。这使其在数学、物理、化学等学科领域广泛使用。

程序文档编写

LaTex可以高质量排版源代码及程序文档,并支持自动编号、交叉引用等功能。许多程序项目会提供LaTex格式的文档。

书籍排版

越来越多的书籍使用LaTex来进行数字排版,以便在纸质书籍和电子书版本间复用内容。LaTex可以自动生成目录、章节编号等书籍元素。一些公开的书籍源文件也采用LaTex格式发布。

学术会议、学报排版

学术会议的征文通知和会议录用的论文集,以及学术期刊的文章,也广泛采用LaTex排版然后输出PDF。这保证了跨平台一致的格式。

编辑个人简历

LaTex提供的文档类可以方便排版个人的技术简历,并可以自定义样式。

课堂讲义和学生报告排版

越来越多的老师利用LaTex排版课堂讲义。LaTex可以自动编号、插入目录和页眉页脚等,节省了老师的时间。学生也可以用LaTex来排版实验报告、论文等。

三 如何安装LaTex

LaTex可以运行在多种操作系统上,以下介绍在各个常见系统上的安装方法。

1. Windows系统

在Windows上,可以安装TeX Live作为LaTex的发行版。TeX Live集成了LaTex相关的所有工具,并且对Windows有很好的支持。

可以在TeX Live官网下载TeX Live的ISO镜像文件,然后运行图形化安装程序。在安装过程中可以选择要安装的组件,对于刚接触LaTex的用户,选择“scheme-small”方案即可。

也可以使用LaTex发行版的包管理器tlmgr来安装额外的宏包和类库。例如使用tlmgr install [package]安装指定的宏包。

TeX Live会将相关的二进制文件添加到系统Path,这样就可以直接在命令行使用LaTex等命令。一个基本的LaTex工作流程是:

  1. 用文本编辑器编辑tex源文件
  2. 在命令行运行LaTex生成dvi文件
  3. 运行dvipdfm将dvi转换为pdf

使用TeX Live就可以轻松在Windows上配置LaTex环境。

2. Linux系统

在Linux上,可以使用发行版的包管理器直接安装texlive包获取LaTex支持。

例如在Debian/Ubuntu上使用:

sudo apt install texlive-full

在Fedora/CentOS上使用:

sudo dnf install texlive-scheme-full

安装完成之后就可以直接在命令行使用LaTex等命令。Linux上配置LaTex环境非常方便。

3. MacOS系统

在MacOS上,可以安装MacTeX作为LaTex的发行版。

访问MacTeX发行版网站下载对应的安装包,支持简单的图形化安装流程。

MacTeX集成了各种LaTex需要的工具,包括TeXShop作为编辑器。安装完成后就可以用TeXShop编辑LaTex文档了。

4. 在线工具

也有一些在线的LaTex编辑平台,用户可以直接在浏览器中编辑和编译LaTex文档,无需在本地安装环境,非常方便。

常用的在线LaTex平台包括:

  • Overleaf:功能强大的协同编辑平台
  • Papeeria:集成了绘图、版本控制功能
  • ShareLaTex:可以同步到GitHub或Dropbox

等等。这些平台都提供了所见即所得的编辑器,非常友好。

四 LaTex基础使用方法

下面介绍LaTex的基本语法和常用功能。LaTex的语法比较简洁,通过学习几个基础概念就可以入门。

1. 文档结构

一个基本的LaTex文档结构是:

\documentclass{article}

\begin{document}

文档内容...

\end{document}

其中\documentclass指定文档类型,article表示普通文章。\begin\end标记了文档正文的开始和结束。

文档类型还可以选择book、report等。不同类型会有不同的默认格式。

2. 段落和换行

段落之间需要用空行分开,而不像Word那样需要段前缩进。

换行使用\\命令。

3. 标题

标题使用\section\subsection等命令:

\section{第一节} 

\subsection{小节标题}

还有\subsubsection等子标题命令。

4. 正文格式

LaTex支持加粗、斜体等格式:

\textbf{加粗文字} 

\textit{斜体文字} 

5. 列表

无序列表使用itemize环境:

\begin{itemize}
\item 列表项目一  
\item 列表项目二
\end{itemize}

有序列表使用enumerate环境:

\begin{enumerate}
\item 第一项
\item 第二项 
\end{enumerate}

6. 插入图片

使用\includegraphics命令插入图片:

\includegraphics[width=5cm]{filename.png}

需要指定图片文件路径和宽度。

7. 数学公式

使用$...$插入行内简单公式:

$\sin(x)$

使用\[...\]插入多行显示公式:

\[ \frac{n!}{k!(n-k)!} = C^k_n\]  

LaTex对于数学公式排版非常强大,支持各种符号、布局等。

8. 表格

使用tabular环境插入表格:

\begin{tabular}{l|c|r}
\hline
 姓名 & 性别 & 年龄\\ 
\hline
 张三 & 男 & 20\\
\hline  
\end{tabular}

tabular的参数控制了对齐方式。

9. 目录和章节编号

使用\tableofcontents可以自动插入目录。

章节和公式等会自动编号,并可以用\label\ref进行交叉引用。

五 高级功能

1. 插入代码

listings宏包可以插入代码高亮。导入宏包:

\usepackage{listings}

插入Python代码片段:

\begin{listing}[language=Python]

print("Hello World!")

\end{listing}

2. 文档导航

hyperref宏包提供链接、书签等文档导航功能。

3. 绘图

使用TikZ宏包可以直接在文档中画图形和流程图。

4. 分章编辑

可以每个章节分别编辑,然后在主文件汇总。

5. 定制样式

可以自定义页面样式、标题格式、目录样式等。

6. 多人协作

利用git等版本控制系统可以方便协作。

7. 排版书籍

book文档类提供了章、节的格式,适合排版书籍。

8. 排版简历

moderncv提供了简历排版功能。

六 LaTex资源推荐

附录

LaTex常用命令

  • \documentclass{ }:指定文档类型
  • \usepackage{ }:导入宏包
  • \title{ }:文档标题
  • \author{ }:作者名
  • \date{ }:日期
  • \begin{document}:文档开始
  • \end{document}:文档结束
  • \maketitle:生成标题
  • \tableofcontents:生成目录
  • \section{ }:一级章节
  • \subsection{ }:二级章节
  • \subsubsection{ }:三级章节
  • \paragraph{ }:段落
  • \newpage:分页
  • \includegraphics[]{}:插入图片
  • \caption{ }:图片标题
  • \label{ }:标记引用点
  • \ref{ }:引用标记
  • \cite{ }:引用文献

LaTex数学模式

  • $...$:行内公式
  • \[...\]:显示公式
  • \begin{equation}:开始公式
  • \end{equation}:结束公式
  • \begin{align}:开始align环境
  • \end{align}:结束align环境
  • \begin{array}{ }:矩阵环境
  • \end{array}:结束矩阵环境

LaTex常用希腊字母

  • \alpha \beta \gamma:α β γ
  • \delta \epsilon \zeta:δ ε ζ
  • \eta \theta \iota: η θ ι
  • \kappa \lambda \mu: κ λ μ
  • \nu \xi \omicron: ν ξ ο
  • \pi \rho \sigma: π ρ σ
  • \tau \upsilon \phi: τ υ φ
  • \chi \psi \omega: χ ψ ω

LaTex常用数学符号

  • \times \div \pm:× ÷ ±
  • \leq \geq \neq:≤ ≥ ≠
  • \ldots \cdots:省略号
  • \sqrt[ ]{ }:根号
  • \frac{ }{ }:分式
  • \sum \prod \int \iint:∑ ∏ ∫ ∫∫
  • \overline{x} \underline{y}:上下标
  • \vec{x} \hat{y}:向量上标
  • \infty:∞
  • \partial:偏导数 ∂
  • \therefore: daher 符号
  • \ because: 因为符号
  • \forall \exists:∀ ∃
  • \to \rightarrow \Rightarrow:→ ⇒
  • \xleftarrow \xRightarrow:← →
  • \sim \approx:∼ ≈
  • \subseteq \subset:⊆ ⊂
  • \langle \rangle:⟨ ⟩