From c6c3e3d4b1c6057c2864d0523d00453537212e2e Mon Sep 17 00:00:00 2001
From: Masanori Kobayasi
+
+
+
+
+
+1. 入手・インストール・動作環境
+
+
+1.1 jlinuxdoc-sgml はどこから入手できるのでしょうか?
+
+
+動作させるためには他にどんなものが必要ですか?
+英語版の linuxdoc-sgml-1.5 からのパッチとなっているので、英語版も必要と
+なります。その他 groff や LaTeX なども必要となります。詳しくは、附属の
+README.v1.5j を御覧下さい。
+
+
+
+
+
+
+
-ms
+の代わりに -mgs
とする必要があります。
+また、JE のバージョンによっては、 groff がうまく動かないことがある
+ようですから、groff を入れ換えてみたらどうでしょうか。+
+
TEXINPUTS
の定義をし直さないといけないことがあります。sgml2latex
+のTEXINPUTS
の定義の記述を変更してみて下さい。+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
sgml2txt -b 2 *.sgml
とす
+ると、2行までの連続する空行を認めそれ以上の空行を削るようにします。+
+
+[, ], &, <, >, </, $, #,
+%, \, "
+
+
+また、行の先頭に . があってもいけません。+
+
+
+
+
ono@jf.gee.kyoto-u.ac.jp
+
+
+
これは Linux 文書用の日本語版 Linuxdoc-SGML
文書処理システム (以
+降、jLinuxdoc-SGML) のガイドです。本文書では、SGML 形式のファイルから
+他の形式の文書ファイルへの変換方法や、SGML 形式の文書を書く方法について
+記述しています。
原版の Linuxdoc-SGML
は Tom Gordon 作の QWERTZ DTD
+(文書型定義 : Document Type Definition)をベースに、Linux の文書整備を
+目的として SGML 形式の文書を groff, LaTeX, HTML, GNU info, LyX, RTF
+形式へ変換出来るように、DTD と変換定義ファイル(replacement files: 以降
+rep と呼びます)を書き換えたものです。
+jLinuxdoc-SGML
はそのうち groff, LaTeX, HTML 形式について
+日本語に対応し機能拡張したもので、オリジナルのスーパーセットとなって
+います。
jLinuxdoc-SGML
は一般的な文書処理システムとして作られているわけ
+ではありませんが、HOWTOs、FAQs や (最近の) Linux 文書プロジェクト
+(LDP: Linux Documentation Project) のマニュアル作成等に使えるように
+作られていますので、様々なタイプの文書で利用することができます。
+ただし、Linux の文書作成に焦点を絞って開発されているので、一般的な
+文書作成に十分な機能を持っているわけではありません。例えば画像や数式
+や表や特殊文字を扱うことはできません。より一般的な文書に利用したい
+場合は QWERTZ DTD などと組み合わせて利用することをお奨めします。
多数のフォーマットの文書を簡単に生成するのが、このシステムの1つの目標
+です。今まで、ほとんどの Linux 文書は編集の始めから終りまでプレーンテ
+キストで作業していました。roff
のようにプレーンテキストの整形処理
+ができるシステムもありましたが、(WWW : World Wide Web で使うための)
+HTML、(優秀な文書印刷のための) LaTeX や、texinfo
を生成してくれる
+ものはありませんでした。それゆえ、あなたがこのシステムに無い機能で欲し
+いものがあって、たくさんハックする必要が無くて多数のフォーマットで見栄
+えの良い文書が生成できるアイデアがあれば私に知らせて下さい!。
利用者の皆様の御意見で、このシステムをよりよくしていきましょう。
+この文書は jLinuxdoc.SGML
を使って書かれていますので、あなた
+がこの DTD を使って SGML の文書を書くのに必要な事柄が含まれています。
+また、HOWTO の例として JE-HOWTO.sgml
が、man ページの例
+としてkon.sgml
が、FAQ の例として FAQj.sgml
が
+linuxdoc-sgml-1.5/doc
ディレクトリにありますので、記述の
+参考にして下さい。
このガイドは jLinuxdoc-SGML を用いて SGML 形式で書かれた文書ファイル
+を様々な形式のファイルに変換する方法と、jLinuxdoc-SGML 用に定義された
+SGML のタグの書き方について例を含めて説明しています。インストールと
+設定に関しては、README.v1.5j
をご覧ください。
Linuxdoc-SGML の最初のガイドは原版の作者であり LDP のまとめ役である
+Matt Welsh 自身の手によって書かれました。その後 Linuxdoc-SGML が他の
+人の手で更新されるようになり、v1.4 から Greg Hankins が大幅に更新して
+からはガイドも Greg Hankins によって書き直されました。
+一方、日本語版は v1.1 対応版をさとけん@ForUsさんが作成し、その
+ガイドもさとけんさんが Matt Welsh のガイドをもとに書き下ろしました。
+現在のものは、原版 v1.5 のガイドと日本語版 v1.1 のガイドをもとに、
+小野@京大環境地球が新たに書き下ろしたものです。
jLinuxdoc-SGML を使用するに当たって、SGML についての詳細な知識は必要 +ではありません。ただし、SGML がどのような形式のものであり、DTD がどう +いうものであるかという程度の知識は持っていた方が理解が速いでしょう。 +SGML に関する簡単な解説としては、付属の日本語版 sgmls のガイド +sgmls11j.add/sgmlexp.jpn をご覧になるのがいいでしょう。
+Matt Welsh が HOWTOs の公式文書形式として SGML を選択し、Linuxdoc-SGML
+を作成したのは、HOWTOs をネットニュースや書籍や WWW といった多くの媒体
+で配布・公開するために、様々な形式の文書ファイルを一元的に作成する必要
+ができたためです。
+SGML を用いることにより、ひとつのファイルから様々な形式のファイルを
+高い品質で作成することが可能となります。別の選択肢として HTML や TeX
+などを基にし、それぞれのフォーマッタで様々な形式のファイルへ変換する
+方法が考えられますが、これでは基となる形式の性質に特化しているため
+変換後のファイルには十分な品質と高い柔軟性が得られません。SGML の特徴
+である自由な文書構造の定義によってのみ、高い品質の文書が得られるのです。
Linux JF プロジェクトにおいて、Linuxdoc-SGML の日本語版が作成されたの
+も同じ理由からですが、もうひとつの理由があります。JF では FAQ を SGML
+形式のタグで括ることで抽出するという試みを行なっています。情報抽出と
+データベース化に SGML を利用し、その文書作成に Linuxdoc-SGML を活用
+しようというわけです。
+また、将来文書が全て SGML で統一されれば特定のタグの抽出による文書管理
+も可能となります。
jLinuxdoc-SGML は SGML の構文を定義する DTD と、その構文を解釈し構文 +エラーをチェックし各種形式への変換を行なう パーサ と、変換されたファイル +を整形するためのツールから成ります。DTD は QWERTZ DTD を基に作られて +おり、SGML パーサには土屋 哲さん作の日本語版 sgmls を用いています。 +整形・変換用のツールとしては、LaTeX, groff, dvi2ps などが必要となります。 +例として DVI と Postscript への変換の処理の流れを以下に示します。 +
+
+1. SGML形式 −(構文解釈: sgmls が DTD を解釈)→ 中間形式
+2. 中間形式 −(変換: sgmlsasp が LaTeX 用 rep を基に変換)→ LaTeXソース
+3. LaTeXソース −(整形: jlatex, dvi2ps などで変換)→ DVI, Postscript
+
+
+
+sgmls は正確には、構文解釈を行なう sgmls と各種形式への変換を行なう
+sgmlsasp によって構成されています。
+DTD は構文を定義するのに使います。例えば、article の定義は +
+
+<!element article - -
+ (titlepag, header?,
+ toc?, lof?, lot?, p*, sect*,
+ (appendix, sect+)?, biblio?) +(footnote)>
+
+
+
+のように記述されます。article
は titlepag, header, toc,...
+といった要素から成り、それぞれの要素が必要かどうかといった定義がなされます。
+それぞれの要素は、SGML の文書内ではタグとして使われています。この例
+では、<article>, <titlepag>, <toc>
といった
+タグが使われることになります。各種形式に対応する rep(変換定義ファイル)を形式ごとに用意することで、 +様々な形式に変換することができます。 +例えば番号なしの箇条書の LaTeX 用の rep は以下のようになります。 +
+
+<itemize> + "\\begin{itemize}" +
+</itemize> + "\\end{itemize}" +
+
+
+
+同じことを HTML 用に定義すると以下のようになります。
+
+
+<itemize> + "<UL>" +
+</itemize> + "</UL>" +
+
+
+
+<itemize>
が LaTeX では\begin{itemize}
+と変換され、HTML では <UL>
と変換されます。いったん sgmlsasp で各種形式のソースファイルを作ってしまえば、後は +それに合わせたフォーマッタで変換を行ないます。LaTeX では、jlatex +を用いて DVI ファイルを作り、必要なら dvi2ps などで Postscript ファイル +に変換します。プレーンテキストなら groff を使います。実際には、フォーマッタ +だけでなくいくつかのフィルタを使って整形や調整を行なっているものも +あります。
+ + +jLinuxdoc-SGML v1.5 は、JF の中に含まれます。以下の ftp site の他、国内の +多くの JF の mirror site から入手できます。 +
+JF の里@京都大学+ +インストールには、英語版の
linuxdoc-sgml-1.5.tar.gz
と日本語対応
+のためのパッチ jlinuxdoc-sgml-1.5.0.diff.tgz
の他、groff や perl、
+flex、LaTeXなどが必要です。
+インストールは README.v1.5j
を参照して行なってください。
+jlinuxdoc-sgml に関する最新情報は +
+Linux JFの部屋 「linuxdoc-sgml のページ」+ +にて公開しています。 +
お気付きの点がありましたら、
+ono@jf.gee.kyoto-u.ac.jp
宛にメールでご連絡ください。
変換するファイル形式によって利用するコマンドやコマンドに与える引数 +が異なります。
+ +本章では、HOWTO や faq を含む文書の変換方法を説明します。
+ +ポストスクリプト(PS)ファイルへの変換を行うには、sgml2latex
+を使います。
+
+
+
+sgml2latex -p ファイル名.sgml
+
+
+
++
+
+sgml2latex -a -p ファイル名.sgml
+
+
+
+なお、-a オプションは原版 Linuxdoc-SGML では A4 サイズの用紙の指定 +となっていますが、日本語版では用紙サイズは A4 がデフォルトなので、 +かわりに -u オプションで US letter を指定できるようになっており、 +-a はASCII 文字の使用を指定することになります。なお、日本語の文書 +を変換する場合は必ず A4 (デフォルト) で使用してください。
+ +DVI ファイルへの変換を行うには、sgml2latex
を使います。
+
+
+
+sgml2latex -d ファイル名.sgml
+
+
+
++
+
+sgml2latex -a -d ファイル名.sgml
+
+
+
++
+
+sgml2latex ファイル名.sgml
+
+
+
+-d
オプションを付けると ファイル名.dvi が作成され、
+オプションを付けないと ファイル名.tex が作成されます。作成
+された ファイル名.dvi は xdvi 等の dvi ファイルのビューワ
+で見る事ができます。
+
+プレーンテキストファイルへの変換を行うには、sgml2txt
を使います。
+
+
+
+sgml2txt -f ファイル名.sgml
+
+
+
++
+
+sgml2txt -f -a ファイル名.sgml
+
+
+
+-f
オプションを付けないと、more
や less
で見た
+ときにはボールド体で強調された文字が表示される状態になります。これはこれで
+見やすいのですが、mule
やvi
などで見るとみにくくなります。
+roff で出力された強調文字をなくすには、-f
オプションを付けて
+実行します。HTML ファイルへの変換を行うには、sgml2html を使います。
++
+
+
+sgml2html ファイル名.sgml
+
+
+
++
+
+sgml2html -a ファイル名.sgml
+
+
+
+HTML ファイルは章ごとにひとつずつ ファイル名-章番号.html +という名前で作られ、さらにインデックス用に ファイル名.html +というファイルが作られます。これらのファイルは Netscape や Mosaic +等の WWW ブラウザを使って見ることができます。
+ +man ページの変換を行うには sgml2txt
を使います。
+
+
+
+sgml2txt -man ファイル名.sgml
+
+
+
++
+
+sgml2txt -cat ファイル名.sgml
+
+
+
+いずれの場合も、ファイル名.man というファイルが作られます。 +roff 形式のファイルは、従来の man ページに使われている形式で +
+
+groff -man -Tnippon ファイル名.man | less
+
+
+
+とすることで、man
コマンドを使って見る場合と同じように読む
+ことができます。このように roff を通した結果を cat 形式 と言います。
+roff 形式の man ページファイルは、ファイル名.章番号 という名前にして
+ /usr/man/ja_JP.ujis/man章番号
というディレクトリ
+にコピーします(linuxの場合)。cat 形式の man ページファイルは、同じく
+ファイル名.章番号 という名前にして /usr/man/ja_JP.ujis/cat章番号
+というディレクトリにコピーします。
GNU info 形式のファイルへの変換を行うには、sgml2info
を使います。
+残念ながらまだ日本語には対応していません。makeinfo の日本語版に
+関する情報がありましたらご連絡ください。
+
+
+sgml2info ファイル名.sgml
+
+
+
+とすると、ファイル名.info というファイルが作成されます。
+GNU info 形式のファイルは、emacs
の info モードや info
+コマンドを使って見ることができます。
LyX とは LaTeX のインターフェイスとなって WYSIWYG を実現する一種の
+ワープロです。残念ながら LyX の日本語版はありません。
+LyX 形式のファイルへの変換を行なうには、sgml2lyx
を使います。
筆者の不勉強のため、これが何者なのか全くわかっていません。
+RTF についての情報がありましたらご連絡ください。
+RTF 形式ファイルへの変換は、sgml2rtf
を使って行ないます。
SGML の構文チェックを行うには、sgmlcheck
を使います。
+
+
+sgmlcheck ファイル名.sgml
+
+
+
+ここでは、DTD に即した構文になっているかをチェックしているだけなので、 +正しい変換が行なわれているかどうかは出力結果を見て自分でチェックする +必要があります。
+ + +原版の Linuxdoc-SGML では ISO 8859-1 (latin1) 文字セット についても、
+プレーンテキストと LaTeX、HTML、LyX、RTF で利用可能となっています。
+日本語版でも利用可能なはずですが試していません。もし問題があったと
+しても、若干の修正で利用できるはずです。
+ISO 8859-1 文字セットを利用するには、-l オプションを付けて、各種の
+コマンドを実行します。
ここでは linuxdoc.dtd
を使った文書の書き方について説明します。
一番最初に覚えなければならないことを簡単に書きます。
+ +SGML では (コメントは別にして) 必ず +
+
+<!doctype linuxdoc system>
+
+
+
+で始めなければなりません。
+この命令は簡単にいうと、``linuxdoc.dtd'' を使った文書である事を指定し
+ています。
+
+入力に使用できるキャラクタとしては、かな、漢字、英数字、および次の記号 +です。
++
+
+: ; . , ? ! ` ' ( ) - / * @ ^ _ + = { } |
+
+
+
+【注意】 jlinuxdoc-sgml
では、EUC
漢字コードを使うようになっていますので、EUC
コードで文書を書くようにして下さい。
+また、半角カナと呼ばれている文字は使えません。
【注意】行頭を . で始めますと、テキストに変換する際に、問題が発生 +します。よって、行頭には . を記述しないようにして下さい。
+ +SGML では、以下の記号をコマンドとして認識してしまいますので、その記号 +を文字として使いたい場合には下のように入力して下さい。
++
[
) を使うには [
と入
+力します]
) を使うには ]
と入
+力します&
) を使うには &
と入
+力します<
) を使うには <
と入力
+します>
) を使うには >
と入力
+します</
) を使うには
+&etago;
と入力します$
) を使うには $
+と入力します#
) を使うには #
と入力し
+ます%
) を使うには %
+と入力します\
) を使うには
+\
と入力します``
と ''
と入力するか、
+"
を表示させるには &dquot;
と入力しますSGML でのコマンドはタグと呼ばれます。タグには開始タグと終了タ
+グがあり、開始タグは <タグ名>
であり、終了タグは
+</タグ名>
です。また、開始タグしか必要としないものもあり
+ますし、<タグ名/内容/
という短縮形式もあります。
開始タグと終了タグではさまれている部分に、そのタグの内容が適用されます。 +LaTeX の環境と同じようなものですね。
+ + +ドキュメントつまり原稿は、いづれかのスタイルを指定しなければなりません。 +スタイルには以下のものが指定できます。ほとんど、LaTeX で使われているも +のと同様です。
++
もっともポピュラーなスタイルです。HOWTO にはこれを使いま +す。
+レポート形式です。
+本の形式です。
+man ページの形式です。
+例えば article を使う場合には、 +
+
+<!doctype linuxdoc system>
+
+<article>
+
+本文
+
+</article>
+
+
+
+と指定します。
+なお、man ページについては、後で詳しく説明します。
+ + +文書のタイトル、著者、日付や概要は、スタイル (例えば<article>) +の後に記述します。
++
文書のタイトルを記述します。(必須)
+著者を記述します。(必須)
+翻訳者を記述します。(オプション)
+文書のバージョンや日付を記述します。(オプション)
+翻訳された文書のバージョンや日付を記述します。(オプション)
+概要を記述します。(オプ +ション)
+例えば、以下のようになります。 +
+
+<title>SGML を書こう!!
+<author>さとけん@ForUs,<tt/ken@gamba.forus.or.jp/
+<date>v0.1 alpha, 20 September 1994
+<abstract>
+SGML を使って文書を書いてみよう。
+</abstract>
+
+
+
+【注意】 <date> は、<author> もしくは <trans> の +直後でないと、エラーとなります。
+ + +文章の構成で、章や節を表すものとして、次のようなセクションタグが用意さ +れています。これらは、タイトルの後に記述することができます。
++
トップレベルの章で、LaTeX の section に相当します。 +(1, 2, ...)
+第 2 レベルの章で、LaTeX の subsection に相当します。 +(1.1, 1.2, ...)
+第 3 レベルの章で、LaTeX の subsubsection に相当し +ます。(1.1.1, 1.1.2, ...)
+第 4 レベルの章で、LaTeX の paragraph に相当します。
+第 5 レベルの章で、LaTeX の subparagraph に相当しま +す。
+また、それぞれのタグの直後に、対応した見出しを記述します。
+例えば文書の最初に``概要''という章を記述するには、 +
+
+<sect>概要
+
+
+
+とすればよいですし、あなたが今読んでいるこの章は
+
+
+<sect1>文章構成
+
+
+
+と記述されています。
+セクションタグの後で、実際の本文を書くには <p> タグを本文の前に +記述して下さい。
+例えば、次のようになります。 +
+
+<sect>概要
+<p>
+この文書は、<tt/jlinuxdoc-sgml/ 文書整形システムの...
+
+
+
+これは、sgmls
パーサーに章見出しと本文の区切りを教えているのです。
+しかし、段落の区切りを指定する必要があるのは、セクションタグの後だけで、
+その後の段落の区切りは空行で大丈夫です。(こういう段落の区切り方は、
+LaTeX でよくやられていることでしょう。)
例えば、次のようになります。 +
+
+<p>
+ここは最初の段落です。
+
+ここは次の段落です。
+
+
+
+ただ、最初の段落以外で <p> タグを使ってはいけないわけではありま +せん。最初の段落で必ず指定しなければならないだけです。
+ + +jlinuxdoc-sgml
では roff
、LaTeX
、HTML
を使って、文
+書を整形しますので、文字列や行を自動的に詰めたり、改行したりします。
+よって、整形ルールはそれぞれのフォーマッタに依存します。
また、通常 SGML のソース文書での改行は無視されます。強制的に改行を行なう +場合は<newline> を行末に挿入してください。また、空行か <p> +を挿入するとその前の文に改行が入り行間が空きます。
+また、空白文字の扱いはフォーマッタによって異なります。プレーンテキスト +の場合は空白文字をそのまま空白として出力しますが、DVI や PS, HTML では +つめて出力(表示)されます。
++
+
+
+雨が降る降る
+雨が降る
+<p>
+遊びに行きたし<newline>
+傘はなし
+
+草履の 鼻緒も
+擦り切れた
+
+
+
+
++
+雨が降る降る
+雨が降る
+遊びに行きたし
+傘はなし
+草履の 鼻緒も
+擦り切れた
+
+
+タイトルページでは、改行は可能ですが空行を作ることはできません。従って +<abstract> タグの中で空行を設けたり <p> を挿入してもエラー +になるか無視されます。
+なお、roff の整形はあまり精錬されていないため、他の環境でも空行が無視され +たり、逆に空行が多すぎたりすることがあります。そのため、sgml2txt では +3 行以上の空行を 2 行の空行に縮めています。
+ + +SGML 文書のなかに、フォーマット出力には含めないコメントを書くには、 +
+
+<!--
+コメント
+-->
+
+
+
+とします。
+
+
+LaTeX の verbatim 環境と同じように、打ち込んだ通りに出力させるには、 +<verb>...</verb> で囲みます。
+例えば、 +
+ここは、<verb> と </verb> でかこまれています。 ++ +とするには、 +
+
+<verb>
+ここは、<verb> と &etago;verb> でかこまれています。
+</verb>
+
+
+
+と記述します。もちろん、空白もそのまま出力されます。
+ただし、<verb>...</verb> の中でも、&,</ の 2 文字は +使えませんので、それぞれ、
++
&
) を使うには &ero;
</
) を使うには
+&etago;
と入力します。
+また、LaTeX の verbatim 環境を使う関係で、\end{verbatim} は記述し +ないで下さい。
+ + + +プログラムやアルゴリズムをフォーマットするには、基本的には verb 環境を +用いますが、ちょっとアクセントをつける方法を説明します。
+プログラムやアルゴリズムの出力には、 +
コード環境
+スクリーン環境
+クオート環境
+<code>...</code> ではさまれた部分をコード環境といいます。 +コード環境は、ほとんど verb 環境と同じですが、上下に線が引かれます。
+例えば、 +
+これは <code>...</code> の例です。 ++
+
+<code>
+これは <code>...&etago;code> の例です。
+</code>
+
+
+
+とします。
+
+<tscreen>...<tscreen> ではさまれた部分をスクリーン環境とい +います。スクリーン環境では、自動的にインデント、タイプライタ書体の指定 +が行われます。主に verb 環境といっしょに使われます。
+例えば、 +
+
+これは <tscreen><verb>...</verb></tscreen> の例です。
+
+
+
+とするには、
+
+
+<tscreen><verb>
+これは <tscreen><verb>...&etago;verb>&etago;tscreen> の例です。
+</verb></tscreen>
+
+
+
+とします。
+
+<quote>...<quote> ではさまれた部分をクオート環境といいます。 +クオート環境では、自動的にインデントが行われます。
+例えば、 +
+これは <quote>...</quote> の例です。 ++ +とするには、 +
+
+<quote>
+これは <quote>...&etago;quote> の例です。
+</quote>
+
+
+
+とします。
+
+
+jlinuxdoc-sgml
では LaTeX と同じようなフォントの指定をサポートし
+ています。ただし、プレーンテキストにする場合にはフォントの指定は無視さ
+れます。
+
強調 (例:em)
+イタリック (例:it)
+ボールドフェース (例:bf)
+サン・セリフ (例:
スランテッド (例:sl)
+タイプライタ (例:tt
)
cparam (例:cparam) #LaTeX の \cparam{} +に相当します。
+フォントを指定する場合には、指定する内容をタグではさみます。 +例えば、タイプライタ書体にするには、以下のようにします。 +
+
+Here is some <tt>typewriter text</tt> to be included in the document.
+
+
+
+また、内容に``/''が含まれない場合には、以下の短縮形式を使う事もできま +す。 +
+
+Here is some <tt/typewriter text/ to be included in the document.
+
+
+
+ただし、全ての出力形式 (HTML 等) でサポートされているわけではないので、 +bf、it、tt 以外のフォントはあまり使うべきでは無いでしょう。bf、it、tt +だけでも、文書を書くには十分でしょう。
+ + +jlinuxdoc-sgml
ではいくつかの箇条書き (リスト) をサポートしていま
+す。サポートしているのは、以下の 3 種類の箇条書きです。
+
頭に記号を付けた箇条書き +です。
+項目に番号を付けた箇条書きです。
+見出しを付けた箇条書きで +す。
+itemize リストでは、それぞれの項目の頭に記号が付けられます。 +例えば、 +
+jlinuxdoc-sgml
には
+
+- itemize リスト
+- enum リスト
+- descrip リスト
+
+
+があります。
+
+
+と出力するには、
+
+
+<tt/jlinuxdoc-sgml/ には
+<itemize>
+<item>itemize リスト
+<item>enum リスト
+<item>descrip リスト
+</itemize>
+があります。
+
+
+
+のように、リストの先頭で <itemize> を記述し、それぞれの項目の先
+頭には <item> を付けて、最後に </itemize> を記述します。
+当然、ネスト (入れ子) も可能です。
+ +enum リストでは、それぞれの項目に番号が付けられます。 +例えば、 +
+jlinuxdoc-sgml
には
+
+- itemize リスト
+- enum リスト
+- descrip リスト
+
+
+があります。
+
+
+と出力するには、
+
+
+<tt/jlinuxdoc-sgml/ には
+<enum>
+<item>itemize リスト
+<item>enum リスト
+<item>descrip リスト
+</enum>
+があります。
+
+
+
+のように、リストの先頭で <enum> を記述し、それぞれの項目の先頭に
+は <item> を付けて、最後に </enum> を記述します。
+当然、ネスト (入れ子) も可能です。
+ +descrip リストでは、それぞれの項目に見出しが付けられます。 +例えば、 +
+jlinuxdoc-sgml
でサポートされている箇条書きの種類は
+
+- itemize
頭に・などの記号を付けた箇条書きです。
+- enum
項目に番号を付けた箇条書きです。
+- descrip
見出しを付けた箇条書きです。
+
+
+の3種類です。
+
+
+と出力するには、
+
+
+<tt/jlinuxdoc-sgml/ でサポートされている箇条書きの種類は
+<descrip>
+<tag/itemize/頭に・などの記号を付けた箇条書きです。
+<tag/enum/項目に番号を付けた箇条書きです。
+<tag/descrip/見出しを付けた箇条書きです。
+</descrip>
+の3種類です。
+
+
+
+のように、リストの先頭で <descrip> を記述し、最後に
+</descrip> を記述します。また、それぞれの項目は <tag/見出し/
+内容 と記述します。なお、見出しの部分に``/''を含めたい場合には、
+<tag>見出し</tag>内容 と記述して下さい。
+ただし、LaTeX
を使う場合、見出しの部分には、
+\ が入力できませんので、注意して下さい。
当然、ネスト (入れ子) も可能です。
+ + +<sect?> には自動的に通し番号が付けられますが、これを別の部分から +参照する方法を説明します。
+まず、参照される部分へのラベル付けを行います。
++
+
+<sect1>概要<label id="sec-intro">
+
+
+
+これで、ラベルが付けられましたので、他の場所で以下のように参照すること +ができるようになります。
++
+
+概要については、<ref id="sec-intro" name="概要">を参照して下さい。
+
+
+
+この場合、ref
タグによって、sec-intro
のセクション番
+号に置き換えられます。
また、name
は HTML
や nroff
に変換する場合
+に必要です。
なお、HTML
に変換した場合には、名前の部分をクリックすることに
+よって、その場所に移動できます。
例えば、この章は +相互参照です。
++
せっかくの相互参照も、節や章しか参照できないのではちょっと +機能不足ですね。実は、label は任意の場所に設定することができるのです +が、LaTeX での参照の際に節番号を参照するので、節や章しか参照できない +ようになっているのです。 +だからといってあきらめる必要はありません。<htmlurl> というタグ +を使って解決することができます。
+次の節の +htmlurlのタグ を参照のこと。
+W3 (World Wide Web)
で使われる URL (Universal Resource
+Locators)
も記述することができます。
Mosaic 等で``Linux Documentation Projectのホームページ''と書かれている
+部分をクリックすることで、sunsite.unc.edu
の
+/mdw/linux.html
ファイルを参照するようにするには以下のように
+します。
+
+
+<url url="http://sunsite.unc.edu/mdw/linux.html"
+ name="Linux Documentation Projectのホームページ">
+
+
+
+url
の引数には、実際の URL を記述します。また name
+の引数には URL の名前や内容を記述しますが、これはオプションですので記
+述しなくても結構です。
また、jf.gee.kyoto-u.ac.jp
の
+/pub/JF/misc/linuxdoc-sgml-1.5.tar.gz
を ftp して来る
+ようにするには、
+
+
+<url url=
+"ftp://jf.gee.kyoto-u.ac.jp/pub/JF/misc/linuxdoc-sgml-1.5.tar.gz">
+
+
+
+とします。
+例えば、 +【オリジナルのLinuxdoc-SGML v1.5を入手するにはここをクリッ クして下さい。】 +となります。
++ + +さらに、より機能の高い HTML の URL を表記するためには +<htmlurl url=.... > というタグを使います。例えば、メールを送る +ためのアドレスを書くときには、 +
+
+<htmlurl url="mailto:ono@jf.gee.kyoto-u.ac.jp"
+ name="ono@jf.gee.kyoto-u.ac.jp">
+
+
+
+のように書くことにより、Netscape などの WWW ブラウザ上でメールを送る
+ためのフォームを出すことができるようになります。
+ご用命の際は +ono@jf.gee.kyoto-u.ac.jp まで。
+<htmlurl> タグを使えば以下のようにして、同一文書中のラベルを直接 +指定することもできます。 +
+
+<htmlurl url="#CrossRef" name="相互参照の節"> を参照のこと。
+
+
+
++相互参照の節 を参照のこと。
+ + +目次を作るのは簡単です。目次をいれたい部分に +
+
+<toc>
+
+
+
+を記述するだけです。大抵は、</abstract> の後に記述されるのがよい
+でしょう。
+ただし、実際に目次が挿入されるのは、LaTeX
を通して作られる
+dvi
と PS
ファイルのみです。
+text
ファイルでは単に無視されるだけですし、html
ファイ
+ルでは指定しなくても、作成されます。
文書中で +
+
+<hrule>
+
+
+
+と記述するだけです。
+
+
+ここでは、Linux コミュニティ
で利用されている FAQ
フォー
+マットを記述する方法を説明します。
たとえば、 +
+
+
+
+
+
+<faq>
+<keyword>ソフト名やハードウェアや規格・言語などのキーワード
+<poster>発言者の名前とメールアドレス
+<pdate>発言した日付
+<question>
+質問の詳細
+</question>
+<answer>
+質問に対する回答
+</answer>
+<poster>発言者の名前とメールアドレス
+<coment>
+質問あるいは回答に対するコメント(回答に自身がない場合など)
+</coment>
+</faq>
+
+
+
+と記述します。
+【注意】本来の FAQ フォーマットとの違いは、以下の通りです。
++
+
+<FAQ> → <faq>
+<Item> → <keyword>
+<Subject> → <faq> の前に <sect?> として記述
+<Poster> → <poster>
+<Date> → <pdate>
+<Q> → <question>
+</Q> → </question>
+<A> → <answer>
+</A> → </answer>
+<C> → <coment>
+</C> → </coment>
+</FAQ> → </faq>
+
+
+
+FAQ をまとめた、 faqdb
形式のファイルを、jlinuxdoc-sgml で処
+理できるファイルに変換するためのフィルタとして、bin/faqdb2doc
+がありますので、御利用下さい。このフィルタを使えば、上記の違いも変更さ
+れます。
この章では jlinuxdoc-sgml
を使って、Man ページ
を書
+く方法について説明します。
Man ページは、以下の様に記述します。 +
+
+<!doctype linuxdoc system>
+
+<manpage title="名前">
+
+<sect1>名前
+<p>
+名前 - 機能の簡単な説明
+
+<sect1>形式
+<p>
+使用方法
+
+<sect1>機能説明
+<p>
+詳細な説明
+
+<sect1>オプション
+<p>
+コマンドのオプションの説明
+
+<sect1>環境変数
+<p>
+関連する環境変数の説明
+
+<sect1>ファイル
+<p>
+関連するファイルの説明
+
+<sect1>関連項目
+<p>
+関連するマニュアルの紹介
+
+<sect1>バグ
+<p>
+バグの説明
+
+</manpage>
+
+
+
+上記の内、名前(NAME)と形式(SYNOPSIS)と機能説明(DESCRIPTION)は必須です +が、それ以外の章は省略可能ですし、他の章を追加することも可能です。例え +ば「不具合&改良案」という章を追加し、コマンドの作者名と連絡先(メール +アドレス)を示したりすることはよくあります。
+ + +スタイルには、<manpage>...</manpage>
を指定しま
+す。また、<manpage> の部分で「名前」と「章番号」を指定します。な
+お、章番号のデフォルトが 1 に設定されていますので、章番号が 1 の場合に
+は省略できます。
名前が mh-alias、章番号が 5 の場合には以下のようになります。 +
+
+<manpage title="MH-ALIAS" sectnum="5">
+
+
+
+
+
+各章は <sect1> を使用して書くことに注意する以外は、他の文書の書 +き方と同じです。
+man ページのサンプルとして、doc/kon.sgml
が添付されています。
+御参照下さい。
jlinuxdoc-sgml
には Emacs
で SGML ファイルを編集する
+ための、lnxsgml.el が含まれています。ここでは、このパッケージ
+を使った SGML ファイルの編集方法について説明します。
なお、lnxsgml.el 以外の Emacs の使い方は説明しませんので、他の解説書を +お読み下さい。
+lnxsgml.el
は SGML ファイル編集用のメジャーモードです。
筆者は、Mule Version.2 を使っていますので、その他の Emacs をお使いの方で不具合を見付けた方は連絡して下さい。 +善処します。
+ +Mule Version.2
で lnxsgml.el
をお使いになりますと、
+
hilit19.el
をロードしておくと) SGML のタグ等に色が付き
+ますので、文との違いが分かりやすくなります。ただし本説明書では、これらの機能については詳しく説明しません。 +お試し下さい。
+ + +ここでは、lnxsgml.el
を使う前にしておかなければならない準備に
+ついて、説明します。
あなたの .emacs ファイルに以下の行を追加して下さい。
++
+
+(setq auto-mode-alist (mapcar 'purecopy
+ '(("\\.sgml$" . sgml-mode))))
+(autoload 'sgml-mode "lnxsgml" "Major mode fo editing files of SGML." t)
+
+
+
+これで、.sgml で終るファイルを編集する時は、自動的に lnxsgml.el が読み +込まれるようになります。
+ + + +ここでは、各種タグの挿入に関する機能について、説明します。
++
カーソル位置に <abstract> と +</abstract> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <code> と +</code> を挿入し、カーソルをタグの間に移動します。
+指定されたリージョンの最初に +<code> を、最後に </code> を挿入します。
+カーソル位置に <!-- と --> を挿入 +し、カーソルを開始タグと終了タグの間に移動します。
+指定されたリージョンの最初に +<!-- を、最後に --> を挿入します。
+対話的に style name を +入力し、以下のタグを挿入します。
+<!doctype dtd namesystem>
+<style name>
+<title>
+<author>
+<date>
+</style name>
+カーソル位置に <descrip> と +</descrip> を挿入し、カーソルをタグの間に移動します。
+対話的に environment +name を入力し、カーソル位置に <environment name> +と </environment name> を挿入し、カーソルをタグの間に移 +動します。
+カーソル位置に <enum> と +</enum> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <item> タグを挿入し、 +カーソルをタグの後に移動します。
+カーソル位置に <itemize> と +</itemize> を挿入し、カーソルをタグの間に移動します。
+対話的に label id を入力し、カー +ソル位置に <label id="label id"> タグを挿入します。
+カーソル位置に <p> タグを挿入します。
+カーソル位置に <quote> と +</quote> を挿入し、カーソルをタグの間に移動します。
+指定されたリージョンの最初に +<quote> を、最後に </quote> を挿入します。
+対話的に ref id と name +を入力し、カーソル位置に <ref id="ref id" +name="name"> を挿入します。
+カーソル位置に <tscreen> と +</tscreen> を挿入し、カーソルをタグの間に移動します。
+指定されたリージョンの最初に +<tscreen> を、最後に </tscreen> を挿入します。
+カーソル位置に <tag></tag> タグ +を挿入し、カーソルをタグの間に移動します。
+対話的に tag name を入力 +し、カーソル位置に <tag name> タグを挿入します。
+カーソル位置に <sect> タグを挿入します。 +なお、``C-u''をいくつ入力するかによって、セクションレベルが変わります。 +
<sect> タグの挿入
+<sect1> タグの挿入
+<sect2> タグの挿入
+<sect3> タグの挿入
+<sect4> タグの挿入
+カーソル位置に <verb> と +</verb> タグを挿入し、カーソルをタグの間に移動します。
+指定されたリージョンの最初に +<verb> を、最後に </verb> を挿入します。
+ここでは、フォント変更タグの挿入に関する機能について、説明します。
++
カーソル位置に <bf> と +</bf> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <cparam> +と </cparam> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <em> と +</em> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <it> と +</it> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <sf> と +</sf> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <sl> と +</sl> を挿入し、カーソルをタグの間に移動します。
+カーソル位置に <tt> と +</tt> を挿入し、カーソルをタグの間に移動します。
+指定されたリージョンの最 +初に <bf> を、最後に </bf> を挿入します。
+指定されたリージョンの +最初に <cparam> を、最後に </cparam> を挿入します。
+指定されたリージョンの最 +初に <em> を、最後に </em> を挿入します。
+指定されたリージョンの最 +初に <it> を、最後に </it> を挿入します。
+指定されたリージョンの最 +初に <sf> を、最後に </sf> を挿入します。
+指定されたリージョンの最 +初に <sl> を、最後に </sl> を挿入します。
+指定されたリージョンの最 +初に <tt> を、最後に </tt> を挿入します。
+ここでは、特殊キャラクタの挿入に関する機能について、説明します。
++
カーソル位置に & を挿入します。
+カーソル位置に < を挿入します。
+カーソル位置に > を挿入します。
+カーソル位置に &etago; を挿入します。
+カーソル位置に &dollor; を挿入します。
+カーソル位置に # を挿入します。
+カーソル位置に % を挿入します。
+カーソル位置に \ を挿入します。
+カーソル位置に [ を挿入します。
+カーソル位置に ] を挿入します。
+カーソル位置に &dquot; を挿入します。
+ここでは、タグ挿入以外の機能について、説明します。
++
編集ファイルの SGML 構文チェックを行 +います。
+編集ファイルを dvi ファイルに +変換します。
+編集ファイルを PS ファイルに +変換します。
+編集ファイルを HTML ファイル +に変換します。
+編集ファイルを text ファイル +に変換します。
+> キーが入力されると、``>''を挿入し、対応する +``<''に一度カーソルが移動します。
+/ キーが入力されると、``/''を挿入し、対応する``/''に一度カー +ソルが移動します。
+jLinuxdoc-SGML v1.5 では、原版とほぼ同じ操作でほぼ同じ出力が得られる +ようデザインされており、日本語対応の拡張をした原版のスーパーセットと +なっています。 +従ってコマンドの使い方や SGML のタグの書き方はほとんど同じです。コマンド +に関してはデフォルトで日本語対応となっており、"-a" オプ +ションを指定することで英語版と同じ動作をします。
+英語版にない特徴として、 +
なお、GNU info, LyX, RTF 形式への変換の日本語化は行なわれていません。
+ + +原版の Linuxdoc-SGML v1.5 に合わせてコマンド体系が大きく変わり、多くの +バグを取り除かれ、出力のデザインが原版に近付きました。 +コマンドの変更は以下の通りです。 +
+ fmttext → sgml2txt -e プレーンテキストへの変換 + fmthtml → sgml2html HTMLファイルへの変換 + fmtdvi → sgml2latex -d DVIファイルへの変換 + fmtps → sgml2latex -p PSファイルへの変換 + fmtman → sgml2txt -man manページファイルへの変換 + fmtcheck → sgmlcheck SGMLの構文のチェック ++ +SGML のタグの変更はほとんどありませんが、 +HTML の高機能な URL に対応した機能強化がなされています。これに伴い +label タグの書き方が変更されています。 +相互参照の +節を参照してください。 +
v1.1 との最大の違いは、v1.5 では原版のスーパーセットとなっていること +です。原版を別途インストールすることなく、英語のファイルの変換も +問題なくこなすことができるのは大きなメリットです。 +v1.1 からは多くのバグがとれタグの変更もなされているので、v1.1 のユーザ +は v1.5 へ移行することを強くお奨めします。
+ + +v1.4 からの変更は原版の更新に合わせたもので、いくつかのコマンド名の +変更とオプションの変更やデザインの変更があります。 +コマンドの変更は以下の通りです。 +
+ sgml2txt -e → sgml2txt -f 強調なしのプレーンテキストへの変換 + sgml2ps -T → sgml2latex LaTeX ソースファイルへの変換 + sgml2ps -d → sgml2latex -d DVI ファイルへの変換 + sgml2ps → sgml2latex -p PS ファイルへの変換 + sgml2* -c → sgmlcheck SGML の構文のチェック ++ +オプションの詳細については、それぞれのコマンドのヘルプ(-help を付けて +起動すると表示される)をご覧ください。 +
デザインの変更には以下のものがあります。 +
また、強調文字をなくしたプレーンテキストの出力ファイル名は v1.4 +では .euc という拡張子がつきましたが、v1.5 では原版にあわせて .txt +のままとしました。
+機能的には、プレーンテキストで目次がつくようになった点以外には大きな +変更はありませんので、v1.4 のユーザが v1.5 に移行する必要性はあまり +ありません。
+ + +linuxdoc-sgml
の日本語化にあたっては、以下の方々に大変お世話
+になりました。
+
+小島@電中研さん <kojima@komae.denken.or.jp> +土屋 哲さん <tsuchiya@sysrap.cs.fujitsu.co.jp> +箕浦 逸史さん <JBE03235@niftyserve.or.jp> +森本@IMAGICAさん <morimoto@lab.imagica.co.jp> +片山@京大理さん <shackon@kaba.or.jp> +山崎@CRC総研さん <c1962@crcsn23.tyk.crc.co.jp> +真鍋@豊技大さん <manabe@Roy.dsl.tutics.tut.ac.jp> +阿部@三菱電機さん <hironobu@ap.isl.melco.co.jp> +おごちゃん <ogochan@jh4tjw.prug.or.jp> +播口さん <hariguti@lsidiv.kawasaki-steel.co.jp> +進藤秀郎さん <shu@pegasus.rim.or.jp> +おざさ@東北大認知心理情報さん <ozasa@rubin.cpsy.is.tohoku.ac.jp> ++ +
抜けている人がいれば、ごめんなさい。
+ +ken@gamba.forus.or.jp
ono@jf.gee.kyoto-u.ac.jp
(v1.4から)+
+
+
+
+
+
+