1. 基础知识
    1. 源文件
      1. 普通的ASCII文件(纯文本文件)
      2. 空白距离
        1. 多个连续空格和单个回车符视为一空格
        2. 两行文本中的空行表示上一段落结束和下一段落的开始
      3. 特殊字符
        1. # $ % ^ & _ { } ~ \
          1. \# \$ \% \^{} \& \_ \{ \} \~{}
        2. 另外一些字符不能通过加反斜杠得到,由特殊命令或作为重音命令得到
          1. \\是一个断行命令
      4. 命令
        1. 大小写敏感
        2. 两种格式
          1. 以反斜线\ 开始,加上命令名。命令名后的空格符、数字或其它非字母字符标志该命令的结束
          2. 由一反斜线和一特殊字符组成
        3. 忽略命令后的空格
          1. 可以在命令后加 一对大括号{}和一个空格得到空格
      5. 注释
        1. 忽略百分号%以后的该行文本,分行符以及下一行开始的空白字符
        2. % 也可以用来分割不允许有空格或分行的较长输入文本
          1. Supercal%
          2. ifragilist%
          3. icexpialidocious
          4. 输出结果为Supercalifragilisticexpialidocious
    2. 源文件结构
      1. 制定文档类别
        1. \documentclass{...}
      2. 调入宏集
        1. \usepackage{...}
      3. 开始文档
        1. \begin{document}
      4. 结束文档
        1. \end{document}
    3. 编辑过程
      1. 创建并编辑你的LaTex源文件
      2. 运行源文件,成功可得到dvi文件
        1. latex example.tex
      3. 预览
        1. 预览dvi文件
          1. xdvi example.dvi
        2. 或者转换成PS文件
          1. dvips -Pcmz example.dvi -o example.ps
    4. 文档布局
      1. 文档类
        1. \documentclass[options]{class}
          1. class指明文档类型
          2. article
          3. 排版科技期刊、短报告、程序文档、邀请函等
          4. report
          5. 排版多章节的长报告、短篇的书籍、博士论文等
          6. book
          7. 排版书籍
          8. slides
          9. 排版幻灯片
          10. options调节文档类属性
          11. 设置字体大小,缺省10pt
          12. 10pt, 11pt, 12pt
          13. 定义纸张大小,缺省letterpaper
          14. a4paper, letterpaper, a5paper, b5paper, executivepaper, legalpaper. . .
          15. 设置数学公式左对齐,缺省中间对齐
          16. fleqn
          17. 设置数学公式编号位于左侧,缺省右侧
          18. leqno
          19. 是否在文档标题后开始一新页,article缺省不开始,book缺省开始
          20. titlepage, notitlepage
          21. 指定排版方式,单栏或双栏
          22. onecolumn, twocolumn
          23. 指定排版格式,单面或双面,article 和report 缺省单面,book 缺省双面
          24. twoside, oneside
          25. 指定新的一章开始在右边页(奇数页)还是下一可用页,article中无效(没有章的概念),report缺省下一可用页,book缺省右边页
          26. openright, openany
      2. 宏包
        1. \usepackage[options]{package}
          1. package 是宏包名称
          2. options 是触发宏包中的特殊功能的关键词
    5. 各类文件
      1. 文件类型
        1. .tex
          1. LaTeX 或TeX 源文件
        2. .sty
          1. LaTeX 宏包文件
        3. .dtx
          1. 文档化TEX 文件
          2. LaTeX宏包发布主要格式
          3. 处理该文件可得该宏包中的宏代码文档
        4. .ins
          1. 相应.dtx 文件的安装文件
          2. 对.ins文件进行处理,可以从.dtx 文件中提取出宏包
        5. .dvi
          1. 与设备无关文件
          2. LaTeX编译主要运行结果,可以预览或打印
        6. .log
          1. 记录了上次编译运行时的详细信息
        7. .toc
          1. 存储了所有章节标题
          2. 该文件将在下次编译运行时被读入并生成目录
        8. .lof
          1. 类似.toc 文件,可生成图形目录
        9. .lot
          1. 类似.toc 文件,可生成表格目录
        10. .aux
          1. 向下次编译运行传递信息的辅助文件
          2. 除了其它信息,通常包含交叉引用信息
        11. .idx
          1. 存储索引词条,前提是有索引
          2. 此文件需要使用makeindex 处理
        12. .ind
          1. 经过处理后的.idx 文件
        13. .ilg
          1. 运行makeindex 时生成的记录文件
      2. 伴随LaTeX的宏包
        1. normalfontdoc
          1. 排版文档
        2. exscale
          1. 提供可缩放版本的数学字体扩展
        3. normalfontfontenc
          1. 声明所使用的字体编码
        4. ifthen
          1. 提供‘if. . . then do. . . otherwise do. . . .’形式的命令
        5. latexsym
          1. 在文档中使用LaTeX符号
        6. makeidx
          1. 提供生成索引的命令
        7. syntonly
          1. 处理文档但不排版
        8. inputenc
          1. 允许声明ASCII、ISO Latin-1、ISO Latin-2、437/850IBM 编码页、Apple Macintosh、Next、ANSI-Windows 或自定义的输入编码
      3. 页面样式
        1. 支持三种预定的页眉、页脚格式
        2. \pagestyle{style}
          1. style定义了所使用页面式样
          2. plain
          3. 页眉为空,页脚为居中的的页码,默认值
          4. headings
          5. 页眉为当前的章节标题和页码,页脚为空
          6. empty
          7. 页眉、页脚均为空
        3. \thispagestyle{style}
          1. 改变当前页的页面式样
    6. 大型文件
      1. \include{filename}
        1. 在文档的正文中使用
        2. 引入文件名为filename.tex的内容
        3. 在开始处理filename.tex的内容之前将会开始一新页
      2. \includeonly{filename,filename,. . . }
        1. 可用在文档的导言区
        2. 指导LaTeX仅仅读入某些\included 文件
        3. 在导言区执行后在,所有\include 命令只有\includeonly 命令参数中列出的文件才会被执行
        4. 在参数中,文件名和逗号之间不能有空格
      3. \input{filename}
        1. 不在新页排版引入文本
        2. 只是简单地引入文件,无其它限制
      4. \usepackage{syntonly} \syntaxonly
        1. 快速检查文档,运行快,节省时间
        2. 仅检查语法和命令是否正确,不产生DVI 输出
  2. 文档排版
    1. 断行与分页
      1. 段落整理
        1. \\ or \newline
          1. 另起一行,而不另起一段
        2. \\*
          1. 强行断行,禁止分页
        3. \newpage
          1. 另起一新页
        4. \linebreak[n], \nolinebreak[n], \pagebreak[n] and \nopagebreak[n]
          1. n 为0 和4之间
          2. n小于4可忽略命令
        5. \sloppy
          1. 降低断行标准
          2. 通过增加单词间隔,防止出现过长的行
        6. \fussy
          1. 断行标准恢复为缺省状态
      2. 断字
        1. \hyphenation{word list}
          1. 断字算法不能确定正确的断字点时使用
          2. 使参量中的单词仅在注有“-” 的点断字
        2. \-
          1. 在单词中插入一个自主的断字点
          2. 对于含特殊字符的单词特别有用
        3. \mbox{text}
          1. 保证把几个单词排在同一行上
        4. \fbox
          1. 和\mbox 类似,还能围绕内容画一个框
    2. 字符串排版
      1. \today
        1. Current date in the current language
      2. \TeX
        1. The name of your favorite typesetter
      3. \LaTeX
        1. The name of the Game
      4. \LaTeXe
        1. The current incarnation of LATEX
    3. 特殊字符和符号
      1. 引号
        1. 两个` 产生左引号,两个' 产生右引号
      2. 破折号和连字号
        1. -
          1. ‘-’ 连字号
        2. --
          1. `
        3. ---
          1. ‘—’ 长破折号
        4. $-$
          1. ‘¡’ 减号
      3. 波浪号
        1. \~{}
          1. 英文波浪号,可用于网址
        2. $\sim$
          1. 中文波浪号,网址无效
        1. $\,^{\circ}$
      4. 摄氏度
        1. $\,^{\circ}\mathrm{C}$
      5. 省略号
        1. \ldots
      6. 连字
        1. 一些字母组合不是简单键入一个个字母得到的,而用到了特殊符号,如ff fi fl
        2. \mbox{}
          1. 禁止连字
          2. 对于由两个词构成的单词,这可能是必要的
      7. 注音符号和特殊字符
        1. Topic
        2. 在字母i 和j 上标注音符号,点必须去掉。可由\i 和\j 做到
    4. 支持使用国际语言
      1. \usepackage[language]{babel}
        1. 使自动生成的字符串适用于新语言
        2. 激活适当的断字规则
      2. \usepackage[encoding]{inputenc}
        1. 编码
      3. \usepackage[T1]{fontenc}
        1. 字体
    5. 单词的间隔
      1. 原则
        1. 为了使输出右对齐,LaTeX 在单词间插入不等的间隔
        2. 句子末尾插入的空间稍多,使得文本更具可读性
      2. 假设
        1. LaTeX 假定句子以句号、问号或惊叹号结尾
        2. 如果句号紧跟一个大写字母,就不视为句子结尾
      3. 例外
        1. 空格前加反斜线符号
          1. 一个不能伸长的空格
        2. 波浪字符‘~’
          1. 一个不能伸长的空格,并禁止断行
        3. 句号前加命令\@
          1. 句号是句子末尾,即使紧跟一个大写字母
      4. \frenchspacing
        1. 禁止在句号后插入额外空间
          1. 如果使用\frenchspacing,命令\@ 就不必要了
    6. 标题,章和节
      1. 分节命令
        1. article、report和book风格文档
          1. \section{...}
          2. \subsection{...}
          3. \subsubsection{...}
          4. \paragraph{...}
          5. \subparagraph{...}
        2. report 和book 风格文档
          1. \part{...}
          2. 不影响章的序号
          3. 对article 风格文档改变节的序号
          4. \chapter{...}
        3. 节的序号和标题的字号由LATEX 自动设置
        4. “带星”的分节命令
          1. 节标题不出现于目录,不带序号
        5. 标题前的可选参量
          1. 代替真正的标题出现在目录中
          2. 通常是比较长不适合出现在目录中
      2. \tableofcontents
        1. 在出现位置插入目录
        2. 需要编译两至三次
      3. \maketitle
        1. 整篇文档的标题
        2. 之前需定义
          1. \title{...}
          2. \author{...}
          3. 可输入几个用\and分开的名字
          4. \date{...}
          5. 可选
      4. LaTeX2e用于book风格的文档
        1. \frontmatter
          1. 紧接着命令\begin{document} 使用
          2. 把页码更换为罗马数字
          3. 对于正文前内容使用带星的命令以阻止LaTeX对其排序
        2. \mainmatter
          1. 出现在书的第一章紧前面
          2. 打开阿拉伯页码计数器,并对页码从新计数
        3. \appendix
          1. 标志附录材料开始
          2. 此后各章序号用字母标记
        4. \backmatter
          1. 插入与书中最后一部分内容的紧前面
          2. 如参考文献和索引
    7. 交叉引用
      1. \label{marker}, \ref{marker} and \pageref{marker}
      2. marker是使用者选择的标识符
      3. \label在节、子节、图、表或定理后
      4. \ref会被替换为相应的序号
      5. \pageref会被替换为相应的页码
      6. 使用的序号由前面编译所产生
    8. 脚注
      1. \footnote{footnote text}
        1. footnote text为脚注内容
        2. 脚注内容排印于当前页页脚位置
    9. 强调
      1. \underline{text}
        1. 下划线强调单词
      2. \emph{text}
        1. 斜体排印强调单词
        2. 具体效果依赖上下文
          1. 两层嵌套恢复正体
          2. 嵌套斜体(italics)会变成正体
    10. 环境
      1. \begin{environment} text \end{environment}
        1. text是文本内容
        2. environment是环境名称
      2. Itemize, Enumerate, Description
        1. itemize 环境用于简单的列表
        2. enumerate 环境用于带序号的列表
        3. description环境用于带描述的列表
      3. Flushleft, Flushright, Center
        1. flushleft 环境产生靠左排列的段落
        2. flushright环境产生靠右排列的段落
        3. center 环境产生居中的文本
        4. 如果不输入\\ 指定断行点 程序将自行决定
      4. Quote, Quotation, Verse
        1. quote 环境表示重要断语和例子的引用
        2. quotation 环境用于长引用,对段落进行缩进
        3. verse 环境用于诗歌断行
      5. Verbatim
        1. 文本直接打印,包括所有的断行和空白,不执行任何命令
        2. 类似的功能
          1. \verb+text+
          2. + 是分隔符的一个例子,除了* 和空格,可使用任一字符
          3. 带星的命令将显示所有不可见字符
      6. tabular
        1. 排印带有水平和铅直表线的表格,程序自动确定列宽
        2. \begin{tabular}{table spec}...\end{tabular}
        3. table spec定义表格式样
          1. l 产生左对齐的列
          2. r产生右对齐的列
          3. c 产生居中的列
          4. p{宽度值width} 产生相应宽度、包含自动断行文本的列
          5. | 产生铅直表线
        4. 环境中
          1. & 跳入下一列
          2. \\ 开始新一行
          3. \hline 插入水平表线
          4. \cline{j-i} 可添加部分表线
          5. j 和i 表示表线的起始和终止列序号
        5. 表列分隔符可由@{...} 构造
          1. 去掉表列间间隔,以花括号间内容代之
          2. 可能的用途
          3. 十进制小数对齐问题
          4. 用@{} 压缩表列右端空间
        6. \multicolumn{n}{table spec}{text}
          1. 产生一个跨列的内容
          2. n表示跨n列
          3. table spec为表格样式
          4. text为表格内容
        7. 表格环境排印在同一页上,长表格要看一下supertabular 和longtabular 环境
    11. 浮动体
      1. 包围于环境figure 或环境table 中的任何材料都将被视为浮动内容
      2. \begin{figure}[placement specifier] \end{figure} or \begin{table}[placement specifier] \end{table}
      3. placement specifier为放置说明符,由浮动允许放置参量组成,缺省值为[tbp]
        1. h 浮动体就放在当前页面上。这主要用于小浮动体
        2. t 放在页面顶部
        3. b 放在页面底部
        4. p 放在一专门页面,仅含一个浮动体
        5. ! 忽略阻止浮动体放置的大多数内部参数
      4. \caption[option text]{caption text}
        1. 给浮动体定义一个标题
        2. 序号和字符串“图”或“表”将自动添加
        3. caption text为标签内容
        4. option text为备用标签内容,一般是长标题的较短版本
      5. \listoffigures and \listoftables
        1. 排印一个图目录和表目录
      6. 利用\label 和\ref,在文本中可以为浮动体创建交叉引用
        1. 子主题 1
      7. \clearpage or \cleardoublepage
        1. 立即安排等待序列中所有剩下的浮动体,并且开一新页
        2. \cleardoublepage 甚至会新开奇数页面
  3. 数学公式
    1. 基本知识
      1. 数学表达式应该置于\(和\),$和$或者\begin{math}和\end{math}之间
      2. 较大的数学式最好用显示式样来排版
        1. 置于\[ 和\] 或\begin{displaymath} 和\end{displaymath} 之间
          1. 添加编号可以使用equation环境实现
      3. 数学模式与文本模式的不同
        1. 空格和分行都将被忽略
          1. 所有的空格或是由数学表达式逻辑的衍生,或是由特殊的命令如\,,\quad 或\qquad 得到
        2. 不允许有空行,每个公式中只能有一个段落
        3. 每个字符都将被看作是一个变量名并以此来排版
          1. 普通文本须使用\textrm{...}命令
      4. “空心粗体”表示的实数集合可用amsfonts或amssymb宏包中的命令\mathbb来得到
    2. 数学模式中的分组
      1. 命令仅对其后面第一个字符起作用
      2. 作用于多个字符须置于大括号中{...}
    3. 数学公式模块
      1. 小写希腊字母
        1. \alpha,\beta, \gamma, . . .
      2. 大写希腊字母
        1. \Gamma, \Delta,. . .
      3. 指数和下标
        1. 用^ 和_ 后加相应的字符实现
      4. 平方根
        1. \sqrt
      5. n 次方根
        1. \sqrt[n]
      6. 方根符号
        1. \surd
      7. 上、下方画出水平线
        1. \overline & \underline
      8. 字符' 将生成小撇(右上角的标记符号)
      9. 向量
        1. \vec
          1. 单字符向量
        2. \overrightarrow 和\overleftarrow
          1. 从起点到终点的向量
      10. 圆点
        1. \cdot
      11. 其他函数
        1. \arccos \cos \csc \exp \ker \limsup \min \arcsin \cosh \deg \gcd \lg \ln \Pr \arctan \cot \det \hom \lim \log \sec \arg \coth \dim \inf \liminf \max \sin \sinh \sup \tan \tanh
      12. 模函数
        1. 二元运算符“a mod b”
          1. \bmod
        2. 用于表达式,例如“x ´ a (mod b)
          1. \pmod
      13. 分数
        1. \frac{...}{...}
      14. 二项系数或类似的结构
        1. {... \choose ...}
          1. 有括号
        2. {... \atop ...}
          1. 无括号
      15. 二元关系
        1. 将第一项中的符号以上标大小放在正常位置的第二项上
          1. \stackrel
      16. 积分运算符
        1. \int
        2. AmS-LaTeX提供多重积分另一种方式
          1. \iint, \iiint, \iiiint 和\idotsint
      17. 求和运算符
        1. \sum
      18. 乘积运算符
        1. \prod
      19. 括号
        1. 圆括号和方括号可以用相应的键输入
        2. 花括号用\{和\}
      20. 分隔符
        1. 专门命令(例如\updownarrow)
        2. 分隔符大小
          1. 自动确定
          2. \left 放在开分隔符前
          3. 须用右分隔符\right关闭左分隔符\left
          4. 只有当两分隔符同行时大小才被确定
          5. 手工指定
          6. \big, \Big, \bigg 及\Bigg
      21. 三个圆点
        1. \ldots
          1. 点在基线上
        2. \cdots
          1. 点位置居中
        3. \vdots
          1. 点垂直排列
        4. \ddots
          1. 点对角排列
      22. 这些旧命令在amsmath宏集中禁用 而是用\binom和\genfrac来代替
    4. 数学空格
      1. \, 对应于3/18 quad
      2. \: 对应于4/18 quad
      3. \; 对应于5/18 quad
      4. \空格:生成中等大小的空格
      5. \quad和\qquad产生大空格
      6. \! 对应于负空格-3/18 quad
    5. 垂直对齐
      1. 数组
        1. 使用array 环境来排版
        2. 可用“.” 作为隐藏右分隔符来排版只有一个大分隔符的表达式
      2. 分布于几行的公式或者方程组
        1. 可以使用eqnarray 和eqnarray* 环境来代替
        2. eqnarray对方程编号,eqnarray*不对方程编号
        3. 环境类似于{rcl} 形式的三列表格
      3. 设定等号每边的空格大小
        1. \setlength\arraycolsep{2pt}
      4. 阻止为此方程生成编号
        1. \nonumber
    6. 幻影
      1. 为不在最终输出中出现的字符预留空间
        1. \phantom
    7. 数学字体大小
      1. 确保字体大小交换机制起作用
        1. \mathrm
      2. 设定字体大小
        1. \displaystyle (123), \textstyle (123), \scriptstyle (123) and \scriptscriptstyle (123)
    8. 定理、定义. . .
      1. \newtheorem{name}[counter]{text}[section] \begin{name}[text] This is my interesting theorem \end{name}
      2. name 是用于标识“定理”的短关键字
      3. counter 可以指定先前声明的“定理”的name
      4. text 定义“定理”的真实名称,会在最终文件中打印出来。
      5. 方括号中的选项是任意的, 可以用于指定“ 定理” 中使用的标号
      6. “Jury” 定理和“Law” 定理使用同一个计数器
    9. 粗体符号
      1. \mathbf给出粗体字母
      2. \boldmath只能用于数学模式之外,对于符号也是如此
      3. \boldsymbo包含在工具包amsbsy和bm,很容易办到这点
    10. 常用的所有符号
      1. 须安装AMS数学字库并在导言区加载宏包:amssymb
      2. 数学模式重音符
        1. Topic
      3. 小写希腊字母
        1. Topic
      4. 大写希腊字母
        1. Topic
      5. 二元关系符
        1. 可在命令前加上\not得到其否定形式
      6. 二元运算符
        1. Topic
      7. 大尺寸运算符
        1. Topic
      8. 箭头
        1. Topic
      9. 定界符
        1. Topic
      10. 大尺寸定界符
        1. Topic
      11. 其它符号
        1. Topic
      12. 非数学符号
        1. 这些符号也可以在文本模式中使用
      13. AMS 定界符
        1. Topic
      14. AMS 希腊和希伯来字母
        1. Topic
      15. AMS 二元关系符
        1. Topic
      16. AMS 箭头
        1. Topic
      17. AMS 二元否定关系符和箭头
        1. Topic
      18. AMS 二元运算符
        1. Topic
      19. AMS 其它符号
        1. Topic
      20. 数学字母
        1. Topic
  4. 特殊功能
    1. 包含EPS 图形
      1. 在导言装入graphicx 宏包 \usepackage[driver]{graphicx}
        1. driver 是“dvi 到postscript”的转换程序,最常用的是dvips
      2. 把文件file 加入文档 \includegraphics[key=value, . . . ]{file}
        1. 可选的参数是一系列由逗号隔开的关键词keys 和相应的值values
        2. 关键词keys 可改变图形的一些参数
          1. width 把图形缩放到指定的宽度
          2. height 把图形缩放到指定的高度
          3. angle 逆时针旋转图形
          4. scale 缩放图形
    2. 参考文献
      1. 通过thebibliography 环境来产生一个参考文献
      2. \bibitem{marker}
        1. 条目开头
      3. \cite{marker}
        1. 在正文中引用
      4. 参考文献条目的编号是自动生成的
        1. \begin{thebibliography}后的参数设置了最大的编号宽度
    3. 索引
      1. \usepackage{makeidx}
        1. 在导言部分引入宏包makeidx
      2. \makeindex
        1. 指定索引的内容
      3. \index{key}
        1. 指定索引的内容
        2. key 是索引项的关键词
      4. makeindex filename
        1. \index 命令会将适当的索引项和当前页码写入一个同名的.idx文件
        2. 需要用makeindex处理.idx文件,生成.ind文件
        3. 再次用LaTeX处理源文件,即可在\printindex位置引入索引
      5. \printindex
        1. 输出索引内容
    4. 定制页眉和页脚
      1. \usepackage{fancyhdr}
      2. \pagestyle{fancy}
      3. \lhead{text} \chead{text} \rhead{text} \lfoot{text} \cfoot{text} \rfoot{text} \fancyhead[options]{text} \fancyfoot[options]{text} \fancyhf[options]{text}
        1. options是方位参数
          1. E 偶数页
          2. O 奇数页
          3. L 页眉或页脚的左边部分
          4. C 页眉或页脚的中间部分
          5. R 页眉或页脚的右边部分
          6. H 页眉
          7. F 页脚
        2. text为内容
          1. \thepage 给出当前页码
    5. Verbatim 宏包
      1. 重新实现了verbatim 环境,并解决了verbatim 环境的一些限制
      2. \verbatiminput{filename}
        1. 把文本文件包含到文档中,显示效果同verbatim环境
    6. 下载并安装宏包
      1. 一般包含扩展名为.ins和.dtx两个文件 通常还有readme.txt 进行简要说明
      2. 生成宏包
        1. 对.ins 文件运行LATEX 命令。这将会产生一个.sty 文件
        2. 把.sty 文件移到系统能找到的地方
        3. 刷新系统的文件名数据库。
      3. 生成说明文档
        1. 用LaTeX命令处理.dtx 文件生成.dvi 文件,可能需要多次运行处理交叉引用
        2. 检查LaTeX 命令是否产生了.idx 文件,如果没发现可以直接进行最后一步
        3. 生成索引,makeindex -s gind.ist name,name 表示不带扩展名的主文件名
        4. 再次对.dtx 文件运行LaTeX命令
        5. 生成.ps 文件或者.pdf 文件以方便阅读(不是必须的)
      4. 若生成了.glo 文件,在最后一步前运行: makeindex -s gglo.ist -o name.gls name.glo 最后一步前最后对.dtx文件运行LaTeX命令
  5. 定制LaTeX
    1. 建立新的命令、环境和包
      1. 建立新的命令
        1. \newcommand{name}[num]{definition}
          1. name 是命令的名称
          2. definition 是命令的定义
          3. num(可选)指定命令参数数目(最多9个) 若不给出则新建的命令不接受任何参数
        2. 不允许用\newcommand 新建重名的命令 需要使用\renewcommand,语法相同
        3. \providecommand效果同\newconmmand 但如果命令已经存在,将忽略这个命令
      2. 建立新的环境
        1. \newenvironment{name}[num]{before}{after}
          1. before提供包含文本开始之前的处理
          2. after提供包含文本结束之前的处理
          3. num使用方式与\newcommand相同
        2. 不允许用\newenvironment 新建重名的环境 需要使用\renewenvironment,语法相同
      3. 建立新的宏包
        1. 将导言部分拷贝到以.sty 结尾的文件中
        2. \ProvidesPackage{package name}
          1. 在包的最前面使用
          2. 告之宏包名称防止两次引入
    2. 字体和尺寸
      1. 字体变换命令
        1. 字体的实际尺寸依赖于文档所使用的文档类
        2. 字体的各种属性是相互独立的
        3. 大括号用于建立组,限制命令范畴
        4. 若段落在作用范畴中结束,字体命令将改变段落中行距,因此反向大括号} 不应太早结束
        5. 使用变换字体的环境可以改变整段甚至更多文本的字体
        6. 字体
          1. Topic
        7. 字体尺寸
          1. Topic
        8. 标准文档类型中 字体的绝对大小
          1. Topic
        9. 数学字体
          1. Topic
      2. Danger, Will Robinson, Danger
        1. 运用明确的命令修改格式是非常危险的事
        2. 要始终注意分离文章的逻辑结构和实际的格式
        3. 若多处采用同一格式,应用\newcommand封装,并用此命令修改
      3. 建议
        1. 文章中使用的字体越多,文章看起来越美观
    3. 文档对象之间的间隔
      1. 行距
        1. \linespread{factor}
          1. 缺省行距为1
          2. 1.3将产生1.5倍行距
          3. 1.6将产生2倍行距
      2. 段落格式
        1. 导言部分
          1. \setlength{\parindent}{0pt}
          2. 首行缩进为0
          3. \setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
          4. 增加段落间距
          5. plus和minus部分使得在一定范围内设定行距
        2. 正文部分
          1. \indent
          2. 创建一个缩进的段落
          3. 在段落的开始部分使用
          4. 只有在\parindent 不为零的情况下才有效果
          5. \noindent
          6. 创建一个不缩进的段落
          7. 在段落的开始部分使用
      3. 水平距离
        1. \hspace{length}
          1. 增加水平距离
          2. length在一般情况下只是一个带单位的数字
          3. \hspace*可以使行首或者行末的水平距离消失
        2. \stretch{n}
          1. 产生一个将一行的宽度充满的长度
          2. 位于一行的\hspace{\stretch{n}}将根据伸缩因子n分配空间
      4. Tex长度单位
      5. 垂直距离
        1. 在段落、节、小节⋯⋯之间的距离是由系统自动决定的
        2. \vspace{length}
          1. 在两段之间增加额外距离
          2. 通常用于两个空行之间
          3. length表示两行之间的距离
          4. \vspace*使页面顶部和末尾的额外行距消失
        3. \\[length]
          1. 指定同一段或同一个表格中两行之间的距离
        4. \bigskip, \smallskip
          1. 获得一个预定义的垂直距离
      6. 页面的布局
        1. 页面布局参数
          1. Topic
          2. Topic
        2. 需要layout 宏包
          1. 命令在导言部分使用
        3. \setlength{parameter}{length}
          1. 给某个参数一个固定的值
        4. \addtolength{parameter}{length}
          1. 给某个参数增加一个固定的大小
          2. 更实用
      7. 长度的详细信息
        1. 避免使用绝对长度
        2. 一般通过页面中其它元素的宽度或高度来指定长度
        3. \settowidth{lscommand}{text}
          1. 获得一个文本串的宽度
        4. \settoheight{lscommand}{text}
          1. 获得一个文本串的高度
        5. \settodepth{lscommand}{text}
          1. 获得一个文本串的深度
      8. 盒子
        1. \parbox[pos]{width}{text}
          1. 把一个段落放置到盒子中
          2. pos 可以取c - 居中, t - 靠顶 或b - 靠底 中的一个 控制盒子相对环绕文本基线的垂直位置
          3. width调整盒子的宽度
        2. \begin{minipage}[pos]{width} text \end{minipage}
          1. 作用同parbox parbox中无法使用某些命令或者环境 minipage中可以使用任何东西
        3. \makebox[width][pos]{text}
          1. width 定义盒子从外部观察的宽度
          2. 可传递盒子内部文本的参数\width、\height、\depth 和\totalheight 给width
          3. pos可取以下字符:c – 居中、l – 靠左、r – 靠右和s – 均匀分布 中的一个
        4. \framebox[width][pos]{text}
          1. 和\makebox 完成同样的工作
          2. 在内部文本的周围画出一个矩形框
        5. \raisebox{lift}[depth][height]{text}
          1. 前三个参数可使用盒子内部文本的参数\width、\height、\depth和\totalheight
      9. 标尺和支撑
        1. \rule[lift]{width}{height}
          1. 输出一个黑色的矩形
          2. 产生水平方向和垂直方向的线条
          3. 没有宽度只有高度的标尺,保证文档的一部分具有一个确定的高度最小值