fml8 のドキュメントでは、SGML の DTD "DOCBOOK" をごくごく普通に使うことにしています。
本章は SGML で書くために最小限必要な知識についてのメモです。
基本的な SGML の書式は、当たり前 [1] ですが、正しい HTML の書き方と同様です。 本付録で、2、3 の典型的な SGML テンプレートをメモしておくので、 それらを適当に切り剥ぎしていけば、なんとかなるはずです。
SGML は本や短い文書(記事)を作成する際に使われます。 文章の論理構造を記述するための規格です。 HTML のもっと厳密なものだと思って下さい。 [2]
たとえば、”本”という概念を考えてみます。 まず”本”には章、節といった構成単位があります。 節の中にはパラグラフがありますし、文には脚注がついたり、 図などが挟み込まれたりします。
これらの概念には、ある関係があります。 たとえば”章”は”節”を含みますが、”節”は”章”を含みません。 そして、文は必ず「あるパラグラフ」の中に「ある」ものです。
そういった概念をどう表現するべきか?を規定したものが DTD (Data Type Definition)といえます。
DTD は自由に定義できますが、定義自体が大変な作業です。 しかしながら 誰かが作った DTD コレクションが世の中にはあるので、 それを使うのが便利です。 我々は DTD として docbook というものを使う [3] ことにしています。
DOCBOOK は OASIS-0PEN.ORG が保守している DTD 集です。 非常に有名なもので、デファクトスタンダードといってもよいでしょう。 (わかりやすいかどうかは別として;)リファレンスがオライリーから本も出ていますし、 ドキュメントも豊富です。 Free の Unix などをはじめ、多くのプロジェクトで使われています。
つまり、SGML を使うことで得られる最大の意義は 「ある基準となるもの」に規格化ないしは強制されるということです。 これは SGML の構文による規制という意味ではありません。 ある概念に従うことに強制されようということです。
ここで”概念”といっているのであって、 ”見栄え”についてはふれていないことに注意して下さい。 たとえば HTML では概念と見栄えは(むしろ意識的に)はっきり分離していません。
見栄えは DTD とは別の何かで定義されます。 通常スタイルシートというものです。 HTML 4.0 の CSS と同じ概念です。
スタイルシートの記述にもプログラミング言語が必要です。 docbook では schema (lisp の一種) ベースの DSSSL (Document Style Semantics and Specification Language) を使います。
また SGML では論理構造しか記述しないので、 見栄えはコンバータ次第でどうとでもなります。 HTML、テキスト、ROFF、PS、PDF、RTF をはじめ、 いろいろなものへ変換するやり方が用意されています。
[1] | HTML は SGML 形式の応用の(最も有名な)一例です。 そのため本質的なシンタックスは HTML と同じということになります。 |
[2] | 正確には「SGML の一部にフォーマッタの要素が合体したもの」が HTML です。 HTML の方がはるかに有名になってしまったので、 「HTML のもっと厳密なもの…」といった説明が良くされます :) |
[3] | 我々が DOCBOOK を選んだ理由は簡単で、 多くの場所で使われているからです。 つまり、docbook のタグを書ける人が世の中に多いという意味でもあります。 |
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >