[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 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 | 7.3 | 7.2

J.4. 文書の起草

SGMLDocBookを起草する際に、オープンソースとなっている数ある文章編集ツールの中からどれを選んだらよいか悩むことはありません。 最も一般的なツールは相応の編集モードを備えたEmacs/XEmacsエディタです。 いくつかのシステムにおいては、典型的なフルインストレーションを行った場合、使えるようになっています。

J.4.1. Emacs/PSGML

PSGMLSGML文書を編集する上で最も一般的で最も強力なモードです。 正確に設定されていればEmacsでタグを挿入したりマークアップの整合性を検査することができます。 HTMLに対しても同じように使えます。 ダウンロード、インストール手順、そして詳しい文書についてはPSGML Webサイトを参照してください。

PSGMLについて1つ重要なことがあります。 ここで本書では、使用する環境として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 )

そして同じファイルに(既に)あるauto-mode-alistSGMLの項目を加えます。

(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ほど強力ではありませんが、よりわかりやすく、かつ、軽快に動きます。 同時に構文を強調表示(フォントロック)させることができるのでとても便利です。 src/tools/editors/emacs.samplesは、このモードに対するサンプル設定を含んでいます。

Norm Walshがフォントロックと入力作業を軽減させるいくつかの機能を付けたDocBook専用のメジャーモードを提供しています。