LaTeX

LaTeX(LATEX,音译“拉泰赫”)是一种基于TeX的排版系统,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天、甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。

TeX计算机科学家高德纳(Donald E. Knuth)于1978年发明的排版系统,用此可以快速生成高质量的文档,在学术界十分流行,特别是数学、物理学、统计学与计算机科学界。LaTex是计算机科学家Leslie Lamport(Leslie Lamport)在20世纪80年代初期开发,是当今世界上最流行和使用最为广泛的TeX宏集。

发展进程

1 LaTeX

LaTeX使用TeX作为它的格式化引擎,当前的版本是LaTeX2ε。

Leslie Lamport开发的LaTeX是当今世界上最流行和使用最为广泛的TeX宏集。它构筑在Plain TeX的基础之上,并加进了很多的功能以使得使用者可以更为方便的利用TeX的强大功能。使用LaTeX基本上不需要使用者自己设计命令和宏等,因为LaTeX已经替你做好了。因此,即使使用者并不是很了解TeX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LaTeX表现的更为出色。LaTeX自从八十年代初问世以来,也在不断的发展.最初的正式版本为2.09,在经过几年的发展之后,许多新的功能,机制被引入到LaTeX中。在享受这些新功能带来的便利的同时,它所伴随的副作用也开始显现,这就是不兼容性。标准的LaTeX 2.09引入了“新字体选择框架”(NFSS)的LaTeX、SLiTEX,AMS-LaTeX等等,相互之间并不兼容.这给使用者和维护者都带来很大的麻烦。为结束这种糟糕的状况,FrankMittelbach等人成立了ATeX3项目小组,目标是建立一个最优的、有效的、统一的、标准的命令集合。即得到LaTeX的一个新版本3.这是一个长期目标,向这个目标迈出第一步就是在1994年发布的LaTeX2e。LaTeX2e采用了NFSS作为标准,加入了很多新的功能,同时还兼容旧LaTeX 2.09。LaTeX2e每6个月更新一次,修正发现的错误并加入前,LaTeX2e将是标准的。

2 AMS-TeX/AMS-LaTeX

美国数学学会TeX是美国数学会提供的,在Plain TeX 基础上开发的TeX宏集。它主要用于排版含有很多数学符号和公式的科技类文章或书籍。AMS-TeX 给出了许多高级命令,可以让使用者很方便地排版大型的、复杂的数学公式。AMS-TeX排版数学公式等的功能通过AMS-LaTeX 中的宏包amsmath 在LaTeX中得到实现。AMS-TeX最新版本为2.1。

AMS-LaTeX包括两部分,一是上面提到的amsmath宏包,主要的目的是用来排版数学符号和公式。另一部分是amscls,提供了美国数学学会要求的论文和书籍的格式。AMS-LaTeX目前的版本为2.0。在提供AMS-TeX和AMS-LaTeX 的同时,美国数学会还提供一套数学符号的字库,AMSFonts。这套字库中增加了很多TeX的标准字库计算机 Modern 所没有的一些数学符号,粗体数学符号等。AMSFonts现在的版本为2.2,有Metafont和Type1两种字库提供下载。

3 TeX 和LaTeX 的关系

LaTeX 是TEX 中的一种格式(format) ,是建立在TeX 基础上的宏语言,也就是说,每一个LaTeX 命令实际上最后都会被转换解释成几个甚至上百个TeX 命令。但是,普通用户可以无需知道这中间的复杂联系。就像编程的时候如果使用一些已经编译好的函数库和模板可以使我们仅仅用几个命令就实现很多功能一样,LaTeX 根据人们排版文章的习惯,定义了许多命令和模板,通过这些命令和模板,我们可以很快的得到漂亮的排版结果。

4 LaTeX 2.09 和LaTeX2e的区别

LaTeX 2.09 是LaTeX在LaTeX2e之前的一个版本(参见问题6)。LaTeX2e对LaTeX 2.09 做了很大的改进,增加了很多新功能。从文件内容上看,两者最显著的不同在于LaTeX 2.09 使用\documentstyle 命令定义文档类型以及所包含宏包,如\documentstyle[twoside,epsfig]{article}

而LaTeX2使用\documentclass 命令定义文档类型,用\usepackage 命令包含宏包,如

如果你使用的不是几十年前的老机器,你的系统的LaTeX都是LaTeX2 版本。LaTeX 2.09 文件一般都可以在LaTeX2 系统中以兼容方式编译。但是兼容方式编译速度慢,而且很多LaTeX2 的新功能无法使用。如果你不是需要编译以前的LaTeX 2.09 文件,你根本无需使用LaTeX 2.09 ,也不用知道LaTeX 2.09 与LaTeX2 的差别。大部分LaTeX 2.09 文件都可以通过用\documentclass 命令和\usepackage 命令代替\documentstyle命令修改为LaTeX2 格式。有时可能需要一些特殊宏包,例如latexsym ,对旧的LaTeX 2.09 命令提供支持。

5 MiKTeX、fpTeX、teTeX、CTeX 的关系

TeX 在不同的硬件和操作系统上有不同的实现版本。这就像c语言,在不同的操作系统中有不同的编译系统,例如Linux 下的GCC,Windows 下的Visual C++ 等。有时,一种操作系统里也会有好几种的TeX系统。目前常见的Unix/Linux 下的TeX系统是Texlive,Windows 下则有MiKTeX和fpTeX。ctex指的是CTeX中文套装的简称,是把MiKTeX和一些常用的相关工具,如GSview,WinEdt 等包装在一起制作的一个简易安装程序,并对其中的中文支持部分进行了配置,使得安装后马上就可以使用中文。

6 LaTeX文件的框架

第一句:\documentclass[选项]{类},确定整篇文章的处理格式,期刊或者会议论文一般可选类为article,再附上控制全局格式的选项,比如字体、字号、页面格式、纸张大小等等。也有期刊直接提供类模板,比如 Lecture Notes in 计算机 Science,只要把相应的类名放到{类}里就OK了,不需要自己去费神。老版本此处使用\documentstyle。

接下来是包含一些使用的宏包来增强功能,\usepackage{宏包},宏包包含在.sty文件中,用过的宏包有:CJK 支持中文环境;times TIMES字体;graphicx 插图;pyperref引用超链接。也有期刊提供宏包来定制格式,比如 IEEE Computer Society Press。感觉就像c语言里的#include一样为第三方提供接口。有些提供的样例文件中在documentclass的选项中添加宏包,这是与老版本兼容。

以上为导言区,接着余下的都是正文部分,包含在\begin{document}和\end{document}内。LaTeX命令的作用对象和范围和HTML的标签有点类似,有开始和结束标志,开始位置内会定义一些表现格式。导言区还可能有\pagestyle{选项},页面样式,比如empty选项表示没有页眉和页脚。导言区还有其它全局性的设置等。

正文部分首先是文章标题\title{标题},然后是作者信息\author{作者信息}。其中作者信息多行表示,用\\断行,自动居中。多个作者用\and连接,自动按格式分列横排或者居中竖排。接着是日期\date{日期},如果不写这条命令缺省为当前日期。可以使用\maketitle表示本页为标题页,以便自动格式化。

接着是文章正文内容各部分了。摘要\begin{abstract}...\end{abstract},或者直接\abstract。章节为\section{第一层标题},\subsection{第二层标题},\subsubsection{第三层标题}(注意:没有\subsubsubsection{第四层标题}这样的命令)。

再后面是参考文献部分,用过两个方法。第一个方法是手工逐条在正文尾部的\begin{thebibliography}{最大条数}... \end{thebibliography}内加入“\bibitem{关键词}文献信息”,文章中引用的地方用\cite{关键词},自动按加入的顺序编号,形如。第二个方法是使用BibTeX。建立一个书目数据库文件:数据库名.bib,里面有按字段填写的文献信息,以及相应的“引用关键词”。 bibTex会生成.bib文件,其中包含引用文献具体内容,在正文末尾用\bibliography{文献数据库名}包含该文件内容,注意文献数据库名不能包含空格。文章中引用格式同前面的方法,文献数据库中被引用的文献按格式出现在文末,未被引用的文献可以使用\nocite{关键词}来使其出现在文末。后一种方法的好处有:一、书目数据库可以共享;二、文献的内容与表现格式分离,内容填写更清晰,也可以更好的控制格式比如文献的排列顺序。格式控制是在导言区加入\bibliographystyle{格式名},其中格式包含在.bst文件里,可以是LaTeX提供的,也可以是期刊单位提供的。

从结构上看,文章算排版结束了。下面就文章正文内容的一些细节留些注意点。

插图:使用graphicx宏包很方便引用.eps格式图片,个人一般图片都是MATLAB绘制图片,可以直接输出eps格式。特别地,PS的eps不行。图片一般集中放当前目录下子目录中,使用子目录在导言中用\graphicspath{{子目录名/}},这个里面的{}不能少,图片文件名被引用时即可省略子目录名,指明.eps时效率高。

表格:表格单元都是由内容撑起的,可以使用 \rule[起始位置]{宽度}{高度}来撑起达到预期格式。rule定义的是一个矩形,起始位置指底线与当前行基准线的距离,负值表示底线在基准线下面。

插图、表格、公式都可以贴上各自自动编号的标签\label{关键词},引用时\ref{关键词}可以自动出现相应编号。

文章排版好了,输出文档需要注意几点。按照导言区格式设置,编译生成dvi作为中间预览基本不会有问题,但一般都需要最终pdf输出。

7 简单的规则

(1)空格:LaTeX中空格用来隔开单词(英语一类字母文字),多个空格等效于一个空格;对中文没有作用。

(2)换行:用控制命令“\\”,或“ \newline”.

(3)分段:用控制命令“\par”或空出一行。

(4)换页:用控制命令“\newpage”或“\clearpage”

(5)特殊控制字符:#,$, %, &, - ,{, }, ^, ~

要想输出这些控制符用下列命令:

\# \$ \% \& \- \{ \} \^{} \~{} $\backslash$表示“ \”.。

8 西文字符转换表

\rm 罗马字体 \it 意大利字体

\bf 黑体 \sl 倾斜体

\sf 等线体 \sc 小体大写字母

\tt 打字机字体 \mit 数学斜体

9 字号转换命令表

点数(pt) 相应中文字号 控制命令

25 一号 \Huge

20 二号 \huge

17 三号 \LARGE

14 四号 \Large

12 小四号 \large

10 五号 \normalsize

9 小五号 \small

8 六号 \footnotesize

7 小六号 \scriptsize

5 七号 \tiny

10 纵向固定间距控制命令

\smallskip \medskip \bigskip

11 页面控制命令

\textwidth=14.5cm

\textheight=21.5cm

系统默认:字号10pt= 五号字;西文字体为罗马字体;

textwidth=12.2cm,textheight=18.6cm。相当于美国标准信纸大小。

12 常见数学公式排版命令

(1)行中数学公式状态命令

\begin{数学} 数学公式 \end{math}

简式1: \( 数学公式 \)

简式2: $ 数学公式 $

(2)独立数学公式(不带编号)状态命令

\begin{displaymath} 数学公式 \end{displaymath}

简式1: \[ 数学公式 \]

简式2: $$ 数学公式 $$

(3)独立数学公式(带编号)状态命令

\begin{方程}数学公式\end{equation}

\begin{equation*}数学公式\end{equation*}可以取消编号

13 使用LaTeX编辑表格

\begin{tabular}{|r|l|}\hline

Header & Row \\ \hline \hline

A & Silly \\ \hline

tabular & structure \\ \hline

\end{tabular}

其中&号代表分割线,也就是将一行表格分割为一块一块

\\代表换行

读音书写

由于TeX一词应该读作/tɛx/(国际音标中的/x/读如“喝”音),音译“泰赫”,所以LaTeX一词可以音译为“拉泰赫”。

在英语中,LaTeX实际通常读作/ˈleɪtɛk/(音译“累泰克”)或者/ˈlɑtɛk/(音译“拉泰克”)。

法语中,实际通常读作/latɛk/(音译“拉泰克”)。LaTeX的开发者Lamport表示对LaTeX的读音没有偏好。

参考书籍

《LaTeX入门》

书 名: LaTeX入门

作 者: 刘海洋

出 版 社: 电子工业出版社

出版时间:2013-06-01

版 次:1

页 数:580

包 装:平装

开 本:16开

用 纸:胶版纸

有关事件

2022年7月,金山办公发布公告,表示由于业务调整,将关闭包括LaTex公式在内的共计8个功能,这些功能将在8月11日下线,届时用户将无法进入功能页面,也无法使用功能。

参考资料

基于TeX的排版系统 LaTeX.编程狮.2024-03-07

Overleaf — 您的在线LaTeX 电脑小白的科研论文Latex排版之基础知识.华南农业大学图书馆.2024-03-07

排版系统LaTeX 入门教学.闽江学院图书馆.2024-03-07

WPS部分功能8月下线:“论文神器”LaTex不让用了.和讯网.2022-07-19