LibreOfficeで外字が□になる原因とWindowsで出力するためのポイント

Office系ソフトウェア

LibreOfficeで外字(WindowsのIMEで作成したEUDC文字)を表示・出力しようとしても、本文中が「□」になる、EUDCファイルを作っても認識されないという相談をよく聞きます。

この記事では、外字が表示されない背景にある仕組みと、LibreOfficeで文字を表示・出力するための方法や注意点をわかりやすく解説します。

外字(EUDC)とは何か

Windowsではユーザーが独自に文字を定義できる「外字」(EUDC: End User Defined Characters)機能があります。しかし、これらはUnicodeの私用領域(PUA)に割り当てられるため、標準フォントでは文字自体が存在せず、対応するフォントに文字データがなければ表示できません。

そのためWindowsの外字エディタで作成したEUDC文字をそのままLibreOfficeが認識できないケースが起こりやすいです。実際、最新のWindowsでは外字機能が制限されている側面もあり、利用しづらい状態になっています。[参照]

LibreOfficeと外字の関係

LibreOffice自体はOpenTypeやTrueTypeフォントの利用をサポートし、それらに含まれるUnicode文字は表示・出力できます。しかし、Windows独自の外字ファイル(EUDC.TTEなど)を自動的に読み込んで表示する機能は標準では用意されていません。これはLibreOfficeとOS側の扱い方の違いによるものです。

そのため、EUDCとして作成したデータがLibreOffice上で□としてしか見えないことがあります。これはLibreOfficeがそのフォント情報を参照できないためです。また、PDFなどに外字を埋め込もうとしても正しく出力されないケースもあります。

外字を使いたい場合の解決方法

もしLibreOfficeで外字のようなカスタム文字を確実に表示・印刷したい場合、最も確実なのは外字データを含むフォントファイルを自作することです。つまり、EUDCではなく、通常のTrueType/OpenTypeフォントとして独自の文字を定義します。

例えば、FontForgeなどのフォント作成ツールで私用領域や他のUnicodeコードポイントに文字を割り当ててフォントを作成し、それをシステムにインストールするとLibreOfficeで認識されます。こうしたフォントはLibreOfficeが標準的に読み込む形式だからです。

代替案:画像やSVGで文字を表現する

外字フォントの作成が難しい場合、外字の文字表現を画像やSVGとして扱うという現実的な手法もあります。LibreOfficeでは画像挿入が可能なため、見た目を維持したまま文章内に配置することができます。

この方法はUnicodeに文字として存在しない記号や独自のグリフを使いたい時に有効で、Shared featureとして利用できます。

まとめ:外字の認識には制約がある

LibreOfficeでWindowsの外字(EUDC)を表示・出力することは、直接的な機能サポートがないため困難です。Windows側で定義したEUDC文字はLibreOfficeのフォントエンジンで認識されない場合が多く、□として表示されるのが典型的です。

そのため、外字の代わりに独自フォントを作成する方法や、画像として扱う方法を検討する必要があります。用途に応じて適切な方法を選択し、確実な表示と出力につなげましょう。

コメント

タイトルとURLをコピーしました