DG2.7. 工具集
我们记录了处理文档所需各种工具的两种安装方法的经验。第一种是在 Linux 上从 RPM 安装,另一种是从各工具的原始发行包进行通用安装。下面将分别介绍。
我们了解到这些工具可能还有其他打包发行形式。FreeBSD 似乎提供了它们。请把软件包状态报告到 docs 邮件列表,我们会把相关信息收录在这里。
DG2.7.1. Linux 上的 RPM 安装
安装 Jade 及相关软件包的 RPM。
DG2.7.2. 手动安装工具
这里简要过一遍获取和安装软件的过程,你需要这些软件来用 Emacs 编辑 DocBook 源码,并用 Norman Walsh 的 DSSSL 样式表处理它,创建 HTML 和 RTF。
这些说明不包括 sgml-tools 软件包中新的 jade/DocBook 支持。作者们自该软件包采用 DocBook 以来还没有试过它,但它几乎肯定是一个好的候选。
DG2.7.2.1. 先决条件
你需要:
一个可用的 GCC 2.7.2 安装
一个可用的 Emacs 19.19 或更高版本安装
一个 Unix 的 unzip 程序用来解包
你必须获取:
James Clark 的 Jade(撰写本文时,
jade1_1.zip中的 1.1 版是当前版本)Norman Walsh 的 Modular Stylesheets(最初生成这些文档时使用的是 1.19 版)
Lennart Staflin 的 PSGML(撰写本文时,
psgml-1.0.1.tar.gz中的 1.0.1 版可用)
重要 URL:
DG2.7.2.2. 安装 Jade
安装 Jade
阅读上面列出的 URL 处的安装说明。
把发行包解压到一个合适的位置。使用的命令大致是
unzip -aU jade1_1.zipJade 不是用 GNU autoconf 构建的,所以你需要自己编辑
Makefile。既然 James Clark 已经为此准备好了他的套件,一个好办法是在 Jade 发行包的主目录下建一个构建目录(也许以你的机器架构命名),把主目录中的Makefile文件复制进去,在那里编辑它,然后在那里运行make。不过,
Makefile确实需要编辑。主目录中有一个名为Makefile.jade的文件,构建 Jade(而不是构建 Jade 所基于的 SGML 解析器套件 SP)时,可以用make -f Makefile.jade来使用它。不过我们建议你不要那样做,因为需要修改的内容超出了Makefile.jade的范围,反正你也得编辑其中某一个。通读
Makefile,阅读 James 的说明并按需编辑。有若干变量需要设置。下面收集汇总了最重要的一些变量及其典型值:prefix = /usr/local XDEFINES = -DSGML_CATALOG_FILES_DEFAULT=\"/usr/local/share/sgml/catalog\" XLIBS = -lm RANLIB = ranlib srcdir = .. XLIBDIRS = grove spgrove style XPROGDIRS = jade注意其中指定了查找 SGML 支持文件默认 catalog 的位置 —— 你可能想把它改成更适合你自己安装的值。如果你的系统不需要上面这些数学库和
ranlib命令的设置,就让它们保持Makefile中的原样。输入
make构建 Jade 和各种 SP 工具。软件构建完成后,
make install会完成显而易见的那一步。
DG2.7.2.3. 安装 DocBook DTD 工具包
安装 DocBook DTD 工具包
你会想把构成 DocBook DTD 工具包的文件放在你构建 Jade 时让它查找的目录中;如果你遵循了上面的建议,那就是
/usr/local/share/sgml/。除了 DocBook 实际文件外,你还需要放好一个catalog文件,用于把文档类型规范和外部实体引用映射到该目录中的实际文件。你还需要 ISO 字符集映射,可能还有一或多个版本的 HTML。安装各种 DTD 和支持文件并建立
catalog文件的一种办法是,把它们全部收进上面提到的目录,用一个名为CATALOG的文件描述它们全部,然后创建文件catalog作为指向前者的 catalog 指针,给它这样一行内容:CATALOG /usr/local/share/sgml/CATALOGCATALOG文件随后应包含三类行。第一类是(可选的)SGML 声明,即:SGMLDECL docbook.dcl接下来,对 DTD 和实体文件的各项引用必须解析。对于 DocBook 文件,这些行看起来像这样:
PUBLIC "-//Davenport//DTD DocBook V3.0//EN" docbook.dtd PUBLIC "-//USA-DOD//DTD Table Model 951010//EN" cals-tbl.dtd PUBLIC "-//Davenport//ELEMENTS DocBook Information Pool V3.0//EN" dbpool.mod PUBLIC "-//Davenport//ELEMENTS DocBook Document Hierarchy V3.0//EN" dbhier.mod PUBLIC "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" dbgenent.mod当然,包含这些内容的文件随 DocBook 工具包一起提供。注意这些行每行的最后一项都是文件名,这里没有带路径。你当然可以把文件放在主 SGML 目录的子目录中,并修改
CATALOG文件中的引用。DocBook 还引用 ISO 字符集实体,所以你需要获取并安装它们(它们可从多个来源获得,通过上面列出的 URL 很容易找到),并为它们全部配上 catalog 条目,例如:PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" ISO/ISOlat1注意这里的文件名包含目录名,表明我们把 ISO 实体文件放在了名为
ISO的子目录中。同样,你获取的实体包应附带正确的 catalog 条目。
DG2.7.2.4. 安装 Norman Walsh 的 DSSSL 样式表
安装 Norman Walsh 的 DSSSL 样式表
阅读上面列出的 URL 处的安装说明。
要安装 Norman 的样式表,只需把发行包解压到合适的位置。一个合适的位置是
/usr/local/share,这会把工具包放到/usr/local/share/docbook目录树下。命令大致是unzip -aU db119.zip测试安装的一种办法是构建 PostgreSQL 用户指南的 HTML 和 RTF 形式。
要构建 HTML 文件,进入 SGML 源目录
doc/src/sgml,执行jade -t sgml -d /usr/local/share/docbook/html/docbook.dsl -D ../graphics postgres.sgml
book1.htm是输出的顶层节点。。要生成可导入你喜欢的字处理系统并打印的 RTF 输出,输入:
jade -t rtf -d /usr/local/share/docbook/print/docbook.dsl -D ../graphics postgres.sgml
DG2.7.2.5. 安装 PSGML
安装 PSGML
阅读上面列出的 URL 处的安装说明。
解开发行文件,运行 configure、make 和 make install,把字节编译文件和 info 库放到位置。
然后把以下几行加入你的
/usr/local/share/emacs/site-lisp/site-start.el文件,让 Emacs 在需要时正确载入 PSGML:(setq load-path (cons "/usr/local/share/emacs/site-lisp/psgml" load-path)) (autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t)如果你想在编辑 HTML 时也使用 PSGML,还要加上:
(setq auto-mode-alist (cons '("\\.s?html?\\'" . sgml-mode) auto-mode-alist))使用 PSGML 有一点需要注意:它的作者假定你的主 SGML DTD 目录是
/usr/local/lib/sgml。如果像本章示例中那样使用/usr/local/share/sgml,你就必须对此作出补偿。你可以设置
SGML_CATALOG_FILES环境变量。你可以定制你的 PSGML 安装(它的手册说明了方法)。
你甚至可以在编译和安装 PSGML 之前编辑源文件
psgml.el,把硬编码的路径改成你自己的默认值。
DG2.7.2.6. 安装 JadeTeX
如果你愿意,还可以安装 JadeTeX,用 TeX 作为 Jade 的格式化后端。注意它仍是相当粗糙的软件,生成的打印输出不如 RTF 后端的质量。不过它仍然工作得不错,尤其是对不使用表格的较简单文档而言;而且由于 JadeTeX 和样式表都在持续改进,它将来肯定会越来越好。
要安装和使用 JadeTeX,你需要可用的 TeX 和 LaTeX2e 安装,包括受支持的 tools 和 graphics 宏包、Babel、AMS 字体和 AMS-LaTeX、PSNFSS扩展及“35 种字体”配套包、用于生成 PostScript 的 dvips 程序、宏包 fancyhdr、hyperref、minitoc、url 和 ot2enc,当然还有 JadeTeX 本身。所有这些都可以在邻近的 CTAN 站点找到。
JadeTeX 在撰写本文时并没有附带多少安装指南,但有一个
makefile 展示了需要什么。它还包含一个 cooked 目录,你会在其中找到它所需的部分宏包 —— 但不是全部,也不完整,至少我们上次查看时是这样。
在构建 jadetex.fmt 格式文件之前,你可能需要编辑
jadetex.ltx 文件,把
Babel 的配置改为适合你所在地区的形式。要改的那一行看起来像
\RequirePackage[german,french,english]{babel}[1997/01/23]
显然,你应该只列出你确实需要、并且已为 Babel 配置好的语言。
JadeTeX 可用后,你就应该能为 PostgreSQL 手册生成并排版
TeX 输出,办法是(如上所述,在 doc/src/sgml
目录中)给出命令
jade -t tex -d /usr/local/share/docbook/print/docbook.dsl -D ../graphics postgres.sgml
jadetex postgres.tex
jadetex postgres.tex
dvips postgres.dvi
当然,这样做时,TeX 会在第二轮运行中停下来,并告诉你它的容量已被超出。就我们所知,这是 JadeTeX 生成交叉引用信息的方式造成的。当然,TeX 可以用更大的数据结构尺寸编译。具体细节因安装而异。