Index > 繁体字フォントをEDDで指定しているにもかかわらずMS明朝でオーバライドされるという問題(構造化FrameMaker8)
Mon, October 26, 2009

繁体字フォントをEDDで指定しているにもかかわらずMS明朝でオーバライドされるという問題(構造化FrameMaker8)

半年ほど前に、 EDDでフォントをArial指定しているのにMS 明朝になってしまう、という問題 というエントリーを書いたのだが、 その問題をそのまま放置していたところ、 今回、中国語の繁体字指定したEDDを使ってXMLをFrameMaker8で開いたところ、 繁体字フォント指定がほとんど反映されないで、ほぼすべてがMS明朝になってしまった。

今回はそのエントリーに書いた以下の部分を簡単に解消できるツールをつくりました。

方法としては、FrameMakerのGUI上で処理してもよいし、mifにいったん保存して、 該当箇所の書式上書き設定記述を削除することでも解消できる。

結論としてツールだけを入手したい場合はこちらです。

何が問題なのか?実験をしてみた

EDDやテンプレートなどこちらで設定した部分に問題があるのか? それとも 日本語FrameMaker自体に何か問題の原因があるのかを切り分けるため、 環境だけを英語(英語のWindows,英語インタフェースのFrameMaker8)にして、 同じEDD,テンプレート,XML文書を使って処理してみた。

結果は、問題なくEDDで指定している繁体字フォントになった。(MS明朝にはならない)

ということは、何か根本的なところでFrameMakerまたはWindowsの設定を変更する必要があるのか それとも、このようになるのが日本語FrameMaker8の仕様なのかわからないが、 EDDやテンプレートの設定変更すればなんとかなるという話ではなさそうだ。

mif経由で該当部分のフォント指定の上書きを徹底的に削除

以前は markup という要素だけに問題が発生していたので、FrameMakerのGUI上で簡単に直すことが できたのだが、今回は100ページ近いマニュアル全体に問題が発生していて、とてもじゃないけど 手作業で直すことはできない。

MIFで保存して問題が起きている部分(MS明朝で書式が上書きされている部分) を調べてみると、以下のフォントタグが挿入されていた。

例1

<Font 
 <FTag `'>
 <FPlatformName `W.MS 明朝.R.700'>
 <FFamily `MS 明朝'>
 <FEncoding `JISX0208.ShiftJIS'>
 <FLocked No>
> # end of Font

例2

<Font 
 <FTag `'>
 <FPlatformName `W.MS 明朝.R.400'>
 <FFamily `MS 明朝'>
 <FEncoding `JISX0208.ShiftJIS'>
 <FLocked No>
> # end of Font

方針

以上の事前調査を踏まえて、 とにかく、この記述を見つけたら、フォントタグごとごっそり削除する・・・という コードを実装することにした。 (繁体字のマニュアルでMS明朝が出現する部分はどこにもないため、単に削除すればよいと判断。)

ツール

ビルド方法

mif-font-override-remover.jar を Ubuntu 8.04 でビルドする場合の説明です。 (Antが必要/JDK6 を使用)

依存するjavaライブラリを別途用意すれば、Ubuntuでなくてもビルドできます。 その場合は、javaライブラリの配置場所に合わせて build.xml を修正します。

1) jdk と 依存するjavaライブラリのインストール

$ sudo apt-get install sun-java6-jdk
$ sudo apt-get install libcommons-io-java
$ sudo apt-get install libjdom-java

commons-io.jar,jdom.jar が/usr/share/java 以下にインストールされます。

2) mif-font-override-remover.tar.gz を展開して ant

$ wget http://osima.jp/dtp/fm-and-msmincho-resolver/mif-font-override-remover.tar.gz
$ tar xfz mif-font-override-remover.tar.gz
$ cd mif-font-override-remover/
$ ant

これで、mif-font-override-remover.jar がビルドされます。

使い方

問題が起きている fm ファイルを 別名保存で mif 形式で保存します。(これを foo.mif とします。) あとは以下のようにして問題を解消します。

$ java -jar mif-font-override-remover.jar foo.mif

※結果はそのまま foo.mif に保存されます。

 Twitter
follow me on Twitter
 Categories