iBooksで外字画像の大きさを文字サイズに追随させる方法の整理

EPUBのリーダに搭載されているフォントで表示できない文字があったとき、これを表示するための一番単純なやり方は、その文字をイメージ画像(外字画像と仮に呼びます[1])で表すことです。

さて、EPUBではリーダで読むときに文字の大きさを変更できます。そこで外字画像の大きさも文字の大きさ変更に追随して変化することが必要です。

このために一般には外字画像(img要素)の大きさを1em(emは文字の大きさを示す相対単位)になるように指定します。ReadiumやKindleはそれで問題ないようです[2]。

しかし、iBooksでインラインの外字画像の大きさを文字サイズに追随させる方法はやや複雑です。いくつか方法が分かっていますので、ここに整理しておきます。

方法1.外字画像(img要素)をラップするspanタグにイメージのサイズを1emで指定して、imgタグには100%サイズを指定する[3]。

なお、これはiBooksでブロックの画像の大きさを設定する方法と同じ考えです。ブロック画像はだいぶ前に自分で調べてブログを書いたことがあります[4]。

方法2. opfに特殊なメタデータを設定する[5]。
メタ情報に<meta property=”ebpaj:guide-version”>1.1</meta>があると、外字画像が文字サイズと連動する。

この方法は「iBookstore Asset Guide 5.1 Revision 1」(2013年3月版)に次のようにドキュメント化されています。

・dc:languageでjaを指定すること。
・<meta property=”ebpaj:guide-version”>1.1</meta>
・イメージ要素に”gaiji”または”gaiji-“を含むクラス名を付与して、CSSでそのクラスに1emの大きさを指定する。

《注意》なお、方法1と2を同時に指定すると外字画像の大きさが1emになりません。どうやら、ebpaj:guide-versionのプロパティがあると、imgに指定したサイズだけを見てしまうようです。

方法3.「iBookstore Asset Guide」には方法2の代わりとして’gaiji’をカスタムプロパティとして宣言する方法も規定されています。

<meta property="ibooks:respect-image-size-class">gaiji</meta>

どうやら、’gaiji’がiBooksの世界で市民権を得たようです。

《注意》文字を外字画像として表現したときは、アクセシビリティの観点からaltテキストに適切な文字列をセットしておかなければなりません。

《注》
[1] 外字という言葉は、もともとはJIS X0208などに規定されていない文字をワープロなどで独自に定義して使う(システム外字)やユーザ自身が字形をデザインした文字(ユーザー外字)を示す言葉として使われていました。現在では、JIS X0208以外の文字コード基準(JIS X0213など)も普及し始めていますし、Unicodeで大量の文字が標準化されており、さらにUnicodeはバージョンがあがるごとに収録文字数が増えています。既に、外字という言葉の意味が曖昧または不明になっています。いったん廃止(Obsolete)して別の言葉を探す方が適切になっています。
[2]電子書籍出版流通協議会資料による。
[3]【EPUB】iBooksで外字画像が本文サイズにならない①
[4] EPUBで画像の大きさを指定する方法を調べた:①iBooks (1.2)はちょっと特殊だ!②続き(結論)
[5]【EPUB】iBooksで外字画像が本文サイズにならない②