↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
历史版本。 PostgreSQL 9.5 已结束支持。 2021-02-11. 请参阅 当前版本手册.

J.3. 构建文档 #

一切设置妥当后,切换到doc/src/sgml目录,并运行后续各小节中介绍的某个命令来构建文档。(记得使用 GNU make。)

J.3.1. HTML

要构建文档的HTML版本:

doc/src/sgml$ make html

这也是默认目标。输出位于子目录html中。

要创建合适的索引,构建过程可能会经历多个相同的阶段。如果你不关心索引,只想校对输出,可以使用draft:

doc/src/sgml$ make draft

要把文档构建为单个 HTML 页面,使用:

doc/src/sgml$ make postgres.html

J.3.2. 手册页

我们使用 DocBook XSL 样式表将DocBook refentry页面转换为适合手册页的 *roff 输出。与HTML版本类似,手册页也以 tar 归档包形式分发。要创建手册页,请使用以下命令:

cd doc/src/sgml
make man

J.3.3. 通过JadeTeX生成打印输出

如果你想使用JadeTex生成文档的可打印版本,可以使用下列命令之一:

  • 以 A4 格式通过DVI生成 PostScript:

    doc/src/sgml$ make postgres-A4.ps

    以美国信纸格式:

    doc/src/sgml$ make postgres-US.ps

  • 生成PDF:

    doc/src/sgml$ make postgres-A4.pdf

    或:

    doc/src/sgml$ make 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
 

J.3.4. 超宽文本

有时文本会超出打印边距,在极端情况下甚至超出打印页面,例如未折行的文本、过宽的表格。过宽的文本会在 TeX 日志输出文件(例如 postgres-US.log或postgres-A4.log)中产生“Overfull hbox”消息。一英寸有 72 个点,因此任何报告为超出 72 点以上宽度的内容都可能放不进打印页面(假定边距为一英寸)。要找到导致溢出的SGML文本,可在溢出消息上方找到提到的第一个页码,例如[50 ###](第 50 页),然后在PDF 文件中查看其后一页(例如第 51 页),看到溢出文本后相应调整 SGML即可。

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

你也可以把PostgreSQL文档转换为 RTF并用办公套件做一些小的格式修正,从而生成可打印版本。视具体办公套件的能力而定,随后可以把文档转换为 PostScript 或 PDF。下面的过程以Applixware 为例说明。

注意

当前版本的PostgreSQL文档似乎会触发 OpenJade 的某个错误,或者超出其大小限制。如果RTF版本的构建过程长时间挂起且输出文件大小仍为 0,你可能是遇到了这个问题。(不过请记住,正常构建也需要 5 到 10 分钟,所以不要太早中止。)

Applixware RTF 清理

OpenJade没有为正文文本指定默认样式。过去,这个未确诊的问题导致目录生成过程极其漫长。不过,在 Applixware方面的大力帮助下,症状已得到诊断,并且有了可用的变通方法。

  1. 输入以下命令生成RTF版本:

    doc/src/sgml$ make postgres.rtf

  2. 修复 RTF 文件,使其正确指定所有样式,特别是默认样式。如果文档包含 refentry小节,还必须替换把前一段落与当前段落绑定的格式提示,改为把当前段落与后一段落绑定。doc/src/sgml 中提供了一个实用程序fixrtf来完成这些修复:

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

    该脚本会添加{\s0 Normal;}作为文档的第 0 号样式。按照Applixware的说法,RTF 标准不允许添加隐式的第 0 号样式,不过 Microsoft Word 恰好能处理这种情况。对于修复 refentry小节,脚本会把\keepn 标记替换为\keep。

  3. 在Applixware Words中打开一个新文档,然后导入RTF文件。

  4. 使用Applixware生成新目录(ToC)。

    1. 从第一行第一个字符开始到最后一行最后一个字符为止,选中现有的 ToC 行。

    2. 使用Tools → Book Building → Create Table of Contents构建新的 ToC。选择让 ToC 包含前三级标题。这会用Applixware原生的 ToC 替换从 RTF 导入的现有行。

    3. 使用Format → Style 调整 ToC 格式,依次选择三种 ToC 样式,并调整First 和Left的缩进。使用以下数值:

      样式首行缩进(英寸)左缩进(英寸)
      TOC-Heading 10.40.4
      TOC-Heading 20.80.8
      TOC-Heading 31.21.2

  5. 在整个文档中完成以下工作:

    • 调整分页。

    • 调整表格列宽。

  6. 用正确的值替换 ToC 中 Examples 和 Figures 部分右对齐的页码。这只需要几分钟。

  7. 如果索引节为空,从文档中删除它。

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

    1. 选中 ToC 域。

    2. 选择Tools → Book Building → Create Table of Contents。

    3. 通过选择Tools → Field Editing → Unprotect 解除 ToC 的保护。

    4. 删除 ToC 中的第一行,那是 ToC 自身的条目。

  9. 将文档保存为Applixware Words原生格式,以便日后更容易地进行最后时刻的编辑。

  10. 把文档“打印”到 PostScript 格式的文件。

J.3.6. 纯文本文件

安装说明也以纯文本形式分发,以便在没有更好的阅读工具时使用。INSTALL文件对应第 15 章,并针对不同语境作了少量调整。要重新生成该文件,请切换到doc/src/sgml目录,然后输入make INSTALL。

过去,发行说明和回归测试说明也曾以纯文本形式分发,但现已停止这种做法。

J.3.7. 语法检查

构建文档可能非常耗时。但有一种方法可以只检查文档文件的语法是否正确,这只需要几秒钟:

doc/src/sgml$ make check

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.