<?xml version='1.0' encoding="Shift_JIS" ?>

<doc xml:lang="ja">
<head>
<title locale="ja">SmartDocサンプル</title>
<title locale="en">SmartDoc Sample</title>
<author locale="ja">浅海 智晴</author>
<author locale="en">ASAMI, Tomoharu</author>
<hp>http://www.XMLSmartDoc.org</hp>
<date locale="ja">2002年1月28日</date>
<date locale="en">Jan. 28, 2002</date>

<abstract locale="ja">
このドキュメントは<index>SmartDoc</index>の機能をデモするためのサンプルです。

本文に加えて目次、参考文献、索引が自動生成されます。
</abstract>
<abstract locale="en">
This is a sample document to demonstrate the <index>SmartDoc</index> facility.

In addtion to contents, table of contents, bibliography and index
are generated automatically.
</abstract>

</head>
<body>

<section title="文章">
<title locale="en">Sentence</title>

<p locale="ja">
普通の文章はこのようになります。
</p>
<p locale="en">
Ordinary sentence is shown this way.
</p>

<p locale="ja">
<index>SmartDoc</index>ではセンテンスの区切りはHTMLのような<index>タグ</index>ではなく、LaTeX方式の
空白行を用います。
</p>
<p locale="en">
<index>SmartDoc</index> uses empty line as delimiter of sentence, LaTeX way, not
using <index>tag</index> like HTML.
</p>

<p locale="ja">
センテンスの途中に改行があっても、論理的な改行とはみなされないのはHTML
やLaTeXと同様です。
</p>
<p locale="en">
Even if there is line feed in the midway of a sentence, it isn't considered as logical line feed as HTML or LaTeX. 
</p>

<subsection title="文字のエスケープ">

文字のエスケープについてはXMLの文法に準じます。

&amp;はアンパサンド。
ここには&lt;と&gt;が入るはず。

これらの文字はHTMLとLaTeXの両方でエスケープする必要があります。

</subsection>

</section>

<section title="表示属性">
<title locale="en">Display attribute</title>

<p locale="ja">
<index>タグ</index>に指定した<code>class</code>と<code>style</code>はそのままHTMLの<index>タグ</index>
に反映されます。
つまり、これらの<index>タグ</index>とCSS(Cascade Style Sheet)を組合わせると文字や表の表示スタイルを変更することができます。
</p>
<p locale="en">
The <code>class</code> and the <code>key</code> designated at the <index>tag</index>
in the SamrtDoc reflected the <index>tags</index> in the HTML as is.
Namely to combine these <index>tags</index> and CSS(Cascade Style Sheet),
 display
styles of the character or the table can be changed in HTML.
</p>

</section>

<section title="リスト">
<title locale="en">List</title>

<p locale="ja">
<index>SmartDoc</index>のリストは3種類あります。
</p>
<p locale="en">
<index>SmartDoc</index> has three kind of lists.
</p>

<p locale="ja">
最初のリストは点。

<ul>
<li>最初のリスト</li>
<li>次のリスト</li>
<li>その次のリスト</li>
</ul>
</p>
<p locale="en">
First list is dot type.

<ul>
<li>first</li>
<li>second</li>
<li>third</li>
</ul>
</p>

<p locale="ja">
次のリストは数字。

<ol>
<li>最初のリスト</li>
<li>次のリスト</li>
<li>その次のリスト</li>
</ol>
</p>
<p locale="en">
Next list is numeric type.

<ol>
<li>first</li>
<li>second</li>
<li>third</li>
</ol>
</p>

<p locale="ja">
次は定義。

<dl>
<dt>用語甲</dt><dd>最初の説明</dd>
<dt>用語乙</dt><dd>次の説明</dd>
<dt>用語丙</dt><dd>その次の説明</dd>
</dl>
</p>
<p locale="en">
Next list is definition type.

<dl>
<dt>term A</dt><dd>first description</dd>
<dt>term B</dt><dd>second description</dd>
<dt>term C</dt><dd>third description</dd>
</dl>
</p>

<subsection title="HTML">

<p locale="ja">
点、数字、定義のリストはそれぞれ<code>ul</code>, <code>ol</code>, <code>dl</code>に変換されます。
</p>
<p locale="en">
Lists of dot type, numeric type, definition type are translated to
<code>ul</code>, <code>ol</code> and <code>dl</code> respectively.
</p>

</subsection>

<subsection title="LaTeX">

<p locale="ja">
点、数字、定義のリストはそれぞれ<code>itemize</code>, <code>enumerate</code>, <code>description</code>に変換されます。
</p>
<p locale="en">
Lists of dot type, numeric type, definition type are translated to
<code>itemize</code>, <code>enumerate</code> and <code>desciption</code> respectively.
</p>

</subsection>

</section>

<section title="表">
<title locale="en">Table</title>

<p locale="ja">
<index>SmartDoc</index>の表の表現力はHTMLと同等です。
<a href="#表のサンプル"/>では<code>rowspan</code>、<code>colspan</code>を駆使した表組み、<code>align</code>によるテキストの配置の指定を行っています。
</p>
<p locale="en">
<index>SmartDoc</index> has same representative ability for table as HTML.
<a href="#Sample table"/> uses <code>rowspan</code> and
<code>colspan</code> to configure table structure, and uses
<code>align</code> to layout a text within a cell.
</p>

<table locale="ja" title="表のサンプル">
<colgroup>
<col align="left" class="key" />
</colgroup>
<colgroup span="2">
<col align="center"/>
<col align="right"/>
</colgroup>
<thead>
<tr>
<th>カラム(align=left,class=key)</th>
<th>カラム(align=center)</th>
<th>カラム(align=right)</th>
</tr>
</thead>
<tbody>
<tr>
<td>データ</td>
<td>データ</td>
<td>データ</td>
</tr>
<tr>
<td align="center">データ(align=center)</td>
<td align="right">データ(align=right)</td>
<td align="left">データ(align=left)</td>
</tr>
<tr>
<td rowspan="2">データ(rowspan=2)</td>
<td>データ</td>
<td>データ</td>
</tr>
<tr>
<td colspan="2">データ(colspan=2)</td>
</tr>
<tr>
<td rowspan="2" colspan="2" align="center">データ(rowspan=2,colspan=2,align=center)</td>
<td>データ</td>
</tr>
<tr>
<td>データ</td>
</tr>
<tr>
<td colspan="3" align="right">データ(colspan=3,align=right)</td>
</tr>
</tbody>
</table>
<table locale="en" title="Sample table">
<colgroup>
<col align="left" class="key" />
</colgroup>
<colgroup span="2">
<col align="center"/>
<col align="right"/>
</colgroup>
<thead>
<tr>
<th>column(align=left,class=key)</th>
<th>column(align=center)</th>
<th>column(align=right)</th>
</tr>
</thead>
<tbody>
<tr>
<td>data</td>
<td>data</td>
<td>data</td>
</tr>
<tr>
<td align="center">data(align=center)</td>
<td align="right">data(align=right)</td>
<td align="left">data(align=left)</td>
</tr>
<tr>
<td rowspan="2">data(rowspan=2)</td>
<td>data</td>
<td>data</td>
</tr>
<tr>
<td colspan="2">data(colspan=2)</td>
</tr>
<tr>
<td rowspan="2" colspan="2" align="center">data(rowspan=2,colspan=2,align=center)</td>
<td>data</td>
</tr>
<tr>
<td>data</td>
</tr>
<tr>
<td colspan="3" align="right">data(colspan=3,align=right)</td>
</tr>
</tbody>
</table>

<p locale="ja">
また<a href="#木構造の表"/>に示すように木構造の表を簡単に作成するための機能も持っています。
</p>
<p locale="en">
As <a href="#Tree structure table"/> shown, <index>SmartDoc</index> has a facility to
construct tree structure table easily.
</p>

<table locale="ja" title="木構造の表">
<thead>
<tr>
<th>大分類</th>
<th>中分類</th>
<th>小分類</th>
</tr>
</thead>
<tbody>
<ul>
<li>動物</li>

<ul>
<li>哺乳類</li>
<ul>
<li>犬</li>
<li>猫</li>
<li>馬</li>
</ul>

<li>爬虫類</li>
<ul>
<li>蛇</li>
<li>蛙</li>
</ul>

<li>昆虫</li>
<ul>
<li>蜻蛉</li>
<li>蝶</li>
<li>蜂</li>
<li>蟻</li>
</ul>
</ul>

<li>植物</li>
<ul>
<li>針葉樹</li>
<ul>
<li>杉</li>
</ul>
</ul>

</ul>

</tbody>
</table>
<table locale="en" title="Tree structure table">
<thead>
<tr>
<th>Large classification</th>
<th>Middle classification</th>
<th>Small classification</th>
</tr>
</thead>
<tbody>
<ul>
<li>animal</li>

<ul>
<li>mammal</li>
<ul>
<li>dog</li>
<li>cat</li>
<li>horse</li>
</ul>

<li>worm</li>
<ul>
<li>snake</li>
<li>frog</li>
</ul>

<li>insect</li>
<ul>
<li>dragonfly</li>
<li>butterfly</li>
<li>bee</li>
<li>ant</li>
</ul>
</ul>

<li>plant</li>
<ul>
<li>conifer</li>
<ul>
<li>cedar</li>
</ul>
</ul>

</ul>

</tbody>
</table>

簡単な表はべた書きでの入力もできます。

<a href="#べた書きの表"/>はヘッダをCSVライクにカンマを区切り記号に
した形式で入力しています。

<table title="べた書きの表">
<thead normalizer="csvthead">
カラム1,カラム2,カラム3
</thead>
<tbody normalizer="csvtbody">
データ1,データ2,データ3
データ4,データ5,データ6
データ7,データ8,データ9
</tbody>
</table>

表のデータを外部から取り込むこともできます。

<a href="#外部データの取り込み"/>はCSV形式のデータを外部ファイルから入
力しています。
これでExcelなど表計算ソフトのデータを簡単に取り込むことができますね。

ちなみにヘッダはタブを区切り記号にした形式で入力しています。

<table title="外部データの取り込み">
<thead normalizer="csvthead">
カラム1,カラム2,カラム3
</thead>
<tbody src="data.csv" adapter="csv">
</tbody>
</table>

<subsection title="HTML">

<p locale="ja">
<index>SmartDoc</index>の表はほぼそのままHTMLの表に変換されます。
</p>
<p locale="ja">
The table of <index>SmartDoc</index> is almost transformed in the table of HTML as it
is. 
</p>

<p locale="ja">
ちなみのこのデモでは<code>td</code><index>タグ</index>の<code>class=key</code>はSalmon色の背景色を使うように設定しています。
</p>
<p locale="en">
Incidentally in this demo, <code>class=key</code> in the
<code>td</code> <index>tag</index> is configured to use salmon as background color.
</p>

</subsection>

<subsection title="LaTeX">

<p locale="ja">
LaTeXの表機能はかなり制限がありますが、<index>SmartDoc</index>ではできるだけ忠実に表
組みを試みます。
シンプルな表ならほぼ大丈夫です。

ヘッダの文字と<code>class</code>が<code>key</code>のカラムの文字は強調のためボールド体になります。
</p>
<p locale="en">
As for the table function of LaTeX, there is restriction fairly.
Although <index>SmartDoc</index> attempts constructing a table as faithfully as possible.
</p>

</subsection>

</section>

<section title="脚注">
<title locale="en">Footnote</title>

文章に脚注<note>脚注はこのようになります。</note>をつけることができます。

<subsection title="HTML">

脚注はセクションの後ろにまとめられ、文書全体の通し番号が割り振られます。

</subsection>

<subsection title="LaTeX">

脚注はfootnote<index>マクロ</index>によりページの下に表示されます。

</subsection>

</section>

<section title="図">

HTMLではGIF、LaTeXではPostScriptを取り込むことができます。

図にIDをつけるとアンカーによるリンクを設定することができます。
IDはid属性を使いますが、id属性を指定せずにtitle属性を指定するとtitle属性の値がid属性にも流用されます。

図の指定はファイル名のコンポーネント部分を指定する方法と、サフィックス
まで含める方法の２つがあります。

<a href="#figure1">最初の例</a>はコンポーネント部分を指定する方
法です。
<index>タグ</index>には<code>figure</code>と指定していますが、HTMLでは<code>figure.gif</code>、LaTeXでは<code>figure.eps</code>に読みかえられます。

<figure id="figure1" src="figure" title="図の例(src=&quot;figure&quot;)" />

<a href="#figure2">次の例</a>はファイル名をサフィックスを含めて指定する方法です。
ファイル名を個別に指定するので、フォーマットごとに名前が異なっていても大丈夫です。

<figure id="figure2" src="figure.eps, figure.gif" title="図の例(src=&quot;figure.eps, figure.gif&quot;)" />

<subsection title="HTML">

図は<code>figure</code><index>タグ</index>で表示されます。

使用できるイメージの種類はGIFまたはJPEGとなります。

</subsection>

<subsection title="LaTeX">

印刷用コマンドには<code>dvi2ps</code>と<code>dvips</code>を想定しています。

<code>dvi2ps</code>を使う場合には<code>eclepsf</code><index>マクロ</index>が、<code>dvips</code>を使う場合には<code>includegraphics</code><index>マクロ</index>が、図の取り込みに使用されます。

</subsection>

</section>

<section title="プログラム">

プログラムと本文の内容を常に同期させておくことは結構手間のかかる作業です。

動作確認の済んだプログラムをわざわざ文書内に取り込むのはあまりにもめんどくさいので<index>SmartDoc</index>ではプログラムを外部から取り込む機能を用意しました。

もちろん本文内にプログラムを記述することもできます。

プログラム内のコメントで特別な記述を行うと、取り込んだテキストの該当箇所を強調することができます。

<subsection title="外部からの取り込み">

<program src="Sample.java" title="プログラム例" />

</subsection>

<subsection title="内部での定義">

なお内部で定義する場合にはXMLの標準エンティティをエスケープしなければならないことに注意が必要です。

<program title="プログラム例(その2)">
public class Sample {
    public static void main(String[] args) {
// &lt;em&gt;"Hello"&lt;/em&gt;
	System.out.println("Hello");
    }
}
</program>

</subsection>

<subsection title="HTML">

ユーザの入力部分の強調は<code>em</code><index>タグ</index>によって行われます。

</subsection>

<subsection title="LaTeX">

ユーザの入力部分の強調は下線によって行われます。

</subsection>

</section>

<section title="コンソール">

<index>SmartDoc</index>はコンソール上でのオペレーションを記述するための機能を用意しています。

ユーザの入力部分は強調されます。

<console src="sample.console" title="コンソールの例" />

コンソールもプログラムと同じようにして外部のファイルを取り込むことができます。

<subsection title="HTML">

ユーザの入力部分の強調は<code>kbd</code><index>タグ</index>によって行われます。

</subsection>

<subsection title="LaTeX">

ユーザの入力部分の強調は下線によって行われます。

ASCII pLaTeX用<index>マクロ</index>ascmacを使えば、コンソールの中身がそれらしい枠で囲
まれます。

ascmacを使うためには<code>latex2e.box</code>に<code>AscmacLaTeX2eBoxhandler</code>を指定します。

</subsection>

</section>

<section title="FYI">

雑誌記事のコラムのような囲み記事をFYIとして使うことができます。

<fyi title="ちょっとした情報">
本文を補足する情報をここにいれる。
</fyi>

<subsection title="HTML">

HTMLの場合には、その場に出力されます。
(そのうちハイパーリンク化するかもしれません。)

</subsection>

<subsection title="LaTeX">

LaTeXの場合には、ページの上か下、ページに収まりきらない場合には別ページに出力されます。

<code>ascmac</code>を使えばノートのような形状のボックス内に記述されます。

</subsection>

</section>

<section title="色">

<index>SmartDoc</index>では<span style="color:yellow">文字に色</span>をつけることができます。

</section>

<section title="リンク">

リンクではリンクの対象に応じて表示が最適化されます。

<ul>
<li><a href="#figure1"/>に取り込んだ図を示します。</li>
<li><a href="#figure1">図の例</a>に取り込んだ図を示します。</li>
<li><a href="#表のサンプル"/>に取り込んだ表を示します。</li>
<li><a href="#表のサンプル">サンプルの表</a>に取り込んだ表を示します。</li>
<li><a href="#コンソールの例"/>に取り込んだコンソールを示します。</li>
<li><a href="#コンソールの例">コンソール上での実行</a>に取り込んだコンソールを示します。</li>
<li><a href="#プログラム例"/>に取り込んだプログラムを示します。</li>
<li><a href="#プログラム例">プログラムソースの例</a>に取り込んだプログラムを示します。</li>
<li><a href="http://www.netpassport.or.jp/~wtasami"/>にアクセスしよう。</li>
<li><a href="http://www.netpassport.or.jp/~wtasami">あさみくんのほーむぺーじ</a>にアクセスしよう。</li>
</ul>

またリンクにhrefを指定しなかった場合には、自動的にリンクを張ることもで
きます。

ここでは<a/>を参照してみます。

<table title="リンクのデモの表">
<tbody>
<tr>
<td>リンクのデモ</td>
</tr>
</tbody>
</table>

<subsection title="HTML">

基本的には通常のアンカー<index>タグ</index>と同様の動きをします。

文字列が指定されていなかった場合にはリンク対象に合わせて適切な文字列を補います。

</subsection>

<subsection title="LaTeX">

文字列が指定されていなかった場合にはリンク対象に合わせて適切な文字列を補います。

</subsection>

</section>

<section title="定義">

<dfn><index>SmartDoc</index></dfn>では用語の定義を指定することができます。

ここでは<index>SmartDoc</index>を定義してみました。

<subsection title="HTML">

定義された文字はボールド体で表示され、索引にも定義としてリンクされます。

</subsection>

<subsection title="LaTeX">

定義された文字はボールド体で表示されます。

</subsection>

</section>

<section title="インデクス">

<index>SmartDoc</index>ではインデクス用のラベルを自動的に本文中に設定する機能を持っています。

このサンプルでは以下の3つがインデクスキーワードとして指定されています。

<ul>
<li><index>SmartDoc</index></li>
<li><index>マクロ</index></li>
<li><index>タグ</index></li>
</ul>

</section>

<section title="参考文献">

<index>SmartDoc</index>では参考文献の参照を行う機能を提供しています。

<!-- DOM仕様書 -->
<index>SmartDoc</index>の開発では特に<a href="#xmlperfect">XML完全解説</a>、<a
href="#platex2ebook">日本語LaTeX2eブック</a>、<a
href="#kaitei">LaTeX2e階梯</a>がとても参考になりました。
この他に<a href="#prhtml"/>も頻繁に参照しました。

<subsection title="HTML">

HTMLではまだ参考文献機能を実装していません。

</subsection>

</section>

<section title="その他">

<subsection title="時間">

文書の中に<index>SmartDoc</index>によって生成された時間を埋め込むことができます。

HTMLによるページ作成に便利だと思います。

ちなみにこの文書が生成された時間は<time/>です。

</subsection>

</section>

<section title="フォーマット固有処理">

<index>SmartDoc</index>では<index>SmartDoc</index>の文法にはない各フォーマットの固有処理を直接記述することができます。

LaTeXをやっている人にはおなじみの
<or>
<native format="latex">\LaTeX </native>
<native format="html">L&lt;small&gt;A&lt;/small&gt;T&lt;sub&gt;E&lt;/sub&gt;X</native>
<native>LaTeX</native>
</or>
です。
どう表示されましたか？

数式の場合はこうなります。

<or>
<native format="latex">
\[
y = \frac{5x^2}{a}
\]
</native>
<native format="html">
&lt;center&gt;
y = (5x&lt;sup&gt;2&lt;/sup&gt;) / a
&lt;/center&gt;
</native>
<div>
y = (5x^2) / a
</div>
</or>

プログラムやコンソールと同じようにしてフォーマット固有の記述がされたテキストを外部から取り込むこともできます。

特にHTMLは&lt;や&gt;をエスケープしなくてもすむので直接<index>SmartDoc</index>の文章に埋め込むよりかなり楽になります。

<or>
<native format="latex" src="latex.tex" encoding="EUC-JP"/>
<native format="html" src="html.html" encoding="EUC-JP"/>
<p>
これがHTMLまたはLaTeX以外で表示されたら失敗。
</p>
</or>

</section>


<bibliography>
<book id="xmlprimer">
<author>村田 真</author>
<title>XML入門</title>
<publisher>日本経済新聞社</publisher>
<year>1998</year>
</book>
<book id="xmlperfect">
<author>XML/SGMLサロン</author>
<title>XML完全解説</title>
<publisher>技術評論社</publisher>
<year>1998</year>
</book>
<book id="prhtml">
<author>シーズ</author>
<title>改定新版HTMLポケットリファレンス</title>
<edition>2</edition>
<publisher>技術評論社</publisher>
<year>1998</year>
</book>
<book id="platex2ebook">
<author>中野 賢</author>
<title>日本語LaTeX2eブック</title>
<publisher>アスキー</publisher>
<year>1996</year>
</book>
<book id="kaitei">
<author>藤田 眞作</author>
<title>LaTeX2e階梯</title>
<publisher>アジソン・ウェスレイ・パブリッシャーズ・ジャバン</publisher>
<year>1996</year>
</book>
</bibliography>

</body>

</doc>
