打字猴:1.70043674e+09
1700436740 UNIX传奇:历史与回忆 5.3 文档编制
1700436741
1700436742 Unix很早就有良好的文档编制工具,这些工具有助于Unix文档的完善。本节将讲述早期Unix系统上文档编制工具历史的故事。就像Unix的很多其他部分一样,这个故事关乎程序、程序员和用户之间的互动如何造就创新和改进的良性循环。
1700436743
1700436744 1966年我在麻省理工学院实习时,了解到杰瑞·索尔泽(Jerry Saltzer)的Runoff程序(Runoff的名字来自“I’ll run off a copy for you[6]”这样的说法)。Runoff是简单的文本格式化程序:它接受普通文本文件输入,文本中穿插以句点开头的行,用来指定格式。例如,文件内容可能是
1700436745
1700436746 .ll 60 .ceDocument preparation.sp 2.ti 5Unix had good tools for document production … .sp.ti 5When I was an intern at MIT in 1966 …
1700436747
1700436748
1700436749
1700436750
1700436751
1700436752 这些标记告诉Runoff如何格式化文本:将行长设置为60个字符,下一行居中,空2行,临时缩进5个空格,将段落设置成最多60个字符的行,然后空1行,再临时缩进下一段。
1700436753
1700436754 Runoff有一二十条这样的命令,可以很容易地格式化手册页、程序说明、给朋友的信等简单文档。今天用Markdown之类工具能做到的文本格式化,Runoff都能做到。
1700436755
1700436756 1.早期格式化工具
1700436757
1700436758
1700436759
1700436760
1700436761
1700436762 Runoff对我来说是一种启示,一种与数学计算和编译无关的计算机使用方法。有了它,低成本地反复完善文档就变得容易多了。今天的读者可能很难体会到,在文字处理程序诞生之前,编制文档是多么费劲。当时只有机械打字机——当然,比泥板或鹅毛笔要好一些,但要想改几个词,就得整份重打。因此,大多数文件打出来后,都得在打印纸上手写修改,再费力用打字机重新输入,才能得到一份干净的文件。
1700436763
1700436764 1968年秋天开始写毕业论文时,我真的很需要Runoff这样的工具,否则就得自己用手动打字机打出论文(每改一次都要重打),或者付钱请人帮我打。我打字速度快但常打错,所以前者不切实际;由于我又穷又不怎么能挣钱,后者也不切实际。
1700436765
1700436766 于是我写了个简单版本的Runoff。我把它叫作“Roff”,意思是“Runoff的缩写形式”。问题是当时普林斯顿大学没有像CTSS那样的交互式计算机系统,也没有任何计算机终端,只有穿孔卡可用,但穿孔卡只支持大写字母。我用Fortran语言写了Roff(远非理想,因为Fortran是用来进行科学计算的,而不是用来把字符移来移去,但当时没其他选择),添加功能,将所有的字母都转换成小写,同时自动大写每句话第一个字母。最终的文本既有大写又有小写,用一台大小写都能打的IBM 1403打印机打印出来。堪称“前卫”!我的论文是3盒卡片。每个盒子里有2 000张卡,盒子长35厘米,重4.5千克。前1 000张卡片是程序,另外5 000张是用Roff定义的论文文本。
1700436767
1700436768 从未用过穿孔卡的读者可能会不太理解。每张穿孔卡最多包含80个字符,要么是一行Fortran代码,要么是一行论文文本。如果需要修改文本,就把替换的文本打在几张新卡片上,替换掉旧卡片。修正拼写错误一般只需要更换一张卡片,但如果新文本很长,就可能需要更多卡片。
1700436769
1700436770 我不得不在打印出来的页面上手写插入一些特殊的字符,如连加求和符号(Σ)。这个笨办法出奇地好用,足以让我打印出我的论文。相信这是普林斯顿大学第一篇用计算机打印的论文。(图5-6所示为随便抽出来的一页。)在之后的几年里,有个学生机构为学生们“roff ”文件,并收取一定的费用。因此,Roff是我写的第一个被别人大量使用的程序。
1700436771
1700436772
1700436773
1700436774
1700436775 图5-6 我论文中的一页,使用Roff做了格式化
1700436776
1700436777 当我到贝尔实验室时,发现有几个人在写类似roff的工具,其中就有道格·麦基尔罗伊基于索尔泽原作编写的程序。乔·奥桑纳在此后不久写了一个更强大的版本,他称之为Nroff,即“new Roff”(意为“新Roff”),专利部门用它做专利申请文档格式化工作。正如前文所述,Nroff是促成为Unix研发购买第一批PDP-11计算机的功臣。
1700436778
1700436779 这个由文档编制爱好者组成的小团体,以及由这类程序的活跃用户构成的社区,完美地契合了我的兴趣。于是在接下来的10年里,我花了很大一部分时间愉快地研究文本格式化的工具。
1700436780
1700436781 2. Troff与排版
1700436782
1700436783
1700436784
1700436785
1700436786
1700436787 Roff和Nroff只能处理固定宽度(等宽)字符集,比Model 37电传打字机上的标准字母字符多不了多少,所以输出质量并不高。然而,1973年,乔·奥桑纳安排购买了一台在报刊行业很受欢迎的Graphic Systems CAT照排机。他希望能制作更漂亮的内部技术文件,同时也帮助专利部门准备更像样的专利申请书。
1700436788
1700436789 这台照排机能打印正体、斜体和粗体等传统非等宽字体,以及一组希腊字母和数学专用符号。字符打印到长卷相纸上,经过几轮化学毒物药浴,相纸才能显影。这项技术早于激光打印机。激光打印机至少还要再过10年才会被广泛使用。还有,照排机输出的是黑白照片。廉价的彩色印刷直到几十年后才出现。
[ 上一页 ]  [ :1.70043674e+09 ]  [ 下一页 ]