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具有以下显著优点:
-
排版效果出众
LaTex的排版算法经过多年发展,专门针对技术文档进行了优化。它可以自动进行段落折行、页边距设定、正确使用空格等排版布局,使得生成的文档非常美观大方。相比之下,Word默认的排版算法并不专业,很难达到LaTex的水准。
-
支持数学公式
LaTex有非常出色的数学公式排版能力,内置了大量数学符号和布局功能。用户可以手动输入公式控制符,也可以使用一些GUI软件辅助生成。这为编写包含复杂公式的学术论文提供了很大便利。Word的数学公式支持也比较弱。
-
分离内容和样式
LaTex文档的内容和显示样式是分离的,用户只需要关心如何输入内容,显示格式完全由LaTex自动处理。这类似于网页开发中的HTML/CSS分离。相比之下,Word文档的内容和样式是耦合在一起的,用户需要手动设置样式。
-
跨平台兼容性好
LaTex生成的PDF文档可以在不同系统上显示一致的格式,而Word文档在不同环境下则可能出现明显差异。LaTex的这一跨平台优势,使得它非常适合内容协作和共享。
-
引用、目录、索引等支持强大
LaTex对文档内的交叉引用、目录、索引、列表等元素都有非常好的本机支持,可以自动编号并更新,大大减轻了用户的工作量。这对于学术论文写作尤其有用。Word虽然也提供了这些功能,但自动更新不如LaTex智能。
-
版本控制友好
LaTex文档是一个纯文本文件,非常适合利用版本控制系统(比如Git)进行多人协作。也方便对文档进行差异比较。而Word文档因为有样式设置,版本控制时会产生大量无意义的diff。
-
宏包系统扩展强大
LaTex提供了宏包机制,用户可以导入使用各种宏包来扩展文档功能,方便维护和定制。这对于大型文档尤为方便,用户无需关心宏包内部的实现细节。Word虽然也可以导入插件,但功能扩展不如LaTex宏包强大和方便。
-
分章编辑
LaTex支持在单独文件中编辑文档的不同章节,然后在主文档中导入组合。这在编写长文档时可以模块化整个过程,较易维护和协作。Word不支持这种分章编辑方式。
-
开源免费
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工作流程是:
- 用文本编辑器编辑tex源文件
- 在命令行运行LaTex生成dvi文件
- 运行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资源推荐
- CTAN: LaTex宏包和资源库
- TeX StackExchange: 提问和解答社区
- LaTex Wikibook: LaTex入门教程
- Overleaf学习中心:互动性学习LaTex
- ShareLaTex文档:各种场景使用示例
附录
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
:⟨ ⟩