Others - Latex

$\LaTeX$

1. $\LaTeX$ 的基本概念

1.1 第一次使用 $\LaTeX$

一份最短的 $\LaTeX$ 源代码示例

\documentclass{article}
\begin{document}
``Hello world!'' from \LaTeX.
\end{document}

1.2 $\LaTeX$ 命令和代码结构

1.2.1 $\LaTeX$ 命令和环境

字母形式的 $\LaTeX$ 命令忽略其后的所有连续空格。如果要人为引入空格,需要在命令后面,加一对花括号阻止其忽略空格: pic

$\LaTeX$ 中还包括环境,用以令一些效果在局部生效,或是生成特殊的文档元素。$\LaTeX$ 环境 的用法为一对命令 \begin\end

\begin{⟨environment name⟩}[⟨optional arguments⟩]{⟨mandatory arguments⟩}\end{⟨environment name⟩}

1.2.2 $\LaTeX$ 源代码结构

$\LaTeX$ 源代码以一个 \documentclass 命令作为开头,它指定了文档使用的文档类。document 环境当中的内容是文档正文。 在 \documentclass\begin{document} 之间的位置称为导言区。在导言区中一般会使用 \usepackage 命令调用宏包,还会进行文档的全局设置。

\documentclass{...} % ... 为某文档类
% 导言区
\begin{document}
% 正文内容
\end{document}
% 此后内容会被忽略

1.3 $\LaTeX$ 宏包和文档类

1.3.1 文档类

文档类规定了 $\LaTeX$ 源代码所要生成的文档的性质——普通文章、书籍、演示文稿、个人简 历等等。$\LaTeX$ 源代码的开头须用 \documentclass 指定文档类:

\documentclass[⟨options⟩]{⟨class-name⟩}

其中 ⟨class-name⟩ 为文档类的名称,如 LATEX 提供的 article, book, report,在其基础上派 生的一些文档类如支持中文排版的 ctexart / ctexbook / ctexrep,或者有其它功能的一些文档类, 如 moderncv / beamer 等。

可选参数 ⟨options⟩ 为文档类指定选项,以全局地规定一些排版的参数,如字号、纸张大小、 单双面等等。比如调用 article 文档类排版文章,指定纸张为 A4 大小,基本字号为 11pt,双面 排版:

\documentclass[11pt,twoside,a4paper]{article}

1.3.2 宏包

在使用 $\LaTeX$ 时,时常需要依赖一些扩展来增强或补充 LATEX 的功能,比如排版复杂的表 格、插入图片、增加颜色甚至超链接等等。这些扩展称为宏包。调用宏包的方法非常类似调用文 档类的方法:

\usepackage[⟨options⟩]{⟨package-name⟩}

% 一次性调用三个排版表格常用的宏包
\usepackage{tabularx, makecell, multirow}

宏包(包括前面所说的文档类)可能定义了许多命令和环境,或者修改了 $\LaTeX$ 已有的命 令和环境。它们的用法说明记在相应宏包和文档类的帮助文档。在 Windows 命令提示符或者 Linux 终端下输入命令可查阅相应文档:

texdoc ⟨pkg-name⟩

1.4 文件的组织方式

当编写长篇文档时,例如当编写书籍、毕业论文时,单个源文件会使修改、校对变得十分困 难。将源文件分割成若干个文件,例如将每章内容单独写在一个文件中,会大大简化修改和校对 的工作。

LATEX 提供了命令 \include 用来在源代码里插入文件:

\include{⟨filename⟩} 
\include{chapters/a.tex} % 相对路径
\include{/home/Bob/file.tex} % *nix (包含 Linux、macOS(OS X))绝对路径
\include{D:/file.tex} % Windows 绝对路径,用正斜线

值得注意的是 \include 在读入 ⟨filename⟩ 之前会另起一页。有的时候我们并不需要这样,而是用 \input 命令,它纯粹是把文件里的内容插入:

\input{⟨filename⟩}

2. 用 $\LaTeX$ 排版文字

|功能|实现方式| |—|— |换行| 空行,或在行末输入 \par |注释| % |单、双引号| `text', ` ``text’’ |连字号、短破折号和长破折号| 连字号 - 用来组成复合词;<br> 短破折号 用来连接数字表示范围;<br> 长破折号 用来连接单词,语义上类似中文的破折号。 |省略号| \ldots |手动断行| \[⟨width⟩], \*[⟨width⟩], \newline <br> 带星号的断行命令表示禁止在断行处分页 |手动断页| \newpage, \clearpage`

pic

3. 文档元素

3.1 章节和目录

3.1.1 章节标题

\chapter{⟨title⟩}  % 只在 book 和 report 文档类有定义
\section{⟨title⟩} 
\subsection{⟨title⟩}
\subsubsection{⟨title⟩} 
\paragraph{⟨title⟩} 
\subparagraph{⟨title⟩}

\part  % 将整个文档分割为大的分块,但不影响 \chapter 或 \section 等的编号

上述命令除了生成带编号的标题之外,还向目录中添加条目,并影响页眉页脚的内容。每个命令有两种变体:

  • 带可选参数的变体:\section[⟨short title⟩]{⟨title⟩} 标题使用 ⟨title⟩ 参数,在目录和页眉页脚中使用 ⟨short title⟩ 参数;
  • 带星号的变体:\section*{⟨title⟩} 标题不带编号,也不生成目录项和页眉页脚。

较低层次如 \paragraph\subparagraph 即使不用带星号的变体,生成的标题默认也不 带编号,事实上,除 \part 外:

  • article 文档类带编号的层级为 \section / \subsection / \subsubsection 三级;
  • report/book 文档类带编号的层级为 \chapter / \section / \subsection 三级。

3.1.2 目录

在 $\LaTeX$ 中生成目录非常容易,只需在合适的地方使用命令:

\tableofcontents

就会生成单独的一章(book / report)或一节(article),标题默认为 “Contents”

3.2 标题页

Appendix 1. 实用宏包

1.1 syntonly

加载这个宏包后,在导言区使用 \syntaxonly 命令,可令 $\LaTeX$ 编译后不生成 DVI 或者 PDF 文档,只排查错误,编译速度会快不少:

\usepackage{syntonly}
\syntaxonly

如果想生成文档,则用 % 注释掉 \syntaxonly 命令即可。

Document Information