感谢支持
我们一直在努力

一份不太简短的LATEX2"全文介绍

《一份不太简短的LATEX2″介绍或93分钟学会LATEX2″
》PDF文件下载在http://www.linuxidc.com/Linux/2007-05/3767.htm


一份不太简短的LATEX2″介绍
或93分钟学会LATEX2″
原版作者:Tobias Oetiker
Hubert Partl, Irene Hyna and Elisabeth Schlegl
原版版本:Version3.20,09August,2001
中文翻译:中国CTEX用户小组
中文版本:版本3.20,二○○二年五月
ii
Tobias Oetiker拥有版权c°2000以及LShort的所有的发行版本.保留所有权
利.这份文档是免费的;在自由软件组织颁布的GNU通用出版许可证的条款下,
你可以再版或者修改它.许可证可以是第二版,或者任何后继版本(随你意).
发布这份文档是希望它会有用,但并不提供任何保障;甚至没有用于商业的或
者适用某一特定目的的暗含保证.更多的细节请查看GNU通用出版许可证.
你应该随这份文档收到一份GNU通用出版许可证的拷贝;如果没有,写信到
自由软件组织,地址:675 Mass Ave, Cambridge, MA 02139, USA.
鸣谢!
在这份介绍中使用的许多材料来自一个奥地利人使用德语撰写的LATEX
2.09介绍:
Hubert Partl
Zentraler Informatikdienst der Universit~at f~ur Bodenkultur Wien
IreneHyna
Bundesministeriumf~urWissenschaftundForschungWien
Elisabeth Schlegl
in Graz
如果你对德文文档有兴趣,你可以找到一个由J~org Knappen针对
LATEX 2″更新的版本,在CTAN ^
CTAN:/tex-archive/info/lshort/german
! z HAE_comp.text.tex中的专家们进行咨询.我得到了大
量的回应.下面的人帮助进行了校正,建议和提供改进材料.他们付出了
极大的热情帮助我将这份文档实现成现在这个样子.我对他们所有人表示
衷心的感谢.自然地,你在本书中找到地所有错误都是我的失误.甚至你
找到每一个拼写正确的单词,那一定是下面列出的这些人之一帮了我一把
的结果.
iv鸣谢!
Rosemary Bailey, Friedemann Brauer, Jan Busa, Markus Br~uhwiler,
DavidCarlisle,Jos eCarlosSantos,MikeChapman,ChristopherChin,
Carl Cerecke, Chris McCormack, Wim van Dam, Jan Dittberner,
MichaelJohnDownes,DavidDureisseix,Elliot,DavidFrey,Robin
Fairbairns, J~org| Fischer, Erik Frisk, Frank, Kasper B. Graversen,
AlexandreGuimond,CyrilGoutte,GregGamble,NeilHammond,
Rasmus Borup Hansen, Joseph Hilferty, Bj~orn Hvittfeldt, Martien
Hulsen,WernerIcking,Jakob,EricJacoboni,AlanJefirey,Byron
Jones, David Jones, Johannes-Maria Kaltenbach, Michael
Koundouros,AndrzejKawalec,AlainKessi,ChristianKern,J~org
Knappen, Kjetil Kjernsmo, Maik Lehradt, Alexander Mai, Martin
Maechler,AleksandarSMilosevic,ClausMalten,KevinVanMaren,
Lenimar Nunes de Andrade, Hubert Partl, John Re°ing, Mike Ressler,
BrianRipley,YoungU.Ryu,BerndRosenlecher,ChrisRowley,
Hanspeter Schmid, Craig Schlenter, Christopher Sawtell, Geofirey
Swindale,JosefTkadlec,DidierVerna,FabianWernli,Carl-Gustav
Werner, David Woodhouse, Chris York, Fritz Zaucker, Rick Zaccone,
andMikhailZotov.
v
本文档的翻译工作由CTEX版主”经典问题”倡议,历经近十个月才得以
完成.期间参与翻译工作的朋友有:
CTEX论坛ID翻译章节源文件名
经典问题前言overview.tex
高原之狼第一章things.tex
controlong第二章typeset.tex
cxterm第三章math.tex,lssym.tex
aloft第四章spec.tex
ganzhi第五章custom.tex
在此特向这些奉献者表示感谢!
前言
LATEX[1]是一种排版系统,它非常适用于生成高印刷质量的科技和数学
类文档.这个系统同样适用于生成从简单的信件到完整书籍的所有其他种
类的文档.LATEX使用TEX[2]作为它的格式化引擎.
这份短小的介绍描述了LATEX2″使用,对LATEX的大多数应用来应
该是足够了.参考文献[1,3]对LATEX系统提供了完整的描述.
对大多数计算机,从个人计算机(PC)和Mac到大型的UNIX和
VMS系统,LATEX都有适用版本.在许多大学的计算机机房,你会发现系
统中已经安装了LATEX并能够使用.在Local Guide[4]中应该提供了关于
如何存储本地的LATEX安装的信息.如果你对如何入门有疑问,向提供这
个小册子的人咨询.这份文档的职责不是告诉你如何安装并设置一个LATEX
系统,而是教你如何编写你的文档,使得它们可以被LATEX处理.
这份介绍分成了五个章节:
第一章告诉你关于LATEX2″文档的基本结构.你也会了解一点LATEX的历
史.阅读这一章后,你应该对LATEX有了一个粗略的印象.这个印象
仅仅是一个框架,但是它可以使你整合在其他章节中提供的信息成为
一个完整的画面.
第二章探究排版文档的细节.它解释了大部分基本的LATEX命令和环境.
在阅读完这一章之后,你就能够编写你的第一份文档了.
第三章解释了如何使用LATEX排版公式.同时,大量的例子会帮助你理解
如何使用LATEX的一个主要能力.在这个章节的结尾,你会找到列写
了LATEX中所有可用的数学符号的表格.
第四章解释了索引和参考文件的生成,EPS图形的插入和一些其他有用的
扩展.
第五章包含一些潜在的危险信息,有关对LATEX产生的标准文档布局如何
提供可选方法.它会告诉你如何改变一些LATEX看起来有点糟糕的东
西,得到漂亮的输出.
vii
按照连续的顺序阅读这些章节是很重要的,这本书毕竟不长.一定要
认真阅读例子,在这本书中你会找到所有的例子,因为在各种例子里包含
了大部分的信息.
如果你需要获得任何LATEX相关的材料,在任何一个”全面的TEX归档网
络”(CTAN)站点中找找看.它的主页是http://www.ctan.orgb
9V[Vftp归档站点ftp://www.ctan.org R o òae ^_
~ˇ b’Vftp://ctan.tug.org S
Sftp://ftp.tex.ac.uk Ss ae b TF tS
Eˇ* 4 FK B _~b
‘ ˇF s 1CTAN的其他参考资料.特别地,给出你可能需
要下载的软件和文档的指示.这里没有写出完整的
你应该去的在CTAN树结构定位的CTAN:信息.如果你想在自己的计算机
上运行LATEX,请在CTAN:/tex-archive/systems
TF i z ˇ9Fa÷” MBt= hY’AEbAE
VLATEX初学者的反馈特别感兴趣,关于这份介绍哪些部分很容易理解,
哪些部分可能需要更好地解释.
Tobias Oetiker
Department of Electrical Engineering,
SwissFederalInstituteofTechnology
这份文档的最新版本可以在
CTAN:/tex-archive/info/lshort
b
1 z K ˇ Jrh
http://bbs.ctex.org
°sK b

目录
鸣谢!iii
前言vi
1基本知识1
1.1游戏的名目. . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.1.1 TEX. . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.1.2 LATEX1
1.2 LATEX基础. . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.2.1作者,图书设计者和排版者. . . . . . . . . . . . . . .2
1.2.2版面设计. . . . . . . . . . . . . . . . . . . . . . . . .3
1.2.3优势和不足. . . . . . . …………….3
1.3 LATEX源文件. . . . . . . . . . . . . . . . . . . . . . . . . . .4
1.3.1空白距离. . . . . . . . . . . . . . . . . . . . . . . . .5
1.3.2特殊字符. . . . . . . . . . . . . . . . . . . . . . . . .5
1.3.3 LATEX命令. . . . . . . . . . . . . . . . . . . . . . . .5
1.3.4注释. . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.4源文件的结构. . . . . . . . . . . . . . . . . . . . . . . . . . .7
1.5一个典型的命令行过程. . . . . . . . . . . . . . . . . . . . . .8
1.6文档布局. . . . . . . . . . . . . . . . . . ……….9
1.6.1文档类. . . . . . . . . . . . . . . . . . . . . . . . . . .9
1.6.2宏包. . . . . . . . . . . . . . . . . . . . . . . . . . . .11
1.7各类LATEX文件. . . . . . . . . . . . . . . . . . . . . . . . . .11
1.7.1页面式样. . . . . . . . ……………..13
1.8大型文档. . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
2文档排版15
2.1文档和语言的结构. . . . . . . . . . . . . . . . . . . . . . . .15
目录ix
2.2断行和分页. . . . . . . . . . . . . . . . . . . . . . . . . . . .17
2.2.1段落整理. . . . . . . . . . . . . . . . . . . . . . . . .17
2.2.2断字. . . . . . . . . . . . . . . . . . . . . . . . . . . .18
2.3学习字符串排版. . . . . . . . . . . . . . . . . . . . . . . . . .19
2.4特殊字符和符号. . . . . . . . . . . . . . . . . . . . . . . . . .19
2.4.1引号. . . . . . . . . . . . . . . . . . . . . . . . . . . .19
2.4.2破折号和连字号. . . . . . . . . . . . . . . . . . . . .20
2.4.3波浪号( ). . . . . . . . . . . . . . . . . . . . . . . .20
2.4.4度的符号(-). . . . . . . . . . . . . . . . . . . . . . .20
2.4.5省略号(. . . ). . . . . . . . . . . . . . . . . . . . . . . .20
2.4.6连字. . . . . . . . . . . . . . . . . . . . . . . . . . . .21
2.4.7注音符号和特殊字符. . . . . . . . . . . . . . . . . . .21
2.5支持使用国际语言. . . . . . . . . . . . . . . . . . . . . . . .21
2.5.1对德语的支持. . . . . . . . . . . . . . . . . . . . . . .24
2.6单词的间隔. . . . . . . . . . . . . . . . . . . . . . . . . . . .24
2.7标题,章和节. . . . . . . . . . . . . . . . . . . . . . . . . . .25
2.8交叉引用. . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
2.9脚注. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
2.10强调. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
2.11环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
2.11.1 Itemize, Enumerate, and Description. . . . . . . . . .29
2.11.2 Flushleft, Flushright, and Center. . . . . . . . . . . .29
2.11.3 Quote, Quotation, and Verse. . . . . . . . . . . . . .30
2.11.4逐字打印. . . . . . . . . . . . . . . . . . . . . . . . .30
2.11.5表格. . . . . . . . . . . . . . . . . . . . . . . . . . . .31
2.12浮动体. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
2.13保护脆弱命令. . . . . . . . . . . . . . . . . . . . . . . . . . .36
3数学公式37
3.1基本知识. . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
3.2数学模式中的分组. . . . . . . . . . . . . . . . . . . . . . . .39
3.3建立数学公式模块. . . . . . . . . . . . . . . . . . . . . . . .39
3.4数学空格. . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
3.5垂直对齐. . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
3.6幻影. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
3.7数学字体大小. . . . . . . . . . . . . . . . . . . . . . . . . . .46
x目录
3.8定理,定义. . .. . . . . . . . . . . . . . . . . . . . . . . . . .47
3.9粗体符号. . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
3.10数学符号表. . . . . . . . . . . . . . . . . . . . . . . . . . . .50
4特殊功能57
4.1包含EPS图形. . . . . . . . . . . . . . . . . . . . . . . . . .57
4.2参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
4.3索引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
4.4定制页眉和页脚. . . . . . . . . . . . . . . . . . . . . . . . . .61
00宏包. . . . . . . . . . . . . . . . . . . . . . . . . . .61
4.6下载并安装LATEX宏包. . . . . . . . . . . . . . . . . . . . . .62
5定制LATEX64
5.1建立新的命令,环境和包. . . . . . . . . . . . . . . . . . . .64
5.1.1建立新的命令. . . . . . . . . . . . . . . . . . . . . . .65
5.1.2建立新的环境. . . . . . . . . . . . . . . . . . . . . . .66
5.1.3建立你自己的宏包. . . . . . . . . . . . . . . . . . . .66
5.2字体和尺寸. . . . . . . . . . . . . . . . . . . . . . . . . . . .67
5.2.1字体变换命令. . . . . . . . . . . . . . . . .. . . . . .67
5.2.2 Danger, Will Robinson, Danger. . . . . . . . . . . . .70
5.2.3建议. . . . . . . . . . . . . . . . . . . . . . . . . . . .70
5.3文档对象之间的间隔. . . . . . . . . . . . . . . . . . . . . . .70
5.3.1行距. . . . . . . . . . . . . . . . . . . . . . . . . . . .70
5.3.2段落格式
. . . . . . . . . . . . . . . . . . . . . . . . .71
5.3.3水平距离. . . . . . . . . . . . . . . . . . . . . . . . .72
5.3.4垂直距离. . . . . . . . . . . . . . . . . . . . . . . . .72
5.4页面的布局. . . . . . . . . . . . . . . . . . . . . . . . . . . .73
5.5关于长度的更详细的信息75
5.6盒子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
5.7标尺和支撑. . . . . . . . . . . . . . . . . . . . . . . . . . . .78
参考文献80
索引82
图形列表
1.1 TEX系统的组成部分. . . . . . . . . . . . . . . . . . . . . . .2
1.2一个简单的LATEX源文件. . . . . . . . . . . . . . . . . . . .8
1.3论文类LATEX源文件的例子. . . . . . . . . . . . . . . . . . .8
4.1fancyhdr设置实例.. . . . . . . . . . . . . . . . . . . . . . .62
5.1 Example Package.. . . . . . . . . . . . . . . . . . . . . . . .67
5.2页面布局参数. . . . . . . . . . . . . . . . . . . . . . . . . . .74
表格列表
1.1文档类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
1.2文档类选项. . . . . . . . . . . . . . . . . . . . . . . . . . . .10
1.3伴随LATEX发布的一些宏包. . . . . . . . . . . . . . . . . . .12
1.4 The Prede ned Page Styles of LATEX.. . . . . . . . . . . . . .13
2.1注音符号和特殊字符.. . . . . . . . . . . . . . . . . . . . . . .22
2.2德语特殊字符.. . . . . . . . . . . . . . . . . . . . . . . . . . .24
2.3浮动允许放置参量.. . . . . . . . . . . . . . . . . . . . . . .34
3.1数学模式重音符. . . . . . . . . . . . . . .. . . . . . . . . . .50
3.2小写希腊字母. . . . . . . . . . . . . . . . . . . . . . . . . . .50
3.3大写希腊字母. . . . . . . . . . . . . . . . . . . . . . . . . . .50
3.4二元关系符. . . . . . . . . . . . . . . . . . . . . . . . . . . .51
3.5二元运算符. . . . . . . . . . . . . . . . . . . . . . . . . . . .51
3.6大尺寸运算符. . . . . . . . . . . . . . . . . . . . . . . . . . .52
3.7箭头. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
3.8定界符. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
3.9大尺寸定界符. . . . . . . . . . . . . . . . . . . . . . . . . . .52
3.10其它符号. . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
3.11非数学符号. . . . . . . . . . . . . . . . . . . . . . . . . . . .53
3.12 AMS定界符. . . . . . . . . . . . . . . . . . . . . . . . . . . .53
3.13 AMS希腊和希伯来字母. . . . . . . . . . . . . . . . . . . . .53
3.14 AMS二元关系符. . . . . . . . . . . . . . . . . . . . . . . . .54
3.15 AMS箭头. . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
3.16 AMS二元否定关系符和箭头. . . . . . . . . . . . . . . . . . .55
3.17 AMS二元运算符. . . . . . . . . . . . . . . . . . . . . . . . .55
3.18 AMS其它符号. . . . . . . . . . . . . . . . . . . . . . . . . .56
3.19数学字母. . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
表格列表xiii
4.1graphicx宏包使用的关键词. . . . . . . . . . . . . . . . . . . .58
4.2索引关键词格式示例.. . . . . . . . . . . . . . . . . . . . . .60
5.1字体. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
5.2字体尺寸. . . . . . . . . . . . . .. . . . . . . . . . . . . . .68
5.3标准文档类型中字体的绝对大小. . . . . . . . . . . . . . . . .69
5.4数学字体. . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
5.5 TEX的长度单位. . . . . . . . . . . . . . . . . . . . . . . . . .73
第一章基本知识
本章的第一部分简要介绍了LATEX 2″的主要思想和发展历史.第二部分
集中说明LATEX文档的基本结构.在阅读完本章之后,你应该已经对LATEX
的工作原理有了大致的了解,这将有助于你在进一步的阅读中不断将新获
得的信息融入一个整体的图象之中.
1.1游戏的名目
1.1.1 TEX
TEX是由DonaE.Knuth[2]编写的计算机程序,用于文章和数学公
式的排版.1977年Knuth开始编写TEX排版系统引擎的时候,是为了探索
当时正开始进入出版工业的数字印刷设备的潜力.他特别希望能因此扭转
那种排版质量下降的趋势,使自己写的书和文章免受其害.我们现在使用
的TEX系统是在1982年发布的,1989年又略作改进,增进了对8字节字
符和多语言的支持.TEX[ ” s × V [ ò ] 9
[#+ p7÷ bTEX的版本号不断趋近于…,现
在为3:14159.
TEX的发音为\Tech”,其中的\ch”音和德语\Ach”和苏格兰语
\Loch”中的\ch”类似.在ASCII文本环境中,TEX表示为TeX.
1.1.2 LATEX
LATEX是一个宏包,其目的是使作者能够利用一个预先定义好的专业页
面设置,从而得以高质量地排版和打印他们的作品.LATEX最早是由Leslie
Lamport[1]编写的,并使用TEX作为其排版系统引擎.
1994年,Frank Mittelbach领导的LATEX 3小组对LATEX宏包进行了
更新,作了一些被期望已久的改进,并且将LATEX2.09发布以来数年间出
现的各种不同的补丁重新统一了起来.这个新版本被称作LATEX 2″,以示
和旧版本相区别.本书内容就是针对LATEX 2″的.
2基本知识
.pk

METAfont

.mf
driverdvips
xdvi


.dvi

TEXPlain
LATEX 2
AMS-Package


.tex
6

editor
emacs
ispell


copy
–printer
screen
PostScript6

.tfm–
.log
Fonts- Typesetting-
图1.1:TEX系统的组成部分
LATEX 2″的发音为\Lay-tech”或\Lah-tech”.要在ASCII文本环境中
表示LATEX 2″,可以用LaTeX.LATEX2″的发音为\Lay-tech two e”,也可
写成LaTeX2e.
图1.1显示了TX和LATEX 2″是如何共同工作的.该图取自Keesvan
der Laan写的wots.tex.
1.2 LATEX基础
1.2.1作者,图书设计者和排版者
出版的第一步是作者将他们的手稿交给出版公司,然后由图书设计者
来决定整本书的版面形式(包括栏宽,字体,标题前后的间距 ).图
书设计者会把他的排版说明写进手稿里,一起交给排版者,排版者最后根
据这些说明完成这本书的排版工作.
一个图书设计者要试图理解作者写作时的意图.他要根据手稿的内容
和他自己的职业知识决定章节标题,文献引用,例子,公式,等等.
1.2 LATEX基础3
在LATEX环境中,LATEX代替了图书设计者的角色,TEX则是它的排版
者.但是LATEX”仅仅”是一个计算机程序,它需要更多的指导.作者必
须在他的作品中提供附加信息,用于描述作品的逻辑结构.这些信息是以
“LATEX命令”的形式写入文章中的.
这种方式和所见即所得(WYSIWYG1)方式是相当不同的.很多现代
文字处理程序都采用所见即所得方式,例如MS Word和Corel Wordper-
fect.作者可以利用这些应用程序,在向输入文章的同时,通过与计算机互
动的方式决定整个文档的排版形式.在整个过程中,作者随时可以在屏幕
上看到作品最终打印出来的效果.
在使用LATEX的时候,一般来说是不能在输入文章的同时看到最终的
输出效果的.但是将文章用LATEX处理过之后,是可以在屏幕上预览最终
的输出效果的.因此在真正打印文档之前是可以对其进行修正的.
1.2.2版面设计
排版设计是一门艺术.缺乏经验的作者常常会犯严重的排版格式错
误,只因为他们认为图书设计仅仅是个美学问题――”如果排印好的文档
从艺术角度看来不错,就说明设计是成功的.”但是既然文档是用来阅读
而不是用来挂在画廊里展览的,它的可读性和可理解性就比好看的外观要
重要的多.例如:
必须为标题选适当的字体大小和序号,使得读者能够清楚地理解章
节结构.
行宽既要足够短以避免读者的眼睛疲劳,又要足够长以维持页面美
观.
使用所见即所得系统时,作者经常会写出看上去很漂亮,但却缺乏清
晰结构或结构不连贯的文档来.为了避免这样的排版格式错误,LATEX要求
作者明确说明其文档的逻辑结构.然后,LATEX再根据文档结构选择最适当
的版面格式.
1.2.3优势和不足
使用”所见即所得”(WYSIWYG)的人和使用LATEX的人在一起时
经常谈论的一个话题就是”LATEX到底比一般的字处理软件强还是弱”.
面对这种讨论,你最好是保持低调,因为这样的辩论很容易失去控制.不
过,很多时候你也不能逃避
1Whatyouseeiswhatyouget.
4基本知识
所以,这里给你提供一些武器.LATEX优于一般的字处理软件之处可以简单
归纳为如下几点:
提供专业级的排版设计,使你的文档开起来如同印刷好的一样.
可以更方便地排版数学公式.
用户仅仅需要掌握少数容易理解的,用来说明文档之逻辑结构的命
令,而无须对实际的页面设计做胡乱的修补.
可以很容易的生成脚注,索引,目录和参考文献等复杂的结构.
有大量免费地可添加宏集,协助你完成许多基本的LATEX未直接支持
的排版任务.例如,支持在文档中插入PostScript图形的宏集和排
版符合各类标准的参考文献的宏集,等等.TheLATEXCompanion[3]
中给出了大量的宏集说明.
LATEX鼓励作者写作具有良好结构的文章,因为LATEX就是通过详细
地说明文章的结构来进行其排版工作的.
TEX作为LATEX的格式化引擎是免费软件,且具有极高的可移植性.
因此,他几乎可以在任何硬件平台上运行.
LATEX当然也有一些不足之处.仅管我可以确定其他人能够列出上百条,我
却很难找出一条比较明智的.;-)
对于出卖其灵魂的人来说,LATEX不能很好的工作2.
尽管在预先定义好的版面中可以调节一些参数,设计全新的版面还是
很困难的,需要耗费大量的时间3.
LATEX不适合于排版非结构化的,无序的文档.
即使有一个令人振奋的开始,但你也有可能无法完全掌握其精髓.
1.3 LATEX源文件
LATEX源文件的格式为普通的ASCII文件,你可以使用任何文本编辑
器来创建.LATEX源文件不仅包括你所要排版的文本,还包括LATEX所能识
别的,如何排版这些文本的命令.
2原文为:\LATEX does not work well for people who have sold their souls . . . “,不知
译的是否正确.
3传闻这将是未来的LATEX3系统的一个重要组成部分.
1.3 LATEX源文件5
1.3.1空白距离
LATEX将空格和制表符等空白字符视为相同的空白距离(space).多
个连续的空白字符等同为一个空白字符.在LATEX文件中,每行开始的空
白字符将被忽略,而单个的回车符被视为一空格.
LATEX使用空行来结束段落,两行文本中的空行标志上一段落的结束和
新段落的开始.如同空格一样,多个空行所起的作用和一个空行的作用是
相同的.下面例子中,左边是源文件中的文本,右边则是排版后的输出结
果.
It does not matter whether you
enteroneorseveralspaces
after a word.
Anemptylinestartsanew
paragraph.
It does not matter whether you enter one or
severalspacesafteraword.
An empty line starts a new paragraph.
1.3.2特殊字符
下面的这些字符是LATEX的保留字符,它们或在LATEX中有特定的用
处,或不一定包含在所有的字库中.如果你直接在文本中使用它们,通常
在排版结果中将不会得到这些字符,而且还会导致LATEX做一些你不希望
发生的事情.
# $ % ^ & _ { } ~ \
当然,这些字符前面加上反斜线,就可以在文本中得到它们.
\# \$ \% \^{} \& \_ \{ \} \~{}f g~
另外一些符号可以由特殊的命令或作为重音命令得到.反斜线n不能
够通过在其前添加另外的反斜线来得到,相反的,\\是一个用来断行的命
令.4
1.3.3 LATEX命令
LATEX命令(commands)是大小写敏感的并有下面两种格式:
4试试命令$\backslash$,它将生成n.
6基本知识
以一反斜线\开始,加上只包含字母字符命令名组成.命令名后的空
格符,数字或其它非字母字符标志该命令的结束.
由一反斜线和一特殊字符组成.
LATEX忽略命令后面的空格.如果你希望在命令后面得到一空格,可以
在命令后面加上{}和一个空格,或者加上一个特殊的空白距离命令.{}将
阻止LATEX}’ 7″ bìb
I read that Knuth divides the
peopleworkingwith\TeX{}into
\TeX{}nicians and \TeX perts.\\
Todayis\today.
I read that Knuth divides the people working
withTEXintoTEXniciansandTEXperts.
Today is 8th March 2003.
许多命令需要一个参数(parameter)并用一对大括号(curlybraces){}
将其括起来置于命令名称的后面.也有一些命令支持用方括号(square
brace)括起来的可选参数.下面的例子中使用了一些LATEX命令,并将在
以后对他们进行解释.
You can \textsl{lean} on me!You canleanon me!
Please, start a new line
righthere!\newline
Thank you!
Please, start a new line right here!
Thankyou!
1.3.4注释
当LATEX在处理源文件时,如果遇到一个百分号字符%,那么L
ATEX
将忽略%后的该行文本,分行符以及下一行开始的空白字符.这样,我们
就可以在源文件中写一些注释,而不会担心他们会出现在最后的排版结果
中.
This is an % stupid
%Better:instructive<—-
example: Supercal%
ifragilist%
icexpialidocious
This is an example: Supercalifragilisticexpi-
alidocious
%也可以用来分割不允许有空格或分行的较长输入文本.
1.4源文件的结构7
如果需要较长的注释,你可以使用verbatim宏集所提供的comment环
境.当然,你需要在源文件的导言区里加上命令\usepackage{verbatim}.
%This is another
%\begin{comment}
%rather stupid,
%buthelpful
%\end{comment}
%exampleforembedding
%comments in your document.
这是另一个
\begin{comment}
非常笨拙的,
然而却很有效.
在你的文档中
使用注释的例子.
这是另一个在你的文档中使用注释的例子.
注意这个方法不能使用在像数学环境等一些复杂的环境中.
1.4源文件的结构
LATEX需要所处理的源文件遵从一定的结构,每个LATEX文档必须以如
下的命令开始:
\documentclass{…}
这个命令指定了你所写的文档的类别.在此之后,你可以加入控制文档式
样的命令,或者使用如下的命令来调入一些宏集,进而为LATEX系统增添
一些新的功能.
\usepackage{…}
当完成所有的设置5后,你可利用如下的命令来开始你的文档:
\begin{document}
现在你可以输入你所希望排版的文本和所使用的一些LATEX命令.在
文档的最后键入下面的命令来告诉LATEX你的文档到此结束,从而使LATEX
忽略文档在此命令之后的部分.
5\documentclass和\beginfdocumentg之间的区域称作导言区.
8基本知识
\end{document}
图1.2展示了一个简单的LATEX源文件.如图1.3所示的源文件则相对
复杂一些.
1.5一个典型的命令行过程
我敢打赌你一定非常渴望尝试第8页中短小简洁的LATEX源文件.在
此,下面的几点可能对你有所帮助.需要注意的是,LATEX仅仅是一个处理
你所提供的源文件的程序,并不具有图形用户界面或精致的按钮.可能有
些LATEX安装提供了图形用户界面的前端,使得你可以点击按钮来让LATEX
编译你的源文件,但这并不是LATEX真正的工作方式.因此,这里将说明
如何在一个基于文本的系统下使得LATEX处理你的源文件.当然,前提是
你的计算机里已经正确安装了LATEX.
\documentclass{article}
\begin{document}
Small is beautiful.
\end{document}
图1.2:一个简单的LATEX源文件
\documentclass[a4paper,11pt]{article}
%definethetitle
\author{H.~Partl}
\title{Minimalism}
\begin{document}
%generatesthetitle
\maketitle
%insertthetableofcontents
\tableofcontents
\section{Start}
Well, and here begins my lovely article.
\section{End}
\ldots{} and here it ends.
\end{document}
图1.3:论文类LATEX源文件的例子
1.6文档布局9
1.创建并编辑你的LATEX源文件.该文件必须是文本(ASCII)格式.
在Unix系统下,所有的编辑器都会使用文本格式创建文件.而在
Windows系统下,你可能需要明确地以ASCII或纯文本格式保存你
的文件.当选取你的源文件的文件名时,要确保其扩展名为.tex.
2.运行LA处理你的源文件.如果成功,你将会得到一个扩展名为
.dvi的文件.
latex foo.tex
3.现在你可以预览所得到的DVI文件.
xdvi foo.dvi
或将其转换为PS文件:
dvips -Pcmz foo.dvi -o foo.ps
xdvi和dvips用来处理.dvi文件的开放源代码工具软件.前者可
在X11环境下将DVI文件显示到屏幕上,后者则将DVI文件转换为
PostS文件以用来打印.如果你不使用Unix操作系统,将会提供
其他工具软件来处理.dvi文件.
1.6文档布局
1.6.1文档类
当LATEX处理源文件时,首先需要知道的是作者所要创建的文档类
型.该信息可以通过命令\documentclass来提供给LATEX.
\documentclass[options]{class}
这里class指明了所要创建的文档类型.表1.1中仅列出了本文所说明的文
档类.LATEX 2″发行版本中还包括了像信件,幻灯片等其它文档类.文档
类的属性可以通过选项(options)来加以调节,不同的选项用逗号隔开.
表1.2列出了标准文档类最常用的一些选项.
实例:一个LATEX源文件以下面一行开始
\documentclass[11pt,twoside,a4paper]{article}
这条命令指定LATEX使用论文版式,11磅大小的字体来排班此文档,并且
得到适合打印在A4纸上的输出结果.
10基本知识
表1.1:文档类
article排版科技期刊,短报告,程序文档,邀请函等.
report排版多章节的长报告,短篇的书籍,博士论文等.
book排版书籍.
slides排版幻灯片.其中使用了较大的sansserif字体.也可以考虑使
用FoilTEX来得到相同的效果.a
aCTAN:/tex-archive/macros/latex/contrib/supported/foiltex
表1.2:文档类选项
10pt,11pt,12pt设置文档所使用的字体的大小.如果没有声明任何
选项,缺省将使用10pt字体.
a4paper,letterpaper,…定义纸张的大小,缺省的设置为
letterpaper.此外,还可以使用
,b5paper,executivepaper和legalpaper.
fleqn设置该选项将使数学公式左对齐,而不是中间对齐.
leqno设置该选项将使数学公式的编号防置于左侧.
titlepage,notitlepage指定是否在文档标题(documenttitle)后
开始一新页.article文档类缺省不开始新页,而book文档类则
相反.
onecolumn,twocolumn指定LATEX以单列(oncolumn)或双列
(two column)方式排版文档.
twoside, oneside指定LATEX排版的文档为双面或单面格
式.article和report缺省使用单面格式,而book则缺省使用
双面格式.需要注意的是该选项仅作用于文档的式样.twoside
选项不会通知你的打印机让以得到双面的打印输出.
openright, openany此选项决定新的章是仅仅在右边页(奇数页)
还是在下一可用页开始.该选项对article文档类不起作用,因
为该类中并没有定义”章”(Chapter).report类中新的一章
开始于下一可用页,而book类中新的一章总是开始于右边页.
1.7各类LATEX文件11
1.6.2宏包
当你排版文档的时候,你将会发现有很多时候基本的LATEX不能够解
决你的问题.如果你想插入图形,彩色文本或源代码文件,你需要使用宏
包来增强LATEX的功能.调入宏包使用如下的命令:
\usepackage[options]{package}
package是宏包的名称,options是用来触发宏包中的特殊功能的一组
关键词.大部分宏包包含在LATEX基本发行版本中(参见表1.3),另外一
些宏包则单独发布.你可以在你所安装的LATEX系统中找到更多的有关宏
包的信息.TheLATEXCompanion[3]中提供了关于LATEX宏包的主要信息
并包括了上百个宏包的详细描述以及如何写作你自己的LATEX2″扩展.
1.7各类LATEX文件
当你使用LATEX的时候,你可能很快发现你被各种不同扩展名(extensions)
的文件搞得昏头昏脑.请注意本表格中所列出的扩展名并不完全,如果你
发现其中由你认为比较重要的,最好在其下面划线标明.
.texLATEX或TEX源文件.可以用latex处理.
.styLATEX宏包文件.可使用命令\usepackage将其加载到你的LATEX文
件中.
.dtx文档化TEX文件.这也是LATEX宏包发布的主要格式.通过处理一个
.dtx文件就可以得到该LATEX宏包中所包括的宏代码文档.
.ins为相应的.dtx文件的安装文件.如果你在网络上下载了一LATEX宏
包,你通常会发现会有一个.dtx和一个.ins文件.使用LATEX对.ins
文件进行处理,可以从.dtx文件中提取出宏包.
当你运行LATEX处理你的源文件时,会得到下列文件:
.dvi与设备无关文件.这是LATEX编译运行的主要结果.你可以使用DVI
预览器浏览其内容,或者使用像这样的应用程序输出到打印
机.
.log记录了上次编译运行时的详细信息.
12基本知识
.toc存储了所有章节标题.该文件将在下次编译运行时被读入并生成目
录.
.lof类似.toc文件,可生成图形目录.
.lot类似.toc文件,可生成表格目录.
.aux另一个用来向下次编译运行传递信息的辅助文件.除了其它信息
外,.aux文件通常包含交叉引用信息.
.idx如果你的文件中包含有索引,LATEX使用此文件存储所有的索引词
条.此文件需要使用makeindex处理.详见第4.3节.
表1.3:伴随LATEX发布的一些宏包
normalfontdoc排版LATEX程序文档.
详见doc.dtxa和TheL
ATEXCompanion[
3].
exscale提供了可缩放版本的数学字体扩展.
详见ltexscale.dtx.
normalfontfontenc声明LATEX所使用的字体编码(fontencod-
ing).
详见ltoutenc.dtx.
ifthen提供如下形式的命令:
‘if…thendo…otherwisedo….’
详见ifthen.dtx和TheLATEX Companion[3].
latexsym调入此宏包可在文档中使用LATEX符号.
详见latexsym.dtx和The LATEX Companion[3].
makeidx提供了生成索引的命令.详见第4.3节和TheLATEX
Companion[3].
syntonly仅仅处理文档,但并不对其进行排版.
inputenc允许声明ASCII,ISOLatin-1,ISOLatin-2,437/850
IBM编码页,Apple Macintosh,Next,ANSI-Windows或
自定义的输入编码.详见inputenc.dtx.
a此文件应该已安装在你的系中,你可以在你有写权限的目录下使用命令
latexdoc.dtx得到dvi文件.对于本表中提及的其它文件同样适用.
1.8大型文档13
.ind经过处理后的.idx文件.可在下次编译运行时加入到你的文档中.
.ilg运行makeindex时生成的记录文件.
1.7.1页面式样
LATEX支持三种预定的页眉,页脚(header/footerìT : T
“page styles).命令
\pagestyle{style}
中的参数定义了所使用页面式样.表1.4列出了预先定义的页面式样.
表1.4:The Prede ned Page Styles of LATEX.
plain页眉为空,页脚由居中的的页码组成.这是默认的页面式样.
headings页眉由当前的章节标题和页码组成,页脚为空.(这是本文
档所使用的页面式样)
empty设置页眉,页脚均为空.
可以使用下面的命令改变当前页的页面式样:
\thispagestyle{style}
有关如何创建你自己的页眉和页脚的详细说明可参见TheLATEXCom-
panion[3]和第4.4节.
1.8大型文档
当处理大型文档时,最好将源文件分成几个部分.LATEX有两条命令来
处理这种情况.
\include{ lename}
在文档的正文中使用此命令可将文件名为 lename.tex的内容包括进来.注
意LATEX在开始处理 lename.tex的内容之前将会开始一新页.
14基本知识
第二个命令可用在文档的导言区,它允许你指导LATEX仅仅读入某些
\included文件.
\includeonly{ lename, lename,…}
这条命令在导言区被LATEX读入执行后,在所有的\include命令中,
只有\includeonly命令参数中列出的文件才会被执行.注意在参数中,文
件名和逗号之间不能有空格.
\include命令在新页上排版包括进来的文本,这对于使用\includeonly
命令很有帮助.应为即使一些包括的文件被忽略,分页处也不会变更.如
果不想在新页排版包括进来的文本,可使用下面的命令:
\input{ lename}
该命令只是简单地将指定的文件包括进来,并没有其它限制.
使用syntonly宏包可以让LATEX快速的检查你的文档:LATEX浏览你的
文档,仅仅检查语法和所使用的命令是否正确,不会产生DVI输出.在这
种模式下,LATEX运行的非常快,可以节省可观的时间.使用方法非常简
单:
\usepackage{syntonly}
\syntaxonly
第二章文档排版
阅读前一章后,就可以了解LATEX 2″文档的基本结构了.在这一章我将
补充其余的部分,以使你能够生成实用的文档.
2.1文档和语言的结构
写作文档(一些现代DAAC1文学除外)的主旨在于向读者传递观点,
信息或知识.如果这些观点组织得很好,读者将能更好地理解.如果排版
风格反映了内容的逻辑和语义结构,读者就能看见和感觉到文章的种脉
络.
LATEX与其他排版系统的不同在于你只要告诉它文档的逻辑和语义结
构,它就按照文档类型和各种格式文件指定的\规则”导出文档的排版风
格.
在LATEX(在印刷术)中段落是最重要的文档单位.我们之所以称之
为\文档单位”,因为段落是反映一个连贯思想或观点的排版风格形式.在
下面的章节中你将学习如何用\\强行断行,通过在源文件中留一空行强行
转段.所以,如果开始一个新思想,就另起一段,否则,只应使用断行.
如果还犹豫是否应转段,可以把文档想象为观点和思想的传递者.如果旧
的思路还在继续,就不应转段.如果同一段中出现了全新的思路,就应该
另起一段.
大多数人完全低估恰当设置转段点的重要性.许多人甚至不知道转段
点的含义是什么,或者在LATEX中引进了转段点却浑然不知.如果在文档
中使用了公式,后一个错误特别容易发生.看看下面的例子,想想为什
么有时在方程前后使用多个空行(转段点),有时却不用.(如果你还不
完全理解这些例子中的命令,请阅读本章和下一章,然后重新阅读本节内
容.)
% Example 1
1为标新立异不计代价,译自SwissGermanUVA(Um’sVerreckenAnders).
16文档排版
\ldots when Einstein introduced his formula
\begin{equation}
e = m \cdot c^2 \; ,
\end{equation}
which is at the same time the most widely known
andtheleastwellunderstoodphysicalformula.
% Example 2
\ldotsfromwhichfollowsKirchoff’scurrentlaw:
\begin{equation}
\sum_{k=1}^{n}I_k=0\;.
\end{equation}
Kirchhoff’svoltagelawcanbederived\ldots
% Example 3
\ldotswhichhasseveraladvantages.
\begin{equation}
I_D=I_F-I_R
\end{equation}
isthecoreofaverydifferenttransistormodel.\ldots
下一个较小的文档单位是句子.在英语文档中,在一个句子结尾处句
号后的空间大于缩写词句号后的空间.L
ATEX试图分辨出你需要那一个.如
果LATEX给错了,你必须告诉LATEX你到底需要什么.在本章的后面将对
此予以解释.
句子也有结构.大多数语言具有非常复杂的标点符号系统,但是在很
多语言中(包括德语和英语)只要你记住它表示什么:语言流中的短暂
停顿,你就能近乎完美地使用逗号.如果你不肯定在哪里使用逗号,就大
声地朗读这个句子,在每个逗号处做一短呼吸.在什么地方如果你到别
扭,就删掉这个逗号;如果在什么地方,你感到必须呼吸(或做了短暂停
顿)就插入一个逗号.
最后,通过分成章,节,子节等形式,文档中的段落应该按逻辑在更
高的层次进行组织.但是,使用\section{TheStructureofTextand
2.2断行和分页17
Language}的排版效果是如此明显,以致如何使用这些高水平的结构几乎
是不证自明的.
2.2断行和分页
2.2.1段落整理
通常书籍是用等长的行来排版的.为了优化整个段落的内容,LATEX
在单词之间插入必要的断行点(linebreak)和间隔.如果一行的单词排不
下,LA
T
E
X也会进行必要的断字.段落如何排版依赖于文档类别.通常,每
一段的第一行有缩进,在两段之间没有额外的间隔.更多的信息请参考第
5.3.2节.
在特殊情形下,有必要命令LATEX断行
\\or\newline
另起一行,而不另起一段.
\\*
在强行断行后,还禁止分页.
\newpage
\linebreak[n],\nolinebreak[n],\pagebreak[n]and\nopagebreak[n]
上述命令的效果可以从它们的名称看出来.通过可选参数n,作者可以影响
这些命令的效果.n可以置为0和4之间的数.如果命令的效果看起来非
常差,把n取为小于4的数,可以让LATEX选择忽略这个命令.不要这些
\break”7―\new”命令混淆.即使你给出了\break”命令,LATEX仍然
试图对齐页面的右边界.如果你真想另起一行,就使用相应的命令.猜猜
该是什么命令!
LATEX总是尽可能产生最好的断行效果.如果断行无法达到LATEX的高
标准,就让这一行在段落的右侧溢出.然后在处理输入文件的同时,报告
溢出的消息(\overfullhbox”).这最可能发生在LATEX找不到合适的地方
18文档排版
断字时候.2你可以使用\sloppy命令,告诉LATEX降低一点儿标准.虽然
最终的输出结果不是最优的,它通过增加单词之间的间隔,以防止出现过
长的行.在这种情况下给出警告(\underfullhbox”).在大多数情况下得
到的结果看起来不会非常好.\fussy命令把LATEX恢复为缺省状态.
2.2.2断
必要时就会出现断字.如果断字算法不能确定正确的断字点,可以使
用如下命令告诉TEX如何弥补这个缺憾.
命令
\hyphenation{wordlist}
使列于参量中的单词仅在注有\-“的点断字.命令的参量仅由正常字母构
成的单词,或由激活文本中视为正常字母的符号组成.应用于(特殊)语
言的已存好,当断字命令出现时,就为激活的语言储存断字可选点.这意
味着如果你在文档导言中设置了断字命令,它将影响英文的断字.如果断
字命令置于\begin{document}后面,而且你正使用类似babel的国际语言
支持宏包,那么断字可选点在由babel激活的语言中就处于活动状态.
下面的例子允许对\hyphenation”和\Hyphenation”进行断字,却根本
不允许\FORTRAN”, \Fortran”和\fortran”进行断字.在参量中不允许出
现特殊的字符和符号.
例子:
\hyphenation{FORTRAN Hy-phen-a-tion}
命令\-在单词中插入一个自主的断字点.它也就成为这个单词中允许
出现的唯一断字点.对于包含特殊字符(注音字符)的单词,这个命令是
特别有用的,因为对于包含特殊字符的单词LATEX不自动断字.
I think this is: su\-per\-cal\-%
i\-frag\-i\-lis\-tic\-ex\-pi\-%
al\-i\-do\-cious
I think this is: supercalifragilisticexpialido-
cious
2当发生(盒子溢出)时,虽然LATEX给出一个警告并显示溢出的那一行,但是不太容易
发现溢出的行.如果你在\documentclass命令中使用选项draft,LATEX就在溢出行的右
边标以粗黑线.
2.3学习字符串排版19
命令
\mbox{text}
保证把几个单词排在同一行上.在任何情况下,这个命令把它的参量排在
一起(同一行上).
My phone number will change soon.
Itwillbe\mbox{01162912319}.
The parameter
\mbox{\emph{filename}}should
contain the name of the file.
My phone number will change soon. It will
be01162912319.
The parameter lenameshould containthe
name of the le.
命令\fbox和\mbox类似,此外它还能围绕内容画一个框.
2.3学习字符串排版
在前面的例子中,你已经看到用来排特殊字符串的非常简单的LATEX
命令.
CommandExampleDescription
\today8thMarch2003Currentdateinthecurrentlanguage
\TeXTEXThenameofyourfavoritetypesetter
\LaTeXLATEXThenameoftheGame
\LaTeXeLATEX2″ThecurrentincarnationofLATEX
2.4特殊字符和符号
2.4.1引号
你不要像在打字机上那样,把”用作引号.在印刷中有专门的左引号和右引号.在LATEX中,用两个’产生左引号,用两个’产生右引号.一个’和一个’产生一个单引号.
\Please press the ‘x’ key.”
20文档排版
2.4.2破折号和连字号
LATEX中右四种短划标点符号.连续用不同数目的短划,可以得到其中的三种.第四个实际不是标点符号,它是数学中的减号:
daughter-in-law, X-rated\\
pages13–67\\
yes—or no \\
$0$,$1$and$-1$
daughter-in-law, X-rated
pages13{67
yes|or no
0,1and 1
这些短划线的名称是:’-‘连字号,'{‘短破折号,’|’长破折号和’ ‘减号.2.4.3波浪号( )
波浪号经常和网址用在一起.它在LATEX中,可用\~产生,但其结
果:~却不是你真正想要的.试一下这个:
http://www.rich.edu/\~{}bush \\
http://www.clever.edu/$\sim$demo
http://www.rich.edu/~bush
http://www.clever.edu/ demo
2.4.4度的符号(-)
在LATEX中如何排度的符号
Its $-30\,^{\circ}\mathrm{C}$,
Iwillsoonstartto
super-conduct.
Its 30-C, I will soon start to super-conduct.
2.4.5省略号(. . . )
在打字机上,逗号或句号占据的空间和其他字母相等.在书籍印刷
中,这些字符仅占据一点儿空间,并且与前一个字母贴得非常紧.所以不
能只键入三个点来输出’省略号’,因为间隔划分得不对.有一个专门的命令
输出省略号.它称为
\ldots
2.5支持使用国际语言21
Not like this … but like this:\\
NewYork,Tokyo,Budapest,\ldots
Not like this … but like this:
NewYork,Tokyo,Budapest,…
2.4.6连字
一些字母组合不是简单键入一个个字母得到得的,而实际上用到了一
些特殊符号.
效果应为fi °-…而不是fffiflffi…
这就是所谓的连字,在两个字母之间插入一个\mbox{},可以禁止连字.
对于由两个词构成的单词,这可能是必要的.
不是%Not
shelfful\\
而是%but
shelf\mbox{}ful
不是shelfiul
而是shelfful
2.4.7注音符号和特殊字符
LATEX支持来自许多语言中的注音符号和特殊字符.表2.1就字母列
出了所有的注音符号.对于其他字母也自然有效.
在字母i和j上标一个注音符号,它的点儿必须去掉.这个可由\i和
\j做到.
H\^otel, na\”\i ve, \’el\’eve,\\
sm\orrebr\od,!’Se\~norita!,\\
Sch\”onbrunner Schlo\ss{}
Stra\sse
H^otel, na~ ve, el eve,
sm rrebr d,<SE~NORITA!,
Sch~onbrunner Schlo… Stra…e
2.5支持使用国际语言
如果你需要用英语以外的语言书写文件,LATEX有两个地方必须适当配
1.所有自动生成的字符串3必须适用于新语言.对于许多种语言,这个
任务可由Johannes Braams编的宏包babel完成.
3表目录,图目录, . . .
22文档排版
2.对于一种新语言,LATEX需要知道它的断字规则.将断字规则输入
LATEX有些难度.这是说为不同断字模式重建格式文件是行得通的.
对此Local Guide[4]给了更多的信息.
如果你的系统已经配置好了,你可以通过在命令\documentclass后添
加命令
\usepackage[language]{babel}
来激活宏包babel.系统支持的语言也应列于Local Guide[4]中.对于选定
的语言,宏包babel将自动激活适当的断字规则.如果LATEX的格式文件不
支持在所选择的语言中断字,除了失去断字功能,宏包babel仍起作用,这
对于排版效果有很大的负面影响.
对于很多种语言,宏包babel也提供专门的新命令来简化特殊字符的输
入.例如German,包含很多类似的字符(~a~o~u).利用babel,你能用”o
而不是\”o来输入~o.
一些计算机系统允许通过键盘直接输入特殊的字符.LATEX能够处理这
些字符.从1994年12月发布的LATEX2″开始,LATEX 2″的基本版本包括
了对几种输入编码的支持.请检查宏包inputenc:
\usepackage[encoding]{inputenc}
当使用这宏包时,应该考虑其他人在其计算机上或许不能显示你的输
入文件,因为他们使用不同的编码.例如,德语~a在微机上的编码为132,
表2.1:注音符号和特殊字符.
o\’o o\’o^o\^o~o\~o
o\=o_o\.o~o\”o
o\uo o\vo}o\Ho
o.\d oo

\bo~oo\t oo
\oe`\OE‰\ae
“a\aa”A\AA
\o \O^l\l
\i・\j<!'
2.5支持使用国际语言23
但是在一些使用ISO-LATIN1的Unix系统上,它的编码为228.所以应小
心使用这个功能.根据系统的类型,可能有下列编码.
Operating systemencoding
Macapplemac
Unixlatin1
Windowsansinew
OS/2cp850
字体编码是不同的问题.它定义于一种TEX-字体的每个字母的所在
位置.原始的计算机现代TEX字体仅包含旧的7-字节ASCII字符集中的
128个字符.当需要注音字母的时候,由TEX利用正常字母和注音符号生
成.这个方法停止对含有注音字母的单词进行断字,同时保证输出效果看
起来很完美.
幸运的是大多数TEX的现代版本带有一套EC字体.这些字体看起来
像现代计算机字体,但是包含用于欧洲语言大多数注音字母的特殊字符.
使用这些字体,可以改进非英语文档中的断字.EC字体由包含于文档导言
中fontenc宏包来激活.
\usepackage[T1]{fontenc}
24文档排版
2.5.1对德语的支持
用LATEX生成德语文档的一些提示.可以用命令
\usepackage[german]{babel}
加载对德语的支持.
如果LATEX系统已经做了相应的配置,就能保证德语单词的断字.同
时它把自动文本替换为德语,即把”章”变为\Kapitel”.而且提供了一套
新命令使得输入德语文件更加迅速.从表2.2中能获得灵感.
表2.2:德语特殊字符.
“a~a”s…
“‘

“‘\

\dq”
2.6单词的间隔
为了使输出的右边界对齐,LATEX在单词间插入不等的间隔.在句子的
末尾插入的空间稍多一些,因为这使得文本更具可读性.LATEX假定句子以
句号,问号或惊叹号结尾.如果句号紧跟一个大写字母,它就不视为句子
的结尾.因为一般在有缩写地方,才出现句号紧跟大写字母的情况.
作者必须详细说明,这些假设中的任何一个例外.空格前的反斜线符
号产生一个不能伸长的空格.波浪字符’~’也产生一个不能伸长的空格,并
且禁止断行.句号前的命令\@说明这个句号是句子的末尾,即使它紧跟一
个大写字母.
Mr.~Smith was happy to see her\\
cf.~Fig.~5\\
I like BASIC\@. What aboutyou
Mr. Smith was happy to see her
cf.Fig.5
I like BASIC. What about you
2.7标题,章和节25
命令
\frenchspacing
能禁止在句号后插入额外的空间,它告诉LATEX在句号后不要插入比正常
字母更多的空间.除了参考文献,这在非英语语言中非常普遍.如果使用
了\frenchspacing,命令\@就不必要了.
2.7标题,章和节
为便于读者理解,应该把文档划分为章,节和子节.LATEX用特殊的命
令支持这个工作,这些命令把节的标题作为参量.你的任务是按正确次序
使用它们.
对article风格的文档,有下列分节命令:
\section{…} \paragraph{…}
\subsection{…}\subparagraph{…}
\subsubsection{…}
对report和book风格的文档,还有其他两个分节命令:
\part{…} \chapter{…}
因为article风格的文档不划分为章,所以很容易把它作为一章插入
书籍文档中.节之间的间隔,节的序号和标题的字号由LA自动设置.
分节的两个命令有些特殊性:
命令\part不影响章的序号.
命令\appendix不带参量,只把章的序号改用为字母标记.4
LATEX在文档编译的最后一个循环中,提取节的标题和页码以生成目
录.命令
\tableofcontents
在其出现的位置插入目录.为了得到正确的目录内容,一个新文档必须编
译两次.有时还要编译三次.届时LATEX会通知你.
4对article风格的文档改变节的序号.
26文档排版
上面列出的分节命令也以”带星”的形式出现.”带星”的命令通过
在命令名称后加*来实现.它们生成的节标题既不出现于目录,也不带序
号.例如,命令\section{Help}的”带星”形式为\section*{Help}.
目录出现的标题,一般与输入的文本完全一致.有时这是不可能的,
因为标题太长排不进目录.在这种情况下,目录的条目可由真实标题前的
可选参量确定.
\chapter[Title for the table of contents]{A long
and especially boring title, shown in the text}
整篇文档的标题由命令
\maketitle
产生.标题的内容必须在调用\maketitle以前,由命令
\title{…},\author{…}和可选的\date{…}
定义.在命令\author中,可以输入几个用\and命令分开的名字.
在第8页的图1.3中,能找到有关上述命令的一个例子.
除了上面解释的分节命令,LATX 2″引进了其他三个命令用于book风
格的文档.它们对划分出版物有用,也能如愿改变章的标题和页码:
\frontmatter应接着命令\begin{document}使用.它把页码更换为罗马
数字.对于正文前的内容普遍使用带星的命令(例如,\chapter*{Preface}),
以阻止LATEX对它们排序.
\mainmatter应出现在书的第一章紧前面.它打开阿拉伯页码计数器,并
对页码从新计数.
\appendix标志书中附录材料的开始.该命令后的各章序号改用字母标
记.
\backmatter应该插入与书中最后一部分内容的紧前面,如参考文献和索
引.在标准文档类型中,它对页面没有什么效果.
2.8交叉引用27
2.8交叉引用
在书籍,报告和论文中,需要对图,表和文本的特殊段落进行交叉引
用.LATEX提供了如下交叉引用命令
\label{marker},\ref{marker}and\pageref{marker}
其中marker是使用者选择的标识符.如果在节,子节,图,表或定理后
面入\label命令,LATEX把\ref替换为相应的序号.\pageref命令排
印\label输入处的页码.5和章节标题一样,使用的序号是前面编译所产
生.
A reference to this subsection
\label{sec:this}lookslike:
”see section~\ref{sec:this} on
page~\pageref{sec:this}.”
A reference to this subsection looks like: \see
section12on page27.”
2.9脚注
利用命令
\footnote{footnotetext}
把脚注内容排印于当前页的页脚位置.脚注命令总是置于(put)6其指向
的单词或句子的后面.脚注是一个句子或句子的一部分,所以应用逗号或
句号结尾.7
Footnotes\footnote{This is
afootnote.}areoftenused
by people using \LaTeX.
Footnotesa
are often used by p eople using
L
ATEX.
aThisisafootnote.
5注意这些命令对它们指向什么并没有意识.命令\label只是保存了上一次自动产生的
序号.
6\put”是最常使用的英语单词之一.
7注意,脚注把读者的注意力从文档的正文引开.我们是好奇的动物,每个人都会阅读脚
注.所以为什么不把想说的所有东西都写入正文中.8
8路标不必走向它指向的地方:-).
28文档排版
2.10强调
如果文本是用打字机键入的,用下划线来强调重要的单词.
\underline{text}
但是在印刷的书中,用一种斜体字体排印要强调的单词.LATEX提供命

\emph{text}
来强调文本.这些命令对其参量的实际作用效果依赖于它的上下文:
\emph{If you use
emphasizinginsideapiece
of emphasized text, then
\LaTeX{}usesthe
\emph{normal} font for
emphasizing.}
If you use emphasizing inside a piece of em-
phasizedtext,thenLATEXusesthenormal
fontforemphasizing.
请注意要求LATEX强调什么和要求它使用不同字体的不同效果:
\textit{You can also
\emph{emphasize}textif
it is set in italics,}
\textsf{ina
\emph{sans-serif} font,}
\texttt{orin
\emph{typewriter} style.}
You can alsoemphasizetext if it is set in ital-
ics,in asans-seriffont,orintypewriter
style.
2.11环境
\begin{environment}text\end{environment}
其中environment是环境的名称.只要保持调用顺序,环境可以嵌套几
次.
\begin{aaa}…\begin{bbb}…\end{bbb}…\end{aaa}
在下面的章节中,对所有重要的环境都做了解释.2.11环境29
2.11.1 Itemize, Enumerate, and Description
itemize环境用于简单的列表,enumerate环境用于带序号的列表,description
环境用于带描述的列表.
\flushleft
\begin{enumerate}
\item You can mix the list
environmentstoyourtaste:
\begin{itemize}
\itemButitmightstartto
look silly.
\item[-]Withadash.
\end{itemize}
\itemThereforeremember:
\begin{description}
\item[Stupid]thingswillnot
become smart because they are
inalist.
\item[Smart] things, though, can be
presentedbeautifullyinalist.
\end{description}
\end{enumerate}
1.You can mix the list environments to
yourtaste:
But it might start to look silly.
-With a dash.
2.Therefore remember:
Stupidthings will not become smart
becausetheyareinalist.
Smartthings, though, can be
presentedbeautifullyinalist.
2.11.2 Flushleft, Flushright, and Center
flushleft和flushright环境分别产生靠左排列和靠右排列的段
落.center环境产生居中的文本.如果你不输入命令\\指定断行点,LATEX
将自行决定.
\begin{flushleft}
Thistextis\\left-aligned.
\LaTeX{} is not trying to make
eachlinethesamelength.
\end{flushleft}
This text is
left-aligned.LATEXisnottryingtomake
each line the same length.
\begin{flushright}
Thistextisright-\\aligned.
\LaTeX{} is not trying to make
eachlinethesamelength.
\end{flushright}
This text is right-
aligned.LATE
X is not trying to make each
linethesamelength.
30文档排版
\begin{center}
Atthecentre\\oftheearth
\end{center}
At the centre
oftheearth
2.11.3 Quote, Quotation, and Verse
quote环境对重要断语和例子的引用很重要.
A typographical rule of thumb
forthelinelengthis:
\begin{quote}
Onaverage,nolineshould
be longer than 66 characters.
\end{quote}
This is why \LaTeX{} pages have
suchlargebordersbydefaultand
also why multicolumn print is
usedinnewspapers.
A typographical rule of thumb for the line
lengthis:
On average, no line should be
longerthan66characters.
This is why LATEX pages have such large bor-
dersbydefaultandalsowhymulticolumn
print is used in newspapers.
有两个类似的环境:quotation和verse环境.quotation环境用于
超过几段的较长引用,因为它对段落进行缩进.verse环境用于诗歌,在诗
歌中断行很重要.在一行的末尾用\\断行,在每一段后留一空行.
I know only one English poem by
heart.ItisaboutHumptyDumpty.
\begin{flushleft}
\begin{verse}
Humpty Dumpsatonawall:\\
Humpty Dumpty had a great fall.\\
AlltheKing’shorsesandall
the King’s men\\
Couldn’tputHumptytogether
again.
\end{verse}
\end{flushleft}
I know only one English poem by heart. It is
aboutHumptyDumpty.
Humpty Dumpty sat on a wall:
HumptyDumptyhadagreat
fall.
AlltheKing’shorsesandall
the King’s men
Couldn’tputHumptytogether
again.
2.11.4逐字打印
位于\begin{verbatim}和\end{verbatim}之间的文本将直接打印,
包括所有的断行和空白,就像在打字机上键入一样,不执行任何LATEX命
令.
2.11环境31
在一个段落中,类似的功能可由
\verb+text+
完成.+仅是分隔符的一个例子.除了*或空格,可以使用任意一个字符.
这个小册子中的许多例子是用这个命令排印的.
The \verb|\ldots| command \ldots
\begin{verbatim}
10 PRINT “HELLO WORLD “;
20GOTO10
\end{verbatim}
The\ldotscommand . . .
10 PRINT “HELLO WORLD “;
20GOTO10
\begin{verbatim*}
thestarredversionof
the verbatim
environmentemphasizes
the spaces in the text
\end{verbatim*}
the^starred^version^of
the^^^^^^verbatim
environment^emphasizes
the^spaces^^^in^the^text
带星的命令\verb能以类似的方式使用:
\verb*|like this 🙂 |like^^^this^:-)^
verbatim环境和\verb命令不能在其他命令的参数中使用.
2.11.5表格
tabular环境能用来排印带有水平和铅直表线的漂亮表格.LATEX自动
确定每一列的宽度.
命令
\begin{tabular}{tablespec}
的参量tablespec定义了表格的式样.用一个l产生左对齐的列,用一个r
产生右对齐的列,用一个c产生居中的列;用p{宽度值width}产生相应宽
度,包含自动断行文本的列;|产生铅直表线.
32文档排版
在tabular环境中,用&跳入下一列,用\\开始新的一行,用\hline
插入水平表线.用\cline{j-i}可添加部分表线,其中j和i分别表示表线
的起始列和终止列的序号.
\begin{tabular}{|r|l|}
\hline
7C0 & hexadecimal \\
3700&octal\\\cline{2-2}
11111000000 & binary \\
\hline\hline
1984 & decimal \\
\hline
\end{tabular}
7C0hexadecimal
3700octal
11111000000binary
1984decimal
\begin{tabular}{|p{4.7cm}|}
\hline
Welcome to Boxy’s paragraph.
Wesincerelyhopeyou’ll
all enjoy the show.\\
\hline
\end{tabular}
Welcome to Boxy’s paragraph.
Wesincerelyhopeyou’llallen-
joy the show.
表列分隔符可由@{…}构造.这个命令去掉表列之间的间隔,代之
为两个花括号间的任何输入.一个用途在于下面要解释的十进制数对齐问
题.另一个可能应用在于用@{}压缩表列右端空间.
\begin{tabular}{@{} l @{}}
\hline
no leading space\\
\hline
\end{tabular}
no leading space
\begin{tabular}{l}
\hline
leading space left and right\\
\hline
\end{tabular}
由于没有内建的方法使十进制数按小数点对齐,9我们可以使用两列
“作弊”到达这个目的:整数右对齐,小数左对齐.\begin{tabular}行
9如果系统安装了’tools’包,请看一下宏包dcolumn.
2.12浮动体33
中的命令@{.}用一个\.”取代了表列间的正常间隔,从而给出了按小数点
表列对齐的效果.不要忘记用表列分隔符(&)取代十进制数的小数点!使用
命令\multicolumn可在数值”表列”上放置一个表列标签.
\begin{tabular}{c r @{.} l}
Piexpression&
\multicolumn{2}{c}{Value} \\
\hline
$\pi$ & 3&1416 \\
$\pi^{\pi}$&36&46\\
$(\pi^{\pi})^{\pi}$ & 80662&7 \\
\end{tabular}
Pi expression Value
…3.1416
……36.46
(……)…80662.7
\begin{tabular}{|c|c|}
\hline
\multicolumn{2}{|c|}{Ene} \\
\hline
Mene & Muh! \\
\hline
\end{tabular}
Ene
MeneMuh!
用表格环境排印的材料总是呆在同一页上.如果要排印一个长表格,
可以看一下supertabular和longtabular环境.
2.12浮动体
今天大多数出版物含有许多图片和表格.由于不能把它们分割在不同
的页面上,所以需要专门的处理.如果一个图片或一个表格太大在当前页
面排不下,一个解决办法就是每次新开一页.这个方法在页面上留下部分
空白,效果看起来很差.
对于在当前排不下的任何一个图片或表格,其解决办法是把它们”浮
动”到下一页,与此同时当前页面用正文文本填充.LATEX提供了两个浮
动体环;一个用于图片,一个用于表格.要充分发挥这两个环境的优越
性,应该大致了解LATEX处理浮动体的内在原理.但是浮动可能成为令人沮
丧的主要原因,因为LATEX总不把浮动体放在你想要的地方.
首先看一下供浮动使用的LATEX命令:
34文档排版
包围于环境figure或环境table中

赞(0) 打赏
转载请注明出处:服务器评测 » 一份不太简短的LATEX2"全文介绍
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏