“所见即所得(WYSIWYG,What you see is what you get)”编辑器可以使简单的工作更简单,却无法完成某些复杂的工作。
nroff/troff是UNIX下经典的typesetting工具,groff是GNU的*roff实现,并对troff的功能进行了增强。与LaTeX相比,体积较小,且大多为*nix自带,使用较为方便。虽说TeX为Donald Knuth所创,排版效果非常好,但体积相当庞大(安装完差不多3.5GB),而且通篇的/xx语法确实把我雷倒了——还是先由groff入手吧。
已经搜集到的*roff相关的资料:
- An Introduction to the GNU Groff Text Processing System
- Produce device-independent documentation with Groff
- Groff Manual
- http://troff.org/
- http://oreilly.com/openbook/utp/UnixTextProcessing.pdf
- groff_www
- GROFF & [X]HTML
groff最吸引我的地方在于能够轻松的编辑数学公式、绘图、制表、排版并且转化为ps/pdf文件或者网页。为了体验这些功能,将下面的代码为输入纯文本文件html_test,
.URL http://netpbm.sourceforge.net/doc "Netpbm manual" .URL pic.html "Eric Raymond's pic guide" .LK TestLink .LP .EQ G(z) ~=~ e sup { ln ~ G(z) } ~=~ exp left ( sum from k>=1 { S sub k z sup k } over k right ) ~=~ prod from k>=1 e sup { S sub k z sup k /k } .EN .LP .TS tab(:); c s s c | c | c l | l | n. Major New York Bridges = Bridge:Designer:Length _ Brooklyn:J. A. Roebling:1595 Manhattan:G. Lindenthal: 1470 Williamsburg:L. L. Buck:1600 _ Queensborough:Palmer &:1182 /^: Hornbostel:/^ _ Triborough:O. H. Ammann:1380 /^:/^:383 _ Bronx Whitestone:O. H. Ammann:2300 Throgs Neck:O. H. Ammann:1800 _ George Washington:O. H. Ammann:3500 _ .TE .LP .PS lineht = lineht / 2 box "/fIletter.tr/fP" arrow circle "tbl" arrow Eqn: circle "eqn" arrow Troff: circle "troff" arc cw line down arc cw left arrow circle "grops" arrow box "/fIletter.ps/fP" up line <- from Troff.n arc line box "/fItmac.m/fP" .PE
然后输入下列命令:
pic html_test | eqn | tbl | groff -ms -Thtml > html_test.html
或者
groff -p -e -t -ms -Thtml html_test > html_test.html
在处理pic时,宏-ms必不可少。
如果不出错的话,链接将会在网页中正常显示,公式、表格以及图表会被转换为图片。
groff的groff_www扩展会调用pnmcut,netpbm的工具包中的一个工具。netpbm可以在http://netpbm.sourceforge.net/下载并安装。安装成功后,需要把netpbm的路径加入到PATH中,最好是在$HOME/.bashrc中加入。
Update 2011-04-21:
今天试着用groff写了一个文件,并把它转化为html格式,那是相当的痛苦——对于一个习惯了所见即所得的初学者,groff的学习曲线确实相当的陡峭。