前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LaTeX的历史:图灵奖得主1977年开启的计划,引发学术圈重大变革

LaTeX的历史:图灵奖得主1977年开启的计划,引发学术圈重大变革

作者头像
量子位
发布2019-06-18 15:40:08
9120
发布2019-06-18 15:40:08
举报
文章被收录于专栏:量子位量子位
栗子 编译整理 量子位 出品 | 公众号 QbitAI
用LaTeX记笔记的超能操作

世界上的许多人类,都受到过LaTeX的恩泽。

经它排版的论文,就算有再复杂的公式,格式也不会乱掉。

但人们可能并不了解,LaTeX有个祖先叫TeX,出生在1977年。

并且在一个没有互联网的年代,就红遍了全球。

那么,身为世界上最早开源项目之一的TeX,究竟是如何诞生?又如以进化形态LaTeX,活跃了几十年不败?

专业排版师,找不到了

故事,开始于一本叫做《计算机编程艺术》 (The Art of Computer Programming) 的书。

作者是斯坦福计算机系教授Donald Knuth,中文名字“高德纳”。后来也是因为这本书,他获得了图灵奖

1968年,初版问世。在这之前,他给了出版商Addison-Wesley几千页手写书稿,出版商用的是传统金属排版设备,需要专业人员手动操作。

那时候,电脑上还没有图形界面。

书里面有各种编程示例,高德纳就一点一点向排版人描述,他到底想要怎样的效果。成书的时候,他很满意。

转折发生在1976年,这本书准备再版,扩充了一些内容。这一次,出版商改用了便宜的电子排版方法,小样完全达不到高德纳要求。

虽然高德纳知道,高分辨率的数字排版机可以生成精确的形状,但从前那些专业的排版人员已经找不到了

他想着,如果让计算机软件来代替专业人士呢?

于是,1977年高德纳用了一个夏天,再加一整年的学术休假,执行他的数字排版计划:和学生一起写出了排版程序,名叫TeX

转年,《计算机编程艺术》的修订版,就用TeX排版完成了。

那时的高德纳可能不知道,TeX会引发学术排版的巨大变革。

原来你是这样的TeX

有了TeX,即便论文作者没有排版的专业知识,也可以把自己想要的效果,直接告诉电脑。

只要在手稿里加入一些简单的markup代码:

叮当法术变变变:

这就是TeX输出的样子。

就像60年代的高德纳教授,可以和排版人员密切沟通那样。而且,和电脑沟通还避免了人与人之间的误解。

其实在文本中加markup,倒不算新鲜事。但TeX的新鲜之处在于,它可以捕捉到非常实用的排版知识和概念,并且把它们形成体系、表现出来:

高德纳定义了几百个排版命令。而用来理解这些命令的排版机,就是TeX引擎:它可以读取作者的手稿,生成一个文件,直接能拿去打的那种。

不过,高德纳也知道,不管它能理解多少命令,都不可能满足手稿作者的所有需求。

所以,他写了一个可扩展的TeX,让用户随意添加自己想要的功能:

只要给它一些新的 (Macro) ,就能定义新的命令。每个人都可以自己创建宏文件,这样不用修改TeX引擎,就能扩展TeX的功能。

当然,既是高德纳自己写的工具,肯定够自己用的了。1984年他还出版了The TeXbook,这本书详细讲述TeX了所有原始命令的含义,以及普通宏命令 (Plain Macro Commands) ,还有引擎内部的工作原理。

这本书的出现,就是为了鼓励开发者,去写自己的宏。

在高德纳的坚持之下,TeX引擎的源代码已经免费了40年,每个人都可以修改。

不过他也规定,一切不兼容的修改版都不能叫做TeX;还发布了一组自动测试,修改版引擎必须通过测试,才能用TeX这个名字。

在那个没有互联网的年代,生在斯坦福的TeX走向了世界。它被移植到各种计算机系统、各种语言、各种打印设备上,为越来越多的人类排版。

1982年和1989年,高德纳又修改了TeX两次

1992年,教授从项目里功成身退,接着写《计算机编程艺术》。这本促成了TeX诞生的书,内容一直在不断扩充。

虽然高德纳不再更新项目了,但还有其他人在继续他的工作。

从TeX到LaTeX,更更更简单

TeX的命令集,都是偏低层 (Low-Level) 的,适合高德纳教授这样,希望从细节上把握排版效果的人类。

但这几百个命令,对于大多数人来说,可能还是太多了。

“能让计算机来做的决定,就不要问我。”

用户常常希望自己手写的排版命令越少越好,他们需要的是高层命令,是更加方便使用的markup语言。

最好是,可以把内容 (Content) 和表现形式 (Presentation) 分开的那种工具。

Scribe:爆发之前奏

于是,1980年诞生了Scribe,是卡耐基梅隆大学 (CMU) Brian Reid的博士论文项目。

在80年代早期,Scribe受到了许多学术作者的追捧。不过它并不免费,这一点阻碍了传播。

即便如此,它也不只是个插曲:

Scribe有位忠实用户,来自斯坦福的Leslie Lamport (简称“兰波特”) ,当时已是著名的计算机科学家。

就是他,在尝到便利的滋味之后,想要把Scribe的易用性,转移到Tex身上,最终发明了LaTeX。

LaTeX:大爆发

1984年,兰波特自己创建了一个宏,叫做“lplain”,“l”是他姓氏的首字母。

这里面的一系列命令,比TeX的原始命令易用得多得多。

他把新的宏放出来给大家免费使用:只要运行一个LaTeX程序,让TeX引擎先读取这个宏。

兰波特还写了一本书,叫LaTex:a Document Preparation System,教学术作者怎样用他写的命令来给文章排版。

当然,就算有了LaTeX,用户依然可以用TeX的底层命令,来实现复杂的需求。

这下,TeX用户数量大大大大大爆发

而许多人用了很久的LaTeX命令,甚至不知道有TeX这个名字。

整个学术排版行业,也因为LaTeX的诞生,受到了深远的影响:

在这个领域,精确排版至关重要,从前只有手动排版才能满足需求;但现代世界里,论文、期刊、书籍和其他出版物大量产出,远远超过了手动排版能达到的吞吐量。

LaTex在实现自动化的同时,又不会损失排版质量。

现在,许多学术出版机构,都接受用LaTeX排版的稿件。

除此之外,连ArXiv这片机器学习论文的沃土,也是在LaTex的滋养下,才有更加蓬勃的生机。

因为,即便没有出版商排版,作者也可以把严谨整齐的研究成果,送给全球的人类观赏。

真是一个美好的世界。

One More Thing

那么问题来了,LaTeX的鼻祖高德纳,为什么会有个中文名字呢?

1977年夏天,他在中国度过了三个星期。中文名便是在那时解锁的。

巧的是,排版计划也是在那个夏天启动的。

原文传送门: https://increment.com/open-source/the-lingua-franca-of-latex/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 专业排版师,找不到了
  • 原来你是这样的TeX
  • 从TeX到LaTeX,更更更简单
    • Scribe:爆发之前奏
      • LaTeX:大爆发
      • One More Thing
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档