本学习笔记全部从http://www.latexstudio.net/archives/6058抽取总结而来。
第一章 LATEX须知
1.1 概述
1.1.1 TEX
TEX是高德纳开发的、以排版文字和数学公式为目的的一个计算机软件。
1.1.2 LATEX
LATEX为TEX基础上的一套格式,令作者能够使用预定义的专业格式以较高质量排版和印刷他们的作品。
1.2 LATEX命令和代码结构
LATEX的源代码本质上是文本文件。除了文字本身,LATEX源代码之外还包括大量的命令,用在排版公式、划分文档结构、控制样式等等不同的地方。
1.2.1 LATEX命令和环境
LATEX命令以反斜线开头,为以下两种形式之一:
- 反斜线和后面的一串字母,如LATEX。它们以任意非字母符号(空格、数字、标点等)作为分隔符。
- 反斜线和后面的一个非字母符号,如$。它们无需分隔符。
要注意LATEX命令是对大小写敏感的。
大多数的TEX命令是带一个或多个参数,每个参数用花括号{和}包裹。有些命令带一个或多个可选参数,以方括号{和}包裹。还有一些命令在命令名称后可以带一个星号*,带星号和不带星号的命令效果有一定差异。
LATEX的花括号本身也起到分组的作用,可以将字体、格式等的更改限制在大括号范围之内。
LATEX还引入环境的用法,用以令一些效果在局部生效,或是生成特定的文档元素。LATEX环境的用法为一对命令egin和end:
egin{<environment name>}{<arguments>} ... end{<environment name>}
其中<environment name>为环境名, egin和end中填写的环境名应当一致。egin在<environment name>后可以带一个或多个参数,甚至可选参数。环境允许嵌套使用。
1.2.2 LATEX源代码结构
LATEX源代码以一个documentsclass命令作为开头,它规定了文档使用的文档类:
documentclass{...}
紧接着我们可以用usepackage命令调用宏包:
usepackage{...}
再接着我们需要一堆命令来标记正文内容的开始位置和结束位置,而将正文内容写入其中:
egin{document}
end{document}
1.3 用命令行操作LATEX
documentclass{article} egin{document} "Hello world!" from LaTeX end{document}
1.3.1 引擎、格式和命令
几个概念:
引擎:全称为排版引擎,是读入源代码并编译生成文档的程序,如pdfTex等。有时也直接成为编译器。
格式:是定义了一组命令的代码集。LATEX就是最广泛应用的一个格式。
命令:是引擎和格式二者的结合体。
1.3.2 latex命令
生成了asf.dvi以及其它文件。这个扩展名为DVI的文件就是编译输出的文档。
1.3.3 pdflatex和xelatex命令
这两个命令相比于latex命令更为方便,可以直接生成pdf。
1.4 宏包和文档类
1.4.1 文档类
文档类规定了LATEX源代码所要生成的文档的性质——普通文章、演示文稿、个人简历等等。LATEX源代码的开头须用documentclass指定文档类:
documentclass[<options>]{<class-name>}
其中<class-name>为文档类的名称,如LATEX提供的article,book,report,在其基础上派生出了一些支持中文排版的文档如ctexart。
可选参数<options>为文档类指定选项,以全局地印象文档布局的参数,如字号、纸张大小、单双面等等。
比如调用article文档类排版文章,指定纸张为A4大小,基本几号位11pt,双面排版:
documentclass[11pt, twoside, a4paper]{article}
1.4.2 宏包
在编写LATEX源代码时,时常会发现LATEX的基础功能不能满足你的需求,比如排版复杂的表格等等。这是需要依赖一些扩展来增强或补充LATEX的功能。这些扩展称为宏包。调用宏包的方法非常类似于调用文档类的方法:
usepackage[<options>]{<package-name>}
usepackage的参数里可以不只一个宏包,多个宏包用逗号隔开。
每个宏包包括文档类都定义了许多命令和环境,或者修改了LATEX已有的命令和环境。需要查阅宏包和文档类的帮助手册去明白它们的用法。
texdoc <pkg-name>
其中<pkg-name>是宏包或者文档类的名称。
1.5 LATEX用的的文件一览
每个宏包和文档类都是带特定扩展名的文件,除此之外也有一些文件出现于LATEX模板:
.sty 宏包文件
.cls 文档类文件
1.6 文件的组织方式
当编写较大规模的LATEX源代码,如书籍、毕业论文等,将源代码分散开来比较好,比如一章写一个文件。
LATEX提供了命令include用来在源代码里插入文件:
include{<filename>}
<filename>为文件名,如果要和编译的主文件不在一个目录中,则要加上相对或绝对路径。
<filename>可以不带扩展名,此时默认为.tex;其它文件必须带扩展名。
用include在读入<filename>之前会另起一页。有时候我们不需要这样而是用input命令。它纯粹是把文件里的内容插入:
input{<filename>}
另外LATEX提供了一个includeonly命令来组织文件,用于导言区,指定只载入某些文件:
includeonly{<filename1>, <filename2>, ...}