研究论文催生的绘图工具

约翰·D.霍比(John D. Hobby)在AT&T贝尔实验室工作时,需要为研究论文准备图形。打印设备虽能画折线,他仍得计算并输入许多坐标,这种做法十分繁琐。1989年,他想到让Metafont改为输出PostScript,以数学方式组织插图。

霍比曾参与Metafont的算法工作,熟悉这一字体设计语言。据他后来回忆,动手前他告知了Metafont的作者唐纳德·克努特(Donald Knuth),得到鼓励;实际实现始于1990年,经过约两年断续开发,才在AT&T内部广泛分发。这个过程从研究者自己的制图需求出发,逐步发展为能够交给其他人使用的程序。

参考:[1]

把图形输出交给PostScript

1989年的论文把MetaPost称为正在开发的系统,介绍的是设计方案。当时,用Metafont制作插图的一种办法,是把整幅图当作巨大字符放进字体中;图形可以打印,但加入文字标签很不方便。霍比选择输出PostScript程序,再与排版文档合并,使插图从字体输出中独立出来。

这一设计保留坐标对、路径和变换等对象,把与像素相关的处理改为连续几何描述。例如,椭圆画笔按理想椭圆处理,不先变成Metafont所用的多边形;使用者仍能通过熟悉的语言操作形状,而由输出端处理绘制。

论文中的处理流程图把MetaPost、TeX及转换程序连接起来:一边生成图形的PostScript描述,一边生成正文的排版文件,最后合并后送往打印设备。文字标签所需字体也要进入这个过程,图形与正文才能协调输出。

参考:[2]

用程序说明一条线和一组曲线

霍比在1992年论文中给出一个简短例子:依次连接(20,20)、(0,0)、(0,30)、(30,0)和(0,0)。draw指定折线,beginfig和endfig界定一幅图;一个输入文件可包含多个图形块,每块产生独立的封装PostScript文件,用于预览或纳入文档。

论文接着把平滑闭合曲线存入路径变量p,再用draw p scaled s和循环画出不同尺寸。形状先保存,尺寸由参数改变,同一段描述便能生成一组相关图形。使用者仍需编写输入文本,得到的则是可以重算、缩放和继续组合的几何对象。

参考:[3]

从图形到排好文字的插图

1995年,艾伦·霍尼格(Alan Hoenig)向TUGboat读者展示了一张带坐标轴的数据图。MetaPost读入数据点,连接平滑曲线,绘制坐标轴,并把LaTeX排好的标签加入图中。图中文字可以与正文采用相同字体,减少插图与文章之间的不协调。

霍尼格还说明,输出是一系列图形文件,可以由宏包纳入TeX或LaTeX文档,再经dvips处理。他列出的获取方式包括软件档案网络CTAN,并明确已有DOS和OS/2的可执行版本。软件因此有了面向使用者的取得渠道、操作环境和文档引用方法。

参考:[4]

有限分发与公开获取的区别

1992年论文结尾说,解释器当时向学术机构提供,条件是签订保密协议。这份记录说明,已有实现和对外分发,并不等于所有人都能公开取得。霍比后来的访谈也回顾,进入公有领域以前曾有两年多的有限分发。

霍尼格的1995年报道写明,截至当年4月,MetaPost已进入公有领域;虽然所在期号标为3月号,文中的时间表述仍应保留。霍比在2010年访谈中不确定地回忆,实际释放可能发生在1995年1月。由同期报道与当事人回忆,可以将公开获取阶段定位于1995年,具体月份则保持未定。

参考:[1] [3] [4]