Chemistry 版 (精华区)

发信人: loafer (快乐的化身), 信区: Chemistry
标  题: TeX 教程 (zz)(转载)
发信站: 哈工大紫丁香 (Sat Jul 19 16:45:57 2003)


发信人: wolong (习惯), 信区: Chemistry
标  题: TeX 教程 (zz)(转载)
发信站: 北大未名站 (2003年07月15日14:00:45 星期二), 转信
 
【 以下文字转载自 Thesis 讨论区 】
【 原文由 wolong 所发表 】
 
TeX 是什么?
TeX 是一个排版系统。用 TeX,你可以把你的文章做成书那种效果。你可以把它打印出来

或者送到出版社投稿。TeX 非常适合写各种学术论文,书籍,幻灯片。“TeX 不是一个用

制造比较漂亮的书籍的程序,而是用来制造最美的书籍的程序。”
 
TeX 是哪家公司生产的?
TeX 不是一家公司生产的,它主要是由计算机科学家 D.E.Knuth 设计并实现的。在 TeX 

诞生过程中,还包含了千千万万 TeX 用户的建议和要求。TeX 使用的字体包含了许许多多

法家,字体设计家的功劳,其中包括著名的 Hermann Zapf,其实 Knuth 自己也是一个字

设计艺术家。TeX 的宏包,字体,…… 成千上万,是由各个领域的的专家按照自己专业的

要设计的。所以 TeX 是全世界科学家和艺术家集体智慧的结晶。
 
我们今天主角的名字怎么念啊?"Tecks"?
看看上面右边那位,它就是 TeX。TeX 的名字是由大写的希腊字母组成。在希腊语中这个

 


 
的意思是“科技”和“艺术”,这也解释了它的发音。“T”和“E”就像在“technology

中的发音一样,而“X”的发音类似于苏格兰语单词“loch”或德语单词“ach”中的“ch

,也类似于西班牙语中的“j”或俄语中的“kh”。当你对着电脑屏幕读这个单词,你的屏

 
就会起雾。
 
左边那位漂亮女士就是 METAFONT. 她专门为 TeX 制造好看的字体。
 
LaTeX 怎么发音?
LaTeX 读作:“雷TeX”。嘿嘿。
 
排版 Word 也可以啊!TeX 跟 Word, WordPerfect 有什么不一样?
Word 和 WordPerfect 是“字处理程序”(word processor),它们是“所见即所得(WYSIW
YG
)”的,你直接修改字体,颜色,用鼠标画出表格…… 马上就可以看到效果。屏幕上显示

来是什么效果,印出来……基本上就是那个效果。而 TeX 不是,你输入的都是文本文件,

 
要一个程序(当然就是tex了)处理之后才能得到一个排版后的结果。
 
那样的话 TeX 还不如 Word 呢!
你认为 WYSIWYG 很好吗?其实还有更好的,TeX 是 "WYTIWYG(所想即所得)"。用 TeX 写

文的时候,你根本不用想着“这个单词使用什么字体呢?”,“这行应该缩进多少呢?”



……这类问题。你能够专注于你的思路,你的作品的逻辑关系,这样才能更好的为你的读

着想,写出比用WYSIWYG更好的作品。用TeX写文章,你想的是“这一段是否应该属于上一

呢?”,“这句话跟我这章的主题符合吗?”,“是否应该开始新的一章呢?”……
 
你告诉 TeX 的是:“这是一章开始”,“这个单词应该强调”,“这里是一段诗”……而

 
是告诉它:“这是第3章,应该用黑体三号字,开头有一个‘双S’,……”,“这个单词

斜体楷体小四”,“左右缩进各一英寸,右边不要对齐,换用小一号花体”……
 
在用 TeX 的时候,TeX 是你的排字工,你是诗人,作家…… 而用字处理程序的时候,你

当作者又当排字工,累不累?
 
其实你也知道,再好的字处理程序打印出来的效果也跟屏幕上看到的大不一样,而 TeX 生

 
的 dvi 文件在屏幕上看到是什么样,打印出来绝对就是那个样子,每一个字符的每一笔每

 
划,……都是一模一样。在某种程度上,TeX 才是“所见即所得”。
 
TeX,几十年前的东西了,又不更新,早过时了吧?
TeX 确实已经很老了,它在 1982 年以后基本就没有变化过。但是你相信世界上有如此完

的程序吗?它几乎没有bug, 而且你可以在几乎任何计算机上使用它,从PC机到Cray巨型机

 


经过几十年的风霜,它仍然是文档排版界的 "No.1", "state-of-the-art".它的王牌地位

显还将在21世纪继续保持!
 
TeX 的版本自从1995年3月就保持在 3.14159 没有变化,最近才变成了 3.141592。这说明

 
么呢?这说明它已经趋于完美。你应该改变所有软件都必需从 0.1, 1.0, 1.1, 1.2, 2.0
,
..., 3.0, 3.1, 95, 98, 2000, XP, ... 不断升级的想法。
 
TeX 是如此的稳定,几十年前的文档在现在输出效果不会有任何变化,你学习的TeX语法有

 
远不过时的保证。
 
虽然TeX程序和语言本身没有再变化,但是TeX是可以在不修改主体的情况下扩展的。TeX的

 
展性使得它成为最先支持PDF的系统之一,你可以参考ConTeXt 专栏。基于TeX的各种格式

应用风起云涌,百花齐放。TeX 现在还是 SGML, XML 的后端主力。
 
虽然你几十年前的文档不加修改是不会变化的,但是你可以任意的选择采用新式的办法处

你的文档。当新的宏包产生的时候,你只要改几个字就可以使你的“古籍”具有当今最流

的效果。比如转化成一个带有超级链接和bookmark的PDF文件!
 
你不应该随便用形容词的最高级来形容一个东西,我听你说了“最漂亮”,“最美”,甚



“完美”!
通常我们不应该乱用最高级,但是在这种情况下,我可以使用“最漂亮”,“最美”,甚

“完美”来形容 TeX,因为还没有其它程序能够处理如此复杂的内容,得到的效果能够与
 T
eX 比美!这些问题太复杂,以至于 Microsoft,Quark,甚至 Adobe 都不感兴趣。TeX 是

 
此不可一世,以至于 TeX 经常成为“宗教战争”的起因。
 
长江后浪推前浪,将来一定会出现超过 TeX 的程序。它们从 TeX 身上应该能学到很多东
西
。即使有一天 TeX 不再是最好,但是它的影子还是会在其它程序身上出现。
 
你这么关心文档的外表干什么?重要的是内容!
正确。重要的是内容。但是如果你编辑你的大作的时候还想着字体该用什么,行间距该多

,…… 你的内容质量是否会受到影响呢?TeX 使你专心于内容,这正符合你的一贯思想啊

 
而且顺便你就得到了世界一流的美观效果,何乐而不为?
 
知之者不如好之者,好之者不如乐之者。
 
Beautiful presentations can greatly deepen our perception of difficult concept
s.
 
 
看到漂亮的公式,均称的排版,优雅的字体,你体会到美的旋律,行云流水,一气呵成…



 即使最难的概念也会轻松的印到你的大脑里,持久不变!
 
TeX 完全没有 bug 吗?
不能说完全没有 bug. Knuth 用他自己设计的“文学编程语言”WEB写了TeX的所有代码,

了正式发行的时候,他非常自信的奖励 $1.28 给第一个发现 bug 的人,以后每发现一个
 b
ug, 奖金都会翻倍,最多 $327.68。后来由于加入了对8字节字符的支持,产生了一些小 
bu
g. 从1995年到现在,总共只发现一个 bug. 发现 bug 的周期越来越长,而且后来的 bug
 都
 
不是一般的程序问题比如内存啊,文件啊,而是一些在排版界很挑剔的人挑出来的一些“

版学”上的问题了。但是严谨的 Knuth 仍然把它们作为 bug 处理。不过最后一个bug已经

 
Knuth提前发现了(看下面) :)
 
Knuth 还奖励 $2.56 给每一个发现他书里错误的人。可是 Knuth 的签名是如此值钱,把

票装在像框里的人比兑现支票的人还多,即使是最大金额的 :P
 
听说 Knuth 不允许别人改进它的程序?
绝对不是这样!Knuth 不但公开了全部代码,而且欢迎大家利用 TeX 改进成为更加好的排

 
程序。但是为了保障以前的文档不会失去支持,保证一个稳定的语言的存在,Knuth 要求

改了的程序的名字不能使用 "TeX" 这三个字。这点小小的要求我们应该满足。
 


现在确实有很多改进的 TeX, 比如 Omega, NTS, ... 他们的思想是和 TeX 类似的,用过
 T
eX 的人用起那些程序也很简单。
 
TeX 在不断趋近于完美的 $\pi$。TeX 的最后一个 bug 已经被 Knuth 自己发现了,下面

是 Knuth 提前写下的的“遗嘱”:
 
The absolutely final change (to be made after my death)
@x module 2
@d banner=='This is TeX, Version 3.14159' {printed when \TeX\ starts}
@y
@d banner=='This is TeX, Version $\pi$' {printed when \TeX\ starts}
@z
When this change is made, the corresponding line should be changed in
Volume B, and also on page 23 of The TeXbook.
 
My last will and testament for TeX is that no further changes be made
under any circumstances. Improved systems should not be called simply
`TeX'; that name, unqualified, should refer only to the program for
which I have taken personal responsibility.  -- Don Knuth
 
我还听说 LaTeX 非常好,TeX 比它还好吗?
呵呵,你有个概念没有搞清楚。这两者其实是同一个程序,但是有层次上的不同,TeX 是
 L


aTeX 的基石,LaTeX 建立在 TeX 之上。如果你想搞清楚他们具体是怎样的关系,可以看

LaTeX+CJK是怎样工作的。
 
其实世界上只有一个TeX程序,它就叫做 "tex", 它是由计算机科学家 D. E. Knuth 设计

且实现的。TeX 不仅是一个排版程序,而且是一种程序语言。LaTeX 就是用这种语言写成

一个“TeX 宏包”,它扩展了 TeX 的功能,使我们很方便的逻辑的进行创作而不是专心于

 
体,缩进这些烦人的东西。TeX 还有其它的大型宏包,它们和 LaTeX 一起都被叫做 "for
ma
t",现在还有一种常用的format叫做 ConTeXt, 用它能方便的作出极其漂亮的幻灯片,动

屏幕文档…… 我们通常用 TeX 都是在用 LaTeX, ConTeXt, 因为 TeX 的底层需要更多的

识才能了解,一般人不需要自己设计自己的格式。
 
所以答案是 LaTeX 和 TeX 一样好。
 
LaTeX2e 是什么?这些东西怎么这么奇怪啊?
LaTeX2e 是 LaTeX 目前的版本。以前的 LaTeX 叫做 LaTeX 2.09. 这就是历史 :) 你现在

 
便下载一个 TeX 系统,里面带的 LaTeX 都是 LaTeX2e。
 
LaTeX 建立在 plain TeX 之上吗?
不是。很多人把 plain TeX 认为是最底层的,其实不是这样。plain 和 LaTeX 一样,都

 TeX 的宏包,也叫 format,它们是平等的关系。只不过这个 plain format 实在太简单



,你需要自己定义很多宏才能很好的工作,所以叫做 "plain"。在它们之下就是 TeX,或

明确一点,叫做 "TeX primitive" — 最基本的 TeX 语言。你几乎不想用 TeX primitiv
e
干任何事情,因为即使打出一个很简单的符号,用 TeX primitive 你也需要费很多事。即
使
 
最顽固的号称“永远不用 LaTeX” 的底层派,他们也不敢不依赖 plain TeX,因为自己设

 
一个 format 是很不容易的,你自己看看,最简单的 plain 的宏包都有1200行稀奇古怪的

TeX primitive!
 
那还有 MikTeX, teTeX, ... 呢。它们到底是什么?
Knuth 创造了 TeX 之后,公布了 TeX 程序的源代码。所以任何人都可以在保证不修改那

文件的情况下把它编译成程序,然后跟其它很多程序一起打包发行。这样就有了很多发行

本,比如 Windows 下有 MikTeX,fpTeX, ... Linux 和 UNIX 下有 teTeX. 这些简称“发

 
”。
 
你知道 Linux 吗?如果知道我就打个比方:TeX 和 MikTeX, teTeX... 的关系,就像 Li
nu
x 和 Debian GNU/Linux, Redhat Linux, ... 的关系。每一个TeX发行里都包含了 TeX, 
ME
TAFONT, LaTeX, amsTeX, MetaPost, dvips, pdfTeX, dvipdfm...每一个 Linux 发行都包

 
Linux内核,bash, gcc, tar, XFree86, ...
 


你能说说 TeX 的效果比Word之类的程序好在哪里吗?
你比较一下一个很有经验的 Word 用户和一个 LaTeX 初学者打出的文档就可以发现:
 
远远看去,LaTeX 文档格式更加均称,黑白程度均匀,而 Word 文档是黑一块的白一块,

符密度不均匀。
仔细看看,你就知道原因了。 Word 文档里上下两行经常有这种情况,上一行的单词间距

宽,而下面一行却很窄。这在排版学上是非常不好的。相临行的单词间据应该尽量相同。

数学公式。输入的时候就不说了哈,你知道 Word 输入公式有多麻烦。现在看看效果:Wo
rd
 的公式,该近的不近,该远的不远。很多标点符号都不好看,大一点的括号怎么看也不舒

 
,你仔细看看那些逗号,省略号吧,非常难看。如果公式插入到段落中,整个段落的行距

有灾难性的效果。而 TeX 的数学公式却是无可挑剔的,而且输入起来很方便,你可以根本

 
看屏幕,不用鼠标就输入很复杂的公式。
Word 的距离是用户看出来的,然后用鼠标什么的左调右调,可就是怎么也对不齐。TeX 的

 
离是算出来的,是根据最优的算法,具有数学的美感。TeX 对长度的精确程度可以达到 6
3
埃!(1埃=10-10米)
 
TeX 输入数学公式的方式跟 Word 有什么区别?
 
上面这个公式是一位很熟悉 Word 的数学系的朋友耐着性子仔仔细细帮我用 MS Equation
 3


.0 输入了,然后转成 PDF 后的效果,他说:“还好,凑合能认出来是什么。”你看别人

文的时候,看到这样的公式,你是什么感觉?
 
再看看 TeX 输入的同样的公式:
 
 
比较一下,真是天壤之别。
 
TeX 输入的数学公式都是文本。你可以直接用键盘敲入。比如这个漂亮的公式是这样打出

的:
 
$$\sum_{p\rm\;prime}f(p) = \int_{t>1}f(t)d\pi(t).$$
 
\sum 就是那个求和符号, "_"后面括起来的就是下标,\rm 使后面的 "prime" 用正体显示
,
 \; 是一个空格。\int 就是积分(integrate)符号, \pi 就是那个圆周率符号。很难吗?

烦吗?好吧,试试用 Word 的公式编辑器怎样打出这个公式,再比较一下效果。
 
其实有很多符号你在 Word 里就不容易找到了。比如:
 
 
用 TeX 就这样输入:
 


$$2\uparrow\uparrow k
\mathrel{\mathop=^{\rm def}}
2^{2^{\cdot^{\cdot^{\cdot^2}}}}
\vbox{\hbox{$\Big\}\scriptstyle k$}\kern0pt}.$$
 
虽然比一般的公式复杂一点,但是你发现里面的简单的对应关系没有?\uparrow 就是向上

 
箭头,\mathrel可以构造那个组合的等号,\cdot 就是那些点,我们不断提升上标,最后

个后花括号稍微复杂一些。
 
上面的公式定义了一种比“天文数字”还吓人的数字。这几乎是很多人一辈子都遇不到的

杂公式了,可是你在一下午就可以学到不止这种程度。对,一下午你就可以学会输入世界

最复杂的公式。比如像下面这个……我也不知道这是什么就打进去了。谁知道这是什么告

我一声。
 
 
TeX 有 Word 那样强大的宏吗?
你认为 Word 的宏很强大了?其实 TeX 的宏强大很多。TeX 本身就是一种宏语言,TeX 的

 
才是真正意义上的宏,TeX 的宏是世界上最强大的宏之一。宏(macro)这个单词意味着强大

 
用TeX的宏你可以定义具有参数的变化的结构,TeX 能够用宏来扩展自己的语法,比如 Te
X


其实没有循环语句,但是它可以用宏来实现一个loop循环结构。
 
TeX 的宏可以写出强大的“宏包”。我们常说的 LaTeX 其实就是一个宏包,这个宏包功能

 
此之大,我们把它叫做一个 "format",它几乎完全改变和扩展了 TeX 的能力。
 
TeX 能像 Word 那样“套用格式”吗?
所谓的“套用格式”在 LaTeX 里叫做使用文档类。这是一种把样式和结构分开的做法。L
aT
eX 是最早支持这种思想的系统之一。
 
现在许多的大学 Harvard, UC, Oxford, UIUC... 都有自己用 LaTeX 定义的毕业论文格式

 
每一个世界性的学术组织 SIAM, ACM, IEEE, AMS, ... 都有自己文档格式要求的 LaTeX 

格文件, 其中 AMS(美国数学会)还有专门的 amsTeX, 有专门的字体。作者们有了这些风格

 
件,可以一瞬间把已经写好的论文转化成投稿需要的格式。真的是一瞬间,你试试在你的

件开头把
 
\documentclass{article}
 
改成
\documentclass[twocolomn]{IEEEtran}


 
运行 LaTeX,马上就得到一篇可以投到 IEEE transactions,并且满足他们所有的格式要

的文章。
最早的 Word 根本没有这种功能,只是一个简单的可以变化字体的 WYSIWYG, 但是后来人

发现一旦用 Word 写了一些东西,而想把所有的小节标题都换一种字体时,就会需要修改

十,几百,上千个地方,于是 Word 加入了“套用格式”的功能,实现了一定的样式与结

的分离。
 
后来用户们的要求继续提高,Word 又加入了“宏”,VBScript,…… 但是其实这些功能
 T
eX 从诞生那一天开始就已经有了,并且具有天生的一致性。TeX 影响到了后来的各种格式

 
统,包括 HTML4/CSS, ... Word 的那些东西也是从 LaTeX 借鉴过来的。
 
既然有这么好,为什么现在用的人很少呢?
TeX 在中国的普及率确实非常低。如果你周围的人都不知道 TeX,你就可以告诉他们TeX是

 
好的排版系统。在你的身边是不是有很多人正在用盗版的 Microsoft Word? 没有人否认,
M
icrosoft 的排版工具显然是不如 Quark 的专业排版工具,可是 Quark 的程序遇到 TeX 

理的那种文档,也是无能为力的。
 
这是用途的不同,而不是质量的问题。TeX 面向的是对美观程度要求很高的用户,TeX 编

的是有逻辑性结构的文档,需要分章节,有插图编号,…… 所以你不会在一个玩具公司里



 
到人用 LaTeX。TeX 的用户一般集中在学校和科研机构里。比如,欧洲原子能研究中心(C
ER
N)几百人,全部都是 (La)TeX 用户,而且有专人把设计文档样式作为爱好。这样的气氛很

 
,大家可以轻轻松松得到样式统一的文档。而且多人合写论文,书籍是非常方便的。
 
你不应该用贬低 Word 的方式来抬高 TeX。
我知道,TeX 的支持者和 Word 的支持者看到上面的比较可能都会骂我。TeX 的支持者会

:“有没有搞错!你居然把 TeX 跟 Word 比,简直是贬低我们的 TeX。” Word 的支持者

 
然会更加气愤。
 
TeX 的效果是最好的,这是不庸质疑的。之所以用 Word 来做个比较,只是因为我身边大

分人用 Word,我找不到更好的程序来和 TeX 比较。我只是用 Word 作为字处理程序和非

术排版程序的一个例子。
 
其实我没有贬低 Word, 如果你是一个疲于谋生的传销员,要打印一份年度报告,我建议你

 
是用 Word.
 
你有可能喜欢用 Word 写论文,但是 Word 和其他字处理程序和非学术性排版程序,明显

适合用来写论文这样复杂的文档,特别不适合用来书写数学性的论文,这一点是无数人的



验教训。Lotus WordPro, Adobe PageMaker 和 QuarkXpress 的排版效果比 Word 好得多

但是它们处理数学公式照样是非常难看的。
 
因为 Word 这样的程序面向的用户本来就不是理工科大学生,科学家,工程师。它的作者

己也不是数学家,所以没能为数学公式提供很好的处理。如果使用 Word 来编辑含有大量

学公式的论文,造成读者的思路混乱,是作者的失误,是作者强 Word 所难。效果不好不

 Word 的错,Word 并没有宣扬“我编辑论文效果好”,Adobe PageMaker 和 QuarkXpres
s
甚至根本没有考虑让你用来编辑论文,因为它们的设计者知道,他们的程序不可能有 TeX
 的
 
功能。
 
字处理程序都一无是处了吗?
当然不是,要不然它们哪里来的市场?
 
理论上来讲,TeX 的功能包含了字处理程序的所有功能。但是 TeX 是为创造最复杂的文档

 
存在的。如果你的任务不是很复杂而且你已经有字处理程序,它还是能完成一般的任务,

如打印一个贴在墙上的通知,做一个非数学性的幻灯片,写小说,写营业报告,……
 
TeX 从来没有想把所有字处理程序置于死地,那显然是不可能的。不过一般用过 TeX 的人

 
会非常喜欢它,以至于他们到后来写什么都可以用 TeX,甚至把它作为一种娱乐方式 :)



 
我听说 TeX 很难学?
你可能经常听说“LaTeX 很难学”这样的传闻。但是小马,你怎么能听松鼠的话呢?只有

你自己的脚试试才知道这条河有多深!你第一次用TeX之后就知道它有多简单。通常你用的

TeX 叫做 LaTeX,我可以在半个小时之内教会一个人用 LaTeX 写出一篇象样的文档。包括

 
节,脚注,目录,表格,插图,索引,参考书目…… 如果你能体会到它有多简单,请告诉

 
的朋友们:“LaTeX 不用学,只要用就行了。”
 
一般人认为 Word 很容易用。Word 虽然看似很好上手,什么都不用学就可以用了。但是一

 
你的文档需要有章节,目录,图表,索引,数学公式……你就需要开始学习它的“高级功

”。当然 Word 是能做出这些东西的。
 
但是后来,你发现你用Word达到同样的功能需要付出几十倍于TeX的学习时间。Word 不断

在变,不断的在增加 TeX 早就有的功能。而这些功能的用法之间没有统一性,Word 常常

要几个外部程序的合作才能完成某项工作。大部分科学家不能忍受这种麻烦,所以很少有

写论文用 Word.
 
想一想你从开始用 Word 花了多少时间才弄明白怎么自动生成目录?你的大部分时间全部

在了搞明白“这段字的大小该是多大才能跟第二段的一样大呢?”,“这两行怎么老是对



齐”之类的问题上面了。
 
实际上用 LaTeX,你能体会到它的那些简单的命令之间有完美的统一性,可以触类旁通。

几乎不用脑子就可以写出漂亮的文档,当然内容不可以不用脑子写啊!剩下的脑子都用来

你的内容吧。
 
一个澳大利亚国立大学的朋友告诉我:“我们学校几乎没有人不会用 LaTeX, 因为这个东
西
用起来实在太简单了。不过我们光是会用,它怎么工作的我们完全不明白。” 而且这位朋

 
是国际贸易专业的,不懂多少电脑,一天到晚就知道玩滑板 :)
 
听说 LaTeX 插图的时候很麻烦?
 
 
谁说的?LaTeX 插图就这么简单:
 
\begin{figure}
\includegraphics{tex.eps}
\caption{This is me, \TeX!}
\label{tex}
\end{figure}
 


这样插入图片后,图片会被自动放在合适美观的地方,自动被加上编号,你可以用
 
请看图\ref{tex}
 
来引用这个图片。到时候如果图片被编号1,那么你的句子就变成“请看图1”。而且你可


 
\listoffigures
 
得到所有图片的列表,包括编号,注释,页码,插到你的目录里去。如果你的文档使用 h
yp
erref 宏包,还可以在 PDF 文件里生成可以点击的目录。多方便!
 
 
 
LaTeX 在排版程序代码时有什么好处吗?
你只要用几句话设置好 listings 宏包:
 
\usepackage{listings}
\lstloadlanguages{C, csh, make}
\lstset{language=C,tabsize=4, keepspaces=true,
        breakindent=22pt,
        numbers=left,stepnumber=1,numberstyle=\tiny,


        basicstyle=\footnotesize,
        showspaces=false,
        flexiblecolumns=true,
        breaklines=true, breakautoindent=true,breakindent=4em,
        escapeinside={/*@}{@*/}
}
 
就可以把你成千上万行的代码都排成下面这个效果。
 
 
 
而且你可以在代码里插入标记,可以在文章里引用这个标记,比如你可以在代码某处插入

个注释。
 
/*@\label{code:restart}@*/
int restart_card(.......)
{
        .....
}
 
这样的注释在排版时会被 LaTeX 去掉。注释的方式是在 \lstset 里定义的,就是上面那

 "escapeinside={/*@}{@*/}".


 
你以后就可以说:“在第\ref{code:restart}行,我们重新启动。”排版时,\ref{code:
re
start}会被变成正确的行号。以后即使程序改动,行号也会完全正确!
 
别人的论文投稿时都是 PDF, PS,我用TeX,出版社接受吗?
你有一个很重要的问题没有搞清楚。PDF 和 PS 是 hardcopy 格式, 是 Adobe 公司创造的

 
图“与纸比美”的文件交换格式,它们是与纸张效果完全一样的。它们是了不起的发明,

是你不能直接编辑出漂亮的 PDF 和 PS 文件,它们都是用其它程序生成的。
 
虽然在这个年代,TeX 写的文档最后打印的时候大多转换成 PS, PDF,但是 TeX 生成的 
dv
i 文件不依赖任何 hardcopy 格式。在没有 PS, PDF 的年代,TeX 还是具有高质量的输出

 
PS 和 PDF 使得 TeX 如虎添翼,TeX 生成的 PDF 比其它程序生成的都要漂亮。你看看这

样例都是PS, PDF, 甚至 DJVU 格式。如果你想把 Word 转成 PDF,你需要Adobe Acrobat

全版,价格是 $249. 你能接受吗?
 
出版社基本上都可以接受任何 PDF, PS 文件。即使是不能处理 LaTeX 的小出版社,你也

以把你的文件转成 PDF 给他们,其实你甚至可以把 LaTeX 转换成 HTML(latex2html), W
or
d 文档(tex2doc), ... 出版社有时要求必须用 LaTeX 的源文件,以便把你的文章插入论

集。所以你用 LaTeX 写文档不会有任何问题,反而有时是必须的。
 


看看这些大出版机构,每一个都把 LaTeX 的名字放在最前面,有些甚至只接受 (La)TeX.

 
AMS
SIAM
Elsevier
Kluwer Academic Publishers
Cambridge University Press
Springer
Reviews of Modern Physics
IEEE
有人说 XML, MathML 要取代 TeX,你信吗?
XML, MathML, 甚至 ChemML, 它们在本质上是跟 TeX 完全不同的东西。TeX 是排版系统,

 
 XML 是用来表达数据的方式。
 
这些标记语言要变成漂亮的可以印在纸上的文档,还得靠 TeX 这样的后端支持。所以 XM
L
和 TeX 的关系不是对立的,而是朋友关系。
 
很多人,比如PRAGMA公司正在从事有关XML与TeX的结合的研究。
 
TeX 能处理汉字吗?
当然能。TeX 是跟语言无关的,也就是说,它可以处理任何人类语言。在 TeX 的眼里没有



 
言,只有不同大小的“盒子”,这些盒子里装的可以是汉字,也可以是英语,法语,阿拉

语,西伯来语…… 在 LaTeX 下,你可以用 CJK 宏包方便的编辑汉字文档,经过CJK宏包

汉字就变成跟其它语言一样的东西了—盒子。
 
虽然如此,但是我听说LaTeX处理汉字不符合中国人的习惯
LaTeX 处理汉字主要依靠的是 CJK 宏包,CJK 的主要任务是实现汉字编码的映射,而不管

 
文格式的问题,它是由德国学者 Werner Lemberg 设计的。中文排版确实有很多方面跟英

不一样,比如很多人抱怨为什么每一节后面的那一段都不缩进,因为 article 格式是按照

 
文排版方式。
 
但是你可以修改这一切,让你的文档都符合你自己设定的同一个样式。这是相当容易的。

也可以拷贝别人的样式定义,这就不用你自己操心样式了。有些出版社还会提供它要求的

式的 LaTeX 格式给你。
 
TeX 除了编辑论文还能做什么?
TeX 是一个非常多才多艺的程序。它不但可以编辑论文,书籍,幻灯片,学术杂志,还可

编辑乐谱,化学分子图,电路图,国际象棋,中国象棋,甚至围棋棋谱,……事实上只有

量文档不适合用 TeX 编辑。你可以到这里看看样品。
 


TeX 的一个宏包 MusiXTeX 可以做出世界上最漂亮的乐谱。你可以在 MusiXTeX的网页找到

 
多乐谱。
 
 
 
 
 
什么东西不适合用 TeX 编辑?
通常不适合直接用 TeX 编辑没有逻辑结构的东西,比如报纸,广告等…… 那些一贯是 M
ac
intosh,Adobe 和 Quark 的天下。这里所谓的“逻辑结构”是说要分很多章节,有插图,

 
叉引用,参考数目,……
 
但是可以设计一些 TeX 前端程序来处理这些东西,在漂亮的报纸,杂志背后,说不定还是

 
 TeX 的功劳。PRAGMA公司就是致力于这种工作的,他们用 TeX 作为后端,甚至可以制造

于儿童教学的图书。
 
除非你已经在你的论文里用过 TeX, 而且非常喜欢它,否则你可能不想用它来编辑一封写

你妈妈的信。
 


另外,小说家肯定不需要用 TeX,因为小说全部都是简单的段落,最多分几个章节,没有

么交叉引用,参考书目,而且我猜小说家在写作的时候看到 \begin{enumerate}... \end
{e
numerate} 肯定会很头疼 :)
 
我是初学者,你推荐使用什么发行的 TeX? 我应该用 LaTeX 吗?
我认为最好的发行是 TeXLive CD,它不但包含了所有操作系统需要的程序,而且有许许多

 
宏包,如果你不是特别特殊的用户,有了它你可以完成你的任何任务。而且它直接拷贝到

盘上就可以用了,甚至可以从光盘运行。
 
TeX 的中文支持需要中文字体。如果你不喜欢了解太多的细节,可以到 http://www.ctex
.o
rg 下载他们配置好立即可用中文的 CTeX 套装。
 
如果你硬盘很小的话可以安装 CTeX 套装基本版。请看这里
 
你应该首先学会使用 LaTeX 的基本功能。看lshort这本书自学,大概也就是 90 分钟的时

 
吧。以后如果你感兴趣就可以看看 The TeXbook, 里面有很多底层的细节。请参考这些资


 
这里给出一些学习 TeX 的参考资料:
 


 
 
The TeXbook
 
 
D. E. Knuth 的 TeXbook. 当然这是最权威的读物了。这里有电子版可以下载。其实它的

文件就在 TeXLive CD 的 TEXMFMAIN/doc/knuth 下面,你也可以从这里下载。
 
无论什么时候这本书都是 TeX 语言规则的最终参考。LaTeX, ConTeXt 的所有行为规则,

法,全部都可以用这本书上的语法解释,因为它们就是用 TeX 的语言写的。
 
读完这本书并且完全理解,灵活运用,你就可以被叫做 TeX hacker 了,你可以不按 LaT
eX
 的规则做事,你可以写出非常复杂的宏包。不看宏包的文档你就可以知道它怎么用,并且

 
以修改它来适应自己的需要。你可以做出很多让出版社的工作人员惊喜或者恼火的事情。

心哟!
 
所有的勘误都在 TEXMFMAIN/doc/knuth/errata 下。如果你没有, 可以在这里下载一个我

包的勘误表。[下载]
 
后来 TeXbook 并入了5卷版的"Computers & Typesetting",成为 A 卷。如果你有“千僖

”的 "Computers & Typesetting",里面已经修正了直到2000年末的错误。你只需要这些



新的errata。
 
如果你认为找到一个新的错误,请先查阅所有 errata,如果确认是个错误,请联系 bnb@
am
s.org. 不要打扰 Knuth,他现在正忙着写 taocp 第四卷呢。他的主页上说他已经完成了

 TeX 上的使命,不再继续负责处理 TeXbook 的错误。不过他还继续维护 TeX 程序,你如

 
找到一个 TeX 程序的 bug, 就可以得到 $327.68.
 
这本书确实不是给一个初学者或者纯粹的LaTeX使用者看的。虽然你可能非常感兴趣,但是

 
可能需要先看看入门的读物再去啃那本大部头。下面就是一本让你可以在90分种之内学会
 L
aTeX 的读物:
 
The Not So Short Introduction to LaTeX2e(lshort)
一个最容易懂的 LaTeX 入门教材。我就是看这个学会 LaTeX 的。这个文档已经被翻译成

多种语言,包括汉语。这里是一个英语版本。
 
LaTeX Command Summary
一个LaTeX命令速查手册,不知道谁写的。包含很多很多内容,符号名列表啊,……什么都

 
,只有14页。你可以打印出来放在手边备用。
 


LaTeX2e The macro package for TEX
LaTeX 的作者 Leslie Lamport 等人写的 LaTeX2e 说明。Edition 1.6 December 1994. 

简略,适合用来作参考。
 
Using Imported Graphics In LATEX2e
王磊翻译整理的 Using Import graphics in LaTeX2e(Keith Reckdahl 编写,Ver. 2, 
De
c. 15 1997) 在 LaTeX 中你可以用很多种方式插入图片,这本书就是讲述怎样实现各种各

 
的插图效果。译者加入了对 picinpar, picins, wrapfig 等宏包的介绍。特别推荐 pici
ns
 宏包,它可以轻松实现这样的插图:
 
 
 
其实还有很多参考书。但是我不想多推荐了。看完 lshort 你应该已经能处理大部分事情

而且不需要我来指点你了。


--
           ----       归零       ----        






※ 来源:.哈工大紫丁香 bbs.hit.edu.cn [FROM: 202.118.247.45]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:209.836毫秒