| 1 |
<?xml version="1.0" encoding="x-euc-jp-unicode"?>
|
| 2 |
|
| 3 |
<!DOCTYPE article PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1//EN"
|
| 4 |
"dtd/docbook-xml/docbookx.dtd"[
|
| 5 |
|
| 6 |
<!-- TODO: a <man> element with a link to -->
|
| 7 |
<!-- http://www.sources.org/cgi-bin/dwww?type=man&location=/usr/man/man1/sgml2latex.1.gz for the HTML output -->
|
| 8 |
|
| 9 |
<!-- TODO: externalize the following declarations in other -->
|
| 10 |
<!-- files. Warning: this will mean a validating XML parser to treat -->
|
| 11 |
<!-- the conditionals. First attemps with XML::Checker are not -->
|
| 12 |
<!-- convincing. -->
|
| 13 |
|
| 14 |
<!-- Programs -->
|
| 15 |
<!ENTITY sgmltools2 '<link linkend="sgmltools2">SGMLtools, version 2</link>'>
|
| 16 |
<!ENTITY sgmltools1 '<link linkend="sgmltools1">sgml-tools, version 1</link>'>
|
| 17 |
<!ENTITY jade '<link linkend="jade">jade</link>'>
|
| 18 |
<!ENTITY jadetex '<link linkend="jadetex">jadetex</link>'>
|
| 19 |
<!ENTITY psgml '<application>Emacs</application> <link linkend="psgml">psgml</link>'>
|
| 20 |
<!ENTITY modular_ss '<link linkend="modularss">Modular DocBook Stylesheets</link>'>
|
| 21 |
|
| 22 |
<!-- Files -->
|
| 23 |
<!ENTITY print_ss
|
| 24 |
'/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl'>
|
| 25 |
<!ENTITY html_ss
|
| 26 |
'/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl'>
|
| 27 |
<!ENTITY xml_decl '<filename>/usr/lib/sgml/declaration/xml.decl</filename>'>
|
| 28 |
|
| 29 |
<!-- New elements -->
|
| 30 |
|
| 31 |
<!-- The contents of the debianpackage element is the official name -->
|
| 32 |
<!-- The name attribute holds the Debian name, if it's different -->
|
| 33 |
<!ELEMENT debianpackage (#PCDATA)>
|
| 34 |
<!ATTLIST debianpackage name CDATA #IMPLIED>
|
| 35 |
<!ATTLIST debianpackage refserver CDATA #IMPLIED>
|
| 36 |
<!ENTITY % local.title.char.mix
|
| 37 |
"|debianpackage">
|
| 38 |
|
| 39 |
<!ELEMENT debiandoc (#PCDATA)>
|
| 40 |
<!ATTLIST debiandoc file CDATA #IMPLIED>
|
| 41 |
<!ATTLIST debiandoc text CDATA #IMPLIED>
|
| 42 |
<!ENTITY % local.para.char.mix
|
| 43 |
"|debiandoc|debianpackage">
|
| 44 |
|
| 45 |
<!ELEMENT manpage (#PCDATA)>
|
| 46 |
|
| 47 |
<!-- New attributes -->
|
| 48 |
<!ENTITY % local.common.attrib
|
| 49 |
"debianversionequal CDATA #IMPLIED
|
| 50 |
debianversionmin CDATA #IMPLIED
|
| 51 |
debianversionmax CDATA #IMPLIED">
|
| 52 |
|
| 53 |
|
| 54 |
]>
|
| 55 |
|
| 56 |
<article>
|
| 57 |
|
| 58 |
<artheader>
|
| 59 |
<title>Debian SGML/XML HOWTO</title>
|
| 60 |
<author>
|
| 61 |
<firstname>Stéphane</firstname>
|
| 62 |
<surname>Bortzmeyer</surname>
|
| 63 |
<affiliation>
|
| 64 |
<orgname>The Debian Project</orgname>
|
| 65 |
<address><email>bortzmeyer@debian.org</email></address>
|
| 66 |
</affiliation>
|
| 67 |
</author>
|
| 68 |
<othercredit>
|
| 69 |
<contrib>スペルおよび文法修正</contrib>
|
| 70 |
<firstname>Guy</firstname>
|
| 71 |
<surname>Brand</surname>
|
| 72 |
<affiliation>
|
| 73 |
<address><email>guybrand@chimie.u-strasbg.fr</email></address>
|
| 74 |
</affiliation>
|
| 75 |
</othercredit>
|
| 76 |
<othercredit>
|
| 77 |
<contrib>スペルおよび文法、スタイル修正</contrib>
|
| 78 |
<firstname>John</firstname>
|
| 79 |
<surname>van der Koijk</surname>
|
| 80 |
<affiliation>
|
| 81 |
<address><email>jvdkoijk@wirehub.nl</email></address>
|
| 82 |
</affiliation>
|
| 83 |
</othercredit>
|
| 84 |
<othercredit>
|
| 85 |
<contrib>日本語翻訳</contrib>
|
| 86 |
<firstname>Kenshi</firstname>
|
| 87 |
<surname>Muto</surname>
|
| 88 |
<affiliation>
|
| 89 |
<address><email>kmuto@debian.org</email></address>
|
| 90 |
</affiliation>
|
| 91 |
</othercredit>
|
| 92 |
<releaseinfo>$Id: howto.ja.db,v 1.3 2000-11-21 00:15:22 joy Exp $</releaseinfo>
|
| 93 |
<copyright>
|
| 94 |
<year>1999</year>
|
| 95 |
<holder>Stéphane Bortzmeyer</holder>
|
| 96 |
</copyright>
|
| 97 |
<legalnotice>
|
| 98 |
<para>このテキストは <ulink url="http://www.gnu.org/copyleft/gpl.html">General Public License</ulink> にて配布されます。</para>
|
| 99 |
</legalnotice>
|
| 100 |
</artheader>
|
| 101 |
|
| 102 |
<sect1>
|
| 103 |
<title>なぜこの HOWTO が?これはなんですか?</title>
|
| 104 |
<para>この章ではなぜこの HOWTO が存在し、どのような人々を助けようとしているか説明します。時間の無駄になる前に最初に読んでください。</para>
|
| 105 |
<sect2>
|
| 106 |
<title>この HOWTO は何か</title>
|
| 107 |
<para>この HOWTO は Debian オペレーティングシステムで SGML や XML を使う上で<emphasis>実用的</emphasis>な情報を含んでいます。</para>
|
| 108 |
<para>HOWTO はタスク指向です: あなたはさまざまな作業に必要な Debian パッケージが何か、そしてそれをどのように使うかわかるでしょう。開始する前にすべてを読んだり理解するのを好まなかったり "hands on" トレーニングのほうを好むせっかちな人々向けになっています。
|
| 109 |
</para>
|
| 110 |
<para>我々は SGML (およびそのサブセットの XML) 、重要と思われるいくつかの DTD と書くためのツール、 SGML のフォーマットとWeb や印刷の双方での表示、をカバーします。一般データの交換ツールではなく、 SGML ドキュメントを書くためのやり方であることを強調しておきます。</para>
|
| 111 |
</sect2>
|
| 112 |
<sect2>
|
| 113 |
<title>この HOWTO には何がないですか</title>
|
| 114 |
<para>私たちは Debian システムを想定し、ソフトウェアはすべてパッケージ化されているので、あなたはそのインストールやセットアップについては何も見い出せないでしょう。私たちは <phrase debianversionequal="2.2">Debian 2.2 、通称 'potato' (執筆時点ではまだリリースではありません)</phrase>、<phrase debianversionequal="2.1">Debian 2.1 、通称 'slink'</phrase> として出している Debian パッケージだけを使います。
|
| 115 |
</para>
|
| 116 |
<para>これは SGML や XML のチュートリアルではありません。この種の情報については、<xref linkend="references"/> を参照してください。その代わり、あなたは正しく開始するのに十分な SGML を得られるでしょう。
|
| 117 |
</para>
|
| 118 |
</sect2>
|
| 119 |
<sect2>
|
| 120 |
<title>この HOWTO についてのメタ情報</title>
|
| 121 |
<para>この HOWTO はそれ自身が Debian システムの DocBook (XML) で書かれています。 HOWTO は<ulink url="http://www.debian.org/~bortz/SGML-HOWTO/">筆者の Web ページ</ulink>からその<ulink url="http://www.debian.org/~bortz/SGML-HOWTO/howto.db">ソースコード</ulink>を含めて取得できます。
|
| 122 |
</para>
|
| 123 |
</sect2>
|
| 124 |
<sect2>
|
| 125 |
<title>なぜこの HOWTO は Debian 固有なのか?</title>
|
| 126 |
<para>私は、早く開始する、ということを言いました。思い出しましたか? これは、実際のファイル名、実際のコマンドを意味しており、 <application>jade</application>をコンパイルするという時間の消費を意味してはいません。それに私は "Your mileage way vary" (人それぞれ) という警告をすべてに挿入するのは嫌いです。そのため、私は特定のオペレーティングシステム、私が最もよく使っていて、統合 SGML 環境のある唯一のものである <ulink url="http://www.debian.org/">Debian</ulink> を選択します。完璧ではないにせよ、動作しますし、この HOWTO も含めドキュメントも持っています。
|
| 127 |
</para>
|
| 128 |
<para>私は<link linkend="otheros">その他のオペレーティングシステム</link>にいくつかのポインタを追加しました。
|
| 129 |
</para>
|
| 130 |
</sect2>
|
| 131 |
</sect1>
|
| 132 |
|
| 133 |
<sect1>
|
| 134 |
<title>あなたが実際に SGML について知る必要があること</title>
|
| 135 |
<para>私はこの節を短いままにしておこうと努めました。しかしながら、私は SGML についての概念の少数の基礎知識なしにすべてを説明できません。そのため、私たちが実際にソースコードに移る前にやっておきましょう。
|
| 136 |
</para>
|
| 137 |
<sect2>
|
| 138 |
<title>構造化ドキュメントとは何か?</title>
|
| 139 |
<para>構造化ドキュメントは構造化エレメント (要素) の上に構築されています:
|
| 140 |
章、節、段落、などなどすべてのエレメントはそれらが何かによって明らかにラベルされます: 参照、プログラムの出力、など。ドキュメントをどのように表現すべきかについての明確な情報は何も与えられていません; その構造 (およびコンテンツ (テキスト内容) )についての情報だけが与えられます。
|
| 141 |
体裁の明確なルールがあるときには、それらは SGML ドキュメントの外側に置かれます。
|
| 142 |
</para>
|
| 143 |
<para>これは AI システムを待つことなくドキュメントの自動的な処理を可能とします。それは意味を伝達する構造に集中し、著者を助けます。
|
| 144 |
</para>
|
| 145 |
<para>ですから、 "私は SGML でボールドの単語はどうやって置いたらいいのか?" という疑問はあまり適切ではありません。どうやってテキストの広がりに強調を置くか尋ねることは<emphasis>できる</emphasis>でしょう。
|
| 146 |
</para>
|
| 147 |
</sect2>
|
| 148 |
<sect2>
|
| 149 |
<title>SGML とは何か?</title>
|
| 150 |
<para>Standard Generalized Markup Language (標準汎用マークアップ言語) は、構造化ドキュメントの著述を容易にするための標準化された言語です
|
| 151 |
<footnote><para>データ交換のようなそのほかの用途もあります。</para></footnote>。 さらに特定すると、それはメタ言語です。あなたは実際に SGML をタイプすることはありませんが、 SGML は、どのように特定のドキュメントが構造化されて (書かれて) いるか定義するドキュメントタイプの特定の構造化言語 (これは DTD 、 Document Type Definition (ドキュメント型定義) と呼ばれます) を著述するために使われます。
|
| 152 |
</para>
|
| 153 |
<para>そのため、 "SGML フォーマットによる" ドキュメントは、技術的に正しいですが、誤りやすいものです。 DocBook フォーマットや LinuxDoc フォーマット、 TEI フォーマットによるドキュメントはそう言えます。
|
| 154 |
</para>
|
| 155 |
</sect2>
|
| 156 |
|
| 157 |
<sect2>
|
| 158 |
<title>SGML の見ためはどのようなものか?</title>
|
| 159 |
<para>SGML はマークアップ言語です。すべての SGML ドキュメントは、<emphasis>エレメント</emphasis>(要素)を区切る<emphasis>タグ</emphasis>の合わさったテキストを含んでいます<footnote><para>終了タグが必須かどうかは DTD に依存します。 XML では、終了タグは常に必須です。</para>
|
| 160 |
</footnote>。 SGML はいくつかの文法を使えますが、最も共通な、アングル括弧 < と > で囲まれるタグを使った、指示文法を守っていきます。例は次のとおりです:</para>
|
| 161 |
<programlisting role="docbook">
|
| 162 |
<![CDATA[
|
| 163 |
<article>
|
| 164 |
|
| 165 |
<title>The Foo software</title>
|
| 166 |
|
| 167 |
<para>
|
| 168 |
Foo is very fast. And its documentation can be read easily.
|
| 169 |
</para>
|
| 170 |
]]>
|
| 171 |
</programlisting>
|
| 172 |
<para>HTML に似ているように見えますが、その理由は HTML が (理論的には) SGML の DTD だからです。</para>
|
| 173 |
<para>エレメントは<emphasis>コンテンツ</emphasis> (内容) を持ちます。たとえば、上記の <sgmltag>para</sgmltag> エレメントのコンテンツは "Foo is very fast.
|
| 174 |
And its documentation can be read easily." です。</para>
|
| 175 |
<para>エレメントはさらなる情報を示す<emphasis>アトリビュート</emphasis> (属性) を持つことができます。たとえば:</para>
|
| 176 |
<programlisting role="docbook">
|
| 177 |
<![CDATA[
|
| 178 |
<example tested="true">
|
| 179 |
*c++;
|
| 180 |
</example>
|
| 181 |
]]>
|
| 182 |
</programlisting>
|
| 183 |
<para>いくつかのテキストをパラメータ化できる<emphasis>エンティティ</emphasis> (実体) もまた持つことができます。たとえば、もしあなたがしばしば "the Best Operating System, Debian" を参照し、毎回これをタイプするのを避けたい、いっそう悪いことに、もしあなたが最終的により上品な単語に決めたときにすべてのこの文字列を変更しなければならない、といったときには、エンティティを宣言できます。それを "debian" と呼び、アンパサンドと共に "&debian;" のように使います<footnote><para>これは<emphasis>実体参照</emphasis>です。 SGML はその他の実体タイプも使いますが、この HOWTO ではカバーしません。</para></footnote>。</para>
|
| 184 |
<para>1つのエレメントは特別です:<emphasis>ルートエレメント</emphasis>はグローバルエレメントで、すべてを含みます。 XML では、 DOCTYPE 行がどのエレメントがルートであるかを示します。例は次のとおりです<phrase debianversionequal="2.2"> (Debian 2.2 の SGML 環境には次の DTD の完全パス名を必要とする<emphasis>バグがある</emphasis>ように見えます。もしそうなら、これはバグで、私が調査します。<comment>TODO: それをしなさい。psgml に対するバグは記入しました。それにフォローしなさい。</comment>)</phrase>:</para>
|
| 185 |
<programlisting role="docbook">
|
| 186 |
<![CDATA[
|
| 187 |
<!DOCTYPE article PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1//EN"
|
| 188 |
"dtd/docbook-xml/docbookx.dtd"[
|
| 189 |
]]>
|
| 190 |
</programlisting>
|
| 191 |
<sect3><title>そして XML ファイル?</title>
|
| 192 |
<para>あなたは<link linkend="xml">あとで XML について</link>学びます。 XML ファイルは、いくつかのメタ情報と同様、 XML ファイルであることを示すための <? で開始する<emphasis>処理指示</emphasis>で最初にはじまる、と言っておきます。例:</para>
|
| 193 |
<programlisting role="docbook">
|
| 194 |
<![CDATA[
|
| 195 |
<?xml version="1.0" encoding="utf-8"?>
|
| 196 |
]]>
|
| 197 |
</programlisting>
|
| 198 |
<para>XML ファイルは、タグのバランスが取れている (多くの Web エディタの HTML 出力に共通の、タグの交差がない) ことを意味する<emphasis>正しい書式</emphasis>になっている必要があり、それらの DTD に従っていることを意味する<emphasis>妥当性</emphasis>があります。
|
| 199 |
</para>
|
| 200 |
<para>XML では、開始タグは常に終了タグを持ちますが、あなたは、
|
| 201 |
開始タグと終了タグを、終了に似せて / が書かれたタグにマージした<emphasis>空エレメント</emphasis>を持つことができます:</para>
|
| 202 |
<programlisting role="xml">
|
| 203 |
<![CDATA[
|
| 204 |
<foobar/>
|
| 205 |
]]>
|
| 206 |
</programlisting>
|
| 207 |
</sect3>
|
| 208 |
</sect2>
|
| 209 |
|
| 210 |
<sect2>
|
| 211 |
<title>DTD とは何か?</title>
|
| 212 |
<para>Document Type Definition (ドキュメント型定義) は固有の言語の (SGML による) 著述です。あなたはあなた自身の DTD (XML でも特に非常に異なるというわけではありません) を書くことも、あなたがほかの人々とドキュメントを交換したいと思うなら適切な既存の DTD を使うこともできます。いつかのそれぞれの DTD は一般的に、人々のグループ (天文学者、科学者、古代文学の古典学者 ...) に与えられた目的のために存在します。
|
| 213 |
</para>
|
| 214 |
<para>DTD は許可されたエレメントとそれらの関係 (たとえば、 <sgmltag>chapter</sgmltag> (章) は少なくとも1つの <sgmltag>section</sgmltag> (節) を持つ必要があることを表す) を一覧します。</para>
|
| 215 |
<para>有用と思われる典型的な DTD:</para>
|
| 216 |
<itemizedlist>
|
| 217 |
<listitem>
|
| 218 |
<para><ulink url="http://www.oasis-open.org/docbook/">DocBook</ulink> は主に技術ドキュメント、特にソフトウェアについてのドキュメントを書くためのものです。
|
| 219 |
</para>
|
| 220 |
</listitem>
|
| 221 |
<listitem>
|
| 222 |
<para><ulink url="http://www.linuxdoc.org/">LinuxDoc</ulink>
|
| 223 |
は、たとえば Linux HOWTO のような Linux Documentation Project によって使われています。 LDP は DocBook に切り替えることを決定しましたが、転換は実行されていません。</para>
|
| 224 |
</listitem>
|
| 225 |
<listitem>
|
| 226 |
<para><ulink url="http://packages.debian.org/stable/text/debiandoc-sgml.html">DebianDoc</ulink> は
|
| 227 |
<ulink url="http://www.debian.org/doc/ddp">Debian Documentation Project</ulink> によって一部で使われます。</para>
|
| 228 |
</listitem>
|
| 229 |
<listitem>
|
| 230 |
<para><ulink url="http://www.w3.org/MarkUp/">HTML</ulink> は理論的に SGML DTD ですが、実際には、従っている Web ページは 非常に少数です。そのため、ほとんどの SGML ツールは典型的な Web ページを受け入れないでしょう。
|
| 231 |
</para>
|
| 232 |
</listitem>
|
| 233 |
</itemizedlist>
|
| 234 |
<para>ドキュメントの最初の部分で、あなたは使う DTD への参照 (そのような参照を示すためのいくつかのやり方があります; 次の例は LinuxDoc 用です) を見いだすでしょう:
|
| 235 |
</para>
|
| 236 |
<programlisting role="linuxdoc">
|
| 237 |
<![CDATA[
|
| 238 |
<!doctype linuxdoc system>
|
| 239 |
|
| 240 |
<article>
|
| 241 |
|
| 242 |
<title>The Linux Kernel HOWTO
|
| 243 |
]]>
|
| 244 |
</programlisting>
|
| 245 |
<comment>TODO: FPI 、 PUBLIC 、それに SYSTEM、などなどについて言及。</comment>
|
| 246 |
</sect2>
|
| 247 |
|
| 248 |
<sect2>
|
| 249 |
<title>どの DTD を選ぶか?</title>
|
| 250 |
<para>たいてい、あなたは選択の余地はないでしょう: あなたが属するプロジェクトはすでに選んでいるでしょう。大きなプロジェクトでは標準化はもちろん非常に重要なので、あなたがそれを変更することができる機会はわずかでしょう。たとえば、 Linux Documentation Project は LinuxDoc を使い、 <ulink
|
| 251 |
url="http://www.freebsd.org/docproj/docproj.html">FreeBSD</ulink> 、
|
| 252 |
<ulink url="http://developer.gnome.org/arch/doc/tools.html">GNOME</ulink> あるいは <ulink
|
| 253 |
url="http://www.kde.org/documentation/index.html">KDE</ulink> は DocBook を使います、などなど。</para>
|
| 254 |
<para>もしあなたが選択権を持つなら、私は似たプロジェクトが行っているものに合わせることを提案します。もしあなたがコンピュータのハードウェアやソフトウェアについての技術ドキュメントを書くのなら、これはたぶん DocBook を使うことを意味するでしょう。</para>
|
| 255 |
</sect2>
|
| 256 |
|
| 257 |
<sect2>
|
| 258 |
<title>私は SGML をどのように書くのか?</title>
|
| 259 |
<para>SGML はマークアップ言語なので、あなたは <application>vi</application> やさらには <application>cat</application> のようなどのエディタを使ってもかまいません。
|
| 260 |
</para>
|
| 261 |
<para>しかし、タグの挿入、知識 - たとえば妥当であること、といったあなたを援助するエディタを使うほうがしばしばより簡単です。私は<application>Emacs</application> とその <link linkend="psgml">SGML mode</link> を推奨します。
|
| 262 |
</para>
|
| 263 |
</sect2>
|
| 264 |
|
| 265 |
<sect2 id="xml">
|
| 266 |
<title>XML とは何か?</title>
|
| 267 |
<para>XML (Extensible Markup Language (拡張可能マークアップ言語) ) は SGML のサブセットで、 SGML-- の一種です。最初に World-Wide Web のために設計されましたが、無関係の分野でも現在使われています。</para>
|
| 268 |
<para>XML は SGML よりもずっとシンプルで、オプションは少なく、そのためにパーサはより軽くより高速です。</para>
|
| 269 |
</sect2>
|
| 270 |
|
| 271 |
<sect2>
|
| 272 |
<title>スタイルシートとは何か?</title>
|
| 273 |
<para>マークアップの世界において、あなたは体裁からコンテンツを分割するために努めます。コンテンツは SGML ドキュメントで明示され、与えられた DTD に従います。体裁はドキュメントの外側で明示され、一般的には DTD 固有で、適切な言語 (<ulink
|
| 274 |
url="http://www.jclark.com/dsssl/">DSSSL
|
| 275 |
</ulink> - Document Style Semantics and
|
| 276 |
Specification Language - が最も一般的です<footnote><para>
|
| 277 |
XML の世界では、現時点ではいくつかの実装を持つ新しい言語 <ulink
|
| 278 |
url="http://www.w3.org/Style/XSL/">XSL</ulink> が作られています<phrase debianversionmax="2.1">
|
| 279 |
(Debian 2.2 の前にはありません)</phrase>。
|
| 280 |
あなたが実行サマリで読めるものにかかわらず、 XML ファイルを表現するために DSSSL を使うことは完璧に受容できます。
|
| 281 |
</para></footnote>) によって著述された、確かな DTD で書かれたドキュメント用のレイアウトルールのスタイルシートです。
|
| 282 |
</para>
|
| 283 |
<para>たとえば、タイトルはボールドで表現、 URL は赤で印刷、などといったことを決めるのは、スタイルシートの著者です。</para>
|
| 284 |
<para>もしあなたが <ulink url="http://www.w3.org/Style/css/">
|
| 285 |
CSS</ulink> (Cascading
|
| 286 |
Style Sheets) 言語を知っているのであれば、 SGML スタイルシートの形式言語はより混み入っていることを注意しておきます: それらはエレメントの表現を指定するだけでなく、エレメントの整理、いくつかのエレメントからのデータの計算などもまた許可します。 DSSSL は、たとえばスタイルシートを構成するための豊富な full blowin プログラミング言語 (Scheme がベース) です。</para>
|
| 287 |
</sect2>
|
| 288 |
|
| 289 |
</sect1>
|
| 290 |
|
| 291 |
<sect1>
|
| 292 |
<title>DocBook でドキュメントを作成</title>
|
| 293 |
<para>ここでは、私たちは DocBook DTD を使ってドキュメントをどのように書き、処理するかを理解します。私が XML <footnote><para>さらに DocBook の将来のバージョンは <ulink url="http://www.oasis-open.org/docbook/meetings/min19990308.html">XML</ulink> だからでもあります。</para></footnote> を好むので、私たちはしばしば DocBk と名付けられた XML バージョンを使いますが、ここに書かれたことのほとんどは SGML バージョンにも同様に応用できます。
|
| 294 |
</para>
|
| 295 |
<para debianversionmax="2.1">2.2 'potato' よりも前の Debian システムでそれを使うためには、 <debianpackage>docbook-xml</debianpackage> が必要です。 'slink' システムに正常にインストールでき、何も破壊しません(単に DTD で、特有のライブラリに依存しません) 。
|
| 296 |
</para>
|
| 297 |
<sect2>
|
| 298 |
<title>DocBook を書く</title>
|
| 299 |
<para>もし DocBook ファイルを受け取っていてそれを編集するよりむしろ処理したいのであれば、あなたはこの節を飛ばせます。</para>
|
| 300 |
<para>あらゆる DTD に似て、私は DocBook を書くのに &psgml; を推奨します。</para>
|
| 301 |
<para>最初に、最もシンプルで望ましい <sgmltag>article</sgmltag> をルートエレメントを選択します。次のように開始します:
|
| 302 |
</para>
|
| 303 |
<programlisting role="docbook">
|
| 304 |
<![CDATA[
|
| 305 |
<?xml version="1.0"?>
|
| 306 |
<!DOCTYPE article PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1//EN"
|
| 307 |
"dtd/docbook-xml/docbookx.dtd">
|
| 308 |
<article>
|
| 309 |
<artheader>
|
| 310 |
<title>My first XML document</title>
|
| 311 |
</artheader>
|
| 312 |
<section>
|
| 313 |
<title>My first section</title>
|
| 314 |
<para>My first paragraph.</para>
|
| 315 |
</section>
|
| 316 |
</article>
|
| 317 |
]]>
|
| 318 |
</programlisting>
|
| 319 |
<para>これは完全な DocBook ドキュメントです。あなたは<link linkend="nsgmls">それの妥当性確認</link>ができます。
|
| 320 |
</para>
|
| 321 |
<para>典型的な DocBook ドキュメントは book 、 chapter 、あるいは article をルートエレメントとして使います。さらに、それらはドキュメントのタイトルのようなメタ情報を見い出せるヘッダを含みます。このヘッダのあとに、 DocBook ドキュメントはそれぞれがタイトルを持つ節に分割されます。
|
| 322 |
<comment>もっと詳細にするのがよいだろう。</comment>
|
| 323 |
</para>
|
| 324 |
<para>エレメントの完全な一覧を知るためには、
|
| 325 |
<debiandoc text="the set of DocBook texts">docbook-doc</debiandoc> 、 さらに特別には
|
| 326 |
<debiandoc file="r2333.html" text="DocBook DTD Reference">docbook-doc</debiandoc> を参照してください。</para>
|
| 327 |
</sect2>
|
| 328 |
|
| 329 |
<sect2>
|
| 330 |
<title>DocBook ドキュメントの処理</title>
|
| 331 |
<para>思い出してください。 DocBook はプログラムではなく、フォーマットです。 "DocBook は PDF 出力を持っていますか?" という質問は無意味です。 DocBook を使うソフトウェアは PDF を製作できるでしょう。 DocBook それ自身は何もありません。
|
| 332 |
</para>
|
| 333 |
<para>DocBook ドキュメントから印刷された紙、 Web ページやマニュアルページを製作するためにはいくつかの異なる解決があります。あなたは、 Perl モジュール XML::Parser や Java モジュール XP のようなツールを使って、変換のようなことをあなた自身でプログラムできます。あるいは、あなた自身が書いてもよくまた書かなくてもよいスタイルシートを使えます。もしあなたがそれらを書かないことを決めたら、 &jade; と共に &modular_ss; を使うことができます。</para>
|
| 334 |
<para>私たちは DocBook の XML バージョンを使っているので、 <filename>myfile.db</filename> を TeX に変換するために &jade; を呼び出す方法は次のとおりです:
|
| 335 |
</para>
|
| 336 |
<programlisting role="shell">
|
| 337 |
jade -t tex \
|
| 338 |
-d &print_ss; \
|
| 339 |
&xml_decl; myfile.db
|
| 340 |
</programlisting>
|
| 341 |
<para>&jadetex; マクロと 処理に必要となる &jadetex; プログラムを使って TeX ファイルを製作します:</para>
|
| 342 |
<programlisting role="shell">
|
| 343 |
jadetex myfile.tex
|
| 344 |
</programlisting>
|
| 345 |
<para>HTML のためには:</para>
|
| 346 |
<programlisting role="shell">
|
| 347 |
jade -t sgml \
|
| 348 |
-d &html_ss; \
|
| 349 |
&xml_decl; myfile.db
|
| 350 |
</programlisting>
|
| 351 |
<para>不運にも、 DocBook ファイルからテキストだけの出力、たとえば Usenet に投稿するためのテキストを作る簡単な方法はありません。最も役に立つ解決は、次のように <application>lynx</application> と共にごちゃごちゃとやることです。:</para>
|
| 352 |
<programlisting role="shell">
|
| 353 |
jade -t sgml -V nochunks \
|
| 354 |
-d &html_ss; \
|
| 355 |
&xml_decl; myfile.db > dump.html
|
| 356 |
lynx -force_html -dump dump.html > myfile.txt
|
| 357 |
</programlisting>
|
| 358 |
<sect3 debianversionmin="2.2"><title>SGMLtools の使用</title>
|
| 359 |
<para>あなたは &sgmltools2; もまた使うことができます。これはよりシンプルで、 &sgmltools2; は jade 、 jadetex 、それに lynx によって実行されるタスクを自動化します。しかし、 DocBook の XML バージョンでは動作<emphasis>しません</emphasis>。ファイルを HTML に変換するためには:
|
| 360 |
</para>
|
| 361 |
<programlisting role="shell">
|
| 362 |
sgmltools --backend=ps howto.db
|
| 363 |
</programlisting>
|
| 364 |
<para>PostScriptのためには:</para>
|
| 365 |
<programlisting role="shell">
|
| 366 |
sgmltools --backend=ps howto.db
|
| 367 |
</programlisting>
|
| 368 |
<para>純粋なテキストのためには:</para>
|
| 369 |
<programlisting role="shell">
|
| 370 |
sgmltools --backend=txt howto.db
|
| 371 |
</programlisting>
|
| 372 |
</sect3>
|
| 373 |
<sect3><title><application>make</application> による自動化</title>
|
| 374 |
<para>DocBook から複雑なすべてへの変換に必要な操作には、 <application>make</application> の利用を推奨します。
|
| 375 |
<filename>Makefile</filename> の例は次のとおりです:</para>
|
| 376 |
<programlisting role="makefile">
|
| 377 |
<![CDATA[
|
| 378 |
MAX_TEX_RECURSION=4
|
| 379 |
XML_DECL=/usr/lib/sgml/declaration/xml.decl
|
| 380 |
HTML_SS=/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl
|
| 381 |
PRINT_SS=/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl
|
| 382 |
|
| 383 |
all: myfile
|
| 384 |
|
| 385 |
myfile: myfile.ps myfile.txt myfile.html
|
| 386 |
|
| 387 |
myfile.tex: myfile.db
|
| 388 |
jade -t tex \
|
| 389 |
-d $(PRINT_SS) \
|
| 390 |
$(XML_DECL) $<
|
| 391 |
|
| 392 |
myfile.dvi: myfile.tex
|
| 393 |
# Trick from Adam Di Carlo <adam@onshore.com> to recurse jadetex
|
| 394 |
# "just enough".
|
| 395 |
-cp -pf prior.aux pprior.aux
|
| 396 |
-cp -pf $(shell basename $< .tex).aux prior.aux
|
| 397 |
jadetex $<
|
| 398 |
if ! cmp $(shell basename $< .tex).aux prior.aux && \
|
| 399 |
! cmp $(shell basename $< .tex).aux pprior.aux && \
|
| 400 |
expr $(MAKELEVEL) '<' $(MAX_TEX_RECURSION); then \
|
| 401 |
rm -f $@ ;\
|
| 402 |
$(MAKE) $@ ;\
|
| 403 |
fi
|
| 404 |
rm -f prior.aux pprior.aux
|
| 405 |
|
| 406 |
myfile.ps: myfile.dvi
|
| 407 |
dvips -f $< > $@
|
| 408 |
|
| 409 |
myfile.html: myfile.db html.dsl
|
| 410 |
jade -t sgml \
|
| 411 |
-d $(HTML_SS) \
|
| 412 |
$(XML_DECL) $<
|
| 413 |
|
| 414 |
myfile.txt: myfile.db
|
| 415 |
jade -t sgml -V nochunks \
|
| 416 |
-d $(HTML_SS) \
|
| 417 |
$(XML_DECL) $< > dump.html
|
| 418 |
lynx -force_html -dump dump.html > $@
|
| 419 |
-rm -f dump.html
|
| 420 |
|
| 421 |
validate:
|
| 422 |
nsgmls -s -wxml $(XML_DECL) myfile.db
|
| 423 |
|
| 424 |
clean:
|
| 425 |
rm -f *.html *.aux *.log *.dvi *.ps *.tex *.txt
|
| 426 |
]]>
|
| 427 |
</programlisting>
|
| 428 |
</sect3>
|
| 429 |
<sect3 debianversionmin="2.2"><title>Misc</title>
|
| 430 |
<comment>TODO: さまざまな言語による局所化。</comment>
|
| 431 |
<para>DocBook を man ページやその他のフォーマットに変換するためには、 <debianpackage name="docbook2X"
|
| 432 |
refserver="http://shell.ipoline.com/~elmert/hacks/docbook2X/">docbook2man</debianpackage>
|
| 433 |
および <debianpackage>docbook-to-man-ans</debianpackage> を参照してください。
|
| 434 |
</para>
|
| 435 |
</sect3>
|
| 436 |
<sect3>
|
| 437 |
<title>モジュール DocBook スタイルシートのカスタマイズ</title>
|
| 438 |
<para>もしあなたが<link linkend="customdb">カスタムエレメントを書</link>いたり、デフォルトのエレメントの表現を変更したかったり、単に少しだけ出力をカスタマイズしたかったり (デフォルトのフォントを変更するなど) ということなら、カスタムスタイルシートを定義する必要があるでしょう。これはすべてを再度打ち直すことを意味しません。 DSSSL は1つのスタイルシートをもう1つで "使う" ことができます。スタイルシートは、それが使っているスタイルシートのプロパティのすべてを継承しますが、ローカルな定義がインポートしているそれよりも優先権を得ます。カスタムスタイルシートの例は次のとおりです:
|
| 439 |
</para>
|
| 440 |
|
| 441 |
<programlisting role="dsssl">
|
| 442 |
<![CDATA[
|
| 443 |
|
| 444 |
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
|
| 445 |
<!ENTITY docbook.dsl
|
| 446 |
PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"
|
| 447 |
CDATA DSSSL>
|
| 448 |
]>
|
| 449 |
|
| 450 |
<style-sheet>
|
| 451 |
<style-specification use="docbook">
|
| 452 |
<style-specification-body>
|
| 453 |
|
| 454 |
(define %body-font-family%
|
| 455 |
;; The font family used in body text
|
| 456 |
"Palatino")
|
| 457 |
|
| 458 |
</style-specification-body>
|
| 459 |
</style-specification>
|
| 460 |
|
| 461 |
<external-specification id="docbook" document="docbook.dsl">
|
| 462 |
|
| 463 |
</style-sheet>
|
| 464 |
]]>
|
| 465 |
</programlisting>
|
| 466 |
<para>あなたのスタイル指示 (ここではフォントを Palatino に変更) は、 DSSSL で書かれている必要があります。 DSSSL の文法と多くの語義は、それ自身は Lisp の方言であるプログラミング言語 Scheme から来ています。あなたは Scheme について学ぶ必要はありません。 <phrase debianversionmax="2.1"><debiandoc text="documentation of the Modular Stylesheets" file="doc/custom.html">docbook-stylesheets</debiandoc></phrase><phrase debianversionmin="2.2"><debiandoc text="documentation of the Modular Stylesheets" file="custom.html">docbook-stylesheets-doc</debiandoc></phrase>
|
| 467 |
はたくさんの用途例を含んでいます。</para>
|
| 468 |
<para>1つは印刷用で、もう1つは HTML 用の2つのスタイルシートが実際にあります。上のカスタムスタイルシートは最初の1つのほうだけで動きます。2つめのために、例を次に挙げます:</para>
|
| 469 |
<programlisting role="dsssl">
|
| 470 |
<![CDATA[
|
| 471 |
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
|
| 472 |
<!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook HTML Stylesheet//EN" CDATA dsssl>
|
| 473 |
]>
|
| 474 |
<style-sheet>
|
| 475 |
|
| 476 |
<style-specification id="html" use="docbook">
|
| 477 |
<style-specification-body>
|
| 478 |
|
| 479 |
(define %generate-article-titlepage% #t)
|
| 480 |
|
| 481 |
</style-specification-body>
|
| 482 |
</style-specification>
|
| 483 |
|
| 484 |
<external-specification id="docbook" document="docbook.dsl">
|
| 485 |
|
| 486 |
</style-sheet>
|
| 487 |
]]>
|
| 488 |
</programlisting>
|
| 489 |
<para>双方のケースで、あなたは使うスタイルシートを Jade に教える必要があります。ここでは <filename>myprint.dsl</filename> です:</para>
|
| 490 |
<programlisting role="shell">
|
| 491 |
jade -t tex \
|
| 492 |
-d myprint.dsl \
|
| 493 |
&xml_decl; myfile.db
|
| 494 |
</programlisting>
|
| 495 |
|
| 496 |
</sect3>
|
| 497 |
<sect3 id="customdb"><title>DocBook DTD のカスタマイズ</title>
|
| 498 |
<para>
|
| 499 |
DocBook はカスタマイズできるようになっています。たくさんのやり方<footnote><para>DTD のコピーとその編集を含みます。しかし、私は、 DocBook の今後のバージョンで多すぎる問題を作ることなしに DTD を変更する `クリーン' なやり方に言及していました。</para></footnote>がありますが、注意してください: カスタマイズはドキュメントをその他と交換するときに問題を導くことがあります。 <debiandoc
|
| 500 |
text="Customizer's Guide for the DocBook DTD" file="book68527.html">docbook-doc</debiandoc> を参照してください。
|
| 501 |
</para>
|
| 502 |
<para>もしあなたが新しいエレメントを追加したら、たぶんスタイルシートも同様にカスタマイズして作らなければならないでしょう。</para>
|
| 503 |
<comment>
|
| 504 |
カスタマイズの例を挙げる。
|
| 505 |
</comment>
|
| 506 |
</sect3>
|
| 507 |
</sect2>
|
| 508 |
|
| 509 |
</sect1>
|
| 510 |
|
| 511 |
<sect1>
|
| 512 |
<title>LinuxDoc によるドキュメントの作成</title>
|
| 513 |
<para>LinuxDoc DTD を使ってドキュメントを書き、処理してみましょう。</para>
|
| 514 |
<sect2>
|
| 515 |
<title>LinuxDoc を書く</title>
|
| 516 |
<para>もし LinuxDoc ファイル (たとえば <ulink
|
| 517 |
url="http://metalab.unc.edu/pub/Linux/docs/HOWTO/other-formats/sgml/">
|
| 518 |
LinuxDoc サーバー</ulink>で見つけられるような Linux HOWTO の1つ) をちょうど受け取っているなら、あなたはこの節を飛ばせます。
|
| 519 |
</para>
|
| 520 |
<para>あなたは LinuxDoc ドキュメントを &psgml; を使って書くことができます。次のものは、サンプルの例です:</para>
|
| 521 |
<programlisting role="linuxdoc">
|
| 522 |
<![CDATA[
|
| 523 |
<!doctype linuxdoc system>
|
| 524 |
<article>
|
| 525 |
|
| 526 |
<title>Quick SGML Example
|
| 527 |
<author>Matt Welsh, <tt>mdw@cs.cornell.edu</tt>
|
| 528 |
<date>v1.0, 28 March 1994
|
| 529 |
<abstract>
|
| 530 |
This document is a brief example using the Linuxdoc-SGML DTD.
|
| 531 |
</abstract>
|
| 532 |
|
| 533 |
<sect>Introduction
|
| 534 |
|
| 535 |
<p>
|
| 536 |
This is an SGML example file using the Linuxdoc-SGML DTD.
|
| 537 |
|
| 538 |
</article>
|
| 539 |
]]>
|
| 540 |
</programlisting>
|
| 541 |
<para>LinuxDoc ドキュメントのより複雑な例は、 <debiandoc file="example.sgml.gz">sgml-tools</debiandoc> です。</para>
|
| 542 |
<para>合法のエレメントの一覧を学ぶためには、 <debiandoc
|
| 543 |
file="html/guide.html.gz">sgml-tools</debiandoc><phrase
|
| 544 |
debianversionmax="2.2"> (現在のものはバギーです: HTML ファイルは圧縮されており、あなたのブラウザに損害を与えるでしょう) </phrase><comment>TODO 動いているかな? HTML ファイルが gzip されるように見える :-( バグ報告に記入しよう。</comment> あるいは <ulink
|
| 545 |
url="http://www.sgmltools.org/guide/guide.html">Matt Welsh's guide</ulink> を参照してください。</para>
|
| 546 |
</sect2>
|
| 547 |
<sect2>
|
| 548 |
<title>LinuxDoc の処理</title>
|
| 549 |
<para>あなたは &sgmltools1; を使うことになります。 LinuxDoc ドキュメントを HTML に変換するためには:
|
| 550 |
</para>
|
| 551 |
<programlisting role="shell">
|
| 552 |
sgml2html document.sgml
|
| 553 |
</programlisting>
|
| 554 |
<para>通常のテキスト、たとえば News にそれを投稿するためには:</para>
|
| 555 |
<programlisting role="shell">
|
| 556 |
sgml2txt document.sgml
|
| 557 |
</programlisting>
|
| 558 |
<para>LaTeX を使って PostScript にするためには:</para>
|
| 559 |
<programlisting role="shell">
|
| 560 |
sgml2latex --output=ps document.sgml
|
| 561 |
</programlisting>
|
| 562 |
<comment>
|
| 563 |
拡張子は .sgml でなければならないか、 sgml-tools では不適当。
|
| 564 |
things.
|
| 565 |
</comment >
|
| 566 |
<para>あなたはさらなる情報を <phrase
|
| 567 |
debianversionmax="2.1">sgmltools(1)</phrase><phrase debianversionmin="2.2">sgmltools.v1(1)</phrase> で得られます。</para>
|
| 568 |
<comment>TODO: さまざまな言語での局所化。</comment>
|
| 569 |
</sect2>
|
| 570 |
|
| 571 |
</sect1>
|
| 572 |
|
| 573 |
<sect1>
|
| 574 |
<title>DebianDoc によるドキュメントの作成</title>
|
| 575 |
<para>ここでは、私たちは、 DebianDoc DTD を使ってドキュメントをどうやって書き、処理するか理解するでしょう。
|
| 576 |
</para>
|
| 577 |
<sect2><title>DebianDoc ドキュメントを書く</title>
|
| 578 |
<para>次のものは、 DebianDoc ドキュメントのサンプルです:</para>
|
| 579 |
<programlisting role="debiandoc">
|
| 580 |
<![CDATA[
|
| 581 |
<!doctype debiandoc public "-//DebianDoc//DTD DebianDoc//EN">
|
| 582 |
|
| 583 |
<debiandoc>
|
| 584 |
<book>
|
| 585 |
<titlepag>
|
| 586 |
<title>FooBar</title>
|
| 587 |
<author>
|
| 588 |
<name>Bortzmeyer</name>
|
| 589 |
<email>bortzmeyer@debian.org</email>
|
| 590 |
</author>
|
| 591 |
</titlepag>
|
| 592 |
<chapt>
|
| 593 |
<heading>Title</heading>
|
| 594 |
<p>Content</p>
|
| 595 |
</chapt>
|
| 596 |
</book>
|
| 597 |
</debiandoc>
|
| 598 |
]]>
|
| 599 |
</programlisting>
|
| 600 |
<para>合法なタグの一覧を知るためには、 <phrase
|
| 601 |
debianversionmax="2.1">
|
| 602 |
<debiandoc
|
| 603 |
file="debiandoc-sgml.html/index.html">debiandoc-sgml</debiandoc>
|
| 604 |
</phrase>
|
| 605 |
<phrase debianversionmin="2.2"><debiandoc
|
| 606 |
file="debiandoc-sgml.html/index.html">debiandoc-sgml-doc</debiandoc>
|
| 607 |
<comment>Bug #47300</comment></phrase> を参照してください。</para>
|
| 608 |
</sect2>
|
| 609 |
<sect2><title>DebianDoc ドキュメントの処理</title>
|
| 610 |
<para>
|
| 611 |
PostScript に変換するために:
|
| 612 |
</para>
|
| 613 |
<programlisting role="shell">
|
| 614 |
debiandoc2ps -1 myfile.dd
|
| 615 |
</programlisting>
|
| 616 |
<para>HTML に変換するために:</para>
|
| 617 |
<programlisting role="shell">
|
| 618 |
debiandoc2html myfile.dd
|
| 619 |
</programlisting>
|
| 620 |
</sect2>
|
| 621 |
|
| 622 |
</sect1>
|
| 623 |
|
| 624 |
<sect1>
|
| 625 |
<title>ツール</title>
|
| 626 |
<para>この節は、まだタスク指向ではありませんが、あなたが SGML を書き、処理するのに使えるソフトウェアについてです。
|
| 627 |
</para>
|
| 628 |
<para debianversionmin="2.2">これらすべてのツールを取得する最もシンプルなやり方は、 <debianpackage>task-sgml</debianpackage> をインストールすることです。
|
| 629 |
</para>
|
| 630 |
<para debianversionmax="2.1">これらすべてのツールを取得するためには、いくつかのパッケージをインストールする必要があるでしょう。次に挙げるのはそうするための <application>apt</application> コマンドです<footnote><para>当然、提供する前に <application>apt</application> が正しく設定されていなければなりません。</para></footnote>:
|
| 631 |
<programlisting role="shell">
|
| 632 |
apt-get install docbook docbook-doc sp jade \
|
| 633 |
docbook-stylesheets jadetex debiandoc-sgml \
|
| 634 |
psgml
|
| 635 |
</programlisting>
|
| 636 |
</para>
|
| 637 |
<sect2 id="psgml">
|
| 638 |
<title><debianpackage name="psgml" refserver="http://www.lysator.liu.se/projects/about_psgml.html">PSGML</debianpackage></title>
|
| 639 |
<para>Emacs 用の優れた SGML モード。使えるたくさんの機能の中から:
|
| 640 |
</para>
|
| 641 |
<itemizedlist>
|
| 642 |
<listitem><para>どのタグがそのポイントで有効かをあなたに見せます。
|
| 643 |
</para>
|
| 644 |
</listitem>
|
| 645 |
<listitem><para>有効なタグ (これはあなたが新しい複雑な DTD を使いはじめるときには、すばらしく有用) だけを示すメニューからタグを挿入 (開始と終了、そのあいだの必須タグはもちろん) します。
|
| 646 |
</para>
|
| 647 |
</listitem>
|
| 648 |
<listitem><para>SGML エレメントの操作、エレメントに従った移動など。
|
| 649 |
</para>
|
| 650 |
</listitem>
|
| 651 |
</itemizedlist>
|
| 652 |
<para>そのドキュメントは<debiandoc file="psgml_toc.html">psgml</debiandoc> の中にあります。</para>
|
| 653 |
<para>
|
| 654 |
いくつかのオプションのセットアップをあなたの <filename>~/.emacs</filename> に持たせることで、あなたの psgml の利用が簡単になります。ここにいくつかのサンプルを挙げます:
|
| 655 |
</para>
|
| 656 |
<programlisting role="emacs-lisp">
|
| 657 |
<![CDATA[
|
| 658 |
(autoload 'xml-mode "psgml" "Major mode to edit XML files." t )
|
| 659 |
|
| 660 |
(setq
|
| 661 |
auto-mode-alist (append '(
|
| 662 |
;; DocBook-XML
|
| 663 |
("\\.db" . xml-mode)
|
| 664 |
)
|
| 665 |
auto-mode-alist))
|
| 666 |
|
| 667 |
(add-hook 'sgml-mode-hook 'turn-on-auto-fill)
|
| 668 |
(setq sgml-custom-dtd '(
|
| 669 |
( "HTML 4.0 Strict"
|
| 670 |
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\"
|
| 671 |
\"dtd/html-4.0s.dtd\">" )
|
| 672 |
( "HTML 4.0 Blaireau"
|
| 673 |
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML Transitional 4.0//EN\"
|
| 674 |
\"dtd/html-4.0-loose.dtd\">" )
|
| 675 |
( "DocBook 3.1 XML Article"
|
| 676 |
"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
|
| 677 |
<!DOCTYPE article PUBLIC \"-//Norman Walsh//DTD DocBk XML V3.1//EN\"
|
| 678 |
\"dtd/docbook-xml/docbookx.dtd\">" )
|
| 679 |
))
|
| 680 |
(setq sgml-insert-missing-element-comment nil)
|
| 681 |
]]>
|
| 682 |
</programlisting>
|
| 683 |
<para>多くの有用な psgml コマンドの中から:
|
| 684 |
<itemizedlist>
|
| 685 |
<listitem><para>C-c C-t :
|
| 686 |
<command>sgml-list-valid-tags</command>
|
| 687 |
はあなたに DTD を気付かせます (あるいは教示します) 。 DocBook のような怪物と遊びはじめるには、非常に便利です。
|
| 688 |
</para>
|
| 689 |
</listitem>
|
| 690 |
<listitem><para><command>sgml-insert-element</command>。再び、 DTD を学ぶための重要なやり方です。
|
| 691 |
</para>
|
| 692 |
</listitem>
|
| 693 |
</itemizedlist>
|
| 694 |
</para>
|
| 695 |
</sect2>
|
| 696 |
<sect2 id="nsgmls">
|
| 697 |
<title><debianpackage name="sp" refserver="http://www.jclark.com/sp/nsgmls.htm">nsgmls</debianpackage></title>
|
| 698 |
<para>たとえば SGML ドキュメントの妥当性検証に使える SGML ツールです。典型的な使い方はドキュメントの妥当性のチェックです:</para>
|
| 699 |
<programlisting role="shell">
|
| 700 |
nsgmls -s file.sgml
|
| 701 |
</programlisting>
|
| 702 |
<para>これはファイル <filename>file.sgml</filename> のコンテンツがファイルのヘッダで示される DTD を守っているかどうかをチェックします。
|
| 703 |
</para>
|
| 704 |
<para>もし XML ドキュメントを書くのなら、2つの nsgmls のオプションが必要です:
|
| 705 |
</para>
|
| 706 |
<programlisting role="shell">
|
| 707 |
nsgmls -s -wxml &xml_decl; file.sgml
|
| 708 |
</programlisting>
|
| 709 |
<para><debiandoc
|
| 710 |
file="nsgmls.htm">sp</debiandoc> というものがあります。 nsgmls は sp パッケージの一部です。 sp の <debiandoc file="index.htm">sp</debiandoc> も有用でしょう。
|
| 711 |
</para>
|
| 712 |
</sect2>
|
| 713 |
<sect2 id="rxp" debianversionmin="2.2">
|
| 714 |
<title><debianpackage>rxp</debianpackage></title>
|
| 715 |
<para>純粋な XML ツールです; たとえば、 XML ドキュメントの妥当性検証に使えます。
|
| 716 |
</para>
|
| 717 |
</sect2>
|
| 718 |
<sect2 id="jade">
|
| 719 |
<title><debianpackage
|
| 720 |
refserver="http://www.jclark.com/jade/">jade</debianpackage></title>
|
| 721 |
<comment>TODO: 私たちは OpenJade に言及すべきだ! http://jade-cvs.avionitek.com/</comment>
|
| 722 |
<para>jade は DSSSL プロセッサです。 SGML ファイルと DSSSL 言語で書かれたスタイルシートを受け、 TeX (PostScript が生成できる) 、 RTF 、 HTML フォーマットの出力を提供します。 <application>groff</application> のバックエンドを何も持っていないので、 ASCII フォーマットの提供は障害となります。 <application>TeX</application> バックエンドは &jadetex; ファイルを提供します。
|
| 723 |
</para>
|
| 724 |
<para>ドキュメントはまだクリアではありませんが、少なくともさまざまなオプションは挙げられます。 <debiandoc file="jade.htm">jade</debiandoc> を参照してください。</para>
|
| 725 |
<para>定型の使い方:</para>
|
| 726 |
<programlisting role="shell">
|
| 727 |
jade -t 使用するバックエンド -d スタイルシート名 入力ファイル
|
| 728 |
</programlisting>
|
| 729 |
</sect2>
|
| 730 |
<sect2 id="jadetex">
|
| 731 |
<title><debianpackage>jadetex</debianpackage></title>
|
| 732 |
<comment>http://www.tug.org/applications/jadetex/"</comment>
|
| 733 |
<para>jade の出力を処理するための <application>TeX</application> マクロのセットです。ドキュメントは貧弱で、カスタマイズは複雑です。すべての TeX マクロに似て、特に参照を解決するために、数回実行する必要があります。
|
| 734 |
</para>
|
| 735 |
</sect2>
|
| 736 |
<sect2 id="sgmltools2" debianversionmin="2.2">
|
| 737 |
<title><debianpackage name="sgmltoolsv2" refserver="http://www.sgmltools.org/">SGMLtools</debianpackage></title>
|
| 738 |
<para>SGMLtools は2つのバージョン、1と2が存在します。 SGMLtools はバージョン2です。
|
| 739 |
</para>
|
| 740 |
<para>LinuxDoc を処理する sgml-tools のバージョン1と異なり、SGMLtools のバージョン2 は DocBook ドキュメントを扱います。あなたは &jade; を直接呼び出せばすべてできますが、 SGMLtools を使うほうがよりシンプルでしょう。
|
| 741 |
</para>
|
| 742 |
</sect2>
|
| 743 |
<sect2 id="sgmltools1">
|
| 744 |
<title><debianpackage name="sgml-tools"
|
| 745 |
refserver="http://www.sgmltools.org/download-1.0.html">sgml-tools,
|
| 746 |
version 1</debianpackage></title>
|
| 747 |
<para>
|
| 748 |
<footnote debianversionmin="2.2"><para>大文字化していることに気付きましたか?</para></footnote>
|
| 749 |
このバージョンは公式には無効で理論的にはもうどこにもないものです。しかし、実際問題として、 Linux Documentation Project の LinuxDoc から DocBook DTD への移行はまだ起きていないので、 sgml-tools version 1 はまだ必要です。
|
| 750 |
</para>
|
| 751 |
</sect2>
|
| 752 |
<sect2 id="modularss">
|
| 753 |
<title><debianpackage name="docbook-stylesheets"
|
| 754 |
refserver="http://www.nwalsh.com/docbook/dsssl/index.html">
|
| 755 |
Norman Walsh の "DocBook Modular Stylesheets"</debianpackage></title>
|
| 756 |
<para>これらは DSSSL スタイルシート (新しい XSL バージョン入り) のセットです。あなたは DocBook ドキュメントを処理するために、 &jade; のようななんらかの DSSSL ツールをこれらと共に使うことができます。
|
| 757 |
</para>
|
| 758 |
</sect2>
|
| 759 |
</sect1>
|
| 760 |
|
| 761 |
<sect1 id="references">
|
| 762 |
<title>参照</title>
|
| 763 |
<itemizedlist>
|
| 764 |
<listitem>
|
| 765 |
<para>SGML 一般</para>
|
| 766 |
<itemizedlist>
|
| 767 |
<listitem>
|
| 768 |
<para><ulink
|
| 769 |
url="http://www.oasis-open.org/cover/">Cover's
|
| 770 |
page</ulink></para>
|
| 771 |
</listitem>
|
| 772 |
<listitem>
|
| 773 |
<para>TEI の人々による <ulink
|
| 774 |
url="http://www-tei.uic.edu/orgs/tei/sgml/teip3sg/index.html">
|
| 775 |
A Gentle Introduction to SGML</ulink> 。 私見を言えば、実践的というわけではありません。<comment>TODO: もう1度読みなさい、 Sam。</comment>
|
| 776 |
</para>
|
| 777 |
</listitem>
|
| 778 |
</itemizedlist>
|
| 779 |
</listitem>
|
| 780 |
<listitem>
|
| 781 |
<para>XML 一般</para>
|
| 782 |
<itemizedlist>
|
| 783 |
<listitem>
|
| 784 |
<para><ulink
|
| 785 |
url="http://www.w3.org/XML/">Official XML</ulink></para>
|
| 786 |
</listitem>
|
| 787 |
<listitem>
|
| 788 |
<para><ulink
|
| 789 |
url="http://www.oasis-open.org/cover/xml.html">Cover's XML
|
| 790 |
page</ulink></para>
|
| 791 |
</listitem>
|
| 792 |
<listitem>
|
| 793 |
<para><ulink
|
| 794 |
url="http://www.ucc.ie/xml/">XML FAQ</ulink></para>
|
| 795 |
</listitem>
|
| 796 |
</itemizedlist>
|
| 797 |
</listitem>
|
| 798 |
<listitem>
|
| 799 |
<para>DocBook</para>
|
| 800 |
<itemizedlist>
|
| 801 |
<listitem>
|
| 802 |
<para><ulink url="http://www.oasis-open.org/docbook/">Official
|
| 803 |
DocBook</ulink></para>
|
| 804 |
</listitem>
|
| 805 |
<listitem>
|
| 806 |
<para><debiandoc file="index.html">docbook-doc</debiandoc></para>
|
| 807 |
</listitem>
|
| 808 |
<listitem>
|
| 809 |
<para><ulink url="http://www.nwalsh.com/docbook/dsssl/">
|
| 810 |
Modular DocBook Stylesheets</ulink></para>
|
| 811 |
</listitem>
|
| 812 |
<listitem>
|
| 813 |
<para><ulink url="http://www.freebsd.org/tutorials/docproj-primer/">
|
| 814 |
FreeBSD Documentation Project Primer</ulink> は SGML と DocBook のよい導入部です。
|
| 815 |
</para>
|
| 816 |
</listitem>
|
| 817 |
<listitem>
|
| 818 |
<para><ulink
|
| 819 |
url="http://www.nwalsh.com/docbook/simple/sdocbook/">
|
| 820 |
Simplified DocBook</ulink> はより少ないエレメントにして学びやすくした DocBook のバージョンです。</para>
|
| 821 |
</listitem>
|
| 822 |
</itemizedlist>
|
| 823 |
</listitem>
|
| 824 |
<listitem>
|
| 825 |
<para>LinuxDoc</para>
|
| 826 |
<itemizedlist>
|
| 827 |
<listitem>
|
| 828 |
<para><ulink
|
| 829 |
url="http://www.sgmltools.org/guide/guide.html">Matt
|
| 830 |
Welsh's SGML-Tools User's Guide</ulink></para>
|
| 831 |
</listitem>
|
| 832 |
</itemizedlist>
|
| 833 |
</listitem>
|
| 834 |
<listitem id="otheros">
|
| 835 |
<para>その他のオペレーティングシステム: この節は、 Debian 以外のオペレーティングシステム用に、この HOWTO に似た (<emphasis>実践的</emphasis>なドキュメントという意味です) ドキュメントを一覧します。
|
| 836 |
</para>
|
| 837 |
<itemizedlist>
|
| 838 |
<listitem>
|
| 839 |
<para><ulink
|
| 840 |
url="http://ourworld.compuserve.com/homepages/hoenicka_markus/ntsgml.html">Microsoft
|
| 841 |
Windows NT</ulink></para>
|
| 842 |
</listitem>
|
| 843 |
<listitem>
|
| 844 |
<para>RedHat の DocBook ユーザーはたぶん <ulink url="http://sourceware.cygnus.com/docbook-tools/">Cygnus tools</ulink> を見るべきでしょう。
|
| 845 |
</para>
|
| 846 |
</listitem>
|
| 847 |
</itemizedlist>
|
| 848 |
</listitem>
|
| 849 |
</itemizedlist>
|
| 850 |
<bibliography>
|
| 851 |
<title>興味深い書籍</title>
|
| 852 |
<biblioentry>
|
| 853 |
<citetitle><ulink url="http://www.snee.com/bob/sgmlfree/">SGML CD</ulink></citetitle>
|
| 854 |
<author>
|
| 855 |
<surname>DuCHARME</surname>
|
| 856 |
<firstname>Bob</firstname>
|
| 857 |
</author>
|
| 858 |
<editor>
|
| 859 |
<surname>Prentice-Hall</surname>
|
| 860 |
</editor>
|
| 861 |
<isbn>0-13-475740-8</isbn>
|
| 862 |
<abstract>
|
| 863 |
<para>Unix や Windows NT 上で SGML を書き処理するために必要なツールについての、非常によい実践的な書籍です。 XML はカバーしていません。非常によい &psgml; についての章と <ulink url="http://www.snee.com/bob/sgmlfree/emcspsgm.html">PSGML トリック</ulink>の適切なページがあります。
|
| 864 |
</para>
|
| 865 |
</abstract>
|
| 866 |
</biblioentry>
|
| 867 |
<biblioentry>
|
| 868 |
<citetitle>DocBook: <ulink url="http://www.docbook.org/">The Definitive Guide</ulink></citetitle>
|
| 869 |
<author>
|
| 870 |
<surname>Walsh</surname>
|
| 871 |
<firstname>Norman</firstname>
|
| 872 |
</author>
|
| 873 |
<author>
|
| 874 |
<surname>Muellner</surname>
|
| 875 |
<firstname>Leonard</firstname>
|
| 876 |
</author>
|
| 877 |
<editor>
|
| 878 |
<surname>O'Reilly</surname>
|
| 879 |
</editor>
|
| 880 |
<isbn>1-56592-580-7</isbn>
|
| 881 |
<abstract>
|
| 882 |
<para>私はまだ読んでいません。本のすべてはオンラインにもあります。</para>
|
| 883 |
</abstract>
|
| 884 |
</biblioentry>
|
| 885 |
</bibliography>
|
| 886 |
</sect1>
|
| 887 |
</article>
|
| 888 |
|
| 889 |
|
| 890 |
|
| 891 |
|