刚接触markdown的时候,很疑惑TeX LaTeX KaTeX MathJax 到底是什么东西,它们之间又有什么关系。所以就写了这个文章。

以下仅是我整合的,手打可能出现错误,欢迎指正。


1 Tex

七十年代末,Donald E. Knuth在看自己的《The Art of Computer Programming》第二卷的校样时,感觉计算机排版的校样质量低到无法忍受,于是决定自己开发一个高质量的计算机排版系统,这样就有了 TeX 。(:anguished:这就是大佬吗?)

TeX 的名字是由大写的希腊字母“tec”(tau, epsilon, chi)组成。在希腊语中这个词的意思是“科技”和“艺术”。这也解释了它的发音。

“T”和“E”就像在“technology”中的发音一样,而“x”的发音类似于苏格兰语单词“loch”或德语单词“ach”中的“ch”,也类似于西班牙语中的“j”或俄语中的“kh”。也就是说正确发音是/tɛx/(同“太喝”)。但是经常被错读为常被读作/tɛk/(“太渴”)。音标详见:英语国际音标

TeX 标志为$T_EX$,这三个字母相靠得很近,而且中间的那个 E 有点儿下沉。但在无格式文件中,就写为 TeX 。

2 LaTeX

LaTeX文档:https://www.latex-project.org/help/documentation/

LaTeX是一种基于TeX的排版系统,由美国计算机科学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式系统的处理,即使用户没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能。

读音LaTeX /ˈlɑːtɛx/(“拉泰赫”),常被读作/ˈlɑːtɛk/(“拉泰克”)或/ˈleɪtɛk/(“来泰克”),写作$L^AT_EX$。

2.1 TeX 和LaTeX 的关系

In short TeX is all about formatting, for document/template designers, while LaTeX is all about content, for document writers.

在这里插入图片描述

我的理解是

  • ‎TeX 是一个排版系统。它提供了许多命令,需要你自己指定文档格式,比如字号,行距,页面分割等等。听起来就很麻烦,所以这需要专业排版的人员来搞。一般用户不可能为了排版而学习他整套系统。
  • ‎LaTeX 是一套建在 TeX 之上的宏。LaTeX 背后的理念是将焦点从‎‎格式‎‎转移到文档‎‎内容‎‎。在 LaTeX 命令是为了给文档内容提供结构。已经按照一套排版标准编写好模板,你只需要指定就行了。

  • 举个例子:

    image.png

    上边这个是个一级标题,字号5,字体宋体,行间距2。

    如果用TeX你要说:

    指定为一级标题

    指定为5号字

    指定为绿色

    指定行间距2

    但是LaTeX模板中如果已经设定好了,你只需要说:

    指定为标题1

每一个LaTeX 命令实际上最后都会被转换解释成几个甚至上百个TeX 命令。但是,普通用户可以无需知道这中间的复杂联系。

就像编程的时候如果使用一些已经编译好的函数库和模板可以使我们仅仅用几个命令就实现很多功能一样,LaTeX 根据人们排版文章的习惯,定义了许多命令和模板,通过这些命令和模板,我们可以很快的得到漂亮的排版结果。

3 KaTeX和MathJax

KaTeX官方文档:KaTeX API

MathJax文档:MathJax Documentation

  • ‎MathJax 是 LaTeX、MathML 和 Ascimath 符号的开源 JavaScript 显示引擎。
  • ‎KaTeX 是一个快速、易于使用的 JavaScript 库,用于网络上的 TeX 数学渲染。‎

为什么放一起呢?因为他俩都是JavaScript渲染器。

啥意思,就是说你这个排版方式是有了,但是你不一定能显示出来啊,因为渲染不出来啊。
所以怎么让它支持呢,就得用到渲染器了。

3.1 二者的区别

  • 我没用过MathJax就不评价了。他自己写的支持LaTeX的符号,还支持其他的符号。
  • 说一下我用的KaTeX。KaTeX官网写的支持大部分的LaTeX和包,所以我觉得KaTeX应该不只支持公式,但是我只拿他写过公式,所以也没办法说别的。并且其官网特意和MathJax作对比,说自己是渲染速度最快的库。我从使用感受上来说也是这样的, 因为我的个人博客用的渲染器就是KaTeX。https://lolitaann.gitee.io/https://lolitasian.github.io/

对了,现在CSDN的markdown公式渲染器用的就是KaTeX。不信你可以试一下,故意写错一个公式,他会报错:KaTeX parse error: Undefined control sequence:

4 MiKTeX proTeXt TeX Live MacTeX

看看LaTeX官网的安装包就知道了。

或许可以称之为LaTeX的发行版。比如windows那三个写的:都包含一个完整的TeX系统和LaTeX编辑器。

所谓发行版,可以参考都是安卓系统,但是有不同的发行版比如MIUI、EMUI、氢OS。都是Linux还分Ubuntu、CentOs。
在这里插入图片描述