Powered by SmartDoc

# SmartDoc
Ver. 1.0

2002年2月4日
浅海 智晴
http://www.netpassport.or.jp/~wtasami

## SmartDocとは

SmartDocはXMLをベースにしたドキュメント生成ツールです。 SmartDoc形式のドキュメントをHTML4.0, HTML3.2, LaTeX2e, JavaHelp, プレインテキストに変換します。 同一のドキュメントでWWWによる公開と、LaTeXによる高品質印刷を行うことが できます。

## SmartDocの特徴

- XMLベースのマークアップ言語
- HTMLライクな文法で記述したドキュメントをHTML4.0、HTML3.2, LaTeX2e, JavaHelp,プレインテキストに変換
  - HTML4とLaTeX2eのタグをベースにドキュメント記述に必要なタグを用意
  - HTML4、LaTeX2eそれぞれの不足機能はSmartDocが補完
  - 目次、参考文献、索引の生成
    - HTML4ではSmartDocが生成
    - LaTeX2eではLaTeX2eの機能を使用
  - 表
    - HTML4ライクの文法(rowspan, colspan, align)でLaTeX2eの表もゲット
  - 図
    - HTML4.0/3.2生成ではGIF, LaTeX2e生成ではEPSを取り込む
  - プログラム
    - プログラムソースコードの取り込み機能
    - マニュアル作成に便利
  - コンソール
    - コンソール出力の取り込み機能
    - マニュアル作成に便利
  - HTML4.0/3.2、LaTeX2eの固有機能の埋め込み機能
    - LaTeX2eの数式もこの方法で記述可能(1)
  - マルチロケール機能
    - 同一ドキュメント内に複数のロケールのコンテンツを記述
    - フォーマット変換時にロケール向けに整形
    - I18Nアプリケーションのマニュアル作成に便利
  - マルチリンガル機能
    - Unicodeを使うことによって複数言語を同時に記述可能
    - 言語はXMLのxml:lang属性で指定

マークアップ言語機能比較
| SmartDoc | DocBook | LinuxDoc | HTML | LaTeX | RTF | プレイン
--- | --- | --- | --- | --- | --- | --- | ---
論理構造 | A | A | A | B | A | ? | x
コンバート | A | B | A | C | x | ? | C
目次の自動生成 | A | A | A | x | A | ? | x
索引の自動生成 | A | A | ? | x | A | ? | x
参考文献の自動生成 | A | ? | ? | x | A | ? | x
用語集の自動生成 | A(Plan) | ? | ? | x | x | ? | x
RDFの自動生成 | A(Plan) | x | x | x | x | x | x
CDFの自動生成 | A(Plan) | x | x | x | x | x | x
マルチリンガル | A | ? | ? | B | x | x | B
マルチロケール | A | x | x | B | x | x | x
A | : | フルサポート
B | : | 実用レベルサポート(一部制限付き)
C | : | 制限付きで可能
? | : | 不明
x | : | 非常に困難

1. 数式に関してはいずれMathML(XMLの数式向け拡張文法)でサポートする予定

## インストール

インストールディレクトリに入っているsdoc(UNIX)または sdoc.bat(Windows)を適当にいじってください。

## 実行方法

    C:\tmp>sdoc foo.sdoc

## Status

現在のバージョンのフォーマットはまだ安定していません。 このためDTDはまだ提供されていません。

実用上問題なく動作しますが、マニュアルはまだ完備されていません。

## Thanks

- XMLパーサにはXerces Java Parser 1.2を使用しています。
- XSLTプロセッサにはXalan-Java version 1.2を使用しています。
- 正規表現エンジンにはSavarese.OrgのPerlTools-1.2を使用しています。
- 桜井雅史さん提供のJavaソースのシンタクスハイライト機能を使っています。
- 桜井雅史さん提供のTeX/MathML変換機能を使っています。