I.3. 制作文档

一旦把所有的东西都设置好了,进入目录 doc/src/sgml 然后运行下面其中一条命令(记得要用 GNU make)。

I.3.1. HTML

制作 HTML 版本的文档:

doc/src/sgml$ gmake html

这也是缺省目标。输出结果出现在子目录html

To create a proper index, the build might process several identical stages. If you do not care about the index, and just want to proof-read the output, use draft:

doc/src/sgml$ gmake draft

制作单页的HTML文档,使用:

doc/src/sgml$ gmake postgres.htm

I.3.2. 手册页

我们使用DocBook XSL样式表 把 DocBookrefentry 页面转换成适于 做手册页的 *roff 输出。 这些手册页也是以 tar 归档的形式发布的,与 HTML 版本类似。 要创建手册页包,用命令:

cd doc/src/sgml
gmake man

I.3.3. 用 JadeTex 生成的打印输出

如果你想用 JadeTex 生成一个可打印 的文档,可以用下面的命令:

当使用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. 溢出文本

偶尔对于打印边距,文本太宽,在极端的情况下,对于打印页太宽, 比如文本不换行,宽表。过宽文本在TeX日志输出文件中生成"溢出盒子" 消息, 比如postgres-US.logpostgres-A4.log。 这有72像素/英寸,所以会报告任何那些超过72像素,太宽而不适合在打印页上的文本。(假定为1英寸) 要找到导致溢出的SGML文本,找到第一个有上述溢出消息的页号,比如[50 ###] (页 50),查看在PDF文件的其后面那一页(如 页 51),将看到溢出文本并相应的调整SGML

I.3.5. 通过 RTF 生成打印输出

你也可以通过把它转换成 RTF 并且用一个办公套件 进行格式微调的办法把 PostgreSQL 文档 转换成 RTF 格式的办法来创建一个可打印的版本。根据你使用的不同的 办公套件,然后你就可以分别把文档转换成 Postscript 或者 PDF 。下面的步骤演示了使用 Applixware 实现的过程。

Note: 目前看来 PostgreSQL 的当前版本的文档 碰到了 OpenJade 的大小限制的一些毛病。如果制作 RTF 版本的时候停住了好长时间,而输出文件还是 0 ,那么你很有可能碰到了 这个毛病。不过,正常的制作要花 5 到 10 分钟,因此不要太快退出。

Applixware RTF 清理

OpenJade 忽略了指定文本主体的缺省风格。 以前,这个未经查明的问题导致目录生成的长时间处理。不过,在 Applixware 的工作人员的全力帮助下, 诊断出这个病症并且找到了绕开的可用办法。

  1. 键入下面命令生成 RTF 版本:

    doc/src/sgml$ gmake postgres.rtf

  2. 修复 RTF 文件,以正确指定所有风格,尤其是缺省风格。如果文档 包含 refentry 段,那么还必须把和前面的段落 与当前段落绑定的格式化暗示替换为当前的段落和后面的段落绑定。 在 doc/src/sgml 里有一个 fixrtf 用于完成这样的修复:

    doc/src/sgml$ ./fixrtf --refentry postgres.rtf

    该脚本增加 {\s0 Normal;}为文档的零级风格。 根据 Applixware ,RTF 标准会禁止增加 一种隐含的零级风格,尽管 Microsoft Word 碰巧可以处理这种情况。 为了修复 refentry 段落,该脚本把 \keepn 标记替换为\keep

  3. Applixware Words 里打开新的文档, 然后输入该 RTF 文件。

  4. Applixware 生成一个新的目录(ToC)。

    1. 选择现有的 ToC 行,从第一行的第一个字符到最后一行的最后一个字符。

    2. Tools->Book 制作一个新的 ToC 。选择头包含在 ToC 里三层头。这将用本地的Applixware代替从 RTF 里输入进来的行。

    3. 使用 Format->Style, 调整 ToC 格式,选择每三种 ToC 风格,然后为 FirstLeft 调整边距。使用下面的值:

      风格第一边距(英寸)左边距(英寸)
      TOC-Heading 10.40.4
      TOC-Heading 20.80.8
      TOC-Heading 31.21.2

  5. 对文档进行加工:

    • 调整分页符。

    • 调整表列宽。

  6. 在该例子中右对齐页号和ToC图片部分的正确的值。这些只需要花几分钟。

  7. 如果索引是空的,那么从文档中删除它。

  8. 重新生成并调整目录。

    1. 选择 ToC 字段

    2. Select Tools->Book Building->Create Table of Contents. 选择Tools->Book 制作->Create Table of Contents

    3. 通过选择 Tools->Field Editing->Unprotect. 解除 ToC

    4. 删除 ToC 中的第一行,它是指向 ToC 本身的一条记录。

  9. 把该文档保存为Applixware Words 本地文档格式以便于最后的编辑。

  10. 把该文档以 Postscript 格式"Print" 到一个文件。

I.3.6. 纯文本文件

有好几个文件是以纯文本的模式发布的,主要是为了在安装过程中阅读。 INSTALL 文件对应章节Chapter 15 ,只有一点用于不同环境的修改。要创建这个文件,进入目录 doc/src/sgml 然后敲入 gmake INSTALL 。这样就会创建一个叫 INSTALL.htm 的文件,你可以用 Netscape Navigator 把它另存为一个文本文件, 然后把它拷到现存文件的位置。好像 Netscape 提供了最高的HTML 到文本的转换质量 (比 lynxw3m 好)。

文件HISTORY 可以用类似方法创建,用的命令 是 gmake HISTORY 。对于 src/test/regress/README 文件,命令是 gmake regress_README

I.3.7. 语法检查

制作文档可能需要很长时间。但是有一个方法用于只检查文档文件的 语法正确性,只要花几秒钟:

doc/src/sgml$ gmake check