Latex命令、源代码的结构与文档的组织方式

命令、源代码的结构与文档的组织方式

命令和环境

命令用在排版公式、划分文档结构、控制样式等。

命令的结构

  1. 反斜线和后面的一串字母,如\LaTeX。它们以任意非字母符号(空格、数字、标点等)为界限。
  2. 反斜线和后面的单个非字母符号,如\$

要注意LATEX命令是对大小写敏感的,比如输入\LaTeX命令可以生成错落有致的LATEX字母组合,但输入\Latex或者\LaTex什么都得不到,还会报错;它们与\LaTeX是不同的命令。

字母形式的LATEX命令忽略其后的所有连续空格。如果要人为引入空格,需要在命令后面加一对花括号阻止其忽略空格,或者在命令后紧跟一个反斜线+ ⊔ \sqcup

命令的参数

参数分为可选参数和必选参数。可选参数以方括号[]包裹;必选参数一般以花括号{}包裹。还有些命令可以带一个星号*,带星号和不带星号的命令效果有一定差异。

环境

环境用以令一些效果在局部生效或是生成特殊的文档元素。

\begin{⟨environmentname⟩}[⟨optionalarguments⟩]{⟨mandatoryarguments⟩}
…
\end{⟨environmentname⟩}
  1. 环境的用法:用一对命令\begin\end包括。
  2. 其中⟨environmentname⟩为环境名,\begin\end中填写的环境名应当一致。
  3. {⟨mandatoryarguments⟩}[⟨optionalarguments⟩]为环境所需的必选和可选参数。LATEX环境可能需要一个或多个必选/可选参数,也可能完全不需要参数。部分环境允许嵌套使用

分组

使用一对花括号{}作为分组,在分组中使用的命令被限制在分组内,不会影响到分组外的内容(有些命令会对其后所有内容产生作用),个别命令在分组内仍然会产生全局作用。环境也可以看作一个分组。

源代码结构

\documentclass{...}%...为某文档类
%导言区
\begin{document}
%正文内容
\end{document}
%此后内容会被忽略
  1. LATEX源代码以一个\documentclass命令作为开头,它指定了文档使用的文档类
  2. document环境当中的内容是文档正文
  3. \documentclass\begin{document}之间的位置称为导言区。在导言区中常会使用\usepackage命令调用宏包,还会进行文档的全局设置

宏包与文档类

文档类

文档类规定了LATEX源代码所要生成的文档的性质——普通文章、书籍、演示文稿、个人简历等等。

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

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

LATEX提供的基础文档类
article文章格式的文档类,广泛用于科技论文、报告、说明文档等。
report长篇报告格式的文档类,具有章节结构,用于综述、长篇论文、简单
长篇报告格式的文档类,具有章节结构,用于综述、长篇论文、简单
book书籍文档类,包含章节结构和前言、正文、后记等结构。
proc基于article文档类的一个简单的学术文档模板。
slides幻灯格式的文档类,使用无衬线字体。
minimal一个极其精简的文档类,只设定了纸张大小和基本字号,用作代码测
试的最小工作示例

其中前三个习惯上称为“标准文档类”。

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

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

宏包

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

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

\usepackage可以一次性调用多个宏包,在⟨package-name⟩中用逗号隔开。这种用法一般不要指定选项:

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

在使用宏包和文档类之前,一定要首先确认它们是否安装在你的计算机中,否则\usepackage等命令会报错误。终端下输入命令texdoc⟨pkg-name⟩可查阅相应文档。

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

\usepackage{syntonly}
\syntaxonly

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

文件的组织方式

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

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

⟨filename⟩为文件名(可以不带.tex扩展名),如果和要编译的主文件不在一个目录中,则要加上相对或绝对路径,例如:

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

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

LTEX还提供了一个\includeonly命令来组织文件,用于导言区,指定只载入某些文件。导言区使用了\includeonly后,正文中不在其列表范围的\include命令不会起效:

\includeonly{⟨filename1⟩,⟨filename2⟩,…}

需要注意的是,使用\include\input命令载入的文件名最好不要加空格和特殊字符,也尽量避免使用中文名,否则很可能会出错。

相关术语和概念

  1. 引擎:全称为排版引擎,是编译源代码并生成文档的程序,如pdfTEX、XƎTEX等。有时也称为编译器。
  2. 格式:是定义了一组命令的代码集。LATEX就是最广泛应用的一个格式。
  3. 编译命令:是实际调用的、结合了引擎和格式的命令。
TEX引擎、格式及其对应的编译命令。
文档格式plainTEX格式LATEX格式
TEX引擎DIVtexN/A
pdfTEX引擎DIVetexlatex
PDFpdftexpdflatex
XƎTEX引擎PDFxetexxelatex
LuaTEX引擎PDFluatexlualatex

latex:虽然名为latex命令,底层调用的引擎其实是pdfTEX。该命令生成dvi(DeviceIndependent)格式的文档,用dvipdfmx命令可以将其转为pdf。

pdflatex:底层调用的引擎也是pdfTEX,可以直接生成pdf格式的文档。

xelatex:底层调用的引擎是XƎTEX,支持UTF-8编码和对TrueType/OpenType字体的调用。当前较为方便的中文排版解决方案基于xelatex。

mx命令可以将其转为pdf。

pdflatex:底层调用的引擎也是pdfTEX,可以直接生成pdf格式的文档。

xelatex:底层调用的引擎是XƎTEX,支持UTF-8编码和对TrueType/OpenType字体的调用。当前较为方便的中文排版解决方案基于xelatex。

lualatex:底层调用的引擎是LuaTEX,这个引擎在pdfTEX引擎基础上发展而来,除了支持UTF-8编码和对TrueType/OpenType字体的调用外,还支持通过Lua语言扩展TEX的功能。lualatex编译命令下的中文排版支持需要借助luatexja宏包。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值