の続きです。
本エントリーでは、「こんにちは」としか表示させなかった ePub ドキュメントを、もっと実用的にしてみます。
さて、ePub 2.0 では XHTML 1.1 でドキュメントを書きます。ただし、全ての XHTML 1.1 要素が使えるわけではありません。以下に、XHTML 1.1 で利用可能な要素を書き出します (ref. Open Publication Structure (OPS) 2.0.1 v1.0 #2.2.1 Required Mudele)。
| XHTML 1.1 モジュール名 | 要素名 |
|---|---|
| Structure | body, head, html, title |
| Text | abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var |
| Hypertext | a |
| List | dl, dt, dd, ol, ul, li |
| Object | object, param |
| Presentation | b, big, hr, i, small, sub, sup, tt |
| Edit | del, ins |
| Bidirectional Text | bdo |
| Table | caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr |
| Image | img |
| Client-Side Image Map | area, map |
| Meta-Information | meta |
| Style Sheet | style |
| Link | link |
| Base | base |
表を見て分かる通り、script, noscript 要素が載っていません。script 要素はテキストを書き換えるために利用できず、スクリプトの実行も非推奨とされています。script 要素なしでもドキュメントとして成立するよう、気を付ける必要がありそうです。
それでは、実際に XHTML 1.1 で文章を作成してみましょう。
chap1.xhtml の作成
まずファイル名が hello.xhtml だと座りが悪いので、chap1.xhtml に変更します。
そしたら、XHTML 1.1 要素を使ってテキストを書いてみます。ソースコードが長くなってしまったので、先に結果のスクリーン・ショットをお見せします。iPad の iBooks で確認しました。
ハイパーリンクをタップすると、ちゃんとジャンプすることを確認しました。
おしまい
どうですか? スタイル・シートを適用していないので、見た目が HTML そのまんまですけど、XHTML で ePub 作成できることを実感して頂けたでしょうか?
次は、少し横道に逸れて Makefile を作ってみます。
ソースコード
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 STRICT//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>第一章 ことはじめ</title>
</head>
<body>
<h1>利用可能な要素</h1>
<p>ePub 2.0 で利用可能な要素を紹介します。</p>
<h2 id="structure">構造要素</h2>
<p>html, head, title, body 要素が使えます。HTML の基本ですね。</p>
<h2>テキスト</h2>
<h3>ヘッダー</h3>
<p>h1, h2, h3, h4, h5, h6 のヘッダー要素が使えます。このテキストでは、h1, h2, h3 を使っています。</p>
<h3>段落</h3>
<p>p 要素を使って段落を作ります。</p>
<p>段落内で改行が必要な場合は br 要素が使えます。</p>
<p>例:</p>
<pre>
段落の中で<br/>
改行
</pre>
<p>結果:</p>
<p>段落の中で<br/>
改行
</p>
<h3>引用</h3>
<p>blockquote 要素を使って、引用ができます。</p>
<blockquote>
<p>三つの指輪は、空の下なるエルフの王に、<br/>
七つの指輪は、岩の館のドワーフの君に、<br/>
九つは、死すべき運命の人の子に、<br/>
一つは、暗き御座の冥王のため、<br/>
影横たわるモルドールの国に。</p>
<p>一つの指輪は、すべてを統べ、<br/>
一つの指輪は、すべてを見つけ、<br/>
一つの指輪は、すべてを捕らえて<br/>
くらやみのなかにつなぎとめる。<br/>
影横たわるモルドールの国に。 </p>
</blockquote>
<p>q 要素を使って、インライン引用もできます: <q>一つの指輪は、すべてを統べ</q> </p>
<p>cite 要素を使って、引用元を表現することもします: <cite>指輪物語</cite>より引用</p>
<h3>そのまま</h3>
<p>pre 要素を使って、そのまま表示することが可能です。</p>
<pre>
#define MAX 100
int main(void)
{
int sum = 0;
for (int i=0; i<MAX; i++)
{
sum += i;
}
return 0;
}
</pre>
<h3>強調</h3>
<p>より強い強調に <strong>strong</strong> 要素を、普通の強調に <em>em</em> 要素が利用可能です。</p>
<h3>その他</h3>
<p>特に意味のないブロック要素に div、インライン要素に span 要素が使えます。</p>
<h3>意味のある単語</h3>
<ul>
<li>dfn 要素: <dfn>定義</dfn>を表す</li>
<li>code 要素: <code>int i=0</code> の様にプログラム・コードを表す</li>
<li>kbd 要素: <kbd>C-x C-s</kbd> の様にキーボード入力を表す</li>
<li>samp 要素: <samp>samp</samp> 要素の様にサンプルを表す</li>
<li>var 要素: <var>PATH</var> の様に変数を表す</li>
</ul>
<h3>省略文字</h3>
<p>abbr 要素を使って省略文字を表現できます: <abbr title="World Hospital Orginization">WHO</abbr></p>
<p>acronym 要素も利用可能です: <acronym title="Hyper Text Markup Language">HTML</acronym></p>
<h2>ハイパーリンク</h2>
<p>a 要素も利用可能です。「<a href="#structure">構造要素</a>」へジャンプしてみましょう。</p>
<h2>リスト</h2>
<p>番号なしリストの ul と、番号ありリストの ol、そして定義リストの dl が利用可能です。</p>
<ul>
<li>Windows</li>
<li>Mac</li>
<li>Linux</li>
</ul>
<ol>
<li>Windows</li>
<li>Mac</li>
<li>Linux</li>
</ol>
<dl>
<dt>Windows</dt>
<dd>Microsoft 社の OS</dd>
<dt>Mac</dt>
<dd>Apple 社の OS</dd>
<dt>Linux</dt>
<dd>Linuxs 氏による Unix OS のクローン</dd>
</dl>
<h2>修正</h2>
<p>del 要素を使って<del>削除項目</del>を表せます</p>
<p>ins 要素を使って<ins>追記項目</ins>を表せます</p>
<h2>テーブル</h2>
<p>いっちょ、テーブルを作ってみましょう。</p>
<table>
<caption>力の指輪 〜 指輪物語</caption>
<thead>
<tr><th>種族</th><th>指輪の数</th></tr>
</thead>
<tbody>
<tr><td>エルフ</td><td>三つ</td></tr>
<tr><td>ドワーフ</td><td>七つ</td></tr>
<tr><td>人間</td><td>九つ</td></tr>
</tbody>
</table>
<h2>説明省略</h2>
<p>object, img, bdo, area, map, meta, style, link, base の説明は省略します。</p>
<p>b, i, tt, big, small 要素の利用は控えて CSS を使いましょう。</p>
<p>上付き<sup>1</sup>や下付き<sub>2</sub> は必要に応じて使いましょう。</p>
<hr/>
<p>hr 要素はよく分からんです。</p>
</body>
</html>
0 件のコメント:
コメントを投稿