选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

J.4. 文档编写 #

SGMLDocBook的开源编写工具并不多。最常用的工具组合是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 和若干减少输入量的功能。