JF: JF Workshop Guidance: SGML 文書作成

Wed Mar 4 22:55:55 JST 2015
Contents:

SGML 文書作成

JF Project では、おもに SGML (Standard Generalized Markup Language) と呼ばれるマークアップ言語で文書を作成・管理しています。 SGML は文書の構造を DTD (Document Type Definition) で定義し、 その定義を使って文章の論理構造・意味構造を表現しようというものです。 SGML を利用すると、文章の論理構造にしたがってタグと呼ばれるマークを テキストファイル中に埋め込んでいくだけで、 プレインテキストや HTML 文書への変換が容易になります。

現在 JF Project の SGML 文書で使われている DTD は、LinuxDoc DTD, LinuxDocTR DTD, DocBook DTD です。

LinuxDoc DTD

かつて Linux 関連の HOWTO 文書は、 LinuxDoc DTD で記述されたものが主流でした。 DocBook が普及した今でも、その手軽さを好んで使い続ける著者は 少なくありません。

LinuxDoc DTD には、翻訳者や翻訳日時を表すエレメントがないという 問題がありました。 それらを解決するために trans エレメントと tdate エレメントを追加したものが、LinuxDocTR DTD です。

LinuxDoc-Tools を使えば、LinuxDoc や LinuxDocTR の SGML 文書を プレインテキストや HTML に変換できます。

LinuxDoc-Tools のダウンロード

linuxdoc-tools.tar.gz
LinuxDoc-Tools ソースアーカイブ ( 594709 bytes)

LinuxDoc-Tools のインストール

インストール
openjade もしくは jade が必要です。 openjade を使う場合は、 http://download.sourceforge.net/openjade/openjade-1.3.tar.gz から入手してください。
tar xvfz openjade-1.3.tar.gz として展開。
cd openjade-1.3
./configure
make

スーパーユーザーになって make install
次に LinuxDoc-Tools をインストールします。
tar xvfz linuxdoc-tools.tar.gz として展開。
cd linuxdoc-tools
./configure
make

スーパーユーザーになって make install
使い方
SGML → HTML linuxdoc -B html -l ja -c nippon *.sgml
SGML → 単一の HTML linuxdoc -B html -l ja -c nippon -s 0 -T 2 *.sgml
SGML → text linuxdoc -B txt -f -l ja -c nippon *.sgml

LinuxDoc-Tools には 以下のような制限があります。 詳細は SGML Tips for JF を参照してください。

  1. 日本語での出力フォーマットはプレインテキストと HTML、それに TeX のみ
    (もちろん英語なら他の形式にも変換できます)
  2. 行頭に '(シングルクォート) があると、プレインテキストへの 変換がうまくいきません。
  3. コメント宣言の中に -- (二つ以上の連続したハイフン)は 記述できません。これは SGML の仕様なので -?- (?- 以外の文字) などとしてハイフンが連続しないよう対処してください。

DocBook DTD

最近になって LDP で DTD を LinuxDoc から DocBook に移行しようという動きが顕著になってきました。JF でも DocBook DTD への対応作業が進行中です。

DocBook に関する情報は、 SGML Tips for JF, LDP Author Guide, 実用 DocBook 入門 をご覧ください。

SGML 文書作成を支援するツール

yasgml_1.5-5.tar.gz
YaTeX 準拠のインターフェースを持つ LinuxDoc SGML モードを提供する Emacs Lisp package.
(作者: Takashi Nishimoto さん)
cz-lnxsgml-outline.el
LinuxDoc 形式の sgml を読み込みアウトライン表示をする Emacs Lisp package.
(作者: 早川仁さん)

SGML 文書作成の実際

はじめて SGML を使う人のために、いくつかのチュートリアルがあります。 まずはこれらを読んでみてください。

SGML メモ (SGML 事始)
「はじめて SGML で文章を書いてみようとしている人」を対象に 佐野武俊さんがかいた LinuxDoc DTD 用チュートリアル
SGML Tips for JF
JF のメンバ向けに佐野武俊さんが作成した、SGML 文書作成のヒント集 DocBook DTD の情報も一部含まれています
日本語版 Linuxdoc-SGML ガイド
Linuxdoc-SGML に付属するガイドをもとに、 日本語版 Linuxdoc-SGML v1.5 に対応するよう書き下ろされたガイド。 上記の SGML Tips for JF に説明されているように、内容には既に obsolete になった部分もあり、 LinuxDoc-Tools には完全には適用できませんが、それでもまだまだ 参考になるところが多い文書です。 さとけん@ForUsさん、小野@京大環境地球さんによる執筆。
(HTML 版 | プレインテキスト版 | SGML 版)
ISO 8879:1986 -- Information processing -- Text and office systems -- Standard Generalized Markup Language (ISO)
SGML に関する解説 (石塚英弘さん)
The SGML/XML Web Page (Robin Cover さん)
SP -- フリーなオブジェクト指向の SGML パーザ Toolkit (James Clark さん)
本家 SGML-Tools (sgmltools.org)

以下は、Linuxdoc-SGML 時代の資料です。現在の LinuxDoc-Tools にはそのままでは あてはまらない記述も多くありますが、参考資料として用意しました。

「日本語版 Linuxdoc-SGML に関するQ & A」
日本語版 Linuxdoc-SGML を使うにあたって生じる疑問に答える FAQ 集.
(HTML 版 | プレインテキスト版 | SGML 版)