オフィススイートのフォント自動認識に関するドキュメント バージョン 1.0 レッドハット株式会社 このドキュメントの目的 ---- このドキュメントの目的はオフィススイート間でのドキュメント相互運用の際に 大きな問題となっている、フォントの認識についての手順を規定する。この ドキュメントの最終的な目標(ゴール)は、以下である。 1. MS Officeで作成されたファイルを他のオフィススイートで、問題なく読めること。 この際、フォントに関してユーザが特別な知識を要求されたり、フォント指定 などの操作を要求されてはならない。 2. MS Office以外のオフィススイートで、MS Officeで読めるドキュメントを 出力できること。この際、フォントに関してユーザが特別な知識を要求されたり、 フォント指定などの操作を要求されてはならない。 3. MS Officeとの相互運用だけでなく、MS Office以外のオフィススイート間でも 同様にドキュメントを読み書きできなければならない。 なぜ自動フォント設定が必要か? ----------------------------- 日本語を含むマルチバイト言語の表示で問題となるのは、 ・文字が空白で表示される ・トウフ(アプリケーションが認識できない文字を四角い枠付きで表示する現象)が 表示される。 ・文字化けして表示される ことである。これらの解決方法としてユーザによるフォント設定を提示されること があるが、これで根本的な解決として済ませるのははなはだしい間違いである。 アプリケーションを起動して最初に必ずフォント設定をしなければならないことは、 ユーザにとっては非常にストレスを感じる作業である。またフォント設定の知識は アプリケーションごとに異なるものであって、ユーザがその学習を強いられることに なる。ドキュメントのページを切り替えるごとにフォント設定作業を要することにも なる。必要なフォント設定は、アプリケーション側が言語ごとに自動的に行なうべきで あって、ユーザに不必要な作業を代行させるべきではない。 用語 ---- フォントの実体ファイル フォントの実体ファイルとは、フォントのグリフ情報を持っている ファイルそのもののことである。ファイル名にフォントの名前が使われる ことが多いが、アプリケーションで表示されるフォント名と必ずしも 一致するわけではない。 フォント名 フォント名とは、画面上及びドキュメント中に出現するフォントの名称のことを 意味する。一般に、フォントの実体ファイルの名称とは異なることに注意しなければ ならない。 例: 「MS明朝」「東風ゴシック」 外部ファイルフォーマット アプリケーション独自のファイルフォーマットではなく、 別のアプリケーションが使っているファイルフォーマットのこと。 例: Gnumericの場合は、.gnumeric以外のフォーマット、 OpenCalcの場合は、.sxc以外のファーマット、 Excelの場合は、.xls以外のフォーマットを意味する。 デフォルトフォント ------------------ アプリケーションは、起動時に自動的に選択されるフォントを あらかじめ決めておかなければならない。これはアプリケーション毎に、 言語毎に異なり、またプラットフォーム毎に異なる。 例: Windows上でExcelで日本語の場合: 「MS Pゴシック」 Red Hat Linux 9 でGnumericで日本語の場合: 「Kochi Gothic」 アプリケーションは、すべてのプラットフォームに対応する必要はないが、 プラットフォーム毎にインストールされているフォントが異なることを 認識しなければならない。 例: 東風フォントがないLinuxディストリビューションなど。 フォントの代用 -------------- 必要なフォントがシステムにインストールされていない場合、アプリケーションは インストールされているフォントで代用しなければならない。この代用のための テーブルはアプリケーション側で用意されなければならない。 例: 「MS Pゴシック」がドキュメントに指定されている場合、 1. アプリケーションは「MS Pゴシック」がシステムにあるかどうかを チェックし、あればそれを使用する 2. もしなければ、代用フォントとして「Kochi Gothic」を使用する この例の場合、アプリケーションはMS Pゴシックがシステムに仮想的にあるように 振る舞わなければならない。画面上にも「MS Pゴシック」と表示され続けなければ ならない。こうすると、実際の「MS Pゴシック」が後からシステムにインストール された場合でも対応できる。 「MS Pゴシック」をインポート/エクスポート時に「Kochi Gothic」に自動的に 置き換えるのは、避けるべきである。理由としては以下の理由が挙げられる。 ・システムにフォントをインストールするたびに、アプリケーション毎に 変換テーブルを更新しなければならない。 ・同じドキュメントを編集しているのに、アプリケーション毎に異なるフォントが 表示されていると、ユーザの混乱を招きやすい。 フォント表示の際のキャラクタエンコーディング ---------------------------------- ドキュメント中にあるフォント名のエンコーディングと、プラットフォーム側の エンコーディングが異なる場合が想定される。この場合はエンコーディング変換 が可能なものについては変換して可読な文字列を表示しなければならない。 もしもドキュメント中のフォント名に機種依存文字があったり、プラットフォーム 側のエンコーディングに変換できない場合は、別の可読な文字列を使用するべきである。 例: 「機種依存フォント」 → 「Unconvertable Font(1)」 代用フォントのデフォルト ------------------------ 代用フォントが指定されていない場合、アプリケーションはデフォルトフォントを 代用フォントとして使用しなければならない。 例: 代用フォントが指定されていなければ「Kochi Gothic」を使用する インポート時の動作について ------------ アプリケーションが外部ファイルフォーマットのドキュメントを インポートするときは、ドキュメント内にあるフォントを使わなければならない。 もしドキュメント内に指定されているフォントがシステム内にない場合は、 上に記載したフォントの代用ルールにしたがって代用フォントを使わなければならない。 フォント名を画面に表示する際には、プラットフォーム側のエンコーディングに 変換して表示しなければならない。 エクスポート時の動作について -------------- アプリケーションが新規に外部ファイルフォーマットにドキュメントを エクスポートするときは、その外部ファイルフォーマットで通常使用されている フォントに置き換えるべきである。ドキュメントを作成したときに使用した フォントを、外部アプリケーションが認識してくれると期待するべきではない。 アプリケーションがこの機能を持つことは必須であるが、ユーザがフォント名を 指定したい場合はユーザの期待通りに動作しなければならない。 例: Excelファイルにエクスポートする場合は、通常「MS Pゴシック」にする。 アプリケーションが、もともとインポートしたファイルを同じ形式で エクスポートするときは、インポートしたときに指定されていたフォント名を そのまま使用するべきである。この場合も、 アプリケーションがこの機能を持つことは必須であるが、ユーザがフォント名を 指定したい場合はユーザの期待通りに動作しなければならない。