LaTeX快速入门
一、 概述
1、 简介
TeX 是由Donald Knuth创造的基于底层编程语言的电子排版系统(TEX是Honeywell公司在1980年为其Text Executive文本处理系统注册的商标,它与 TeX是两回事)。使用TeX可以对版面做精细的操作,生成精美的文档。TeX提供版面编辑的底层命令,但是使用时操作复杂,工作效率不高. TeX允许用这些底层命令定义出可以执行复杂操作的扩展命令. LaTex是由Leslie Lamport开发的的TeX扩展命令集合[5]。LaTexj通过整合常用的版面设置操作,降低排版的工作量和难度。 LaTex 强大的排版功能,特别是对科技文档的支持,已经使它成为撰写科研论文的事实上的标准。
TeX系统生成的是DVI(Device Independent)文件。随着pdf文件格式的流形,LaTex在支持DVI文件格式的同时也可生成PDF格式文件。
TeX在不同的硬件和操作系统上有不同的实现版本。目前Unix/Linux上常用的TeX系统是teTeX,Windows中有MiKTeX和fpTeX。CTeX是中文套装。下面仅简要介绍在使用LaTex中一些常见问题。
2、 环境配置
windowds中,我们可以下载texlive来进行LaTeX的编译,使用texsudio来进行LaTeX代码的编辑
或者,我们可以使用OverLeaf来进行在线的LaTeX代码编辑
3、文件结构
4、 文档结构
LaTeX支持结构化的文档编写方式,也只有良好结构的文档才适合使用LaTeX来进行编写
导言区一般会使用\usepackage 调用宏包,以及会进行对文档的全局设置。
正文区式文档的正文部分,进行内容的编写
二、 基本概念
1、 第一个LaTeX程序
\documentclass{article}
\begin{document}
Hello World!
\end{document}
在LaTeX中的命令以反斜线开头:
- 反斜线加一串字母,表示为一个命令
- 反斜线加单个非字母符号,其为转义的作用
注意,LaTeX命令是对大小写敏感的,,同时,LaTeX会忽略命令后面的连续的所有空格,如果要认为引入空格,则:
2、 宏包和文档类
2.1 宏包
在使用LaTeX时,时常需要依赖一些拓展来增强或补充LaTeX的功能,比如排版复杂的表格、插入图片、增加颜色甚至超链接等。这些拓展称为宏包。调用宏包的方法非常类似调用文档类的方法\usepackage[options]{package-name}
比如,导入一个支持中文的宏包,
\usepackage{ctex} % 其使得文档可以支持中文
在终端中,我们可以使用,来查看宏包的帮助文档:
texdoc package-name
2.2 文档类
文档类规定了LaTeX源代码需要生成的文档的性质(普通文章、书籍、样式文稿、个人简历等等),LaTeX源代码的开头,使用\documentclass[options]{class-name}
来指定文档类
参数说明:
-
options:其为可选参数,全局规定一些排版的参数,比如字号、纸张大小,单双面等
-
如,规定文档类排版文章,规定纸张为A4纸大小,基本字号为11pt,双面排版:
\documentclass[11pt,twoside,a4paper]{article}
-
可选项包括:
-
-
class-name:指定文档类的名称
-
LaTeX提供的基础文档类:
类型 描述 article 文章格式的文档类,广泛用于科技论文、报告、说明文档等 report 长篇报告格式的文档类,具有章节结构,用于综述、长篇论文、简单的书籍等 book 书籍文档类,包含章节结构和前言、正文、后记等结构 proc 基于article文档类的一个简单的学术文档模板 slides 幻灯格式的文档类,使用无衬线字体 minimal 一个及其精简的文档类,只设定了纸张大小和基本字号,用作代码测试的最小工作示例
-
3、 文件组织的方式
当编写长篇文档时,例如编写书籍、毕业论文时,单个源文件会使修改、校对变得非常困难。这时候,我们可以将源文件分割成若干个文件,例如将每章内容单独写在一个文件中,会大大简化修改和校对的工作。
在源代码中插入.tex
文件的方法\include{filename}
例如:
\include{chapters/file} % 使用相对路径导入
\include{/home/SteveAnthony/file} % 使用绝对路径导入
4、 相关术语和概念
引擎:全称为排版引擎,是编译源代码并生成文档的程序,如pdfTEX,XETEX等。有时也称为编译器
格式:是定义了一组命令的代码集。LaTeX就是最广泛应用的一个格式
编译命令:是实际调用的、结合了引擎和格式的命令,如xelatex命令是结合XETEX引擎和LaTeX格式的一个编译命令
三、 排版文字
1、 文字编码
ASCII编码:ASCII编码覆盖了基本的拉丁字母、数字和符号;以及一些不可打印的控制字符(如换行符、制表符等),其主要是排版以英文为主的西文文档,其并没有对中文等语言进行支持。
扩展编码:在ASCII之后,各种语言都发展了自己的编码,如,GB2312和GBK等
UTF-8编码:Unicode是一个多国字符的集合,覆盖了几乎全球范围内的语言文字。utf-8是Unicode的一套编码方案,一个字符由一到四个字节编码,其中单字节的编码与ASCII编码兼容。
2、 排版中文
用LaTeX排版中文需要解决两方面的问题:
- 对中文字体的支持
- 对中文排版中的一些细节的处理,包括在汉字之间控制断行、标点符号的规则、、中英文之间插入间距等
使用CJK宏包对中文字体的支持比较麻烦,推荐使用ctex宏包
- ctex宏包和文档类进一步封装了CJK、xeCJK、luatexja等宏包,使得用户在排版中文时,不需要再考虑排版引擎的细节。
ctex文档类对LaTeX的标准文档类进行了封装,使用ctexart/ctexrep/ctexbook
,可以识别操作系统和Tex发行版中安装的中文字体。如:
\documentclass{ctexart}
\begin{document}
在LaTeX中排版中文。同时,其也可以进行中文和英文的混排。
% 使用一个空行代表新的一个段落
Hello World!的意思是你好世界。
\end{document}
3、 LaTeX中的字符
3.1 空格和分行
LaTeX源码中,空格键和Tab键输入的空白字符视为空格。连续的若干个空白字符视为一个空格,一行开头的空格忽略不记。
行末的换行符号视为一个空格;但连续两个换行符,也就是空行,会将文字进行分段。多个空行会视为一个空行。也可以在汉末使用\par
命令来进行分段
3.2 注释
在LaTeX中,使用一个百分号代表注释,编译器不会识别注释后面的内容
\documentclass{ctexart}
\begin{document}
% 这是一个注释哦,不会识别呢!
\end{document}
3.3 特殊字符
下面的字符,在LaTeX中有特殊用途,直接输入这些