# SmartDocの構造

浅海 智晴
2001年12月20日

本章では、SmartDoc文書の構造について説明します。

# 要素一覧

SmartDocがサポートしている要素の一覧をに 示します。

カテゴリ,要素,機能,出自

- 文書要素

doc | SmartDoc文書のルート要素 | SmartDoc独自
head | SmartDoc文書の文書情報 | HTML/head要素
body | SmartDoc文書の本体 | HTML/body要素

- ヘッダ要素

title | 文書のタイトル | LaTeX/titleコマンド
subtitle | 文書のサブタイトル | SmartDoc独自
author | 著者 | LaTeX/authorコマンド
org | 組織 | SmartDoc独自
date | 日時 | LaTeX/dateコマンド
hp | ホームページアドレス | SmartDoc独自
email | Eメールアドレス | SmartDoc独自
abstract |  | LaTeX/abstract環境
header | ページヘッダ情報 | SmartDoc独自
footer | ページフッタ情報 | SmartDoc独自
prologue | ページプロローグ情報 | SmartDoc独自
native | ターゲットフォーマットのネーティブ記述 | SmartDoc独自

- 文書構造要素

part | 部 | LaTeX/partコマンド
chapter | 章 | LaTeX/chapterコマンド
section | 節 | LaTeX/sectionコマンド
subsection | 小節 | LaTeX/subsectionコマンド
subsubsection | 少少節 | LaTeX/subsubsectionコマンド
appendix | 付録 | LaTeX/appendixコマンド

- 補助構造要素

fyi | コメント的な参考情報 | SmartDoc独自
note | 注釈 | SmartDoc独自

- リスト要素

ul | 番号なしリスト | HTML/ul要素
ol | 番号つきリスト | HTML/ol要素
li | ulまたはolのリスト項目 | HTML/li要素
dl | 定義リスト | HTML/dl要素
dt | dlの定義項目 | HTML/dt要素
dd | dlの定義内容 | HTML/dd要素

- ブロック要素

div | 矩形領域 | HTML/div要素
p | パラグラフ | HTML/p要素
pre | 整形済みテキスト | HTML/pre要素

- テーブル要素

table | 表のルート要素 | HTML/table要素
thead | ヘッダ情報 | HTML/thead要素
tfoot | フッタ情報 | HTML/tfoot要素
tbody | データ情報 | HTML/tbody要素
tr | レコード | HTML/tr要素
th | ヘッダセル | HTML/th要素
td | データセル | HTML/td要素
colgroup | カラムグループの宣言 | HTML/colgroup要素
col | カラム情報の定義 | HTML/col要素
tnote | 表の注釈 | SmartDoc独自

- イメージ要素

figure | 図版の取り込み | SmartDoc独自
img | イメージの取り込み | HTML/img要素

- ハイパーテキストリンク要素

a | ハイパーテキストリンク | HTML/a要素
cite | 引用リンク | HTML/cite要素

- 引用要素

blockquote | 長い引用 | HTML/blockquote要素
q | 短い引用 | HTML/q要素

- 数式要素

equation | 数式の記述 | LaTeX/equation環境

- テキスト要素

span | テキストの範囲指定 | HTML/span要素
em | 強調 | HTML/em要素
strong | 強い強調 | HTML/strong要素
dfn | 用語の定義 | HTML/dfn要素
code | プログラムコード | HTML/code要素
b | ボールド体 | HTML/b要素
i | イタリック体 | HTML/i要素
tt | タイプライタ体 | HTML/tt要素

- プログラム要素

program | プログラムの記述 | SmartDoc独自
console | コンソール画面の記述 | SmartDoc独自

- 特殊要素

native | ターゲットフォーマットのネーティブ記述 | SmartDoc独自

- 属性要素

title | タイトル属性 | SmartDoc独自
attribute | 属性値の指定 | SmartDoc独自

- 参考文献要素

bibliography | 参考文献 | BibTeX
bibliopole | 参考文献データ | SmartDoc独自
book | 書籍 | BibTeX
article | 記事 | BibTeX
journal | 雑誌 | BibTeX
author | 著者 | BibTeX
editor | 編者 | BibTeX
title | タイトル | BibTeX
subtitle | サブタイトル | SmartDoc独自
edition | エディション | BibTeX
publisher | 出版社 | BibTeX
year | 年 | BibTeX
month | 月 | BibTeX
volume | 巻 | BibTeX
number | 号 | BibTeX
a | URI | SmartDoc独自

# 文書の基本構造

SmartDocの最も基本的な文書構造をに示します。

文書構造の例

ここから分かる通り、 SmartDocの基本的な文書構造は `doc`、`head`、`body`の3つの要素 から構成されています。 SmartDocではこれらの3つの要素を文書要素と呼んでいます。

doc
要素は、SmartDoc文書のルート要素になり、 `head`要素はSmartDoc文書の文書情報、`body`要素は SmartDoc文書の本体を格納する要素となります。

# ヘッダ要素

SmartDocでは、`head`に以下の要素を格納することが できます。 これらの要素を`ヘッダ要素`と呼びます。 ヘッダ要素は、他の要素と名前が同じ場合がありますが、意味的には全く 別のものとして扱われます。

title
  タイトル
subtitle
  サブタイトル
author
  著者
org
  組織
date
  日時
hp
  ホームページアドレス
email
  Eメールアドレス
abstract
  概要
header
  ページヘッダ情報
footer
  ページフッタ情報
prologue
  ページプロローグ情報
native
  ターゲットフォーマットのヘッダ情報

ヘッド要素を使ったSmartDoc文書は以下のようになります。

ヘッド要素の例

# 文書構造要素

SmartDocでは、「章」や「節」といった文書の論理的な区切りを指定する要素 を用意しています。 この目的に使用する要素をSmartDocでは文書構造要素と呼んでいます。

文書構造要素の例

part
(部)、`chapter`(章)、`section`(節)、 `subsection`(小節)、`subsubsection`(小小節)、 `appendix`(付録) の各要素が 文書構造要素となります。

# 補助構造要素

SmartDocでは、文書の論理構造を補完するための補助的な記述をのための 要素を用意しています。

補助構造要素の例

このような補助的な論理構造を示す要素を補助構造要素と 呼びます。 `fyi`、`note`の各要素が補助構造要素となります。

# リスト要素

SmartDocでは名前なしリスト、名前付きリスト、定義リストの3種類のリストを 用意しています。 これらのリストを構成する要素をリスト要素と呼びます。

リスト要素の例

ul
、`ol`、`li`、 `dl`、`dt`、`dd`の各要素が リスト要素です。

# ブロック要素

矩形エリアを記述するための要素として、 `div`、`p`、`pre`の各要素 が用意されています。

ブロック要素の例

# テーブル要素

SmartDocで表を記述する場合`table`要素を使用します。 この`table`要素には、 `colgroup`、`col`、`thead`、 `tfoot`、`tbody`、 `tr`、`th`、`td`、 `tnote`といった要素が格納されます。 これらの要素をテーブル要素と呼びます。

tnote
要素以外の要素は、HTML 4.0のテーブル要素とほぼ同じ動きを します。 `tnote`要素は表の注釈を記述する要素です。

テーブル要素の例

# イメージ要素

イメージの取り込みは`figure`要素または `img`要素を使用します。 この2つの要素をイメージ要素と呼びます。

figure
要素はキャプション付きの図版を記述します。

イメージ要素の例

# ハイパーテキストリンク要素

SmartDoc文書からハイパーテキストリンクを使用すると のようになります。

ハイパーテキストリンク要素の例

a
、`cite`がハイパーテキストリンク要素です。

# 引用要素

SmartDoc文書で、引用を記述する場合には となります。

引用要素の例

blockquote
、`q`が引用要素です。 この2つの要素を引用要素と呼びます。

# 索引要素

SmartDoc文書では索引の自動生成を行うことができます。 この索引を作成する場合の候補となる文字列を指定するために使用するのが `index`要素です。 この要素を索引要素と呼びます。

索引要素の例

# 数式要素

数式要素
は、数式を記述するための要素です。 現在は番号付きの数式を記述するための`equation`要素がサポート されています。

数式要素の例

# テキスト要素

テキスト要素は、SmartDoc文書中に記述されているテキストの修飾を行うための 要素です。

テキスト要素の例

span
、 `em`、`strong`、 `dfn`、`code`、 `b`、`i`、`tt`がテキスト要素です。 それぞれ以下の機能を持っています。

span
  テキストの範囲指定
em
  強調
strong
  強い強調
dfn
  用語の定義
code
  プログラムコード
b
  ボールド体
i
  イタリック体
tt
  タイプライタ体

# プログラム要素

SmartDocではプログラムのソースコードや実行結果を表示するための 専用要素として`program`と`console`を用意しています。 これらの要素を`プログラム要素`と呼びます。

プログラム要素の例

# 特殊要素

特殊要素
は、特別な処理に使用される要素です。

特殊要素の例

native
要素が特殊要素です。

# 属性要素

属性要素の例

属性要素
は、属性値を要素として扱うための要素です。 `title`、`attribute` の各要素が属性要素です。