文档标记语言的一点思考

近来在水木上讨论文档标记语言的优劣,想起前些天查资料时正好又碰到了一个熟悉的名字: Scribe,于是多花了一点时间查找,没想到找到的资料仍然非常稀少。

Scribe,是 Brian Reid 在 Carnegie Mellon 的 Ph.D Thesis,也是对文档格式研究中所绕不开的一个重要的名字 (另一个,当然是 Don Knuth 的 TeX),这个项目大概在 1976 年开始,1980 年 Reid 发表这篇 [Scribe: A Document Specification Language and its Compiler](http://portal.acm.org/citation.cfm?id=909923) 以后,就甚少有什么改进了,尽管 Reid 的论文中也研究了 Knuth 的工作,但可以认为 Scribe 和 TeX 是同时代的作品。从对后续文档格式的影响说,Scribe 还更大一点,我们熟悉的 SGML (XML 的前身),BibTeX 都受了 Scribe 的影响。在 1982 年,Reid 还因为这一贡献 (Ground-breaking text-formatting language.) 获得了 [Grace Hopper Medal](http://hopl.murdoch.edu.au/showlanguage.prx?exp=2481)。

可是 Scribe 在应用上的成就却远远地被 TeX 所抛离,TeX 的生命力,被证明持久至今,而 Scribe 现在却在网上连一个正式的文档格式规范都找不到,一篇超过两页的详细描述都找不到!这是为什么呢?从 wikipedia 的文章中我们或许可以猜到一些隐情。

与 Knuth 慷慨地将 TeX 放入 public domain 不一样,1979 年 Reid 就把 Scribe 卖给了一个叫做 Unilogic 的公司,后来这个公司还持续和 Carnegie Mellon 大学就 Scribe 的知识产权问题扯皮,直到 CMU 放弃。最愚蠢的还不在这里,Scribe 居然在免费提供的 Scribe 程序中安插了后来被称为“time bomb”的东西,也就是说,90 天后如果用户不购买,这个软件就会执行自毁程序。

从 Scribe 如此猥琐的历史看,这个软件、这套格式最终为大众所抛弃,实在一点也不奇怪。

Droid

全世界都在关注 [Android][] 这套手机平台时,字体爱好者们也有惊喜,这就是由 [Ascender Corp][] 设计的一套完整的包含 serif (衬线体), sans-serif (非衬线体) 和 monospaced (等宽) 字体的新字体集: [Droid][]。

Droid

[Android]: http://code.google.com/android
[Ascender Corp]: http://www.ascendercorp.com/
[Droid]: http://typophile.com/node/39036

根据报道,这套字体将作为 Android 平台的系统 UI (User Interface) 字体,和 Apple 在 iPhone 中选用 Arial 的怪异行为相比,Android 的这个选择肯定会更让人觉得满意。

这套字体目前还没有提供任何形式的下载,虽然 Android 的[模拟器](http://code.google.com/android/reference/emulator.html)的确使用了这套字体,但在提供下载的 SDK 和模拟器源代码中都找不到它的踪迹,也许是通过某种方法压缩存储了。

更新: 这套 Apache License 的字体在[这里](http://damieng.com/blog/2007/11/14/droid-font-family-courtesy-of-google-ascender)可以下载,原来它是存放在 emulator 的 system.img 文件中,这是一个磁盘镜像,使用的是 yaffs2 文件系统。其中 Droid Sans Fallback 包含了中文。

最令人高兴的是,Droid Sans 字体中提供了对简体、繁体中文、日文和韩文的支持,根据 [specimen][] 的介绍,涵盖了 GB2312, Big-5, JIS-0208 和 KSC-5601 字符集,使用的是*简体中文*书写习惯,从 specimen 中可以发现,这是一套类似俪黑/雅黑风格的字体。

[specimen]: http://www.ascendercorp.com/pdf/Droid_fonts.pdf

TODO List 的乐趣在于写

而不在于完成它。

* 看 [LLVM](http://llvm.org) 的设计文档
* 了解一些关于 [OpenGL Shading Language](http://www.opengl.org/documentation/glsl) 的东西
* 完成 vim-cocoa 的 [Core Text](http://developer.apple.com/documentation/Carbon/ Conceptual/CoreText_Programming/CoreText_Programming.pdf) 分支
* [ctex 宏包](http://www.ctex.org/PackageCTeX)在 XeTeX 下的重构
* 根据一个古旧的扫描版本重新排版 [The Little LISPer, 3rd Edition](http://www.amazon.com/Little-LISPer-Third-Daniel-Friedman/dp/0023397632)

Helvetica: The Film

helvetica.png

这个 blog 的长期读者也许读过我翻译的 [The Scourge of Arial](http://blog.jjgod.org/2004/10/06/arial-ooo/) 一文,其中介绍了 Helvetica 的由来。而今年年初,看到 [Helvetica: The Film](http://www.helveticafilm.com/) 的公开,忍不住将它称做“[年度最期待纪录片](http://www3.newsmth.org/bbscon.php?bid=460&id=250597)”。

目前它已经在[欧美各处](http://www.helveticafilm.com/screenings.html)公映,却没有看到在中国的任何一处上映的计划,如果你能提供帮助:

If you work with a film festival, museum, cinema, or arts group and would like to organize a screening, please contact us via email: helvetica (at) swissdots.com

因为,[我们想看 Helvetica](http://hlb.yichi.org/blog/2007/05/02/162),[我们不能错过它](http://lukhnos.org/blog/zh/archives/494)。

Arno Pro – PS CS3 Beta 中的一套新字体

Arno Pro 是在 Photoshop CS 3 Beta 1 中出现的一套字体,在我的系统中 (Mac OS X) 安装 PS CS3 后就能在 Font Book 里找到了。Thomas Phinney 是这么说的:

Arno Pro 是 Robert Slimbach 设计的 Adobe Original 系列字体之一,它带有现代威尼斯怀旧风格 (modernized Venetian oldstyle),我认为这个字体和 Adobe Jenson 的关系就和 Minion 和 Garamond Premier 的关系一样。展开来说,Arno 对语言的支持是和未来发布的 Adobe 软件保持一致的。这个随 Photoshop CS3 beta 发布的 Arno Pro 也是一个正在测试中的字体,未来可能有改变,比如字体命名方式上的改变。

下面是 Arno Pro 的一个截图和用 XeTeX 排版的一篇[短文](http://www.newsmth.org/att.php?p.460.249826.1560.pdf) (来自 ctex 论坛上 haginile 提供的源文件)。

另外,以 Arno Pro Regular 08pt 为例,我们注意到 Arno 除包含 85 个基本拉丁字符外,还有 91 个 Latin-1 补充字符,127 个拉丁扩展 A 区字符,34 个拉丁扩展 B 区字符。85 个希腊文字符和 132 个西里尔语符。

从字体外形的丰富程度来看,这套字体包括从 Light, Regular, Semibold 到 Bold, Optical Sizes 从 08pt, 10pt, 12pt, 18pt 到 36pt,再加上 Italic 的版本,共 32 款字体。

从风格而言,我个人觉得还是和 Minion 有点像的,不过 Jenson 的味道也确实一眼就能看出来。

另外我这里 (XeTeX 0.995) 似乎没有正确选择 Optical sizes,这一点比较奇怪,因为 Garamond Premier Pro, Minion Pro 这些在这里都能自动选择的,还得查查是源文件错了还是 XeTeX 的原因…

Picture 1.png