DITA-OT1.4.3でユニコードの半角・全角形(Halfwidth and Fullwidth Forms)の文字化けを修正する
昨日の作業を行なうと,全角カンマや全角ピリオドの文字がPDFへ変換するとフォントが埋め込まれません.
なぜに文字化け?
DITA−OT1.4.2では問題なかったのに1.4.3では一部文字化けしたので,自分の操作が悪いのかと思ったりしたが....
PDF変換前のstage3.foをみるとこんな感じ.(改行を入れてます)
<fo:block id="" space-after="0.6em" space-after.optimum="3pt" space-before="0.6em" text-indent="0em"> PizzaFactory3<opentopic-i18n:text-fragment char-set="Japanese">をご利用いただき</opentopic-i18n:text-fragment>, <opentopic-i18n:text-fragment char-set="Japanese">ありがとうございます</opentopic-i18n:text-fragment>.</fo:block>
全角カンマや全角ピリオドがchar-set="Japanese"から外されているわけです.
この処理をしている箇所は%DITA-OT%\demo\fo\cfg\fo\i18n\ja_JP.xmlです.
<alphabet char-set="Japanese"> <character-set> <character-range> <start include="yes"> </start> <end include="yes">ヿ</end> </character-range> <character-range> <start include="yes">㄀</start> <end include="yes">㓿</end> </character-range> <character-range> <start include="yes">一</start> <end include="yes">鿿</end> </character-range> <character>「</character> <character>」</character> </character-set> </alphabet>
イケテません.
Halfwidth and Fullwidth Formsが範囲に全然含まれてません.
文字範囲の変更
カスタマイズするために,設定ファイルをコピーします.
cp %DITA-OT%\demo\fo\cfg\fo\i18n\ja_JP.xml %DITA-OT%\demo\fo\Customization\fo\i18n\ja_JP.xml
以下のように変更しました.
使用するフォントがHalfwidth and Fullwidth Formsを持っているという前提で修正します.
<alphabet char-set="Japanese"> <character-set> <character-range> <start include="yes"> </start> <end include="yes">ヿ</end> </character-range> <character-range> <start include="yes">㄀</start> <end include="yes">㓿</end> </character-range> <character-range> <start include="yes">一</start> <end include="yes">鿿</end> </character-range> <character-range> <start include="yes">＀</start> <end include="yes">￯</end> </character-range> </character-set> </alphabet>
最後に%DITA-OT%\demo\fo\Customization\catalog.xmlで上記の変更を上書きするようにします.
<!-- I18N configuration override entries.--> <!--uri name="cfg:fo/i18n/de_DE.xml" uri="fo/i18n/de_DE.xml"/--> <!--uri name="cfg:fo/i18n/en_US.xml" uri="fo/i18n/en_US.xml"/--> <!--uri name="cfg:fo/i18n/es_ES.xml" uri="fo/i18n/es_ES.xml"/--> <!--uri name="cfg:fo/i18n/fr_FR.xml" uri="fo/i18n/fr_FR.xml"/--> <!--uri name="cfg:fo/i18n/it_IT.xml" uri="fo/i18n/it_IT.xml"/--> <uri name="cfg:fo/i18n/ja_JP.xml" uri="fo/i18n/ja_JP.xml"/> <!--uri name="cfg:fo/i18n/zh_CN.xml" uri="fo/i18n/zh_CN.xml"/-->