一部のフォント名の表示が壊れてしまった

先日OSの入れ替えを行い、LibreOfficeもゼロからインストールしなおしたところ、一部のドキュメントがプリンタ内でエラーを起こして印刷できなくなっていることに気づきました。

いろいろ確認してみたところ、「UDデジタル教科書体N-R」を使ったドキュメントのみがエラーを起こしており、またLibreOfficeのフォントセレクタから見ると「UDデジタル教科書体N-R」「UDデジタル教科書体N-R Bold」の2つが文字化けしていました(画像参照)。

他のアプリケーションのフォントセレクタからは文字化けしておらず、LibreOfficeからのみの現象となります。既存のドキュメントをみると、フォントセレクタ上では「UDデジタル教科書体N-R」はイタリックで表示され、「存在しないフォント」扱いとなっています。

フォントを一度消したり設置場所を移動させたり、font-cache -f したりしてみましたが改善が見られません。LibreOfficeが独自にフォントキャッシュ(フォント名キャッシュ)を持っていると思われますが、これはどうすればクリアできますでしょうか? ~/.config/libreoffice 内のどこかだと思うのですが、どなたか解決法をご教授ください。

また便乗質問になりますが、LibreOfficeで使うフォントを厳選して指定することはできませんでしょうか? Ubuntu系LinuxではNOTOフォントが言語別に大量に入っており、フォントを選ぶ際にいつも面倒に感じています。

Version: 24.2.7.2 (X86_64) / LibreOffice Community
Build ID: 420(Build:2)
CPU threads: 8; OS: Linux 6.14; UI render: default; VCL: gtk3
Locale: ja-JP (ja_JP.UTF-8); UI: ja-JP
Ubuntu package version: 4:24.2.7-0ubuntu0.24.04.4
Calc: threaded


さわらび明朝は文字化けしないのにさわらびゴシックは文字化けしました。
フォントによるのでしょうか?
UIを英語にすると文字化けはしてないので探しやすくはありますが、
フォント名が一致しないので回避策とも言えませんね。
[ツール]>[オプション]の「フォントの種類」置換テーブルは使えないでしょうか?

Version: 25.8.3.2 (X86_64)
Build ID: 8ca8d55c161d602844f5428fa4b58097424e324e
CPU threads: 4; OS: Linux 6.12; UI render: default; VCL: gtk3
Locale: ja-JP (ja_JP.UTF-8); UI: en-US
Calc: threaded
1 Like

Ubuntu 24.04のfontconfigも2.15.0なので、原因はたぶんfontconfigです。LibreOfficeではありません。

フォント名が壊れているだけなので使うだけなら使えます。ただ、フォント名がマッチングしないので、そのへんは全滅します。自分は最低限、Debianにバグ報告はしましたが、バグを追っかける時間はないので誰か頑張ってください。

ちなみに上流では、fontconfig 2.17.0が最新安定版ですが、Debianで2.15.0で止まっている(つられてUbuntuも止まっている)のは、fontconfigを上げるとなんらかの問題があるような気がしますが、これも詳しく調べてないのでわかりません。

2 Likes

nogajunさま、情報ありがとうございました。当方日本語教師のため、該当フォントを使った印刷必須な資料が大量にあるのでかなりのショックで返答遅れました。

なるほど、 fontconfig のマルチバイト解釈にバグがあるわけですね。いろいろ試した結果、とりあえずの回避法はみつかりました。Libreofficeのオプションでロケールを「英語(US)」にしたところ、「該当フォントを利用した既存のドキュメントを印刷する際にプリンタがクラッシュする/エラーで印刷できない」という現象「だけ」は回避できるようになりました。

もともとフォント名が文字化けしなかった mousepadのようなアプリは そもそも fontconfig を使っていないか、マルチバイトでのフォント情報を利用していなかったということでしょうかね。

とりあえず印刷だけはできるようになったので、当面これで凌ごうと思います。新規ドキュメントは類似フォントに切り替えるしかないですね。

sabr0さま

「フォントの種類」置換テーブルはダメでした。

fontconfigクローズのイシューで類似ケースがありました。

ソースの変更


fontconfig2.17には適用されているっぽい


以下、自己責任でお願いします。
geminiによるカスタムdeb作成と試してみての追記項目(Debian 13 on Windows11 Virtualbox)
quiltとdevscriptsのインストール

sudo apt update
sudo apt install quilt devscripts

作業場所の確保

mkdir ~/build-fontconfig
cd ~/build-fontconfig
apt source fontconfig
cd fontconfig-2.15.0

環境変数の設定

export QUILT_PATCHES=debian/patches
export QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"

パッチの作成

quilt new my-custom-fix.patch
quilt add src/fcfreetype.c
ファイルの編集(おそらく881行から888行削除)
quilt refresh

(追加事項) dchの設定

export DEBFULLNAME="NANASHI"
export DEBEMAIL="example@example.com"

コメント設定

dch -i "Add my custom modifications to fontconfig"

ビルド

dpkg-buildpackage -us -uc -b

(追加)docbook,docbook-util,texlive-formats-extraのインストールが必要だった

3 Likes

ありがとうございます。時間のあるときに仮想環境で試してみます。

ご教授いただいた手順で作った debを入れて fc-cache -r したところ、正常動作を確認できました。

環境:Xubuntu25.10 (on Virtualbox7)

2 Likes