Tex介绍[转自王垠的网站]
其实自己决定使用Tex,还是看了王垠的对Tex的介绍。自己也写了一些Tex文档。因此才会有这个板块。
本来想自己来谢谢Tex的介绍。但是看看王垠已经写的很清楚了。就借用他的吧。
这是一个介绍 TeX — 一个漂亮,有趣又可靠的排版程序的网页。希望通过我的介绍,你能体会到使用 TeX 的快乐感觉。
这页分成了很多小主题,可以叫做一个非技术性的 FAQ. 里面藏着我收集的很多有趣的有关 TeX 的言论,你可以挑你喜欢的看。
Word 和 WordPerfect 是“字处理程序”(wordprocessor),它们是“所见即所得(WYSIWYG)”的,你直接修改字体,颜色,用鼠标画出表格……马上就可以看到效果。屏幕上显示出来是什么效果, 印出来基本上就是那个效果。而
科学家喜欢偷懒,他用所见即所得的程序写论文是很累的。他的脑子如果总是想着专业排版人员考虑的问题,比如 “这个单词使用什么字体呢?”,“这行应该缩进多少呢?”……还有什么时间用来思考语言和内容?所以TeX 被设计为“WYTIWYG(所想即所得)”,非常适合懒到家了的人。
用TeX写文章,他想的是“这一段是否应该属于上一节呢?”,“这句话跟我这章的主题符合吗?”,“是否应该开始新的一章呢?”,“这个概念读者是否容易理解呢?”…… 你告诉TeX
的是:“这是一章开始”,“这个单词应该强调”,“这里是一段诗”……就像在对他的秘书口授机宜。而不是告诉她:“这是第3章,应该用黑体三号字,开头有一个‘双S',……”,“这个单词用斜体楷体小四”, “左右缩进各一英寸,右边不要对齐,换用小一号花体”…… 这些是秘书的事情,不用你操心。
的公式,该近的不近,该远的不远。很多标点符号都不好看,大一点的括号怎么看也不舒服,你仔细看看那些逗号,省略号,非常难看。如果公式插入到段落中,整个段落的行距会有灾难性的效果。而 TeX 的数学公式却是无可挑剔的,而且输入起来很方便,你可以根本不看屏幕,不用鼠标就输入 很复杂的公式。
"知之者不如好之者,好之者不如乐之者。"科学家都知道艺术和美感给他们带来了什么。看到均称的排版,优雅的字体,漂亮的公式,看到 ∑ 和
∽的曲线相互辉映,他的潜意识感觉到世界的和谐,上帝的召唤。他就可能想到王羲之在挥笔疾书,就想到太极云手,想到泰格伍兹打了一个老鹰球,想到舒马赫冲过最后一个弯道,路旁漂亮女孩的头发在飘扬,一个急刹车差点撞上一只过路的穿着西服的兔子,他手里举着一面格子旗,上面写着“道可道,非常道”。一个千年难题的答案,不知不觉就送到你面前了。整个过程有如行云流水,一气呵成……啧啧(有点吹牛了。哈哈!)有人说科学的目的就是为了美,也许就是这个意思吧。
用心体会这些曲线给你带来的感觉,真是天上掉到地上。王羲之,太极拳,老鹰球,美女,兔子,……都没有了。当然千年难题的答案也没有了。
TeX 输入的数学公式都是文本。你可以直接用键盘敲入。比如这 个漂亮的公式是这样打出来的:
sum 就是那个求和符号, "_"后面括起来的就是下标,rm 使后 面的 "prime" 用正体显示, ; 是一个空格。int 就是积分(integrate)符号, pi 就是那个圆周率符号。很难吗?麻烦吗?好吧,试试用 Word的公式编辑器怎样打出这个公式,再比较一下效果。
虽然比一般的公式复杂一点,但是你发现里面的简单的对应关系没有?uparrow 就是向上的箭头,mathrel可以构造那个组合的等号,cdot
其实 TeX 的宏比Word强大很多。TeX 本身就是一种宏语言,TeX 的宏才是真正意义上的宏,TeX 的宏是世界上最强大的宏之一。宏(macro)这个单词意味着强大,用TeX的宏你可以定义具有参数的变化的结构,TeX 能够用宏来扩展自己的语法,比如 TeX其实没有循环语句,但是它可以用宏来实现一个loop循环结构。
TeX 不是一家公司生产的,它主要是由计算机科学家 Donald.E.Knuth设计并实现的。在 TeX 的诞生过程中,还包含了许许多多艺术家,设计师的功劳,其中包括著名的书法家和字体设计师 Hermann Zapf。TeX的宏包,字体,扩展软件成千上万,是由各个领域的的专家按照自己专业的需要设计的。所以 TeX
说,在希腊语中这个词的意思是“科学”和“艺术”,这也解释了它的发音。“T”和“E”就像在“technology”中的发音一样,而“X”的发音类似于苏格兰语单词“loch”或德语单词“ach”中的“ch”,也类似于西班牙语中的“j”或俄语中的“kh”。当你对着电脑屏幕读这个单词,你的屏幕就会起雾。
呵呵,你有个概念没有搞清楚。这两者其实是同一个程序,但是有层次上的不同,TeX 是 LaTeX 的基石,LaTeX 建立在 TeX 之上。如果你想搞清楚他们具体是怎样的关系,可以看看LaTeX+CJK是怎样工作的。
其实世界上只有一个TeX程序,它就叫做 "tex", 它是由 D. E.Knuth 设计并且实现的。TeX 不仅是一个排版程序,而且是一种程序语言。LaTeX 就是用这种语言写成的一个“TeX 宏包”,它扩展了 TeX 的功能,使我们很方便的逻辑的进行创作而不是专心于字体,缩进这些烦人的东西。TeX 还有其它的大型宏包,它们和
LaTeX 一起都被叫做 "format",现在还有一种常用的format叫做 ConTeXt, 用它能方便的作出漂亮的幻灯片,动态屏幕文档…… 我们通常用 TeX 都是在用 LaTeX, ConTeXt, 因为 TeX 的底层需要更多的知识才能了解,一般人不需要自己设计自己的格式。
primitive" — 最基本的 TeX 语言。你几乎不想用 TeX primitive 干任何事情,因为即使打出一个很简单的符号,用 TeX primitive 你也需要费很多事。即使最顽固的号称“永远不用 LaTeX” 的底层派,他们也不敢不依赖 plain TeX,因为自己设计一个 format 是很不容易的,你自己看看,最简单的 plain 的宏包都有1200行稀奇古怪的
这个就是 LaTeX 的强中之强了。TeX 主要依靠 BibTeX 实现文献管理,它是由 Knuth 的好朋友 Patashnik 设计的。作者可以从杂志,协会,网站等地方得到 BitTeX 文献数据库,然后在自己的文件里只需要写一个几个字母长的标识符,比如
"kn95",就可以自动在论文,书籍末尾加上已经引用的文献的参考文献条目。文献条目可以自动排序,也可以不排序。
这种数据库条目是附和国际文献分类规则的,只要一个样式文件就可以把文献数据自动排成需要的样子。一个期刊要求引用时采用[Bhatt and Cai, 1993] 这样的字样,另一个期刊要 [BC93] 这样的,而第三个期刊要 [10] 这样的数字编号,一个个改起来多麻烦!BibTeX
就可以让你轻松改变这些样式。而且这种文献条目的样式可以自己选择。各个协会,比如 ACM,IEEE, SIAM, AMS ... 都会提供附和它们投稿要求的 BibTeX 样式文件 .bst 给你。只要有了这种样式文件,就可以不费力气的插入各种样式的参考文献条目了。
不能说完全没有 bug. Knuth 用他自己设计的“文学编程语言”WEB写了TeX的代码,到了正式发行的时候,他非常自信的奖励 $1.28 给第一个发现 bug 的人,以后每发现一个 bug, 奖金都会翻倍,最多 $327.68。后来由于加入了对8字节字符的支持,产生了一些小 bug. 从1995年到现在,总共只发现一个
bug. 发现 bug 的周期越来越长,而且后来的 bug 都是一些在挑剔的人找出来的一些“美学”上的问题了。但是严谨的 Knuth 仍然把它们作为 bug 处理。
18. TeX,几十年前的东西了,又不更新,早过时了吧?
是如此的稳定,几十年前的文档在现在输出效果不会有任何变化。虽然TeX程序和语言本身没有再变化,但是TeX是可以在不修改主程序的情况下扩展的。Knuth 在那个年代就想到了程序的扩展性,展现了卓越的远见。
不是这样。Knuth 不但公开了全部代码,而且欢迎大家利用 TeX 改进成为更加好的排版程序。但是为了保障以前的文档不会失去支持,保证一个稳定的语言的存在,也许也是为了满足自己对完美的追求,Knuth 设计了一个测试,只有通过测试的程序才能使用 "TeX" 这三个字作为名字。所有对 TeX
有重大改进(或者退步)的程序都不能使用这个名字。
TeX 面向的是对美观程度要求很高的用户,TeX 编辑的是有逻辑性结构的文档,需要分章节,有插图编号,…… 所以你不会看到有人用 TeX 记流水帐,一般的画报也不会用 TeX。
TeX 用户的多少跟你所处的环境有关系。TeX 是最好的学术排版系统,它的用户基本上都是科学家和工程师,也就是最会偷懒的的那种人。用户的数目虽然少,但是很稳定。TeX 的用户一般集中在大学和科研机构里。比如,欧洲原子能研究中心(CERN)几百人都是 (La)TeX
用户,而且有专人把设计文档样式作为爱好。这样的气氛很好,大家可以轻轻松松得到样式统一的文档。而且多人合写论文,书籍是非常方便的。
你可能经常听说“LaTeX 很难学”这样的传闻。但是你第一次用TeX 之后就知道它有多简单。通常你用的 TeX 叫做 LaTeX,我可以在半个小时之内教会一个人用 LaTeX 写出一篇象样的文档。包括章节,脚注,目录,表格,插图,索引,参考书目…… 如果你能体会到它有多简单,请告诉你的朋友们:“LaTeX
跟写程序一样,拿到一个别人写好的文档来修改修改,是最快的入门方式。 我师姐就是这样一下午学会 LaTeX 的。如果想要深入一点,可以看看lshort这本书自学,大概也就是 90 分钟 的时间吧。以后如果你感兴趣就可以看看 The TeXbook, 里面有很多底层的细节。还可以参考这些资料。
这样插入图片后,图片会被自动放在合适美观的地方,自动被加上编号,你可以用
来引用这个图片。到时候如果图片被编号1,那么你的句子就变成“请看图1”。而且你可以用
得到所有图片的列表,包括编号,注释,页码,插到你的目录里去。如果你的文档使用 hyperref 宏包,还可以在 PDF 文件里生成可以点击的目录。多方便!
而且你可以在代码里插入标记,可以在文章里引用这个标记,比如你可以在代码某处插入一个注释。
有的人看出来了,这里排版出来的程序使用的是非等宽字体。而通常程序编辑时应该使用等宽字体。如果你喜欢等宽字体,你可以很简单的换成 Courier 之类的字体。但是其实程序一旦印在纸上,就没有必要用等宽字体了,因为等宽字体只是用来方便你编辑,非等宽字体印出来要好看的多。
你有一个很重要的问题没有搞清楚。PDF 和 PS 是 hardcopy 格式, 是 Adobe 公司创造的试图“与纸比美”的文件交换格式,它们是与纸张效果完全一样的。它们是了不起的发明,但是你不能直接编辑出漂亮的 PDF 和 PS 文件,它们都是用其它程序生成的。
LaTeX 写文档不会有任何问题,反而有时是必须的。
当然能。TeX 是跟语言无关的,也就是说,它可以处理任何人类语言。在 TeX 的眼里没有语言,只有不同大小的“盒子”,这些盒子里装的可以是汉字,也可以是英语,法语,阿拉伯语,西伯来语…… 在 LaTeX 下,你可以用 CJK 宏包方便的编辑汉字文档,经过CJK宏包,汉字就变成跟其它语言一样的东西了—盒子。
28. 虽然如此,但是我听说LaTeX处理汉字不符合中国人的习惯
LaTeX 处理汉字主要依靠的是 CJK 宏包,CJK 的主要任务是实现汉字编码的映射,而不管中文格式的问题,它是由德国学者 WernerLemberg 设计的。中文排版确实有很多方面跟英语不一样,比如很多人抱怨为什么每一节后面的那一段都不缩进,因为 article 格式是按照英文排版方式。
但是你可以修改这一切,让你的文档都符合你自己设定的同一个样式。这是相当容易的。你也可以拷贝别人的样式定义,这就不用你自己操心样式了。
TeX 是一个非常多才多艺的程序。它不但可以编辑论文,书籍,幻灯片,学术杂志,还可以编辑乐谱,化学分子图,电路图,国际象棋,中国象棋,甚至围棋棋谱,……事实上只有少量文档不适合用 TeX 编辑。你可以到这里看看样品。
不适合直接用 TeX编辑的是没有逻辑结构的东西,比如报纸,画报,广告等。像彩色杂志,图片多多,还有各种变化多端的分栏方式,肯定不能用 TeX 来排版。所以,TeX似乎不大适合艺术创作。另外,文学家可能不会用 TeX。实际上文学创作的人通常使用一些叫做 outliner 的程序来写草稿。还有,你可能不想用TeX
来编辑一封写给你妈妈的信。这样似乎用 TeX 的人都是喜欢偷懒的人,也就是说:科学家 :)
不太会用命令行的朋友可以到 下载配置好立即可用中文的 CTeX 套装。如果你硬盘很小的话可以安装 CTeX 套装基本版。请看 这里。
如果你熟悉命令行操作又大部分时间在用英文,那么可以用 TeXLive CD。它不但包含了所有操作系统需要的程序,而且有许许多多宏包,如果你不是特别特殊的用户,有了它你可以完成你的任何任务。而且它直接拷贝到硬盘上就可以用了,甚至可以从光盘运行。不过配置 TeXLive CD 的中文麻烦一点。