縦書きで崩さない!EPUBの日本語縦書き、感嘆符・疑問符・顔文字処理

感嘆符・疑問符・顔文字処理の確認工程を、白い原稿用紙と紫色の半透明装置で抽象的に示したアイキャッチ

EPUBの日本語縦書きで感嘆符・疑問符・顔文字を扱うときは、!?、!!、??、顔文字を一括して「記号」と判定してはいけません。種類ごとに原稿内の件数を固定し、生成XHTMLに残った件数と、実際の縦書き表示を別々に確かめるのが安全です。

今回の1,200字標本では、原稿に!?、!!、??、(^_^)を各4件入れました。構造検査では3種類の句読記号が各4件残った一方、(^_^)と同一の文字列はXHTMLで0件でした。したがって結果はpartialです。顔文字が別の構造へ変換された可能性はありますが、肉眼表示を確認していないため「正しく縦向きになった」とは判定しません。

答えは「4種類を別々に合格させる」

一般的な確認方法は、原稿、生成された内部データ、閲覧画面の三段階を分けることです。原稿に4件あるからといって、出力後も4件読めるとは限りません。反対に、元と同じ文字列がXHTMLに見つからなくても、表示用の別要素へ変換されている場合があります。

この記事の合格条件は次のとおりです。

一項目でも未確認なら、その種類だけを未合格にします。EPUB全体の構造検査が通っても、記号表示の合格には置き換えません。

1,200字の標本で開始値を固定する

使った標本は、!?、!!、??、(^_^)を各4件含む1,200字の縦書き小説です。記号は同じ段落へ固めず、会話文、地の文、行頭、行末へ分散させます。位置を変えると折り返しや行送りの条件も変わるため、検証中は本文を追加・削除しません。

開始表には、文字数1,200、4種類×4件、合計16か所と記録します。原本は残し、検証用の複製だけをRune Studioの専用ワークスペースへ入れます。件数が合わなければ、出力へ進まず標本作成へ戻ります。

実際の操作は原稿検査と出力検査を分ける

まず複製を開き、4種類のリテラルを検索して各4件あることを確認します。次に作品情報を日本語・縦書きに設定し、原稿をEPUBへ出力します。出力後はEPUBの構造検査を行い、さらに生成XHTML内で4種類を別々に数えます。

ここで重要なのは、XHTMLの文字列検索を表示確認の代わりにしないことです。!?が4件残ることは欠落していない証拠になりますが、縦中横の向きや字間までは証明しません。顔文字が0件なら、変換後の要素を追うか、プレビューと外部リーダーで該当位置を目視する必要があります。

実測では句読記号12件を確認し、顔文字は未合格だった

タイトル固有のStage 4では9操作を実行しました。開始値は1,200字で、!?、!!、??、(^_^)が各4件です。生成XHTMLでは!?、!!、??が各4件、(^_^)と同一の文字列は0件でした。EPUBのローカル構造検査はvalid=trueです。

別の共通Stage 4では、STUDIO-435検証本を5章、writingMode=vertical、版1.5で出力し、spine=9、画像1、欠落0、nav=true、NCX=true、valid=trueを確認しました。これは縦書きEPUBを生成できたという別の証拠であり、16か所の記号表示を確認した証拠ではありません。

このため、句読記号12件は「XHTMLで件数維持」、顔文字4件は「同一リテラルなし・表示未確認」と分けて記録します。全体判定を成功へ丸めないことが、顔文字だけ落ちる事故を見つける要点です。

未確認範囲と失敗時の戻し先

今回確認していないのは、縦書きプレビューの肉眼表示、文字サイズ変更後の再配置、外部リーダー、KDP、iPadでの表示です。画像工程も対象外なので、画面の見た目や字形については断定しません。valid=trueはローカルのパッケージ検査結果であり、販売先受理や全リーダーの表示一致を意味しません。

失敗時は、症状ごとに戻り先を変えます。

破損済みデータの復元やKDP審査は、この記事の合格範囲に含めません。

Rune Studioで確認できる範囲

現行Mac版Rune Studioの公開資料では、縦書きプレビューにvertical-rlを使い、縦書き時に顔文字、2桁数字、感嘆符・疑問符を縦中横や文字幅変換で処理する機能が説明されています。EPUB 3出力では縦書き時の右開きと記号処理も対象です。これはStage 3の公開機能範囲です。

今回のStage 4が確認したのは、専用複製からの出力と構造・件数です。プレビュー画面の見た目は確認していません。一般規格として、W3CのEPUB 3.3仕様はパッケージ、spine、ナビゲーション、レイアウト制御を定義していますが、Rune Studio固有の顔文字変換を定めるものではありません。

結論:顔文字の0件を成功へ読み替えない

EPUBの日本語縦書きで感嘆符・疑問符・顔文字を確認するなら、4種類を同じ判定にまとめず、原稿件数、生成XHTML、肉眼表示を順に分けます。今回、!?、!!、??は各4件をXHTMLで確認できましたが、(^_^)は同一リテラル0件で、表示も未確認です。

したがって現時点の結論は部分合格です。句読記号の件数維持は確認済み、顔文字の表示は未確認として止めます。次に行うべき作業は、同じ1,200字標本を変えずに顔文字の変換後要素と縦書き表示を確認することです。現行Mac版の製品範囲はRune Studioの商品ページでも確認できます。