作为一个作者,在博客中公式的编辑总是难免的。markdown并不支持数学公式编辑,这些公式仅靠编辑器自带的排版功能是难以表示的,所以需要我们掌握网页公式编辑方案。目前比较流行的网页公式编辑方案是采用TEX/LATEX语法编辑,知名的有MathJax、KATEX。由于CSDN博客中支持LATEX公式,所以学习了一下。在学习的过程中遇到了容易混淆的TEX,LATEX和KATEX,所以写此博客记录一下TEX,LATEX和KATEX的相关知识与区别,也希望大家能通过本文对于排版系统有初步的认识。
TEX
说到排版系统不得不提的就是TEX。TEX是一种排版系统,是基于宏的流行的文本格式化程序。它提供了一套功能强大并且十分灵活的排版语言,多达900多条指令,而且有宏功能,用户可以不断地定义自己适用的新命令来扩展TEX系统的功能。
TEX系统的排版结果DVI文件与输出设备无关,DVI文件可以显示、打印、照排,几乎可以在所有的输出设备上输出。利用TEX可以很容易地生成高质量的dvi文件,打印输出。
它在学术界十分流行,特别是数学、物理学、统计学与计算机科学界。被普遍认为是一个很好的排版工具,特别是在处理复杂的数学公式时。
利用TEX提供的宏定义功能可以对TEX进行二次开发。它是包括LaTeX和teTeX在内的其它的此类格式化程序的基础。利用诸如LaTeX等终端软件,TEX就能够排版出精美的文本。通过CTAN上的宏包可以扩展其功能,可以做幻灯片,定义模板。中文支持可以由CCT、CJK、ctex等来完成。
TEX有几种常见的格式:
- Plain TEX:TEX的作者设计了Plain TEX的基本格式,以与低层的TEX互应。这种格式是用TEX处理文本时相当基本的部分,以致于我们有时都分不清到底那条指令是真正处理程序TEX的,哪条是这个特殊格式的。Plain TEX也是其他格式的基础,有些人认为TEX和Plain TEX是同一件事。
- LATEX:Plain TEX的重点还只是在于如何排版的层次上,而不是从一位作者的观点的观点出发。当然对它的深层功能的进一步发掘,需要相当丰富的编程技巧。因此它的应用就需要高级排版和程序设计人员。正是由此种种原因,开发了LATEX格式,这种格式提供了一组生成复杂文档所需的更高级命令。利用这种格式,即使使用者没有排版和程序设计的只是也可以充分发挥由TEX所提供的强大功能。对于生成复杂表格和数学公式,这一点表现得尤为突出。LATEX相对于其基础Plain TEX而言,更像一个包装语言。它可以在作者根本不知道所以然的条件下,自动给出标题,章节,表格目录,交叉索引,公式编号,文献引用,浮动图表。版面布局信息包含在类文件中,这些类文件并不是位于源文件中的。这些布局可以改动,也可以直接采用。
- LATEX2 ϵ \epsilon ϵ:由于LATEX相当普及,以及它在许多原本没想象到的领域中的扩展,再加上计算机技术的日新月异,特别是价格低廉,但功能强大的激光打印机的出现,使得相当广泛的一类格式都冠以LATEX的标签。为了尝试建立一个真正的改进标准,创立了LATEX3项目,目标是建立一个最优的,有效的命令集合,这些命令是来自于各种软件包为了实现某一目的而设计出来的。朝向这个目标迈进的第一步是发行了LATEX2 ϵ \epsilon ϵ。也就是LATEX的当前版本。
TEX的优点:
- 高质量的输出:TEX遵循传统的排版规则,以排版的质量为最重要的目标。
- 超常的稳定性:自从TEX出现以来,只有一些微小的改动。也就是说,十几年前的TEX文件用现在的TEX系统排版得到的结果与十几年前得到的结果是一样的。稳定性还体现在TEX系统极少会崩溃,可以处理任意大小的文件,即使你的计算机的内存很少,TEX也可自如的工作。
- TEX是可编程的,TEX是一种宏命令编程语言:你可以用很少的命令来完成非常复杂的工作。如果需要的话,你也可以重新定义TEX的所有命令来得到特殊的效果。
- 高度的灵活性:TEX自从数显以来其内核只有微小的改动。但是由于其内核的设计方式,世界上的TEX使用者可以让TEX做几乎任何工作。你可以用TEX来排版英文文本,也可以排版德文、俄文、中文等多种语言。你还可以用TEX来排版乐谱,象棋,围棋棋谱等等。
- 简单方便TEX文档是ASCII码的文本文件:因此,即使你手边没有TEX系统,你也可以看懂绝大部分内容。TEX文件的这种特点使得它占用很少的存储空间,也可以很方便的用email来传输。
- 目前为止,TEX几乎在所有的计算机操作系统平台上得到实现:如Atari,Apple,Macintosh,Unix,VMS,MS-DOS,MS-Windows和OS/2等等。TEX的源文件可在不同的平台之间自由的交换,而得到的输出是完全相同的。
- TEX是免费软件,它的源程序也是免费的:你可能仅需要制服邮费,甚至一分不花得得到适合你的TEX系统。
- 超级技术支持:由于TEX并不是被某个公司垄断开发,所以世界各地的使用者设计了统一的技术支持方式。
- TEX是一种乐趣:使用TEX不仅仅是一种工作手段,也是一种乐趣。它有挑战,也有荣誉。很多人在熟悉TEX之后都开始把使用TEX作为一种爱好,而不是一件枯燥无味的劳动。
LATEX
在上面的介绍中已经提到过,LATEX使用TEX作为格式化引擎,当前的版本是LATEX2
ϵ
\epsilon
ϵ。
LATEX是当今世界上最流行和使用最广泛的TEX宏集。它构筑在Plain TEX的基础上,并加进了很多的功能以使得使用者可以更方便的利用TEX的强大功能。
使用LATEX基本不需要使用者自己设计命令和宏等。因为LATEX已经替你做好了。因此,即使使用者并不是很了解TEX,也可以在短短的时间内生成高质量的文档。对于生成复杂的数学公式,LATEX表现的更为出色。
也就是说,LATEX是TEX中的一种格式,是建立在TEX基础上的宏语言,每一个LATEX命令实际上最后都会被转换解释称几个甚至上百个TEX命令。但是,普通用户可以无需知道这中间复杂的联系。就像变成的时候如果使用一些已经编译好的函数库和模版可以使我们仅仅用几个命令就实现很多功能一样。LATEX根据人们排版文章的习惯,定义了许多命令和模版,我们可以很快的得到漂亮的排版结果。
KATEX
KATEX是一个web数学公式渲染器。我们日常写博客用的markdown并不支持数学公式编辑,这些公式仅靠编辑器自带的排版功能是难以表示的,所以需要掌握网页公式编辑方案。
目前比较流行的网页公式编辑方案是采用TEX/LATEX语法编辑,知名的有MathJax、KATEX。与前者相比,KATEX方案的渲染速度高,虽然支持不够全面,但仍能满足大多数的使用环境。
我们可以在KATEX官网来在线渲染我们写好的LATEX公式,如下图所示:
总结
在了解TEX,LATEX和KATEX的过程中,我梳理了一下三者的关系。可以这么说,TEX是一个电子排版系统,它的出现给印刷出版业带来了一场革命。但TEX对于使用者的要求比较高,所以出现了LATEX使得使用者可以更方便的利用TEX的强大功能。KATEX则是一种LATEX的一个快速web数学公式渲染器,使得LATEX的公式可以快速渲染出来。具体的LATEX公式的介绍将会在后面的文章中详述,希望大家通过此文章有所收获。