[AH Formatter] FO 中での言語指定の重要性について

ユーザサポートに寄せられる問い合わせ(トラブル)で FO 中での言語指定がないことが原因となっている場合がよくあります。

font-family においてフォントの候補が複数列挙されている時や font-family の指定が無い時、AH Formatter は文字に対してどのフォントを適用すべきかをスクリプトによって決定します。これによって “ABC” などのラテン文字は欧文フォント、”あいうえお” などのひらがな(日本語)であれば和文フォントになります。

Unicode で定義されているスクリプト情報のみで判断できない場合には前後の文字などで判断しますが、それでも決定できない場合があります。例えば、段落に単独で ○(U+25CB)があったり、○ の前後に半角スペースが存在するような場合です。○ は和文フォントと欧文フォントでその字体には違いがあります。

FO 中での言語指定の重要性について

スクリプトが決定できない=フォントが決定できない時、AH Formatter はオプション設定ファイルの default-lang と default-lang2 の設定に従います(フォントの選択方法については、オンラインマニュアルの 技術的資料 – フォントの選択を参照してください)。この指定の既定値に従うと、言語指定のない FO では “eng” が指定されているものとみなします。したがって、上記のような ○ のスクリプトが決定できない場合は欧文フォントが選択されます。

FO 中での言語指定の重要性について

このように言語指定が無いことが原因で同じ ○ に対して適用されるフォントが欧文フォントだったり和文フォントだったりと統一されないことがあります。XSL-FO での言語指定は、xml:lang や language プロパティで行います。この指定を行うことでこのようなトラブルを未然に防ぐことができます。

組版対象の FO において、言語指定をすることは非常に重要です。日本語のドキュメントでは、ひらがな、カタカナ、漢字などの日本語とアルファベットや記号などが混在して文字の言語情報に関して意識しないことが多いのですが、このようなトラブルを防ぐために言語やフォントの指定を正しく行うことが必要です。