[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

SGML の書き方

Table of Contents
SGML の概念
本( book )形式のテンプレート
HTML の <UL> 相当
HTML の <TABLE> 相当
ツール群
見栄えを変更する
その他の情報源

fml8 のドキュメントでは、SGML の DTD "DOCBOOK" をごくごく普通に使うことにしています。

本章は SGML で書くために最小限必要な知識についてのメモです。

基本的な SGML の書式は、当たり前 [1] ですが、正しい HTML の書き方と同様です。 本付録で、2、3 の典型的な SGML テンプレートをメモしておくので、 それらを適当に切り剥ぎしていけば、なんとかなるはずです。

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 をはじめ、 いろいろなものへ変換するやり方が用意されています。

Notes

[1]

HTML は SGML 形式の応用の(最も有名な)一例です。 そのため本質的なシンタックスは HTML と同じということになります。

[2]

正確には「SGML の一部にフォーマッタの要素が合体したもの」が HTML です。 HTML の方がはるかに有名になってしまったので、 「HTML のもっと厳密なもの…」といった説明が良くされます :)

[3]

我々が DOCBOOK を選んだ理由は簡単で、 多くの場所で使われているからです。 つまり、docbook のタグを書ける人が世の中に多いという意味でもあります。

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >