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