達人出版会日記

ITエンジニア向けの技術系電子書籍の制作と販売を行う達人出版会のブログです。

iBooksの目次は入れ子を認識しない

今日はNCXファイル(を生成する部分)をいじってました。

NCXは、iPadでは「目次」のページを表示するのに使われています。が、試行錯誤の結果、iPadではの入れ子は無視されてしまうことが判明しました。ううむ。

もう少し具体的に説明すると、NCXで定義する目次では、項目の入れ子ができます。例で示すと以下のような感じです。

    <navMap>
        <navPoint id="navPoint-1" playOrder="1">
            <navLabel>
                <text>1章</text>
            </navLabel>
            <content src="text/content001.xhtml"/>
        </navPoint>
        <navPoint id="navPoint-2" playOrder="2">
            <navLabel>
                <text>2章</text>
            </navLabel>
            <content src="text/content002.xhtml"/>
            <navPoint id="navPoint-2-1" playOrder="3">
                <navLabel>
                    <text>2章おまけ</text>
                </navLabel>
                <content src="text/content002b.xhtml"/>
            </navPoint>
        </navPoint>
        <navPoint id="navPoint-3" playOrder="4">
            <navLabel>
                <text>3章</text>
            </navLabel>
            <content src="text/content003.xhtml"/>
        </navPoint>

ここでは、「2章おまけ」というページが「2章」の中に入っています。これを使えば、目次を表示する際、最初は「2章おまけ」は表示されず、「2章」の項目をクリックすると表示される、といったギミックも実現できます。

が、iPadでは、入れ子にされていようがされていまいが、そのままのっぺりと表示されてしまうのでした。ううむ。

そんなわけで、とりあえずは平坦なままで記録するようにしてみました。今のところこんな感じになります。

余力があればちゃんと入れ子にするかもしれません(実際、コンテンツ中の目次ページでは入れ子になるよう、マークアップできているわけですし)。

ファイルは以下に置いておきました。