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

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 10 已结束支持。 2022-11-10. 请参阅 当前版本手册.

J.4. 文档编写 #

SGML 和 DocBook 的开源编写工具并不多。最常用的工具组合是 Emacs/XEmacs 编辑器加上适当的编辑模式。在某些系统上,典型的完整安装会包含这些工具。

J.4.1. Emacs/PSGML

PSGML 是编辑 SGML 文档最常用、也最强大的模式。正确配置后,可以使用 Emacs 插入标签并检查标记一致性。它也可以用于 HTML。下载、安装说明和详细文档请参阅 PSGML 网站。

使用 PSGML 时有一点需要注意:它的作者假定主 SGML DTD 目录是 /usr/local/lib/sgml。如果像本章示例一样使用 /usr/local/share/sgml,就必须作相应调整,可以设置 SGML_CATALOG_FILES 环境变量,也可以定制 PSGML 的安装配置(其手册介绍了具体方法)。

将以下内容放入 ~/.emacs 环境文件中(将路径名调整为适合你系统的值):

; ********** for SGML mode (psgml)

(setq sgml-omittag t)
(setq sgml-shorttag t)
(setq sgml-minimize-attributes nil)
(setq sgml-always-quote-attributes t)
(setq sgml-indent-step 1)
(setq sgml-indent-data t)
(setq sgml-parent-document nil)
(setq sgml-exposed-tags nil)
(setq sgml-catalog-files '("/usr/local/share/sgml/catalog"))

(autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t )

并在同一文件中为 SGML 加入一项,添加到现有的变量定义中。该变量是 auto-mode-alist:

(setq
  auto-mode-alist
  '(("\\.sgml$" . sgml-mode)
   ))

使用 PSGML 时,你可能会发现,处理这些分别保存书籍各部分的文件,有一种方便的方式:在编辑时插入适当的 DOCTYPE 声明。例如,当前这个源码文件是一章附录,因此可以将它指定为 DocBook 文档的“appendix”实例,把第一行写成这样:

<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.2//EN">

这样,所有读取 SGML 的工具都能正确处理该文档,并且可以用以下命令验证文档:nsgmls -s docguide.sgml。(但在构建整套文档之前,需要移除这一行。)

J.4.2. 其他 Emacs 模式

GNU Emacs 自带另一种 SGML 模式,功能不如 PSGML 强大,但更容易理解,也更轻量。它还提供语法高亮(font lock),这可能很有帮助。src/tools/editors/emacs.samples 包含此模式的示例设置。

Norm Walsh 提供了一种专用于 DocBook 的主模式,也带有 font-lock 和若干减少输入量的功能。

报告文档问题

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