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 できないことがありました。 うまくいかない時はまっさらにして全部やり直してみましょう。