• 2006-07-25

    体验Tex

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/2904984.html

    如果一个软件拥有近三十年的生命,无论它是否依旧站在风口浪尖,它必然拥有自己的独到之处。在大多数人的心目中,Word是字处理和排版的代名词,TeX对普通用户来说,如果不是闻所未闻,可能也是敬而远之。但在许多专业人士心中,TeX远要比Word优秀,所以,许多专业论文投稿都采用了TeX。

    我很早就听说,Donald Knuth因为自己那套《计算机程序设计艺术》排版效果不好,于是打造出TeX。但是和大多数人一样,因为没有实际用到它的地方,所以也从未走近TeX。不过,现在有机会了。因为我们在这里的文档需要用TeX来写。

    用了才知道,原来TeX也并不像自己想象的那样复杂,而且给我的感觉是,它非常适合程序员。

    我们使用的是CTeX,CTeX的套装中包含基本TeX的软件、几个文件的阅读器(ps、dvi等格式)、帮助文档和一个“开发环境”。没错,是开发环境,我说过,它适合程序员。

    来个小例子:

    \documentclass{article}
    \begin{document}
    Small is beautiful.
    \end{document}

    这就是一个TeX文档,来自帮助文档中那份不太简短的介绍。用TeX的命令对它进行处理,就可以生成不同格式的文档,在那份不太简短的介绍中,有着详尽的描述,有兴趣的可以试试。事实上,我们可以省去自己敲命令的过程,因为开发环境的存在。在那个开发环境中编写TeX文件,就像在IDE中编写程序一样,而且集成了TeX的各种命令也省去了新手记忆命令的过程。

    我们可以把TeX理解程序设计语言,TeX文档就是这种语言的源文件,只不过,生成的目标是不同格式的文档而已。在TeX文件中,我们可以使用各种各样的命令,就像普通程序设计语言中的函数一样,如果觉得不够,我们可以编写自己的命令,甚至可以把命令打包发布,供其他人使用,所以,一般在TeX文件的开头我们会看到\usepackage,是不是想起了Java的import,C的include……

    从中我们不难体会到TeX设计上的精妙。首先,它分离了文档内容和具体格式,一旦某种文档格式退出了历史的舞台,只要编写一个新的后端,它就可以产生出新的文档格式。其次,它不是设计了所有的东西,而只是一个核心,其它的内容只是作为外围的包,这样TeX就可以不断扩展,拥有新的功能。现在广泛运用LaTeX就是在TeX的基础上加了许多扩展包。一个良好的扩展机制对于一个可以跨越历史的软件来说,非常重要。

    如果文档需要用到数学公式,TeX的优势尽显无疑,用公式编辑器编写公式简直是一场恶梦,不好用不说,排版效果简直令人作呕。不过,客观的说,对于编写文档的普通用户来说,TeX还是有些复杂。对于我这个习惯了编译运行的程序员来说,这个过程感觉还不错。

    突然冒出一个念头,如果Donald Knuth今天设计TeX,会不会把所有“\”都换成“<>”,这样就很像XML了,呵呵!

    分享到:
    引用地址:

    评论

  • 把所有“\”都换成“<>”

    那得多敲多少字符哦
    回复huangyi说:
    你和我之间有个很大的共同点:懒。^_^
    2006-08-05 15:52:46