SGML の書き方
fml-devel (fml 5.0) のドキュメントでは、SGML の DTD は
DOCBOOK
をごくごく普通に使うことにします。
SGML の書き方については
FreeBSD の初心者向けチュートリアル
などを参照して下さい。
SGML のタグの一覧は
DOCBOOK definitive guide (O'reilly)
のオンライン版を参照すると良いでしょう。
また、本 Appendix で、2、3の典型的な SGML テンプレートをメモしておくので
それらを適当に切り剥ぎしていけばなんとかなるはずです。
本( book )形式のテンプレート
book スタイルの典型的な SGML のテンプレートは次のようになります。
<!doctype book public "-//OASIS//DTD DocBook V3.1//EN" [
<!entity % include SYSTEM "include.sgml"> %include;
]>
<book id="相互参照のためのID">
&bookinfo;
&preface;
<toc></toc>
<part>
<title> タイトル </title>
<partintro>
<para>
本パートは…目指しています。
</para>
</partintro>
<!-- 以下、各章が並ぶ -->
&overview;
</part>
</book>
2 行目は include.sgml を include する命令です。
C 言語の #include や
perl の require() と同様です。
そして、 include.sgml の中では次のような命令が定義されています。
<!-- include する SGML ファイル群 -->
<!entity bookinfo SYSTEM "bookinfo.sgml">
<!entity overview SYSTEM "overview.sgml">
これらの定義により
&bookinfo;
命令で
bookinfo.sgml
が include するようになります。
このようにして、文書本体と
include するヘッダファイルもどきを
別々のファイルに分離することができます。
HTML の <UL> 相当
<itemizedlist>
<listitem>
<para>
アイテム1
</para>
</listitem>
<listitem>
<para>
アイテム2
</para>
</listitem>
</itemizedlist>
例えば
<itemizedlist>
<listitem>
<para>
けんけんはきたきつね
</para>
</listitem>
<listitem>
<para>
るどるどはテディベア
</para>
</listitem>
</itemizedlist>
は次のようになります。
けんけんはきたきつね
るどるどはテディベア
数字付のアイテムは orderedlist です。
けんけんはきたきつね
るどるどはテディベア
HTML の <TABLE> 相当
<para>
<table>
<title> テーブルのタイトル </title>
<tgroup cols=2>
<thead>
<row>
<entry> キー </entry>
<entry> 値 </entry>
</row>
</thead>
<tbody>
<row>
<entry> キー 1 </entry>
<entry> 値 1 </entry>
</row>
<row>
<entry> キー 2 </entry>
<entry> 値 2 </entry>
</row>
</tbody>
</tgroup>
</table>
</para>
例えば
<para>
<table>
<title> table description </title>
<tgroup cols=2>
<thead>
<row>
<entry> 名前 </entry>
<entry> 説明 </entry>
</row>
</thead>
<tbody>
<row>
<entry> けんけん </entry>
<entry> きたきつね </entry>
</row>
<row>
<entry> るど </entry>
<entry> テディベア </entry>
</row>
</tbody>
</tgroup>
</table>
</para>
は次のようになります。
テーブルの見本
名前
説明
けんけん
きたきつね
るど
テディベア
ツール群
SGML を HTML などに翻訳するために、いくつかのツールが必要です。
僕は、これらのプログラムを使っています。
openjade 1.3
opensp 1.3.4
SGMLtools-Lite 3.0.2
これらのプログラムをインストール後、
fml/doc/sgml/catalog.sample
を参考にして
/etc/sgml/catalog を編集して下さい。
NetBSD 1.5-stable 系列(およびそれ以前のバージョン)上で
openjade を compile するには unproven-pthreads が必要ですが、
以前作った時の変な include ファイルが残っていて
openjade をうまく compile できないことがありました。
うまくいかない時はまっさらにして全部やり直してみましょう。