I.3. 构建文档 #
一切设置妥当后,切换到doc/src/sgml目录,并运行后续各小节中介绍的某个命令来构建文档。(记得使用 GNU make。)
I.3.1. HTML
要构建文档的 HTML 版本:
doc/src/sgml$gmake html
这也是默认目标。
要创建合适的索引,构建过程可能会经历多个相同的阶段。如果你不关心索引,只想校对输出,可以使用 draft:
doc/src/sgml$gmake draft
为了便于在最终发行版中处理,组成 HTML 文档的各个文件可以被打包成一个 tar 归档,并在安装时解开。要创建 HTML 文档包,使用命令:
cd doc/src gmake postgres.tar.gz
在发行版中,这些归档位于 doc 目录,并且默认随 gmake install 一起安装。
I.3.2. 手册页
我们使用 DocBook2X 项目的 docbook2man-sgmlspl 工具将 DocBook
refentry 页面转换为适合手册页的 *roff 输出。手册页也以 tar 归档形式分发,与 HTML 版本类似。要创建手册页,请使用以下命令:
cd doc/src
gmake man D2MDIR=directory
使用 D2MDIR 变量指定
docbook2man-sgmlspl 软件包中
docbook2man-spec.pl 文件所在的目录。该变量没有默认值。由于许多打包系统中该软件包缺失或过时,你可以直接下载源码 tar 包并解开,无需构建。此时的路径类似于 D2MDIR=/home/you/somewhere/docbook2man-sgmlspl-1.0/perl。你可能会看到如下警告:
Warning: unrecognized SDATA 'š': please add definition to docbook2man-spec.pl Warning: unrecognized SDATA 'ö': please add definition to docbook2man-spec.pl
只要(且仅当)你使用的是最新版本的
docbook2man-spec.pl,并且除这些之外没有看到其他 SDATA 警告,就可以忽略它们。
要为某个发行版创建手册页包,使用以下命令:
cd doc/src
gmake man.tar.gz D2MDIR=directory
这会在 doc/src 目录中生成一个 tar 文件。
I.3.3. 通过 JadeTeX 生成打印输出
如果你想使用 JadeTex 生成文档的可打印版本,可以使用下列命令之一:
要以 A4 格式通过 DVI 生成 PostScript:
doc/src/sgml$gmake postgres-A4.ps要 U.S. letter 格式:
doc/src/sgml$gmake postgres-US.ps要生成 PDF:
doc/src/sgml$gmake postgres-A4.pdf或者:
doc/src/sgml$gmake postgres-US.pdf(当然,你也可以用 PostScript 生成 PDF 版本,但如果直接生成 PDF,它将带有超链接和其他增强特性。)
使用 JadeTeX 构建 PostgreSQL 文档时,你很可能需要增大 TeX 的一些内部参数。这些参数可以在文件texmf.cnf中设置。撰写本文时,以下设置可用:
hash_extra.jadetex = 200000 hash_extra.pdfjadetex = 200000 pool_size.jadetex = 2000000 pool_size.pdfjadetex = 2000000 string_vacancies.jadetex = 150000 string_vacancies.pdfjadetex = 150000 max_strings.jadetex = 300000 max_strings.pdfjadetex = 300000 save_size.jadetex = 15000 save_size.pdfjadetex = 15000
I.3.4. Print Output via RTF
你也可以把PostgreSQL文档转换为 RTF并用办公套件做一些小的格式修正,从而生成可打印版本。视具体办公套件的能力而定,随后可以把文档转换为 PostScript 或 PDF。下面的过程以Applixware 为例说明。
注意
当前版本的PostgreSQL文档似乎会触发 OpenJade 的某个错误,或者超出其大小限制。如果RTF版本的构建过程长时间挂起且输出文件大小仍为 0,你可能是遇到了这个问题。(不过请记住,正常构建也需要 5 到 10 分钟,所以不要太早中止。)
Applixware RTF Cleanup
OpenJade没有为正文文本指定默认样式。过去,这个未确诊的问题导致目录生成过程极其漫长。不过,在 Applixware方面的大力帮助下,症状已得到诊断,并且有了可用的变通方法。
输入以下命令来生成 RTF 版本:
doc/src/sgml$gmake postgres.rtf修复 RTF 文件,使其正确指定所有样式,特别是默认样式。如果文档包含
refentry小节,还必须替换把前一段落与当前段落绑定的格式提示,改为把当前段落与后一段落绑定。doc/src/sgml中提供了一个实用程序fixrtf来完成这些修复:doc/src/sgml$./fixrtf --refentry postgres.rtf该脚本会添加
{\s0 Normal;}作为文档的第 0 号样式。按照Applixware的说法,RTF 标准不允许添加隐式的第 0 号样式,不过 Microsoft Word 恰好能处理这种情况。对于修复refentry小节,脚本会把\keepn标记替换为\keep。在Applixware Words中打开一个新文档,然后导入RTF文件。
使用Applixware生成新目录(ToC)。
从第一行第一个字符开始到最后一行最后一个字符为止,选中现有的 ToC 行。
使用 → → 构建新的 ToC。选择让 ToC 包含前三级标题。这会用Applixware原生的 ToC 替换从 RTF 导入的现有行。
使用 → 调整 ToC 格式,依次选择三种 ToC 样式,并调整
First和Left的缩进。使用以下数值:样式 首行缩进(英寸) 左缩进(英寸) TOC-Heading 10.40.4TOC-Heading 20.80.8TOC-Heading 31.21.2
在整个文档中完成以下工作:
调整分页。
调整表格列宽。
用正确的值替换 ToC 中 Examples 和 Figures 部分右对齐的页码。这只需要几分钟。
如果索引节为空,从文档中删除它。
重新生成并调整目录。
选中 ToC 域。
选择 → → 。
通过选择 → → 解除 ToC 的保护。
删除 ToC 中的第一行,那是 ToC 自身的条目。
将文档保存为Applixware Words原生格式,以便日后更容易地进行最后时刻的编辑。
把文档“打印”到 PostScript 格式的文件。
I.3.5. 纯文本文件
安装说明也以纯文本形式分发,以便在没有更好的阅读工具时使用。INSTALL 文件对应第 15 章,并针对不同语境作了少量调整。要重新生成该文件,请切换到 doc/src/sgml
目录,然后输入 gmake INSTALL。
过去,发行说明和回归测试说明也曾以纯文本形式分发,但现已停止这种做法。
I.3.6. 语法检查
构建文档可能非常耗时。但有一种方法可以只检查文档文件的语法是否正确,这只需要几秒钟:
doc/src/sgml$gmake check