我现在感觉耳机很有问题因为我现在是用的是 AirPods 等一下我换一下不要用无线的找个有线的耳机不然会很不稳定的主要是我手机没什么电行我换好了好
不好意思所以这回苹果 12 的背上贴的充电就有用了吗就是那里可以去边充电然后下面插个流线耳机没有因为我买的是 mini 然后这个电量就感觉超小用到一天晚上就差不多就不够了真的很差的吗我还想说那天我去店里试了一下那个 mini 的手感我觉得还挺不错的
迷你是很好啊就是很好那它肯定电池就没有其他那么大嘛就是很纠结这个事情好烦啊它能不能把那个摄像头剪到只剩一个然后腾点空间给电池你去跟苹果说吧好了我们开始录吧嗯
大家好 今天是 2021 年的 3 月 16 号自弹自唱的第 147 期同时也是内核恐慌的第 63 期这也是自弹自唱与内核恐慌的串台自弹自串的第 10 期自弹自唱是 The Type 旗下全球首家用华语制作的字体排音主题播客节目我是主播 文川西半 动音局 Eric 我是主播 黄浦嘉明 秦真宇 陈真宇
那个恐慌是一档大致以计算机科技为主题的娱乐 podcast 我们号称硬核但是也没有什么干货想听人听不想听就别听我们的网址是 pan.icu 您可以在网站上找到订阅我们的节目订阅我们节目的方法以及联络我们的方式我是吴涛我是 Rail 有台主播你们好我们居然已经开始做第十期的串台了两位输了托你们的福啊我们才能够保持这个更新的节奏
没关系反正这期的话主要是吴涛在说我只负责听是这样吗我怎么为什么我事先没有得到通知
现在你知道了所以让你写这个提纲因为这次我们来串台的一个非常重要的主题宗师级程序员的字体排音解决方案我们要来终于可以来拜一拜我们的高德纳大先生是的其实我不知道你们两个就是我跟 Rio 都只是用 Latex 写过那个写过论文而已你们两个就是或者说不如我们四个人轮流来说一说怎么知道 Latex 或者说 Tech 这段事情的吧
我先说吧我应该是在本科的时候知道的这个这个人他的事就是以及他写的这本书但是那个时候我对 tech 这个东西还没有什么概念我在本我大概是在本科的时候接触了 web 编程然后学了什么 html 啊 ss 之类的然后那个时候正好是赶上了 web 前端开发的一次革新吧就是在
在我上大学之前 web 开发基本上就是你在 photoshop 或者是 whatever 什么 dreamweaver 之类的地方里面做一个设计然后把这个设计切成很多小块然后这个设计工具会帮你转换成一个 table 然后你用编程语言去等于轮流转换这个 table 里面的每一个块
然后在我上大学之后就我大学毕业之后外部开发的标准变成了你要以语意的方式去描描述整个文档的结构然后用赛斯赛斯去改变每个文档的样式
然后大概就是在这个时候我隐约听说了在桌面出版界也有这么一个东西叫 tech 但是真正用到它还是到了德国之后写硕士论文的时候就大概明白了这个东西它的来历以及它的用处然后怎么说用自己对 HTML 和 CSS 的理解去
去使用它然后碰的头破血流然后在历经了坎坷之后终于把论文搞出来了大概就是我跟 TACLATAC 的全部的渊源然后我在毕业之后 2010 年刚刚加入 TIB 的时候对 TIB 的贡献之一就是我在 2010 年写过一篇 Computer Modern 的故事就是高德纳发明的不是他发明的他电子
电子数字化这款字体然后用来排他的这个 PLCP 的这本书基本上简短的解释了这个 LATAP 的整个的渊源各位如果有兴趣的话可以去看一下那个文章在 thetape.com 然后你可以在上面搜 computermodern 然后应该能搜到这篇文章是 2010 年 2 月 05 号写的
当然我们又会把这篇文章的链接放到今天的 show notes 里面大家可以去看 2010 年时候的文章我说完了接下来是 Rex 星系站长那个 Rio 你说一下我第一次接触应该是用 Latak 写那个时候对等下这玩意到底怎么念我们要不要先科普一下 Latak 你念的是对的 Tag
是拉不是勒对吧反正我一直念拉太好其实有人练勒的但是呢一般我们都练拉好的我当时是在上大学本科的时候然后写作业
然后我因为我不是写字就是手写很丑嘛然后我就不想手写我都一直从大概应该从大学开始基本上教作业都没有手写过除了考试是必须手写的那个时候我都是用这个电脑排版好然后就去打印然后再教嘛
然后后来是因为学科的就是你有几个课程的关系它会涉及到比较多的公式和这个就是数学的一些排版还有像一些这种图形啊什么的然后我就想说找一个特别好用的一个工具来解决这个问题嘛当时 word 肯定是不行的对吧当时 word 很久已经没有就是那个数学排版工具实在是太
垃圾了所以后来就多多转转当时也在玩像那个 Linux 那些系统然后就在找到了这么一个工具应该是受了谁的
蛊惑来着我想想应该是王寅如果没错的话我没记错的话对当时他不是写了有几篇还影响挺深的一个文章其中就是在这个兜售这个这个腊胎和这个东西嘛然后我就去学了一下然后费了牛逼之劲装上了一个这个我们叫什么一个是 distribution 然后就开始用那个写作业然后后来是写毕业论文然后去国外上学写作业和毕业论文差不多也就这么干然后之后就再也没用过差不多是这么一个过程
所以你的论文也是用拉特合写的我毕竟读 CS 嘛那肯定还是要的
对吧这两者之间有必然的关联吗就是我相信大部分我们听众里面读 4S 的人也未必是用 Latak 写的别的嘛呃那或者这么说吧如果你想用 Latak 写论文然后你又不是 4S 的其实是不是很尴尬那可不一定啊 Latak 其实现在基本上你觉得现在 Latak 最大的用途是在哪就我觉得是呃
许业界任何业界需要公式的地方但实际上 computer science 并不是一个最需要公式的地方 OK 那个时候我需要然后但我当时有一个但我们在学校那边租房子住有个室友他是读工程的就是那种 engineering 他好像也是用那个来写别的论文比较多因为他们论文也比较长有比较多复杂的计算的过程所以他们也是用那个的所以反正就是是
都在用就反而是用 word 的那些是比较相对来说少一点点吧对 真鱼你是怎么用上你是怎么接触到 tech 的吧你介绍一下好了其实真鱼也是本科用 latex 写的论文怎么可能我觉得我应该我应该引用那个就是你们先聊我有点事先走我其实没有我其实至今没有用过 tech 来做
任何事情应该说怎么知道泰赫的我觉得我是因为先知道了你们所以才知道了泰赫这我们受宠若惊我们简直
居然做到了什么新晋火船的这样一个对我的泰克认知其实是一个就是就像刚才瑞和吴涛也说的就是它是一个在公式领域非常有用的这样子的一个排版工具但其实我曾经大概在可能在五六年前吧一度有想过要去用泰克因为我当时有一个非常实际的需求就是我当时差不多每个季度都会有一个类似像
内部刊物排版的这样一个工作而那个刊物的页数非常的多大概是在千页这样子的一个数量级的所以我当时其实有想过要用 Tech 去做一个比较自动化的排版的流程但后来一直没有动力去做这个事情等等你说你每个月要排一千页的内部刊物每个季度左右对每个季度三个月左右每三个月要排一千页 Oh my god
我不禁心里涌起了一丝怎么说同情什么内容啊好奇的问一下是我当时在的一个团队我们自己做的一些出版物其实这个大家可以找到的我当时在那个团队叫镇建然后我们的当时的出版物是以季刊或者半年刊的方式来发布的其实是将大家写的一些文章合起来当然这个一千页的开本是一个 A5 左右的开本而且字号相对算是比较大的所以
工作量可能没有那么的多吧但大概也有这样子的一个量子 A5 就是 A4 的一半嘛 1000 页 A5 那也有 500 页的 A4 那也是非常厚的一本书对我知道真一直都在做政界但是我没有想到就是当时有每个季度 1000 多页的量就是因为我也没认真看
有的时候会少一点可能几百页吧多的时候会比较多 OK 你们继续 Eric 来说一下吧好我也是在大学的时候第一次知道 Tech 的每次在这个创展的时候都要说到我的大学的第二学士是计算机的这样一个黑历史但是呢
我那时候第二学位的这个论文呢是并不需要用那么多公式所以呢我们当我们当时的那个第二学位的论文是不是用 tech 写的那我第一学位大家也知道我是学日语的嘛那就更更是不用大家都用 word 的
那我用 Tech 是因为因为我高中也是学理科的所以就要做一些什么卷子之类的那些东西都是用 Word 排的公式然后觉得很难用到了大学本科以后有同学介绍说理工科的真的就是理工科同学他们都用 Tech 所以我就拿来用了
可是这个东西太难用就是因为要组装嘛就各种各样的包啊什么搞不清楚所以我当时就是为了解决临时的问题我干脆就是用一个 tech 先排出需要的公式然后呢生成 pdf 以后然后再把这个 pdf 转取以后再欠到我平面是比如说我用那个 illustrate 给它欠进来我就是为了排这个公式临时给它欠进来而已我从来没有用 tech 就
做个完整的一个文档或者就是中文的文档我从来没有做过我就是为了导出一个单独的一个公式然后就生成一个东西就做过而已其实我要补充一下刚才其实我们都一直在讲是因为为了这个数学公式才用的这个后来我刚翻了一下我之前写的那些什么作业和
这个论文的那些文档刚刚还在电脑里面其实发现数学公式也不算特别多但是其实有很多像什么程序代码你知道那个就是读 CS 它很多是那种伪代码并不是真的那种你要用这个就是等宽字体排印的那种真的我们可以编译的那种代码它很多是伪代码是不等宽然后有各种很多稀奇古怪的箭头符号啊那种东西的比如典型的一个比如说这个 grammar 的那些 lexer 那些东西
然后还有一个就是当时我想起来了当时为了用这个东西是为了画那个这个叫什么 automata 自动机的那个图形然后当时用了一个那个就是 latex 有一个专门这种因为 latex 比较灵活它可以做很多的这个插件当时有一个非常好用的插件应该叫做 tikz 如果没记错名字的话 tix 对对
怎么念我不知道反正它的就是四个字母 T-I-K-Z 应该是 TIGZ 我念 TIGZTIGZ 对它就非常灵活等于是一套类似于您可以认为是一个可编程的绘图的一个语言然后嵌在那个 NATAC 里面就可以做各种各样的非常精美的图形比如说你要这个箭头转个 35 度半然后再和另外一个圆圈连起来再穿过那个圆心这种之类的
事情就是你用任何其他的现成的工具都是没法去描述这个东西的精确描述所以就是当时就其实公式道并不是我
用它的最核心的一个事情我后来发现然后还有个事就是刚才真宇也提到这个让我也想起来就是如果说你的那个文档不要说 1000 页了就超过比如说 100 页吧然后你用这种任何这种所见即所得的编辑工具 Word 也好啊当时还试过各种什么 OpenOffice 啊这种东西就是它的那个性能是直线下降的就是已经超过几十就三位数的页嘛就基本上没法用了那个时候我记得用的那个那个电脑的性能也一般
然后如果是特别长的文档你一次编因为那个 Latex 每次都要编译一次才能输出那个 PDF 的结果那个编译时间也还蛮长的后来就是分分成那个章节对吧我在当时我在写这个章节我就只编译当前那个章节然后最后再合在一起的时候我再合在一起再编译这样就可以节省那个时间虽然也不是所见之所得但是整个它的那个 feedback loop 就是还是比较快的
对实际上你的书大到一个规模的时候你就必须用管理源代码的方式来管理它其实作家也同样面临着类似的问题比如说你会遇到什么版本控制或者是插图方面的问题这个时候所见之所得实际上并不是一个非常好的解决方式
总结一下刚才大家的自我描述我们会发现公式实际上是 Tech 的一个 killer app 这其实跟我现在观察也相似就是 Latex 虽然是一个非常怎么说高大上的系统但是它目前它的发展的这样一个定位实际上是在一个非常精细的领域就是公式编辑以及部分的插图方面
你说我们现在这么多出版物有哪个出版物你听说是用纯粹用 Latex 来编排的吗好像也没有 Latex 现在可能是一个个人出版的 specialized 的一个巅峰但是我觉得它在公共领域好像没有获得那么广泛的应用至少你跟什么 Pagemaker 或者是
这个就是看领域了反正我觉得理工科类的还有吧因为理工科类的所有的论文啊还有那些期刊的话他既收拉特赫的论文他自己出的话也是用特赫出的嘛就是期刊然后在日本的话像比如说像理工科类字典他整本字典都是用特赫出的
哦真的整本字典是用拉特来做的对有的在日本是有的研播数学词典的第四版就是全部都用那个拉特和写的如果说确切的话是 P 拉特和的 2E 那个版本那个做的那首先因为它是字典嘛然后肯定是有一个批处理的东西嘛因为你知道字典的它这个每个词条它是非常有规范化的一个 format 的一个东西嘛然后它又是理工类似的里面有很多公式嘛嗯
就我的理解是就是很多人入门拉太就是比如说他要写个论文但是大部分写论文的人就是我们说就 90%的人写论文之后可能就不会再写第二次论文了就他对于很多人来说拉太的学习过程可能是一个一生一次的事情就是大概跟追姑娘差不多你可能追一次你就不用再追第二次了但是
真正会一直把拉太和用下去的人大部分都是会继承学术界的或者是学术出版界的那这非学术界基本上不会有这种就是工业化或者是这个产业化的需求嘛除非你是在排版行业生活的话那基本上不会有这个需求就是我觉得你一个人写论文其实就大概是一个个人出版的这么一个巅峰了你写一个了不起三五百页的论文
毕业级巅峰对这已经是巅峰级别的一个 Latex 的应用了然后在个人出版领域吧但是在公共出版领域可能一本数学词典而且我觉得数学词典用 Latex 的一个很大原因也是因为公式嘛就是我们是不是应该还是根据讲稿来我觉得好像有点带天了
没关系因为我们是串台节目说实话从自弹之唱这边过来的听众很多都是设计师所以他们就从来就没有接触到也不知道 tech 是个什么东西所以我觉得还是得从头到尾给大家解释一下然后刚才也说了因为这个东西挺局限于理工科类的其他领域的人可能也都不知道即使是理工科类的朋友们他们可能就一辈子也就是为了写论文用一下而已然后之后就再也没用过
这个前因后果可能也不是很清楚对所以还是要从我们的大师高德纳先生开始说起吧考古开始行那我来吧我们今天这个 podcast 标题所谓宗师级程序员其实指的就是一个人这个人叫做 Donald E. Knuth 他有一个中文名叫做高德纳
他从 1969 年开始写一本书这本书叫做 The Art of Computer Programming 这本书的简称是 TAOCP 他到现在应该还没写完据我所知还没写完这本书是有中意版的各位有兴趣的话可以在网上看一下预览有吗有中意版我都不知道对我在中国应该是买了中意版的第一卷然后他在 1969 年的时候
开始写日本书第一卷的排印用的是 monotype 的牌子机就是那个时候是完全机械的牌子机自动驻牌机对一个非常硬核的这么一个就他很喜欢 monotype 牌子机然后他是当时在美国的 monotype 的牌子机排的然后他第二卷什么时候写好的呢是七年七年之后才写好七年之后是 1976 年不对不对不对
1976 年他是第二卷重排的时候对啊 OK 那就是第二卷的一个 revision 完成的时候他不得不转向激光照不是激光照就是普通的这个照相照拍机照相排音机来排版但是他拿到了那个叫所谓 galley proof 就是样板的时候他大概说了一句话就是 black 就这么一个
感叹词吧就是觉得我靠这是什么这句话的翻译叫这什么屎就是这个哎呀我去这种感觉然后他非常失望以至于他做一件只有宗师级的程序员能做的事情就是他决定自己开发一套系统来完成排版这件事就是 from scratch
然后他首先他发明了一种编程员这种编程员叫 web 就是跟我们那个万维网的 web 没有关联他就叫 web 这种编程员然后他用这种编程员首先开发了一种字体这种字体叫 metafont 不他开发了一种用于画字体的系统叫做 metafont
Meta 这个前缀就是什么什么的什么什么比如说我叫 MetaFox 就是 Fox 是 Fox 然后它这个 MetaFont 就是 Font 是 Font 那么 MetaFont 的用处就是你用一个数学公式类似于数学公式的方式描述出比如说一个字母的几个点它们之间的相对位置比如说我说 M 这个字母的相对位置是下面的三个点彼此的距离是一样的然后上面的两个点跟下面的三个点是怎么相连的
然后 MetaFont 可以帮你生成出这个字体的怎么说点阵化的表示来这是 MetaFont 然后它用 Web 写了另外一套系统叫做 Tech 然后这个 Tech 的功能呢就是把你的文章排列出一个可以用于打印的格式来
这个格式叫做 DVI 然后他用自己发明的这套工具来排了自己的书大概就是这么一个听起来好像没有那么怎么样但是在我们看来就是一个武学宗师开创了一个门派然后专门拿来做一件事情这么一个级别
然后他这套系统呢就从此开源了然后广为流传一直活跃到今天并且这中间有一个比较推波助澜的事情就是美国数学学会 ams 等于说钦定了 tech 就是他们的排数学公式的这么一个工具所以导致基本上整个数学界就采用了 tech 这套东西那数学我们知道实际上是条条大路通向数学所以
反过来导致整个科学界基本上在你在使用这个公式的时候都一定会碰到太后然后大概现在的状况就是这样了就是太后仍旧是一个被维护的这么一个程序当然它已经有点过时了这个我们一会儿会提到但是直到现在它都是在一个稳定维护并且发行中的这么一个程序这个程序的历史可以追溯到上个世纪的 70 年代大概就是这么一个
这么一个过程然后呃有一个就是我在 TIB 上写的那篇文章 computer modern 大家如果去看了的话会发现那个字体可能有点眼熟因为如果你 ever 看过一篇比较正式的论文的话那么它有很大的可能性现在我觉得可能没没那么流行但是至少在比如说十年前或者五年前你去看任何一篇论文它有可能有八成的概率是用 computer modern 拍的
所以当你看到一篇文论文它是用 computer model 来排的话那它有很大很大的概率就是用 RTAC 来写大概是这么一个状况我跟大家补充一下就是这个时间点首先高德纳先生他现年 83 岁
所以大家首先要想到这是一位老先生而且还健在对他还接着写他那套那个计算机程序艺术他本来想是说一共出七卷是吧结果后来他现在写第四卷开始写分册了所以不知道他一共要出多少本
然后这个时间点呢如果是我们自然自信的听众呢可能知道我在节目里面讲过很多次就是我们在做印刷的时候整个技术有三大技术革新嘛就是从签字到照牌到现在的桌面出版那么这个事情发生在美国的六七十年代其实呢就是当时从这个金属活字到这个照相牌板转变的这样一个过程
高老先生他当时出卷出到第三版是 1973 年那时候那个出版社就已经把自动助排机的蒙娜机就已经卖掉了所以出版社他自己已经没有蒙娜签字做自动助排机的东西所以当时他 75 年的第一版再版的时候特地把这个书版送到欧洲的因为当时欧洲还有老的机器可以用所以特地到欧洲去重新排来给
给这个高德纳用然后等到 76 年要等第二军再重版实在是没有这个花费太大了从欧洲再倒一次的话这个成本太高所以呢只好用这个照牌机给他排然后老先生当时就看哇这都什么鬼所以他就
重新自己做了一个 Tech 这个排版软件那么这个 Tech 最初的这个发布的时间点呢是 1978 年也就是 43 年前 43 年前高德纳老先生还是一个 38 岁的 30 对 38 岁的小伙子
对啊壮年啊就跟你以前差不多嘛我好老不逃是该是写你自己的出版系统了对说的对我要在我要在怎么说 VR 里面弄一个属于未来的这么一个排版系统我今天把话搁这儿了
所以等到现在就是到之后我们也会讨论嘛那可能大家现在站到这个高度了就讲哎呦为什么还连什么 Uniqlo 都不支持的 Uniqlo 是什么年代的事情就他当时写 tech 的事 1978 年那时候 Uniqlo 还还还在凉台里面还没出来呢就是那个时候 ASCII 都不是一个比较广为使用的 standard 对所以呢 78 年那个 tech 诞生然后
高德纳在 1990 年的 9 月份他就宣布说这个 Tech 发到 3.1 版本以后就不会有重大更新了除了修 bug 他其实就这个项目其实就已经打句号了刚好是 3.1 版本我有一个疑问就是他 3.1 版本之前是 1.0 2.0 这样的吗还是他一上来就是应该是的
应该是的因为这里有个梗就是 tech 以及跟 tech 相关的很多软件它的版本号都是一个这叫什么超越数还是叫什么无理无理数是无理数但是它是比如说 tech 的版本号是π然后 metafon 的版本号是 1 就是那个自然对数的 2 点几的自然对数的底还有一个什么软件它的版本号是 0.999999 就是就是
就是一嘛他无限接近于一大概是这样就高德纳他是一个很喜欢这种各种梗的人他是一个很 geek 的人我觉得他是对就是是那个时代的那个时代的风格的 geek 就是他非常他非常严谨然后又特别的还是相对来说比较比我们这个时代的 geek 要严肃的多了吧但是他的内心里面真的是一个 geek 比如说他
它的 TOCP 如果你在里面找到了一个 bug 的话它会给你寄一张支票这个支票的金额是 3.14 美元吧好像还是多少钱不是不是那个支票是多少钱来着反正是二的正整数不是反正是二的倍数是吗二的多少次方之类的我记得好像是跟本台的捐款类型是一样的
其实刚刚武涛说到那个 Tech 所包含的第一套的这个字体就是所谓的 Computer Modern 大家应该是非常眼熟因为为什么呢就是我们其实在大概十来期节目前讲到了另一位自己设计师叫 Morris Fuller Benton 他所设计的他所指导设计的有一款很著名的字体叫 Century 而这 Computer Modern 其实他的这个字型的设计呢是跟 Century 非常的接近的或者说 Century 是 Computer Modern 的一个直接的
复刻的蓝本所以在这个意义上 century 作为一款非常流行曾经也是跟 monotype 绑定的这样一套字体大家也可以在过去以及在今天甚至在将来的很多出版物上都会看到它的影子我打超问一个问题这个叫 computer modern 的这个字体它看起来一点都不 modern
他的 modern 指的是一种风格这种风格叫 modern 风格所谓的在字体中的现代体他 modern 的时候是我们还没有出生的时代对对对他所谓的 modern 是那种时尚杂志的 modern 可谓的 modern 的一个直系情属实际上是 didot 迪多对对对迪多字体是一个在 18 世纪吧出现的这么一个字体然后
那个时代人们会认为说我们现在处于现代在那之前是古代实际上也是这样的就是从大概从 19 世纪初人类进入了这个所谓什么大爆发反正有一个英语有一个词叫 great 什么什么的这个一个时代然后我们现在还处在这个时代中这个时代可以视为现代的开端
所以你家的 Modern 其实也蛮正常的其实我们自谈自唱在第 137 期讲过本顿父子的世纪传奇其实在这里面我们就讲述了当时的美国的其实他本顿父子是工程师他们制作的这个 Century 字体也就是现在这个 Computer Modern 的直系的老祖宗母版
那如果上述到我们说是这整个对于字体来讲的所谓的现代体那就要追溯到字体的什么博多尼然后要讲到狄多那么大家也可以翻到我们自弹自唱的我们在第 125 期讲过狄多然后在第 131 期讲过博多尼大家可以回去听一下就知道就是当时的所谓的他当时的现代体是一个什么样的一个东西好
你说为什么他们可以一下子就说起来我们之前哪一期讲了什么为什么咱们就做不到好问题你们需要打印一个列就你们是怎么做到的你们身边有一个小秘书吗还是或者你们就是把所有的每一期讲了什么全都随时随地摆在手边我们只是有个列表而已啊
我们做了 140 多期然后我们一期就一个主题嘛那一期我们我们花了一个半小时就讲本顿父子所以一搜寻还是可以搜到的武太我给你出个主意你可以把我们首页打开我们也有个列表你用像素字排的我看不懂啊太难太难读了
所以你们找到那个高德纳老先生发的那个多少钱了吗刚才谁在查我以为前阵也是查了没有没有我来查了 Knot checkKnot reward check
他每个漏洞的奖金是两块五毛六因为这个两块五毛六是十六进制的一百美分就是第一个对然后他有些人打到支票上面写的是零 X 到了一点零哈哈
然后是每次就是你下一个人得到这个 GPAT 人就会在那个数字上乘以二直到知道现在是多少 327.68 但是也才 300 多美金高德纳其实也不算很多钱了不是你要知道这个是每次乘以一这个是很恐怖的故事你们还记得那个印度棋盘的故事吗好恐怖的 2005 年的时候总金额就已经超过 2 万美元了
所以高特纳就疯掉了就是说我不更新了就是非常恐怖的就是逼迫他自己少写 bug 的一个驱动力你知道吧为了防止破产要尽量少的出现 bug 因为下一个 bug 随时肯定让你倾家荡产哈哈
不过刚才也说了嘛它的版本号接近于派那么其实一个非常新的一个时间点就是在今年的二月份 2021 年的二月份刚更新了一个版本然后这个版本号是 3.141592653 版就已经到 2653 了
其实也还好你想一下其实也很容易背的下来也没更新几版对啊你能背几的你能背到几位以前是可以的现在不记得大概我能背到 50 位还是多少位 Rio 能背到 100 位吧所以我想确认一下这个到这个 2653 的版本实际上就是指的是 3.9 版本是吧你数位数的数它后面有几位的好
但是没有很多这个大的修改了主要是那些 bug 修 bug 而已没有重大的功能更新了其实就是
tech 本身的内核实际上已经比较老了就是而且而且它本身并不是一个特别复杂的系统对就是你把它本它底层的那个 tech engine 可以用其他方式来实现现在实际上比较流行的是一个叫 pdf tech 另外一个叫 z tech 应该是这两个引擎现在是用的比较广泛的 pdf tech 主要是做那个标点悬挂比较好然后
然后 PDF 太太支持就是直接生成 PDF 而不是要先经过那个 DVI 那一步就是有各种前缀的太和他们他们之间到底是什么关系其实还挺复杂的这个事这个你还是要跟大家讲一讲的到后面嗯
Tag 有点像 Unix 然后对特别像坦克以 Tag 为源流衍生了很多其他的发行版其实用最为人所知的或者说我们现在一提到 Tag 或者说我们现在一提到这套排版工具不会是说我用 Tag 写了什么而是会说这个东西是用拉 Tag 写的
就是因为拉泰克是泰克的最知名也是最早的一个扩展手段就是泰克有点像一个他有点像 Python 他有点像一种编程语言然后一个人他的名字叫做 Leslie Lamport 应该是他也是一个老先生今年 80 岁然后他给泰克做了一套扩展就是他用泰克写了很多很多东西
比如说你太打个比方这个太和原来只能设字体和字号然后他用太和做了扩展可以让
呃用他用旧的命令生成了一个新的命令然后这个新的命令你可以说比如说我现在要开始写一张然后我要现在要开始写一个新的结然后这个章和结应该是怎么样被 decorate 之类的然后他最重要的贡献之一就是他在这个 lattek 里面做了一个包管理系统这个是等于说是一个
革命性的这么一个创造啊然后有了这套包管理系统之后就有很多人创造了很多包然后你用拉太狠就可以使用别人写的这些包来扩展你的来打实现你的这个排版的一个目的嗯这个就是拉太狠对
所以这里本质上泰和泰和其实只是一个非常底层的非常这种就是他是个内核他是会编语言的一个东西但是他并不对他并不就是如果你直接去用他来排版其实是非常痛苦的因为就是各种指令都很原始所以
所以这个 Latex 它其实做的是说我在上面打包做了一些这个抽象对吧你看有结构了对吧然后就是开始出现所谓的这个形式和这个内容有一点点的这个分离的感觉然后你可以引入了这个包裹案里其实是模块化了嘛让大家能够更好的在上面去做进一步的这个扩展
就他们的语义就是说其实 Tech 就是基础的排版引擎嘛然后他们是叫红包是吧就那个 Macro Package 是吧红包吗中文叫红包吗听起来怎么这么喜庆肯定是啊就红包啊不然它还能叫什么红这个词就是随着 Microsoft 的办公软件基本上是在 90 年来在中文世界就铺开了这个玩意就叫红啊
台湾叫聚集嘛聚集可能听起来还比较好奇怪比较好一点但是红这个词已经被传开了我们是不是重点要跟大家讲一下泰和的一些特点好但是泰和有什么特点难用最大特点就是免费开源啊这最重要的呀说的也是我前两天在做功课的时候搜到了一篇一个奇人写了一篇奇文然后
我觉得还是可以在这里念一下就是他那个死无精病隶属了 TEC 的种种弊端然后其中有一段是这样的我来念一下你说中文啊好我来翻译一下他说因为 TEC 是免费的所以他限制了与其竞争的系统和这个想法发展如果 TEC 没有被研究出来并且没有被就是免费的让人使用
那么能够保持这个数学公式的 structure 结构的这些替代的方案比如说 mathml 这个我们一会儿提到叫 mathmarker language 还有 mathematic 就会比较早的被开发出来并且也有可能就是会更为广泛的使用就是它言下之意 latex 是一个 tech 是一个比较差的这么一套工具
但是因为它免费,大家都用了,所以大家就不思进取了,是吗?接下来他紧接着就说了类似的一段话,他说 free software 就像一种病毒,然后 free systems 有这个能力可以去使得任何其他的 protocol 协议或者是设计,包括那些比较好的协议和设计,它有这个能力。
让他们全军覆没的这样一种潜力听起来很像比尔盖茨当年对自由软件的自责对 Worse is better 然后他说其中一个例子就是 The various Unix systems 就是各种各样的 Unix 系统以及他们所对应的协议
然后他说这些系统和协议他说这些东西对整个社会产生了不可逆转的巨大的伤害这可能是我们今天或者我这过去 20 年里面听到了对于自由软件的最大的一次最最最严苛的一次指控嘛
就我以前没有想过这件事情但是如果你说他不我们来想想他说有没有道理可能是有点道理的但是看你站的立场是啥了吗你你如果是那些想做这个商业软件对吧想靠这个赚钱然后说你要通过这个就是 compete on
quality 对吧你要通过这个品质的竞争那确实是啊那很多你就干你这个你这个人就干不下去了嘛那很多呃比如说你你需要聘请这个这个专业的人员来设计制作然后比如说这这这的这系统那你肯定就干不过免费的你就死掉了对那我们看到过去自由软件的这个整个历史不就是在不断的去蚕食那些商业软件本来可以卖钱的的那些领域吗对吧现在连超货系统也是啊那个
UNIX 出来之后对吧 Linux 之后你还有什么其他就是非就除了的嘛 Windows 除了这个 Mac 它底下那个 BSD 还在这个就是有一些这种商业的在用的之外其他那些非常小众都已经非常示威了嘛就商业软件都已经消亡了就好像他提到的这些 Virus UNIX Systems 它这里面 UNIX Systems 包含很多东西其中 UNIX 最最原本的 UNIX 后来被卖给了
卖给谁 AT&T 还是谁他那个真正 UNIX 的商标实际上是卖钱的反倒是后来的什么 BSD 和 Linux 之流吧把这个卖钱的 UNIX 给打败了比如说当时的就是为什么现在会有 AWS 就是因为当时亚马逊觉得 Sun Microsystems 的那个 Solaris 的那些服务器太贵了然后他们转向 Linux 然后 Sun 就倒闭了
对生养也会倒闭对然后杨小迅发现自己可以用十分之一的价钱达到之前 100 倍的容量然后他决定把之前多出来这些容量租给别人用于是就有了今天的 ABS
诸如此类的事情实际上在一次一次的上演但是如果你这样讲的话虽然 Tech 它本身是免费的 Tech 本身这个 Tech 是美国数学学会的商标然后 MetaFonds 也是当时那个出版社就是 Edison Wesley 出版社的商标这些商标都是有注册的就跟那个 UNIX 一样但是它本身是免费的它免费事实上不自由对吧
开源他们开源所以有人骂这个 Tech 可是 Tech 的支持者就说我们 Tech 多好我们免费开源然后跨平台跨设备这个最关键就是说同样的输入可以得到同样的效果哪怕大家也知道这个 Tech 原来是 40 多年前开发的这样的一个引擎但是当时高德纳就说你无论用任何一台电脑
输出的效果都是一样的这个特别厉害
然后呢跨设备的意思是不仅是屏幕显示还有无论后来有打印机嘛哪怕后来有那个 Poster Script 出现然后我们比如说有 PDF 甚至像哪怕是日本特别专用的写言家公司他们自己的电算的电算照拍机你只要用的是这个 Tech 大厨的文本最后输出的效果都是一样的这个是特别厉害的一个例子
我们要不接下来就讲一讲 Tag 作为一个软件它的 user interface 是怎么样也就是它的用户操作界面是怎么样这我觉得可能对于很多设计师或者是没有接触过 Tag 但有想要试一试的人来说比较重要的一点我觉得可能要介绍的是工作流吧因为 Latak 事实上是没有一个首先你要学会使用命令哈对它事实上是没有一个标准的操作界面的你可能装了某些特定的 Tag 的版本
这个我们一会儿会讲的就是然后你会有一个编辑 tech 的环境但是没有一个东西说你一定要打开这个比如说 Photoshop 或者是 PageMaker 你有一个主程序要运行在 Latex 这边是没有了你可以按照自己喜欢的方式用一个你喜欢的编辑软件去做你想要做的事情
本质上它是编程嘛它没有一个所谓的你说有一个什么专用的程序来使用它对吧你就是其实是任何一个我们编辑器都可以写所以我刚才讲你说你要开始使用这个你要接触的那个 UIU 的 interface 就首先你得学会使用命令好吗怎么开始去完成这个转化的过程
这也是它的特点之一就是我们把整个过程说一下就用户是只要有一个文本编辑器就可以了它写的是一个文本文件记事本也可以对 Tech 它是纯文本所以它非常便于传书编辑你只要你喜欢你个人习惯用的文本编辑器就可以了你用什么都可以然后导到引擎里面去当然传统的拉 Tech 的话它要中途要先生成一个 DVI 文件
其实 DVI 是 Device Independent 就是设备独立它有一个中途文件然后根据它的驱动然后最后再生成什么 PDF 或者是打印当然了现在的 Latex 他们就可以现代 Latex 比如说 Luan Latex 它就可以直接从文本文件直接给导出 PDF 了
所以这是两个步骤的用户直接他要写一个像命令行一样的一个纯文本然后要再通过这样一个引擎去进行
生成 PDF 所以它是一个两个步骤的东西而不是所谓的可见即所所见即所得对吧 what you see is what you get 这是它的一个最大的不同但其实也有人在上面做一些尝试就是说有人做了这种专用的编辑器然后你这边输入这个拉太和的指令然后是可以就是几乎实现所见即所得但是和所有的所见即所得的这种这种排排标原件一样它还是面临着非常不好用的问题所以
也不是非常的广泛就是它还是有代码的知乎公式编辑器其实它提供了一个让你点的那么一个界面就是你点一个什么比如说根号然后它下面帮你插入 LATEC 的根号的命令
类似于这些东西其实现在要比直接手写的还是要多一些就这种还算是就那个这种还是就是说是一个非常短的那种就是编写然后编译的一个循环它还是没有脱离刚才我说的那个命令行的本质这里面我说这种就是可以对它基本上就只能做公式你可以就是相对完整的做出的这种编辑器最成熟的应该是那个叫做
这怎么念 lyx 吗 lyx 它的网站是 lyx.org.org 的这个你可以去看它有截图就它相对来说是更加接近于就是你编辑 word 的那种感觉的
不过话说回来的话就是我们现在用 tech 都是大家会想到用公式嘛可是当年高德纳先生他可是真的是要排书的他最很厉害的比如他会算那个换函位置嘛然后呢两段对齐这这这这这都是做很专业的长文排版的东西就是他还特地为此去学排版嘛就所以高德纳先生很厉害可是我们现在主要用的呢拿来用的还是拿去排排公式嘛
这里就有一个问题了其实就是可以探讨一下就是为什么排就是排公式和普通的这个排版它有什么样的特殊之处对使得他必须要就专门做这么一套系统
公式很复杂嘛这个大家也都知道尤其在签字的时代那个公式可就是超级复杂了他要在这个字符的周围塞不同的清空嘛对吧哪怕一个根号就是一个很复杂的一个东西根号上面还有一个长度啊什么这乱七八糟的都要有
复合的那种对我觉得就是数学公式最麻烦的地方就在于它相对如果我们只是考虑一个最简单的这个就是文本的排印它其实主要考虑是相对来说是一个一个维度就是你那一行到底要处理怎么样因为它行业行之间通常来说不会有太大的相互关联除非你是断行的那个影响之外对吧但是数学公式它本质上是一个二维的一个画画你可以这么理解比如说
我们常用的这个叫什么来的上标下标就是那个指数符号或者是角标符号对吧它存在说有一个大小的问题而且数学公式很多是可以所谓的嵌套的就你会 A 的平方的平方的平方你要想的那个结果是那个平方的那个角标会逐级变小嘛这种需求在普通的这个文
字排版上面它其实是不存在的就相对来说它把这个灵活性是要求非常高然后要求你控制它的这个相对位置首先维度上就变得更广泛而且它的大小的精度又要求更高了
排数学公式实际上是面临着一个双倍的双层的问题一个是 unicode 或者说编码需要解决的一个问题就是那些周音符号啊或者是那些字首先有字的问题字符的附加的这些零件的排版就是定位的问题它还有一个问题就是它把所有这些东西在一个非线性的方式组合在一起它是面临着一个二维的一个空间它还不仅仅是一个三维的问题
所以你要解决这个问题实际上是要用比 Unicode 更加复杂的一套方法来完成的你还是提到刚才一点 Tex 出现的时候还没有 Unicode 这件事情所以当时他要去在数学公司里面大量出现的什么希腊字母各种奇奇怪怪的这种数学符号你就从来不会想到过的就现在连 Unicode 里面都不齐全的那些符号他都要在这个系统里面实现出来然后还要考虑他各种
这个在二维二维而这两个这个维度商店区的如何相对排布相对大小以及每个字型还要处理的好看对吧这个就太难了对这的确是一个非常只有宗师级成员能解决的编程问题这个
这个你不排数学公式你都不知道嘛就比如说 sin x 那个 sin 是必须要用正力的罗马体然后变量 x 呢是要用意大利协体就是不做理工科排版都不会意识到这个问题嘛是对吧单位的话物理量的单位是必须要用正力的罗马体但是物理的变量都必须要用意大利协体
像这个东西你跟一般人来讲的话他都没有注意到哪怕虽然你平时从小中小学你看数学课本都是那样排出来的然后等你自己来排头你觉得总是没有那个味道就感觉排出来不像这就是因为它其中有很多它有各自的这样的一个排版规则在对写公式跟排公式甚至自动生成公式之间的关系是难度是天长地远的不过我觉得这里还是我要我要
夹带丝货吐一下草就是我觉得虽然说它有各种各样的难度其实我觉得很多问题都是自找的对吧没有其他哪个行业有这么多规模的这个需求比如像刚才你听到的这个
听到 Eric 讲的对于同一个概念里面还要用不同的这种字符形态来去描述它你想手写的数学题不存在这种区别你可能都是写个 sign 都是你的手写的那种字体然后你就区分一个大小写区分一个罗马的字母希腊的字母当然可能也是因为字母 26 个你不够用了嘛
你才会讨这种东西但是到了这个这个数码排版之后你就发现我有各种各样的这种工具这种口型性之后你就说我要规定说这种这个算要用怎么一个标识来写然后我的那个罗马字符上面加个尖又是什么意思就很多问题其实是就研究数学和这个做这些照牌系统或者说是就是这个编辑他们自己给自己找的麻烦所以
咎由自取自作孽不可活搞得这么麻烦也活该你要这样说的话这不是代数的他的宿命所在吗他用字母代替数字母肯定是越来越不够的一开始我们只用拉丁字母而已我们的希腊字母都是数学老师教的吧我相信希腊字母怎么也都是数学老师教的
我的意思就是说它本来是有一些就是说有可能有其他解决方案的比如说为什么一定比如说那个叫什么来着 SAM 的那个操作符号一定要是这么一个规定的一个格式去描述的那个大是一个码对吧对吧 Sigma 然后下面一个 N 等于一顶上到多少到无穷然后这边是一个什么东西为什么一定要这种结构它明明有更简单的方式可以写到给自己找这种麻烦对吧
就 Rio 说的这些东西让我想到了很久以前读过一篇文章就说数学为什么会有现在的这个就是非常难的这个 reputation
原因之一跟他采用的这套符号系统是分不开的就是数学的这套符号系统就好像五线谱或者是对他是一个入门的门槛他是一个历史延长下来的这么一套自成系统的一个东西就假如说我们有一个数学的公式的理想模型的话
它并不是适合于它不是设计出来的描述这个理想模型的最合适的系统但是这个系统的存在导致于很多人他也许有数学天赋但是因为没有办法去理解这套符号系统而浪费了他的数学天赋就好像那些有些很可能音乐上面很有造诣的人他不懂五线谱一样
有些人是靠着自己的数学直觉可以克服这个的比如说那个什么印度曾经有过一个数学天才叫什么拉努马金之类的一个人他就是一个靠着自己发明出来的数学符号达到了很多怎么说那些科班出身的人没能达到数学高度
但是不是我们每个普通人都可以有这样的能力的但是呃这套数学符号对于我们每个普通人造成的障碍确实确确实实在那就好像你在你比如说你在知乎或者 whatever 什么地方你想要本来用自己的输入法写字写的开开心心的忽然你想要插入一个数学公式然后你发现你自己的输入法没完全没有办法帮你插入这个公式然后你去找怎么样来画一个公式
呃很多人 end up with 就是自在纸上画写一个数据公式然后拍下那个纸的照片对吧在知乎上很多答案都是这样的但是也有一些人去会去研究说哎我怎么样用用一个比较呃
怎么说正统的方式来生成一个公式的图片然后他会发现 tech 这套东西这里面还有一个很核心的问题就是说他这套符号系统是通过各种演进过来的他并不成体系也没有什么规则
然后它其实是各种不同流派最终互相妥协融合的一个结果就导致一个事实的问题就是说就不要说你我们这种非数学专业的人你肯定看不懂就是哪怕你学数学专业的人你看到一篇特别就是特别前沿的这种数学研究你还是得去看他在那篇论文的引文里面会先逐步定义他用的这套
专门讨论这个话题的还得想一想符号题是怎么样子就等于他还在不断的自我研发就是叫我们叫什么来的 DSL 对吧 Domain Specific Language 专用领域的语言他还在不断的延续而所有的这些都是没有一个没有一个通用的一个标准的
对而且数学符号内部自己也有流派就是什么就哪怕我们上学的时候也会学到说比如说一个一个矢量的标法可能你如果你有粗体的话应该用粗体然后没有粗体的话你要在上面画一个什么箭头之类的对对然后有些流派可能已经消失了比如说我们现在使用的积分虽然是号称牛顿发明的但是我们使用的这个大 S 的这样一个积分符号实际上是莱布尼茨的
标法牛顿那个标法是非常复杂的但即便如此我们的那个微分还是有两种方式对吧一个是什么用那个字母那字母叫什么来着 Ceta 然后另外一种是用撇对吧那个怎么念我不知道我也忘了我一直念 Ceta 好像是念 Ceta 但肯定不是 Ceta 那不是 Ceta 就像一个小 D 一样的东西是不是而且他们当时发明的符号是手写的吧肯定不是排印的嘛
对啊,刚才我吐槽了另外一件事情,就是现在我们排一上规定的各种非常细节,或者说是为了美观也好的这种要求,其实你在手写上是复刻不出来的,但你可以写的稍微正坎一点,稍微写的直立一点,但你有鞋还有各种弯,还有各种夹花,其实你在手写里面并没有那么多的工具可用,取决于你手写的整齐度,如果在版书上面写的很快的话,其实也就很重。
很快的一笔带过去他在手写过程中和你真的排行中那存在一个跳跃的一个过程我再插播一下就是我刚才查到了首先求导是用 D 就是字母 DDX 比 DY 然后我刚才说那个符号或者说我们刚才手中找到的符号不是一个希腊字母而是它是偏微分的符号它就是 D 偏微分符号 D 是全导数符号 D 的变体对
它是 D 的另外一种写法就是对有一个草书的写体的那个 DD 是什么是 differentiation 吗 derivative 应该是吧 derivative 对倒嘛对就说什么忘道草旧忘光了
所以这个东西就是他们在发明这个符号的时候就是用当时他们觉得最方便的方式发明的然后他们就肯定又没有想到后面这个技术发展以后的问题对吧他们觉得手写当时这个手写起来很方便
它其实也不一定是为了方便它是为了就是为了记录一个思因为数学这东西很抽象嘛所以它你有时候记不住那么多概念的时候你要靠一个 notation 把它写在这个纸上然后帮助你去做一些抽象的一些运算就是你知道我们学什么求导啊做变形的时候都并没有去说考虑它的原理
他在手写的时候他就想说就用另外一个方式的话他就用一个草书的字体来写嘛但可是后来想要排印的时候那我就得就麻烦了排印的时候我就得必须要用另外一个签字来做嘛这个像国际印标当时也是一样的呀国际印标大家知道有各种各样莫名其妙的符号嘛可是当时已经有签印了所以呢作为签印来讲他们很方便是把字母倒过来这个对于签印来讲是很方便的所以比如说那个什么
的那个发音的话就是倒过来的小写字母义嘛对 flip 一下就好了手写你要倒写也不方便呀这个是在签字的时候是很方便可是反过来在电脑里面你要输入那个评就超难的直到现在你要输都很难输嘛对吧国际音标这套东西对吧
是是是那其实泰和他在解决数学公式的时候其实也面临着这个问题就是说他要输入那些各种各样的这个奇怪的符号的时候他都是用一个命令的就他要线性化成一个这个键盘上就是 asky 那个就是这个什么 quarty 键盘上存在的这些案件他对于那个把他用一串命令来指代某一个符号嘛就跟我们现在转译一样嘛对吧是的
我觉得 Tech 面临的问题跟 HTML 所解决的问题实际上是一样的当然 HTML 出现要比 Tech 晚很多或者是 XML 出现要比 Tech 晚很多但他们面临的问题和解决问题的方式实际上是相似的如果 Tech 可能因为它出现的比较早所以它没有那么考虑周全吧但这里其实有个很好的问题就是说到底形式和内容是不是能够分离的我觉得 Tech 或者是 Latex 也好它证明了这件事情是实现不了的
就是说 HTML 和 CSS 一个写语意一个写样式这件事情只是一个美好的愿望而已因为真正你落实到具体的那些非标准化文档的那些细节的时候你就发现你没有这种形式上那种分离的细节了比如说就刚才这个情况嘛
这个 sum 对吧然后从 1 到 100 的这个积分积到多少然后再取个什么样的技术你如果要去用这个完全形式和内容分开的东西去描述它的话泰克其实是不支持的内泰克也是不支持的他从来没有支持过这件事情最终你还是要去描述它的
相对位置一定要支持语义的话可能只能用 mathML 之类的就是 math markup language 或者 mathematica 对啊所以也就是刚才你念那一段的对这个的一个指责嘛就是说你除非有一套完整的这种语言去是描述一个结构就本质上泰赫也好拉泰赫也好他去描述一个公式的时候他并不单纯的是描述那公式的一个结构他其实描述那公式长什么样子
大概长什么样子大致结构是如何你并不能从就什么意思如果说你能够用这个 Latex 去描述一个结构的话理论上你是可以去 Parse 去解析它的结构得到你想要的那个公式的一些比如说变形和运算它是可以自动化的对吧但在这件事情在 Tag 里面是无法实现的因为它的形式和内容在微观的层面上是融合在一起的
你不要对 Tech 要求太高 Tech 它原来一开始它就是个排版引擎而已它跟这个结构一点关系都没有我知道刚才不是在讨论就是说 Latte 在说这个内容和形式的分离是对应于这个 HTML 和 CSS 这个关系但这个其实我觉得在这里面其实并没有很好的体现出这一点它只是有这种倾向对吧但其实在实现层面上它并没有
非常彻底的去贯彻这件事情 Eric 说我们不要去指责拉泰克这件事情但问题我们现在面临一个问题就是泰克是业界标准如果我能作为一个魔鬼代言人我站到刚才那篇批驳泰克的文章的观点上来说一句话泰克他实际上的确就是一个业界毒瘤这么一个状况你用泰克写出来的公式
面临的一个问题就是他没有办法被很轻易的被 parsed 而且尤其是现在比如说知乎你在知乎片文章里面生成一个 svg 格式的公式这个 svg 格式描述的公式原原本本的就是一个公式怎么画出来的
它跟这个公式的语义毫无关联毫无关联我们可不可以说 Tech 的存在导致了整个数学的语义表示在互联网上的存在处于一个支离破碎的这个我觉得也不能这么指责这个是一个结果但是它并不是核心原因是的但是我的意思是说你不能说 Tech 就因此不该被指责了因为它作为一个事实标准它带来了现在业界的这么一个现况对吧
我明白你说的意思我想表达的点是说这件事情你换任何一个软件都是不可能实现的就是那个 math, markov, language 也没有实现这一点就是因为这个问题出在于那个底层我们要表示的那套体系那套数学符号本身就不支持这一点它的结构不是那么的清晰明确的这是数学符号本身的问题而不是描述它或者去给它排版了其他的这些没错隐情的问题
然后这个讨论这个讨论就没有结果了那我们在说什么这是不可能有结果的因为我们不是可以左右这个历史进程的人我们只是作为历史的批判者滚滚长江东逝水对吧我们只是两个
于乔在这边喝酒然后讨论这些事情对所以我觉得还是就是回到之前那个评述里面我觉得目前这么去概括他这个是比较就是中肯的一个评价相对来说我觉得就是说泰和只是一个底层的不涉及说内容还是形式的这么一个排版引擎排版引擎本质上是展现的是一个形式对不对它并不是体现的说我要内容怎么你不可能去
通过读泰赫的圆满去读懂这本书长不讲你还是要看他最终 compile 出来的那本书长什么样子
然后呢 Lamport 在上面做的一个重大的一个贡献是说在一个无结构的这个体系上面引入了就是这个 macro 的这么一个宏观的一个结构实现了章节对吧实现了这个 section 然后实现了这个数学公式的一些实现了这个包管理实现了这个模块化但是呢具体的在非常微观的层面上它肯定还是无法完全的结构化的就好像
我们现在说哪怕是说当年提这个 HTML 和 CS 的这个形式的那种分离提到现在我们现在去看 web 它这两个事情还是就是就是互相连结在一起的你到微观层面上还是无法分开的所以我觉得这里面也就是我们的技术理想和客观现实之间的这个妥协点就是这样子
我很好奇就是你们对那个 W3C 那个 MathML 有什么作何评论 XML 就像暴力一样你如果没有解决问题你就用更多的暴力大概这个感觉就是 MathML 它本质上就是用 XML 来就是跌船驾屋嘛就不停的夹东西嘛啰啰嗦嗦的 XML 就是这样 XML 作为当时的一个银弹 90 年代的人觉得好像你用
原数据去描述数据就可以得到就可以让数据更好地被处理但是人们会发现原数据本身也是数据然后你需要给原数据加上更多原数据这就是无穷尽业但我觉得 MathML 虽然是一个非常复杂的文档它本质上也不是让人来写的和让人来读的它的存在意义就像 XML 一样它是为了保存信息然后给信息加上原信息虽然它的手段非常的拙劣或者说非常的啰嗦但是
他还是起到他的应有的目的的麦子麦奥其实你不用多看麦子麦奥就是 html for for 公式就大概这种感觉就是他你可以把所有的符号用那个监控号扩起来然后这个监控号里面的文本就是告诉你这个符号是干嘛的他维系了一套数学的公式的语义
而且它基本上没有涉及说这个语音应该是怎么用什么样的方法来表示的所以理论上你可以用一套类似于 CSS 的东西来描述一个 MathML 生成的用 MathML 来描述的一个数据公式
而 MathML 本身只负责描述这个数学公式里面每一个元件之间的关系大概这样它的最大的问题就是你要编辑它或者是你要生成它是非常麻烦的但是你读起来其实还是比较简单的 MathML 这名字就很难念 Mathematic Markup Language 这个东西它本质上就是把
tech 的理想用 XML 这个标记语言重新实现一遍但其实他们两个都没有实现刚才我说的那一点不是不是我觉得这个还是差别蛮大的因为 tech 就是我们介绍几个 tech 的最比较基本的那个命令就像 HTML 有什么 EM 有什么 strong 一样 tech 是有比如说 text BFboldface 或者是 text IT italic
诸如此类的就是你说 text BF 描述的是什么描述的是他的风格就是我说接下来这个部分要用粗体来描述可是这个粗体的意义是什么
就它跟这个东西的实际语义是毫无关联的但是 MathML 这边就它的每个标签都是跟这个语义相关的你不能只说这个东西需要用粗体你必须在 MathML 里面描述这个粗体标出来的东西是什么不就粗体这个概念在那里面不存在它实际上在理念上是要比
对吧他其实要表述的是这个数学结构怎么回事就是他表述的是一个这样我今天开始提出了一个第一个问题就是数学公式的那些各种 notation 的结构他想用一个通用的方法把它描述出来其实这个东西本来就是一个很困难的一个事情就几乎不可能完全的用所以它本身的复杂性是来源于数学公式本身的复杂性
但是他还是描述出了数学公式之间的关系的就就好像 lisp 比如说 lisp 你用 lisp 可以描述出任何足够复杂的就就任何复杂的数学公式都可以用 lisp 描述出来只不过 lisp 的那个描述你可能就是非常反人类的对吧但他是可以的 mathml 实际上做到的事情跟 lisp 差不多对啊就是说引入一个这个就是数状结构去描述去描述一个数学的那个 notation 把它拆解出来嘛对
那这么比的话他其实应该说是应该是他选择的那个载体不好嘛这个 MathML 这个坑实在是太深了所以我们接下来要往什么地方讲给大家说一下各种环境下的 Tech 吗 OK 对到底有多少种 XXTech 回乡字回字有几种写法那就多了我跟你说 OK 假如你听我们的节目然后对 Tech 产生了兴趣那么首先最重要的一件事情就是获得 Tech
会有这样的人吗为什么每次都要拆穿我首先你要获得哪一个或者说假如你是一个即将要写论文的人然后你想要尝试一下这个传说中中世纪程序员使用的解决方案那么你需要获得一个你所使用的操作系统上的 type 环境因为在座的四位都是 Mac 用户那我们要先从 Mac 说起吧
就我当时用的是就叫 MacTag 那个很老了但是我要是没记错的话 MacTag 是现在已经停止开发了嗯还有更新版的你现在去搜这个 MacTag 就是 M-A-C-T-E-X 这个东西它会让你去到这个一个这个 MacTag 2020 的发行版对说到这个就要先解释一下什么是发行版
本质上 Mahatai 它是做了一个事就是它把常用的那些工具包都给你打包在一起然后你可以一次去下载完安装好就可以开始用了你不用考虑今天需要到底哪些组件然后之间相互作用是什么样子你可以大致
略过这个问题就有点像 Linux 是一样对吧我们现在我说你要去装一个 Linux 你先选一个发行版对吧你要选什么 Ubuntu 啊 Fedora 啊之类的对吧你要他们把那些打包的工作给你做好了你去用一个现成的版本就可以了那 Mac 上面可能还是用这个比较简单一些然后如果你在 Windows 上的话应该去下载据我所知应该是 MICTECH
就是 M-I-K-T-E-X 这个我没用过就这个我不知道现在还是不是我上本科的时候当时用过 Windows 写那个系统然后装的确实是这个系统就是 MicMic 还是 Mic 好用吗也没有什么好选的你是存在说能用和不能用的区别其他就是你对于一个新手你根本属于不能用的状态就不用考虑这个问题了你知道吗 OK
那如果你用 Linux 的话呢你需要自己手写一个 Tech 的这么一个系统 Linux 上没有 Tech 的包所以就是比较尴尬一点应该有的吧什么 apt 各种我在胡扯就 Linux 上的 Tech 实际上是最好的一个最好的一个 distributionTechLive
这个东西应该是目前最积极维护然后也是用户技术最大的一个群体也是我印象中体积最庞大的他当时我记得是在
十几年前那个时候互联网的状态你想象一下它的一个完整的状态都已经要小 10 个 GB 了你想象一下但是不管你在哪个平台上用哪个发行板你的工作流程基本上是一样的就是你要先写一个纯文本的泰克文件然后用你的
发行板所提供给你的通常是一个叫做 Latex 或者是 PDF Latex 的程序去处理你写好的这个文件然后他会帮你生成出一个 PDF 文件来但这里面有很多坑就是虽然我刚才讲了这个过程听起来轻薄淡写但实际上这里有很多很多坑比如说你写的东西要不要支持中文是不是是不是要支持 CJK 然后你写的东西是不是要支持插图就是除了刚才 Rio 提到的 TickZ 之外
你要不要支持其他格式的插图如果你要的话你必须做出选择然后你必须注意你的插图是是怎么生成的以什么格式来提供给他然后你可能会就你的领域需要用到一些你的领域才会使用的包如果你的领域比较大众的话这个包可能是有很多人维护的如果你的领域比较小众的话那么很有可能你必须自己亲自去解决一些问题
太阳用户群里面有一句话说你 you have to know everythingto do anything 这个我深有体会你面临着的是一个非常陡峭的学习曲线必须说然后如果你的论文的时间比较赶的话那我劝你还是就是
另学一条别的图用模板啊对我举个例子大家可以体会一下就是说如果说我们我们说我们节目也有很多是程序员听众吧我们当时说这个学习 Vim 这个编辑器是一个非常陡峭的这个学习曲线然后当你取完之后是非常好爽的那么学习 Tag 或者任何版本的这个上手来讲它比那个曲线陡峭多了你本质上是要学习一门全新的你也不知道什么原理并且它的整个
它的整个设计理念和设计思维都是来自于 50 年前的一套编程环境本质上你在做这个事情这个其实最终就是说自弹自串的听众朋友们很有可能是 Tech 的目标用户群这完全重合既是程序员又要知道怎么排版所以中司的封装做的不是特别好露出的东西太多
而且本质上你还得会排版而且事实上我也知道我们听众里面有同时加入我们两个群的听众有泰和高手
的确是有的我们之前我觉得好像是我们有一个朋友还做过 Tech 相关的开发就是之前请过的江江所以这些什么 Tech 高手听完这期节目是会被气得凸显吗我觉得他们也能够理解毕竟这是一个我们要在短短一两个小时里面解释清楚这件事情本身就是一个不可能完成的任务
所以现在 Tecla 是不是在 Mac 上也是可以用了它好像已经变成一个跨平台的应该是可以的应该是可以的那个那个 MICTEC 也可以在跨平台用了呀大家都在想办法去挤占别人的地盘对
而且这个东西实际上是比较惯性导向的就是你之前用什么你可能之后就一直用什么因为大部分使用了 TEC 的人实际上是对 TEC 本身的发展没有太多兴趣的他们有更多自己领域的问题需要去解决他们可能一开始用什么或者他们师兄用什么或者他们学校用什么就他们学校会给一套那个模板然后这个模板在什么环境之下测试的他们就会去用那个环境大概这样一个模式吧
对因为你要去了解从零开始没有任何别人给你的帮助的话其实是非常困难的一件事情我问你个问题因为这里面估计也只有你有可能干这件事情你写论文或者写作业的时候自定义过红了
有啊那你自定义的红到哪个程度了没有很复杂就是大概四五个命令吧了不起了然后定义成一个红我从来没有我自定义的红我这么说我其实从来没有真正意义上写过 tech 我其实都在写拉 tech 就是 tech 底层那些命令我从来没有碰过那这儿我倒是可以介绍一下就是 tech 底层大概是一个什么样子
首先说 tech 吧就是最古早的就是原汁原味的 tech 有时候也被人们称为 plain tech 它的底层是用一种我们最早提到的叫 web 这种编程语言写的而 web 看起来是什么样呢高德纳的另外一个理念叫做
Literature Programming 文学编程这个文学编程这个东西就是他写 web 的时候期间发明出来的一套开发理念你可以这么理解然后他这套理念大概的意思就是说我写程序要像写一篇文章一样就是我要有启程转合
就是他要他说我要用人类的语言用读者能够理解的语言去描述这个程序然后我这个程序本身是嵌在这个我的写的文章里面的这个说法可能比较抽象具体来说就是说他一开始会比如说他用写注释的方式来写说我这个程序是干嘛的然后我现在要开始一个 section 这个 section 里面包含了以下 variable 然后这些 variable 每个 variable 是拿来干嘛的
然后用 web 呢你可以去分析你刚才写的这篇文章把里面你所有提到的比如说你刚才说我要以下要使用 42 个 variable 然后每个 variable 它都有一个描述然后用 web 可以把这些 variable 描述抽抽离出来然后生成一个程序这个程序是可以编译的那么这个程序是什么具体是什么程序呢在古早的 plain tech 里面这个程序是 PASCO 的一个字迹
不过我们的节目听众就不用解释 PASCAL 是什么了是吗对然后它的 web 有另外一个用另外一个工具吧这个工具的用途是作用是把你刚才写的这篇文章排印出来就是生成 tech 来达到一个更加易于阅读的这么一个状态就是说它
他的所谓 literature programming 的理念里面实现了两件事情一件事情是让你写出来文章变成一个可以
执行的程序另外一个功能是让你写的文章有一个适合阅读的 presentation 这么一个功能 OK 这是 plain tag 然后这个 plain tag 因为他用的是 pascal 然后如果你要坚持使用他的话你等于你每一个环境里面都要有一个 pascal 编译器而重头是 pascal 这个语言现在已经示威了所以后来有人写了一个东西叫做 web2c
就是采用 C 语言来描述这个 web 里面的程序大概就是这样后来有个越南人他在捷克的一所大学里面念博士的时候写了一个程序叫做 PDF Tech 然后这个 PDF Tech 他又跳过了志强我们一开始介绍的那个 Tech 要生成一个 DVI 的这一步就是他改为直接生成一个
PDF 文件然后这个东西是用的是 web2c 就是说现在事实上最广为使用的这么一个引擎是 PDF 它是基于 web2c 的然后它最基本的最核心的这样一个东西是 C 源的一个子集大概就这样然后现在还有一个引擎叫做 LuaTag 然后 LuaTag 就是试图把 Tag 的整个引擎暴露给 Lua 这个本质上还是嵌入到 C 里面的这样一个语言
然后你可以用路外来做一些比较高层的开发大概底层是这样一个现状没有如果你要说这个泰河的发展的话刚才那个越南人他是不是叫 Han Thetan 是吧我不会念我也不会念我觉得还是不要侮辱越南人对不起肯定是念错了我觉得但是因为后面就有很多这样的扩展中国
中国的话不是那个李阿玲他们就也在做他这个是那个是什么 P-TECH-NG 是吧这个我还真不知道他是用那个 C 语言开发的的那个当年他那个是 YNY 的 TECH 重新开始写的
写的写的一个东西然后直接是然后就可以直接输出 PDF 的那是李阿林这个东西现在还存在吗对李阿林他自己在维护啊这个名字这个名字有点耳熟啊对啊他的真名叫马启元然后在知乎上也是很活跃的啊 OK 太厉害了一个人维护这么一整套东西那个 Lua 太后补充一点他其实就是为了解决原始的那个太后不好编程扩展的问题嘛所以他其实把那个 Lua 的那个比较一个就是
就是 Lua 本来是一个非常简单的语言它在很多游戏里面是作为这种控制语言存在的因为它很好的可以很方便的嵌入到 C 里面去对吧魔术世界然后 LuaTag 就是说它整个把这个 Lua 的这个解释器嵌到这个 Tag 里面去然后你很多事情 Tag 里面不方便做的其实对绝大数据来讲就是基本上但凡任何事情你需要编程控制的你都转到 Lua 去会比较就是你用起来会比较舒服一些
然后他也做了这么一个事当时我记得还有好几个就当时还存在就是从到 unicode 过渡的那个阶段还有那个叫什么 XETech 我不知道这个怎么念就是他的 XETechZtechZtech 是吧 Ztech 对就是然后还有各种各种变种什么 PDF Ztech 这实在是太多了我当时看着头都大了
但好像现在反而就是该发展的发展然后也就他也经过了现代化的过程现在留存下来还在活跃开发然后功能比较全的好像也就那么两三个了
对 Z-TAC 应该是可能现在最怎么说高级或者说最 feature complete 的一个一个发行榜一个引擎了就他首先他一开始出发刚出发的时候就是以全面的 UNIQLO 的支持为出发电脑然后他还支持 OpenTIF 之类的你就是你用 Z-TAC 的话你就可以使用你机器上装的文本装的自己对这是很大的一个坑
这是很大的一个坑就是你可能说我想要用 Tech 来排我的东西但是如果你使用比如说 TechLive 的话你会发现自己没有办法使用系统上有的字体
这是很蛋疼的一件事情但是你要是用 ZType 的话就可以绕开这个坑 ZType 最开始的时候它就是在那个 MacOS 上面去开发的所以它当时搞了很多所谓的这种先进的字体排音技术各种联子啊 Legature 啊各种这种就是高级的 OpenType 那特性在其他的当时在其他的 Type 发行版里面都是不能支持的因为它完全不是一个
不是一个体系也不是一个技术路线它然后是一个年代的东西完全不是一个年代的东西但是当时 ZTech 它把这两个结合在了一起然后当时给到我们看到的一些实现的效果那是非常非常惊艳的
By the way 那个版本号无限接近于 1 就是 0.99999 就是这个 ZTech 就像刚才我们讨论的这个 LATEC 还有 ZTech 包括像 PDFTech 他们跟这个我们最开始讲的这个 TechLive 这类的这个发行版是什么样的一个关系呢还是说后面我们说的这些像 LATEC 这样的东西他们只是负责排版的这个功能他们只是一个排版引擎是这样的这个解释起来又复杂
Z-Type 应该是比较像引擎一个东西但是 Z-Type 面临一个问题就是如果你要从头开始支持 Unicode 和 OpenType 的话你会需要更多的工具所以 Z-Type 除了实现 Type 这个程序之外它还有一些别的什么就类似于比如说要去处理 Unicode 或者说处理 OpenType 的那个字体格式的一些工具
就等于它有核心的那些程序之外还有一些扩展而 PDF TEC 的话就是完全只是重新实现了 TEC 和 LATEC 这两个程序就他们基本上都是引擎但是他们的规模是他们的覆盖范围是不一样的比如说有些一个可能只是一个内燃机另外一个除了内燃机之外还有一个那个 PowerTrain 在那边
那他们跟 TechLive 这样子的然后 TechLive 就是比如说 TechLive 应该应该用的是 PDF 拉 Tech 或者他两个都有他既有 Tech 也有 PDFTech 然后他把所有这些东西外面加上一套编辑器啊加上那个工作流啊然后加上一些教学工具之类的然后打包给你说到 TechLive 我们是不是要讲一下他这个所谓的他这个官方开发组
叫做 TOG 的这个 Tech User Group 应该怎么翻译粉丝群嘛 Tech 粉丝群 Tech 不是 Tech Live 的官方开发组啊 Tech 是所有的 Tech 的用户的一个群组对啊 Tag 而且高德纳一开始就经常会在里面发一些东西嘛在很早以前然后会做一些更新啊什么的一直都在那个 Tag
anyway 我们跟大家介绍一下这个社区吧我之前看过他们写的一些论文跟自己排行有关的我倒是看过一两遍还有一些采访稿因为本来 Tech 它就是一个排版引擎嘛虽然他们必须要研究排版嘛
所以很多他们研究到排版的论文就发在这个 Tag 上面 Tag 之于 Tag 的关系你可以认为有点类似于 Gnu 之于这个 Unix 或者是 Linux 这个的一个关系这不就是 Python 跟 Pug 之间的关系吗
Python 跟 PUG 之间就是这样对对对它有一个这种是一个比较范的那种用户的组织然后很多这种项目都是挂在这个组织的这个名下或者是被这个组织 sponsor 的比如说我们看到刚才提的那好几个 TechLive 啊 MacTech 啊 MacTech 啊它都是在这个组织的这个旗下然后就这个组织的这个成员吧然后在开发维护
就大概是这么一些然后还有一些是非组织的就是说就是在这个 tag group 以外的有这种专业分支的领域的那也有对吧它就不严格是大一统的这么一个群体因为它原来的名字就是叫 tag user group 嘛
对吧 Tag 的用户组嘛所以呢就简称 TUG 对对你只要用都可以在里面去申请加入然后他们呢他们有一个叫 Tagboat 就拖船嘛因为 Tag 本身是拖船的意思嘛所以他们传了个文字游戏他们后来发很多那些发的文章啊就都发在那个 Tagboat 里面
那里面其实如果刚才说的嘛很多采访啊去采访高德纳先生啊还有各种字体设计师啊还有排印的一些研究的论文啊就都会发在 Tagabot 里面
说到这里我提另外一个东西其实非常有意思的就是刚才我们讲的泰和拉泰和也好他其实还是偏向于这种文档文稿这种长篇的论文为主还有一个大的分支的一个流派是基于泰和来做一些更加 fancy 就是你想都不想想不到的一些这种图形你不会觉得他是用泰和编出来的排印出来的东西但确实是这套体系叫做 context
有个 T 了被人家叫 context 就是那个 context 的那个词但是它的中间那个 Tex 是那个 tech 的那个拼法就大写的 T 大写的 X 然后小写的 E 这个是干嘛呢当时我有一段时间非常痴迷这个东西就是就你们写 PPT 要不就是用 PowerPoint 要不就是用那个
这 PowerPoint 是 PPT 吗你写这个幻灯片就是数码幻灯片的时候你要不就用 PowerPoint 是 PPT 要不就用那个 Keynote 最后结尾是那个.k 的那个文件但是你也可以用泰赫这套逻辑来写这个 slides 而且当时我记得我有很多这个上课的这种教授他们的这个版书啊他们也有版书的嘛
就是用这个这个 tech 来排版出来投投射到上面去了但是你如果直接用那个原始的那个 tech 或者拉 tech 你说你把这个正常它是定义一个比如说 letter 或者是 A4 的一个纸是一个长条的一个结构你投到那个屏幕上 4 比 3 它是一个宽的结构不太合适嘛然后说你可以说啊那我重新把那个纸横一下好像也可以测试用但但是还是排出来那个东西是比较无趣嘛对吧
我们知道很多这种版书啊或者这种 slides 它需要有一些有趣的东西有需要图形啊各种箭头去指点啊各种甚至是渐变过场动画什么的这些在传统的那个 Latex 里面都是非常难以实现的然后就有人搞了这个 ContextContext 这套系统
它可以实际上非常完美的这种就是各种图形啊精确的这种图案的生成然后你可以做一些动画呀特效啊你看到那个结果你不会认为那个东西是用 Tag 做出来但它确实是这个大家可以去试一下然后就有一个叫做 contextgarden.net 这个网站上是他们的一个相当于是官网的东西你可以看一下他的那些试列文件那个是非常 fancy 的一个东西 OK 我明白了
这个 context 之于你就像 review js 之于我可以这么理解就本质上你是在编程化的方式去生成你的那个换能片而不是用这个鼠标在那下点点点的方式来生成这个换能片你可以精确的描述每一个动效的每一个这个数学描述你都可以实现出来这个当时做出来的非常令人惊艳
如果你不想使用太狠的话你可以试试我刚才说的这个 review js 就是你如果你觉得 ppt 太不 hardcore 然后你你想要使用编程方式来解决你的宽灯片问题你可以试试我刚才说的 review.js 他是基本上就是你写 javascript 然后来生成你的宽灯片这样
哎我想起来了刚才我们说到了 Mac 上面 Linux 上面和 Windows 上面但实际上还有现在就是我们现在处在这个网络时代还有一个更简单的解决方法就是如果你想要使用 Tech 的话
现在有很多所谓的在线 tech 编辑器 SaaS 然后有些是对 Software as a service 在云上的对就好像现在我基本上写 Python 程序或者写什么小程序的时候需要写一个脚本的话我已经不会在本地去写它了我会去比如说 repair.it 或者是什么呃
主持类的 online 直接云编程对吧对 Latex 也有这样的云编程环境其中比较知名的一个叫 overleaf 对它是可能现在用户群也蛮多的一个虽然我从来没有用过但是有我曾经看到有人用过然后好像反响还蛮好网址就是 overleaf.com 然后
然后你在上面注册一下你就会得到一个编辑 tech 的环境然后他会给你实时就像那个 repo 一样给你实时的生成一个 pdf 对还蛮好用的而且好像价格也不是很贵吧尤其是对学生来说一个月 9 块钱就比如说你要写六个月的论文的话你一个月 9 块钱我觉得实在是相当便宜的太方便了是吧
让你一举忘掉如何安装和整环境的痛苦而且随时随地都可以你不用担心本地数据丢失之类的问题它是保存在云端的还是相当推荐的这叫什么来的 Cloud Native Tech1976 与 20221 的完美结合
这个我印象非常深当时我在我用的应该是 2000 几年的时候就是前后晚就是 2000 几年到 2010 年这段是这个十年这个 decade 之间就那个时候还没就是有这种就是云的这种这种态度出现但是因为那个时候的这个
这个 cloud 的这个 info 就是旧设施还没有非常的完善嘛就其实非常不好用但如果说假设我现在让我丢到一个学校里面让我再写一篇我估计我也不会在自己电脑上安装这个破玩意儿一次性的破玩意儿还是去这种用这种云环境比较简单一些
对是所以一个一个标准的这个泰和的编写的这个就当那个你编的那个流程是这样但是我就说可以描述一下当时你看到你电脑屏幕上应该是什么比如我通常是一半屏幕就屏幕对开嘛左右两边对吧然后一边是这个源代码就是那个泰和拉泰克的这个原始的那个点泰和那个 source code 然后另外一边是生成的那个 pdf 的那个窗口对吧然后把那个
别记器的工作流程设为你这边只要一保存这个 Tag 的源代码那边就自动在后台编译生成 PDF 然后在右边及时的展示出来这样就可以勉强实现所见等大概一秒钟两秒钟三秒钟之后做基索得嘛
然后当时有一个非常有趣的或者很 tricky 的一个实现的难点就是说如果你这篇文章或者你编写的这个文档有十几页长对吧然后你想要肯定是说你当前编写的那一遍保存的时候刚好是它刷新出来在右边的那个 pdf 的那个也是对应到你大致位置的这一行但不能严格一一对应就这个当时也很多 tricky 的办法在做这件事情
这个话根本没有找到怎么解决你刚才说你的典型编辑界面但我的点典型编辑界面就是就只有原代码而已就是我会 concentrate 我先把内容写完然后嗯再一个一个去解决带给我的种种头疼的问题嗯就等于先写再排版这样所以你是在在编写原代码的时候脑子里面在浮现出他应该想要的效果然后之后再去 debug 对
一个一个人肉 render 的这么一个过程所以你写 markdown 也是这样子吧先一遍 markdownsource 写完然后再 render 去电脑看笑再 preview 一下而不是说这种 side by side 的方式对差不多是这样 OK 这看你取决于你写什么东西了如果你还是一个长的普通的文档
那可能还好点因为比如说写论文的话对吧你论述的东西如果还是很长的话你还是想去集中的先把这个论述的这个逻辑先写清楚嘛但是如果你要在渲染一个公式的时候你得先想象一下猜一下然后渲染出来看一下这个好像又跑位了不行了回来调调就会出现这个事情嘛
因为我可能用法比较奇怪因为我用这个东西最常用的倒不是写论文这种常文的而是写作业的时候因为我当时说我写字不是很丑吗就是丑到以至于我自己也都不知道我写的草稿上面是什么东西所以我写作业的时候其实我其实是在电脑上用 Tag 拉 Tag 这个方式去一步一步去进行演算的所以
所以我一定要看到那个最终结果在想下一步是什么你用那个做双数是吗对对对就有点这种感觉比如说我要把那个图画到那下一步怎么来着我再用那个来画对吧我不会说我在草稿纸上先把这个就是作业写的差不多然后再腾一遍腾到这个拉太狠里面我不是这么干的对这还是看你写的内容怎么样嘛每个人写作的那个环境和写的内容不一样嘛用法就不一样了嘛
对尤其是如果你有很多公式的话他要求你你在写公式的时候你能够确定知道自己的 LATAC 的公式是写的是对的这实际上对于很多人来说还是蛮难的很难的一件事情就是你想象它应该是对的结果训练出来并不是这个样子经常会出现这种情况对
对对对我忘了说还有一个我其实应该说是一个三屏的就是还有一个是那个 Tag 的 Latex 的那个对应的手册因为你记不住那些符号啊或者是那些公式到底是哪个你得不断的去翻然后包括那个 TIKZ 的那个绘图的那个工具它有一个非常完整的就是也是一本书了本质上的一个 PDF 的册子你要去找它里面到底是怎么去画这个箭头怎么画到那里去就是你是要随时去找这个 reference 的
所以就很烦了是这其实泰和除了我们讲常用于这种数学理工这种之类他还有一些这种奇奇怪怪的其他的用法比如说有人来用这个做音乐我也有看到就是乐谱也可以用这个泰和的方式
就是写出非常严谨的这个美观的那个乐谱嘛还有当时我看到还有很多反正就是非常小众的用法但因为我不是我不是做那个方向的这个人嘛我太理解他底层原理是什么比如说我一直没有理解他那个用泰和写五线谱是什么一个原理你们知道吗或者写那个就是那个就是音乐的那些东西
就他应该也是有什么记号啊各种专用的这个红啊之类的但是我从来没用过我从来不知道怎么实现因为当时我还做过另外一些比较 crazy 的事情就是我不是觉得那个 tech 的那个红编程有一些那个语法什么的不是太灵活吗
我甚至还在就是在为了写一个写一个复杂的一个图形它可能是要如果要手工去写会非常的麻烦我甚至是用比如说用 Python 写了一个小程序去生成输出的那个结果是 Latex 然后再 compile 成 PDF 得到那个我就想要的那个图形非常的 meta 这个过程呵呵
但事实上那个 web 的一个功能就是这个他先去读取那段程序然后生成一段可以被 tech 来执行的执行的程序基本上也是一个代码生成器
做乐谱的那个是叫什么 music tech 是吧 music tech 吧应该是但是是 X 的我只看人结果用过但我不知道他到底是一个怎么一个用法但不过他还就是一个还是一个红包嘛对所以我们今天很关键一点就是说我们所有在谈这个排版的时候他是和字体配套的这个事情很关键就像高德纳他当时他做 tech 的时候他自己做了一套字体
然后这个字体对应的这个排版如何调用之后才能做出精细的排版否则的话他想实现这个他没办法调用嘛对吧我们现在平面设计师经常就是比如说我用 InDesign 这个平面设计的这个页面的软件所见及所得但是呢 InDesign 它需要调用的是 OpenType 这个字体里面的高级排版特性
所以说到底就是这个排版引擎和这个字体它是相辅相成的两边东西得配套好要不然的话就是很多事情你是在字体层面做呢还是到排版引擎做呢很多事情你想不清楚有的时候会然后高德纳就说什么事情都我来有了这个 computer mode 的字体然后呢有了 Tech 他就可以赋予这个作者所有的权利 fully control of your work
所以高德纳他自己很开心如果你知道怎么用的话打个非常大的引号就是你要学会那套东西才行大宗是不是那么好当的你要拿着玄铁剑你得先拿得起来会武才可以它是 control frame 这是毫无疑问的
对这其实也是我们在排版工作中遇到的一个难题吧就是我们知道其实无论是早前还是现在现在当然更适合字体其实已经成为了排版程序的一个构成部分如果没有一个在功能上符合这个目标排版需求的字体的话
我们实际上是无法完成整个排版工作的那这一点无论是在 tech 里面甚至我们在这个 web 上面就在网页上面也越来越是这样我们需要更多的 open type feature 来实现一些复杂的排版甚至只是为了实现
呃一些复杂文字的排版而这些文字的排版都没有什么特殊的需求他都不是写公式也不是积月谱他只是想把他自己国家那种语言的文字记录下来我们就需要用到这样一些复杂的特性这也是我们现在越来越难以纯粹的将这个呃
内容和样式分离开来的一个原因我比较好奇就是因为我之前在用那个 Latex 的时候有大量的这种情况是没法用通过这种中间插入到 Word 或者是这种 Office 的方式里面去实现的那就必须要在里面同时解决但是有一个非常 tricky 的一个需求是这样比如说你要插一个图对吧那个图很多不是有那种所谓的 label 文字的那种标签吗
你想要那个文字标签的字体形态风格和大小有可能文字标签本来就是一个数学公式对吧有可能文字标签本来是一个就是一个要跟正文的那个字体和那个排音方式要一致的那如果说你用一个第三方的这种图片插进去的话就会出现各种各样奇怪的问题比如说最简单一个情况就是有我看到很多人就是他不用那个 LatakLatak 和 Tikz 去生成图片的这种情况下
他是说我在外面找一个通用的画图工具把它画了做成一个 PNG 或者是这个 SVG 或者是那个叫什么 EPS 这种矢量图形或者是位图图形吧如果他那个不能用矢量来描述的话然后他再导入到这个 word 里面去这会导致一个什么问题呢因为它本身上是两套脱节东西那个图片对周围的文字是没有这个意识的那么你缩放那个图片就会导致那个图片里面的那些那个 text label 那些文字标签的大小
和外面的脱节了就完全不一样脱节了并不联动甚至我们看到国内很多那种就是用 word 写论文的人那个论文一看就是 word 写的为什么呢因为它里面的插入的图片比例是不对的
然后那个字型和和那个周围的文字是严重脱节对吧它字号都不一样然后这个这个字体都完全是不是一个东西了这些都是在 tech 里面解决的比较好它是你嵌入了一个 tech 那种 lative 那种图形它的那个文字 label 它还是用 tech 来排版的就它会非常的一致不你那个图也必须要用按 tech 的那种方法画嘛对啊对啊所以我就它必须是在同一个语境里面去嘛就它没有这个割裂感对
甚至还有像那个我之前刚才讲那个 context 非常诡异的需求它可以实现什么呢就是你的你假设你想象一个页面上有一个插图插图里面有一个箭头箭头里面指到你这页上某一段画的某一个字上面有一个符号它可以指到那个上面去这个在普通的那些里面那个插图的话是无法实现的嘛
体系里面就它是互相是之间是能够互相理解对方的结构的他们说的是同样的语言所以它能指的能定位能定的到对对对对如果你是插图的话你就单纯的普通的比如说是这个这个 PNG 你是无法从 PNG 插图里面去指向你的文档里面的某一个字的吧因为他都不知道你要插下哪一个文档对不对这个还是有一个非常不一样的体验的对但其实这样子的这个排版它
它其实之所以它能排得这么准它是因为所有的东西都是在一个接近封闭的环境中实现出来的如果从这一点来说假如我们很极端我们说我们写一篇论文我们每个字都用 Photoshop 来排那它最后就是一张位图它必然每一个细节都可以排得很准之所以我们用 Word 来排有的时候发现有一些图片的里面内嵌的那些字体的样式跟整个文档的样式脱离了是因为有可能它这个图片
并不是这个作者自己做的他只能从一个地方拉了一张图片过来这图片里面有一些文本其实这个图片的生成环境都不是由他自己来控制的那自然会产生这种图片但 Tet 的好处就是说他如果说你都用比如说你都用 TIKZ 来做图他那个图的那部分代码是可以单独拷贝出来的所以你只要再做一些小小的修改就可以让那张图无缝的嵌入到你自己那份文档里面去就是你是有那个原代码的而不是只有一个最终的结果
所以当年高老师说的我用 Tech 的话我是不管你用什么设备不用用什么环境最后生存东西都是一样的对呀这个就是他当初做 Tech 的最基本的一个目的所以我就很好奇现在我们用的这种商业用的排版工具它是怎么解决这种类似的需求或者是问题如果你在他自家的一个封闭的环境里实现其实 Adobe 提供的工具也足以实现这样的需求
比如说你在 InDesign 里面排一个很复杂的书籍这书籍里面可能有一些图片甚至图片上面会有一些小的文字标注如果你这个图片是用 Photoshop 做的或者是用 Illustrator 做的然后你把这个 Illustrator 做好的图像文件以一个外链 link 的方式可以 link 到这个 InDesign 内部或者直接插入进去成为这个 InDesign 文档的一部分那你也可以几乎保持说
它不会产生任何意外的情况它都是受你控制的然后你也可以随时在编辑那个图像文件里的内容保持一个两边实时的同步更新而且是 native 的更新它可以实现说刚才我说那种情况就是某一个图片里面的一个元素一个箭头指向这一页这个图像以外但是还在这一页上的某一个文字的某一个角落随便举个例子
你的意思是假如说我下面这个被指向的文字它因为比如说修改文本而被重排了所以这个箭头案能不能始终指向它是不是对啊要跟着它走啊不然没有意义吧
对这部分可能在平面设计软件里还比较受限因为这样的需求不强可能或者说对平面设计师来说如果产生了这样子的情况他有可能需要人工来解决这种情况因为他有可能觉得机器自动给他重新安排的这个结果并不满意对所以这个需求不那么的强
相当于 real 的要求是他们要有所谓 interoperability 就是可以互相交互对这也是用 tech 中间我产生的一个非常奇妙的一个感觉就是说你能感觉得它的强度
但是你也能感觉到他对你的制约就是说有些他给你定义好的东西你就只能那么去用他比如他那条线要怎么走如果你要你当然你完全可以重新把那个红包打散自己写一个让你足够满意的红包对吧但是那个过程是非常痛苦的一句我就说将就一下就用这个自己画轮子对这张轮子很痛苦的
对其实 Rio 说的这种情况更像是我们现在用这个 web 排版里面实现的一些特性也就是它有我们用一个很俗的词就是它有一些 responsive 的特性在里面它能根据你这个呈现媒介的改变甚至包括你能实时的修改一些文本但是还是保持着一些关键的排版特性的稳定性就是那个 pdf 不是有一些这种可编程的功能吗它可以嵌入 javascript 然后做一些交互吗
当时有一些那种比较疯狂的那个 text 的那种这种就是先锋它可以直接生成可交互的 PDF 比如说最简单的是用那个 context 做那个画能片对吧画能片不是有所谓的这个这个这个快进下一页页首页尾或者到某下一个章节的标题这种都有的嘛它可以在 PDF 里面实现一个导航栏都可以通过这个来实现非常的厉害
对 pdf 时间表单也是可以的你可以填表对而且它会自动数据收集但这个我觉得现在就是反倒是有一点示威了就是我发现越到后来就是说因为泰晗说白了他最终还是 99%是为了打印的场景设计的排版他核心是一个排版你们所有对他的过度使用其实都是误用对
对就他还是为了这个打印出来在使用的但其实现在我们看很多我其实已经很少把一篇论文打印出来再看都是在电脑屏幕上看就是说那是否还有必要拘泥于这个 page 这个页面这个概念对吧都已经其实这个概念已经开始在逐步淡化了
那像泰和他花了很多时间去研究说啊我要为了把这个这一片这个文字和这个公式完美的塞进一个固定的尺寸里面空间我要做什么标点挤呀我要做各种什么这种这些什么分词各种 hyphenation 各种这个
这种变种吧这种操作这个公式这么好一行写不下到底应该在 X 还是 Y 哪个地方断开这种非常细致的规则但随着这种无限就是相对来说灵活的这种展示界面的存在它好像这个需求已经不那么强烈了那无非看不下我就把那个留来几双股拉宽一点吧
在节目里最开始实际上我就提到了这一点我觉得现在拉 TEC 或者 TEC 本身的定位是一个比较精准的小众的
局限在插入公式这一部分就你拿真正拿来拿泰克来排版的人实际上是就是你越来越少了对在整个的个人出版领域里面实际上是已经很小的一部分就反过来说宗师级的解决方案实际上是不适合普通人的
对它将排版这样一件其实高度依赖于视觉结果的这样一件工作给你添加了一个比较抽象的中间中间的这样一个过程它需要你用一些相对抽象的方式去描述你的排版而不是像早期的平面设计师一样他们甚至将一个剪贴画剪下来直接粘到纸上的某一个位置这样子的一个直观的过程我觉得这是它比较难上手的一个原因
你使用这个东西是需要经过一套你并不或者说违反直觉的训练的这个我觉得在很多设计师这边实际上是一个很大的阻力违反直觉这件事情在设计师这里是行不通的也不叫违反直觉就是不直接就是 not intuitive 就是他没有那么直观的意思他不是 not intuitive 他是 counterintuitive 他是反直觉的
对对对就是它真的是反人性的你知道吗它本质上让你变成一个叫做什么来的 interpreter 对吧脚本解释器你要去运行这段结果大概在你脑子里面肉就是叫什么人脑去演算这个 tech 排版算法的结果得到说它大概会长什么样子然后你得得到那个 pdf 再看到底是不是你想的那个样子会不会什么 bonding boxoverflow 啊这种东西就出来了
这实际上就是编程对于人的异化过程嘛它是宗师的工资它不是普通人的工资对啊对啊但是一开始刚才说到那个连字断词 Half Nation 的那个算法其实他做的挺好的而且呢就是
因为你人工排版的时候你可能只能雇的这一行来排但是它现在就是所谓我们现在 Adobe 的算法是单行排版器和段落排版器它可以在根据这一整个段落的数行它能根据它的公式计算出一个最小的调整值然后得出最佳的最佳方案这个东西就是电脑上层做的东西
这还不是最狠的太狠做的更狠在上面它可以做全局的优化就是说这一整页里面我觉得是不是在这里断会导致后面三个五个自然断之后的那个排版的所以违反了一个更大的一个代价它有一个整篇的全局优化的这个过程它有好多个参数嘛
对而且而且我印象最深的就是说他在相当长的一段时期内他的那个就是编译啊编译那个泰晗文本到最终这个 DVI 也好 PDF 的结果他不是这个 one pass 的他不是一遍就完的他可以 multi pass 就是他去不断的去进行这个全局优化
然后使得说你得到一个整通篇文稿里面最小代价去违反那些排版规则的这个总和的一个总成本吧对像这类事情的话就是计算机所擅长的部分就哪怕你是一个很训练很几十年的一个高级的一个排版师也不会比这个计算机它做的经过计算以后根据这个算法计算出来的演化采取的一个最优质会好吗
对吧所以这部分 tech 是很厉害的但是反过来讲如果就对于那个公式排版里面比如说你要等号对齐加多少宽什么这个控制多少这个东西的话需要人再重新去反渲染的话这个的确就是不是机器所擅长的东西然后需要人进行非常多的干预嘛
但是我印象非常深的一个点就是说当时因为我自己写论文这里面跟普通的排版有点不太一样就在于比如说我理解应该是这样子比如说你拿到一个别人的书你要排你是不能改书的内容的对不对对但是因为我是自己写论文我知道写到最后那一句话的时候刚好就多了那么一行然后你无论如何都调不回去然后就多一页空白页的时候你说你干脆把最后那段话改一下缩短一点点对吧
编辑其实是有这个权限的编辑在排版之中起到的作用有时候就是这样他觉得这篇文章可能排了一整页加一句话那我把那句话改一改或者把这个篇幅缩一下然后跟作者沟通一下就好了对所以编辑有这个权限但是排版师没有这个权限对对
比如你想这是一个非常有名的作家一字千金的你敢改字吗不敢的对啊有违约了会出事故的这个所以呢编辑如果觉得有必要他可能导回去和作者去联系这个事情再难的东西你排版都能排得好这才是你排版师的厉害之处嘛你那就改字这个算什么嘛对嘛对吧
所以本质上你看排版师本质上也是一个人肉的那个对吧那个就是 layoutauto layout 计算器你要知道怎么排才能变得好看你脑子中有各种各样的规则对一个人肉的 page maker 的
我刚才查了一下我才发现 PageMaker 这个东西已经在 2004 年的时候早就没有了我的天哪我一直想着找个机会去指证你但是呢就没有机会这十几年来我都活在一个谎言里面了
对我们现在都用 InDesign 而且你想 InDesign 到 20 多年了对我知道其实我天天就是我刚才所有提到 PageMaker 的地方我想说的其实都是 InDesign 就是那个我甚至我知道我能想起来那个 logo 是写的 ID 但是我就 somehow 把它叫成了 PageMaker 上个世纪的记忆实在是用 InDesign 的话先不考虑钱钱的问题它比较贵我有可能拿它来写毕业论文吗
取决于你写什么级别的编就是刚才我想说的一个事情就是不管是泰和还是 in design 实际上都有一个问题就是他如果你要使用比较专业的 plot 工具的话他们还是必须使用第三方的东西就比如说 mathplotlib 公式很多会比较麻烦
对他就是没有很好的公式处理工具就是会那种根据数据会出来的图对吧他是没法支持这个这一点的对或者是你画一个什么三维界面的三维里面的流行之类的东西你要怎么用 TX 来画不可能的所以这些东西其实还是有局限可以的 TX 可以画可以的 OK
可以画一些简单的然后刚才我不是说我用 Python 写了一个代码输出这个然后 Tex 的秘密来实现绘图吗输出的就是 TXZ 的那个代码然后它实现了一个我想要的那个图形
为的就是解决刚才我说的那个问题就是他画出那个图形中间是有一些这个 text label 是需要跟周围的那个长相一致的那你用任何其他的工具是没有办法实现这一点的然后这又退回来这个软件的本质就是因为 tech 它是开放的开源的如果你有这个需求你自己去写个红写个白你自己
你自己造个轮子然后你就可以添加功能了嘛对吧那你自己拿去用去但是对于 Adobe 公司来讲 Indesign 是他们专属的然后你这个需求太小了我干嘛要给你做呀对吧然后这个东西那你看就回到了那个开始吴涛念的引用那段对自由软件的指责嘛对吧
确实 InDesign 是一个设计的非常好的工具它具备非常它凝聚了非常多工程师多少的辛苦劳动的结果当然它得到的结果也是非常的这种 professional 专业的这种
结果但是他不能解决我这么一个特别定制化小中的需求呀所以你看在这个研究领域啊在这种特别是那种探索边界的那些人他总是要遇到这种所以还是要用这种开放的这种开源的自由的软件才能够实现他的那种可能全世界就只有他这么一个人在 20 年时间内用了这么一次之后再也没有人想过这种需求了硬地上肯定是不会做的对
其实还是看你怎样衡量这个排版的工作量比如说我们用 Indesign 理论上你完全可以人肉的实现所有公式编辑器可以实现的这个事情排一个公式它结构很复杂但它再复杂它无非就是在一个二维的平面上把一些人工排它也可以文字放到固定的位置对对就 Indesign 完全有这个能力而且做这件事情未必很复杂就是它的学习成本首先非常的低
其二就是它未必很复杂如果你的公式量不是非常的多那你这个如果就不成立了你这个如果不成立说到英文字案做这个技术的书籍如果我没记错的话小零件的 CJKVinformation Processing 应该第二版就是用英文字案拍第一版好像是 PageMaker 拍的小零件随便写一个技术文档都是用英文字案写的
这么硬合的吗他自己一页一页去排吗对对对他自己做的对对对他是自铁界的高德呢所以说到底的话对于他来讲的话因为写文章是关键用的工具是什么就是次要对于他来讲他用 indesign 上手他就用 indesign 对吧
这是好像中国有好多企业内部交换文档全都是 PPT 啊就不管干嘛都是一个 PPT 发过来所以我们本质上是需要一张数码白纸对吧不要给我加那么条条框框我自己把它摆到哪里就是哪里你所需要的是说怎么让我能够自由的通过一个规则能够摆在那里而已数码纸张其实就是 PDF 嘛就是它是一个容器嘛那你怎么再怎么打印怎么画这个是另外的事情嘛
但是就是 PDF 没法直接生成你得有一个工具才能生成它所以 KeynotePPT 反而是比较相对来说简洁直观的但确实也是我看到很多人最终他搞不定了他就直接开一个 PPT
弄成白板删掉所有文字然后一个一个摆下他需要的那个相对位置也可以吧本质上是你在白纸上用手写然后再把它拍成照是一样的嘛 PPT 是我在我在研究生的时候教的那个提交的论文的那个学术会议他应该是他应该也是 HEE 下属的一个学术会议官方推荐的海报排版工具
海报甚至他给的官方对就是你的你的你的论文有可能就是你的 paper 有可能有两种发表形式嘛一种是 presentation 就是你去那边做一个演讲另一种就是 poster 就是你在会场贴一个海报然后你站在海报旁边等别人来跟你交流这样子然后他的官方给你的这个海报的排版模板就是一个 pollpoint 的一个文件就里面各种什么会议的 logo 啊元素啊这个这个
指定的字体样式都给你定好了对吧没有很简单就是它会给你一个比较简单的框架因为那些会议一般它没有什么 logo 它可能主要还是侧重展示你自己的它有一个格式对有一个大致的格式同样的通用的格式
标题是什么作者是谁会议名称某某第几届什么什么 conference 之类的这种会给你定好了那个模板这就在中间是一个大白板你自己写吧但其实你最后交的这个海报如果跟他这个格式有很大差异但是基本的文本信息是对上的话他其实不会干涉你对这个设计的改变你达到目的就可以的嘛毕竟不是一个商业发行
说到底的话对现在再来讲讨论说 TEC 有各种各样的不好的地方当时无非就是高端他自己想把自己书印好了然后呢人家很牛他自己为了自己拍书他自己写了一个拍板引擎自己做了套自己然后他写出来了但是他觉得挺好的于是呢他就开源出来了大家也都可以用就仅此而已嘛呵呵
事情就结束了嘛你们爱怎么用你们再爱怎么倒都是大家后来的事情了他原来的目的就是想他觉得原来那个照牌排出来那个把他自己的书太难看了然后他希望他想对他的作品有 full control 完全的控制所以呢他写出来这样一个东西而且也只有像他这样的大师才能把自己的字体和渲染引擎写出来嘛嗯
而且好像自从那之后从来没有人想过这件事情的我感觉就是对吧已经没有人有这种大量去尝试这件事情对对这件事情太跨学科了吧他对自己排运的知识要求也非常高我记得高德纳好像还跟 Trap 服有过很深度的合作对没错这我们也可以讲一讲对
他当时其实没想那么多他就觉得这个太难看然后自己写个然后他当时一开始觉得说这事情花几个月就能搞定的事情然后他才发现他太乐观了是个大坑而且他一开始他决定要做这个字体的时候他其实也想了
他还想用别人的东西而且他那时候失乐不是那时候已经有那个实验室有一些东西吗打印机啊什么他去问嘛就说我能不能用然后呢失乐跟他谈判的基础就是说你可以用我的设备但是最后做出来的东西呢又归于我失乐然后他就不愿意了嘛这东西最后做出来应该开源啊给大家用嘛所以他后来就想不行那想来想去我还是得自己重新做然后他发现既然
目前所有的东西他不能去改动现有的字体嘛那他只好就重新再做一个字体他要是学习的时候发现你现在无论是那些史量和那些点阵的字体都不能满足他要求那我就干脆直接向现成的字体设计师去学如何画字然后再用他的这个程序呢教电脑如何画字其实他做的那个 MetaFont 的话是真正的
在画这个字嘛因为我们现在用的这个史量史量字体它只是轮廓嘛就把那个字体的勾边勾出来但是 MetaFound 它是真正它教它的那个代码是在写这个字应该怎么写一笔一画怎么写对
就最终它是渲染出一个位图的格式了它的那个是矢量的但最后它最后必须得渲染成位图最后呈现出来嘛对吧因为这个渲染这是最后的事情了但是它的那个代码最后是它的确是叫这个点位移多少这个笔画是怎么样的然后再后在上面长肉是什么样的它的 metaphone 其实是在画一个字嘛
他之所以有这样的这样一个思路就是因为他在做字体的话他是直接找这个字体设计师他就单纯是找查普夫啊比如我画个字母先画右边一笔左边一笔然后那个称线怎么加然后再削掉一点就一步一步真的就是按那个写字的那个步骤就写出来的一笔一笔写出来的就是
MetaFont 是这样的就是 MetaFont 的机制它是矢量的但是 MetaFont 绘制的结果好像是位图它是个 rasterizer 就是你要指定一个你在调用 MetaFont 的时候你是要指定单位的这个单位是拿来干什么的可能是拿来定位的因为要 MetaFont 你还得有字体知识而做 MetaFont 的厂商非常少现在应该已经绝技了吧对
因为特别难写啊因为它要就是等于教电脑怎么写这个字
因此就是要 60 多个参数就是老多参数了这个对于一个设计师而且它是非常不直观的对吧你是其实是书你是在写代码对啊对啊设了好多遍你首先我一个新的字体要设多少个变量你得想嘛对吧然后一个参数然后都要复制然后怎么动起来怎么加成性这个对于一个普通的设计师来讲太不直观了
对原来是这样所以其实现在也没有人在用这个 metafont 做字然后当时我记得我用的时候其实已经是过了那个时间段就我用的那个时候还有两个并行的系统就是 tech 系统要去引用一个系统字体是非常困难的
但是还要转换格式要转换成一个太狠能够认不是说你丢一个 ttf 或者是 open type 给他他就能能能用了但是后来越到后来像什么啊 z 太狠特别是 z 太狠出来之后他是可以直接调用系统字体吗因为他是 mac 上面的 mac 上面他本来就是把这个 open type 那套做成一个系统级别的这个 api 可以暴露给上面的这个应用程序吗所以他并没有像最原始的那个太狠那种你还得自己
用自己的什么 meta font 那种格式去描述一个字体当时还有好多这种就是所谓的中间格式什么 font1 啊那也还中间还要转转很多遍啊后来都是可以直接就调用系统里面存在的 open type 或者 true type 字体就可以了也就不用再考虑什么 meta font 包括这个甚至这个 computer model 后来也有人转成那个 true type 还是 open type 的格式放在那个库里面就更直接使用嘛
而且这很重要一点就是说大家感觉像字体就是它的一个造型这个造型轮廓而已其实更重要的对于排版的来讲是很多里面的 metrics 就是它的那个度量信息里面记录了比如说这个基线是在什么位置然后这个字底降步是有多高升步有多高这些东西都必须要让排版引擎进行读取它才能调啊要不然它找不
它不认得这个字的话它没办法调你上下标你要给它挪多少位置之类的极限要提高多少这些东西都必须要字体里面先要有这个信息然后要让排版引擎知道那大家知道 Tag 和原来和 OpenType 它原来根本就不是一个体系的这个东西所以他们两个人这两个东西之间
对要让他们互相交流到这个信息然后让他互相知道这个事情就本身就是一个很难的对原来的话高德纳他因为 Metaphone 是他自己做的他所有他自己新定义了一套 metrics
然后呢让 Tech 能调用他自己做东西就他自己好调用嘛这个就正如 Adobe 他自己 OpenType 他这个 Spec 就是 Adobe 他自己开发的然后 InDesign 呢又是他自己的软件所以呢他自己的软件调 OpenType 特性就调得特别好嘛
所以你在方正的软件里面排版软引擎里面你要用 Adobe 的 OpenType 特性就特别难受就调不出来因为它们不是一个系统东西那这些国产的这些系统软件它难道还要说要求用国产的自己格式才行吗它怎么解决这个问题呢
在很久以前在方正软件外必须要用方正的字体以前是不认的方正是自己有一个字体格式的对没错是的但后来也是终于可以用 TTF 了也能用 OpenType 这也是很后面的事情了那现在这个业界不都统一到这个 TrueType OpenType 这两个格式了那现在所有的现代排版软件都得支持吧
对啊但是你也知道吧 OpenType 是微软和 Adobe 做的嘛 OK 这跟 WPS 之类的差不多嘛其实支持程度也可以不一样因为你想一个字体里面现在的 OpenType 字体它的特性非常复杂它有很多指导你怎样去排版的特性而最早的一个 TrueType 的字体它其实指核心的功能就是描述一个具体的 Glyph 它的轮廓是什么样的
比较简单吗方正其实他以前就是通过排版引擎来实现很多排版的特性但是现在可能业界更希望大家能够遵循 open type 这个字体里面已经写入的一些排版特性来实现一些排版
就是这个权利到底是在排版师那里还是在自己设计师那里的问题在哪个层级你要说好然后呢你互相能调用就可以嘛像 Tag 和 Metafound 都是同一个人做的所以他自己想清楚他自己做互相调用就很顺嘛那你到另外一个系统去集同压缠这个搞不清楚啊
是因为毕竟互相都不能直接干预对方的成果这里设计师也不能说我这个字体只能用在哪些领域他也不知道你应用场景是什么只能给到你一些通用的建议对吧然后排版师那边对 Hint
然后排版社那边也只能说我根据我现在手上这个这个作品的特殊的这个情况选择要不要启用你的那个 Hint 还是说我自己自己定一个规则说了算了因为有些特殊情况都要特殊处理的嘛
搞个很简单的就是网页排版连一个航高都算不清楚吗就是这一点不同系统的它读取的 open type 特性里面的字段航高的那个数据字段是不一样的那每个浏览器读出来的数值都不一样它算出来的位置就都不一样它渲染出来的东西都不一样嘛
所以这一套有什么国标之类的吗还是说只有行业标准大家各自去想办法解决这典型的 open type 就是一个商业标准这行业巨头首先提出来的因为是大厂商做的所以大家自然而然的也就都跟进嘛
从这个侧面来讲的话高德纳是一个人挑就是单枪匹马做一套系统然后我们在这边拿来和整个业界做出来的一套系统相比这是大宗师的风范对不是错了是大多数做的时候业界这个事情还不存在没有这个业好吗而且还不存在没有这个行业
40 多年前 70 年代的事情嘛对啊所以那时候桌面排版是什么那时候还没有 Mac 那个时候 PC 都没有还桌面排版所以从这个意义上讲它真的是一个传奇就是一个人开创了一个领域但是
而且这个领域的这个成果到现在还是被一些比较像他一样比较喜欢走极端的人所使用的而其他的熟民或者说没有那么 geek 的人们就在使用着另一套可能更 user friendly 的系统而他们最终的结果几乎是不分伯种的我不知道你们但是有时候我会觉得泰和牌出来的东西太有风格性了就是你一看就知道这是泰和写的
但是反过来一个用卧的或者是
word 也很有风格一看就用艺术字用 in design 排出来的东西你就会不太知道说这个东西到底是怎么来的有时候太风格化可能也不是一件特别好的事情这也是程度的问题嘛他有点千篇一律啊很多人他不会配置那些太很多个性化的参数因为调个性化要牵涉到很多这种参数的变动其实有时候不一定能得到好的结果对还是那句话 you have to know everythingto do anything 对
还是蛮难的对啊就哪怕是最简单的你就换一个字体比如说你就看不惯这个 computer model 那种圆滚滚的这种长相的字体当时我就有这个问题我说我换成 Palatino 对吧我用的是 Palatino 对但是你一旦你用 Palatino 你就要考虑你的公式的问题了因为公式的它当时很多 Palatino 的那个这个就是
希腊字母罗马字母它是不齐全的或者你必须要用代替字体你就发现公式的特别难看这是其一第二个就是说数学排版特别是公式排版的但那个间距那些就是 matrix 那些数值标注它是根据那个字体来定制的
然后你换一套字体他写在字体里头了你就换了字体你就发现那个就是更难看就没有了就很麻烦所以到时候大家就最偷懒的方法就是直接用啥也不改直接写对吧写那种就好了不要管他长得而且不要去定制他的长相所以用 Tech 做出来的东西都是一样的了大家都知道这是一看就知道这是 Tech 写的嘛
也是一个传奇机生蛋和蛋生鸡但我不知道如果说以后的那种论文如果不需要考虑是一个叶的形式生产它可以是一个 scroll 一个长卷轴的
形式出现那其实很多排版的难题可以降很多降很多维度对你的意思是把排版的难题转嫁到浏览器上浏览器的引擎实际上就是一个排版引擎嘛就你不需要静态排版的然后动态排版就是一坨屎啊现在就是你看 CSS 排版现在能力那么差就在这一点太难了这真的太难了
没有需求嘛就是这个问题明朗机场商天天要考虑各种安全问题还要给你搞这种非常坑爹的这个排版那怎么去死吧你你在 web 排版你连对方用什么字体都不知道了你得猜现在不用了嘛现在有 web font 嘛可以指定了嘛但只是说那个最终体积的问题还是不太好说对呀不过我们自弹自上也花了两期时间就讲 web 排版的事情大家可以回去听啊
这次他没有说是哪一期我已经很欣慰了你一定要逼我说吗偶尔我也能依稀想起来那和孔煌聊过什么因为刚好就是前两期不远 OK 今天也聊了好久好了差不多了吧我们说了这么多好难剪了是不是要收尾了同学们好吧来凹丑好那我们今天的节目呢就暂时告一段落
我们今天也是我们现在在这里提一下这事情我们今天也是首次尝试在 Clubhouse 上面同步我们直播的同步我们录播的这个内容然后一个直播的形式我们的我们这房间还剩下多少人现在还剩下三十多个人
我们的死忠粉丝也非常感谢大家一起跟我们完成了这期节目的录制那自弹自唱听众呢如果想跟我们交流或者反馈都可以写邮件告诉我们我们的邮箱地址是 podcastatthetype.com 同时呢大家也可以在新浪微博在推特以及在微信上面通过搜索 thetype 这个账号关注到我们
您刚刚收听到的节目是内核恐慌一档尽量贴近计算机主题的娱乐 podcast
我们号称硬活但是也没有什么干货想听人听不想听人就别听我们的网址是 pan.icu 您可以在网上找到订阅我们节目的方法以及联络我们的方式如果您期待我们更频繁的更新节目欢迎您到爱发店我们捐款相亲可以在我们的网站上找到先发店后催更文明催更从你做起如果您觉得意犹未尽也欢迎您去收听 Rail 和黄海主持的节目风头圈 Rail 和任宁主持的节目提前怀旧以及基本不由无套主持的自弹自穿
感谢大家收听本期节目是由 Eric 在 Big Sur 上剪辑制作完成的我们下期节目再见拜拜拜拜哇你还会说这个这是 Meta 信息啊就是我很注重 Meta 的知道吗就像我们会看不是有封面吗那个照片是谁在是几月几号在什么地方拍的吗有时候我把那个拍照设备也写进去然后我们的编辑就说有必要写吗对