(5)spine

packageのもう一つの基本的内容spineは、一般には、本の背表紙を表わしますが、ここでは、含まれているテキストファイルの表示/読書順序を規定するものです。

まず、

<spine page-progression-direction=”rtl”>

というタグで、spineデータが始まります。この、page-progression-directionはページめくり順序を規定します。rtlは、right to left、すなわち右側から左側に向かってめくります。したがって、これは、縦書きの場合を表わします。この書籍を登録する際に、私たちは縦書きを指定しました。その結果です。もし、そこで横書きを設定すれば、この値は、ltr、すなわち、left to rightとなります。

この他に、spineの属性としては、toc属性があり、もし、この電子書籍がepubの一つ前のバージョン、epub2用のリーディングデバイスでも、できる限り適切に表示させたい場合に、toc.ncxファイルを作成し、ここに登録します。TONBOでは、全体オプションの設定でtoc.ncxの作成を指定できます。toc.ncxは、できる限り作成することが望ましいです。TONBOで、このファイルの作成を指定すると、自動的にこのspine属性に組み込まれます。toc.ncxを組み込んでも、epub3としてのepubcheckに問題なく通ります。だから、多くの場合、toc.ncxを組み込んでも問題なく機能します。

次の、<!– spine start –>と最後の<!– spine end –>は、xmlのコメントで、TONBOが利用するだけで、善悪、いずれの機能も果たしません。

spineの内容は、itemrefという名前で始まるタグで指定されています。itemrefとは、これがitemそのものではなく、manifestで定義されているitemを参照(refer)しているという意味があるものと思われます。

同時にspineの項目は、独自のidはもたず、idrefとして、manifestで定義されている項目のidを参照するようになっています。たとえば、

<itemref idref=”text.nav.xhtml” linear=”yes” />

の場合、manifestで定義されているnav.xhtmlファイルがtext.nav.xhtmlというidをもっているので、これが順番として最初に表示される、最初に読まれるべきものになっているということです。

最後にあるlinear属性も大事な意味を持っています。このyesとなっている場合は、この項目が、欠かすべからずもの(primaryである)という意味を持っています。あるいは、リーディングデバイスは、表示順序の中にこの項目を欠かしてはならないという意味です。たとえば、もし、ポップアップウィンドウのようなもの、あるいは、補完的タグは、主要な表示の流れにのせなくてもよいわけですが、その場合は、この項目は、noでもよいわけです。

表紙画像のページがlinear=”no”となっているものをよく見かけますが、TONBOでは、表紙ページもlinear=”yes”となり、linear=”no”となる場合はありません。

packageの中には、これまで説明したmetadata、manifest、spineの他に、epub2で用いられていたguideタグを含める場合もあり、TONBOでもguideタグを自動的に作らせる機能を持っていませんが、必要はありません。