Application: LibreOffice - Installation (2)

環境依存不具合の解消

LibreOffice日本語パックをインストールした時点で、メニューなどのインタフェースが全て日本語表示に変わります。ただし、特定の環境においてはそのままだと一部の箇所において表示が文字化け(豆腐化)することがあります。

一例を挙げると、例えばLibreOffice Calcの数式テキストボックスであったり。

Fig.1-1: 英数字はOK

Fig.1-2: 日本語は豆腐化

Fig.1-3: 日本語部分のみ豆腐化

また、LibreOfficeランチャーの、最近使用したファイル一覧表示であったり。

Fig.1-4: 日本語を含むファイル名で保存すると

Fig.1-5: ランチャー上でファイル名の日本語部分が豆腐化

このように、何らかの理由でこれら特定の表示箇所において日本語が文字化けしてしまう現象が見られます。そしてこの現象は、LibreOffice側のフォント設定等を変更しても解消されません。

今回は、この原因の分析と解決方法について解説していきます。

どのような環境でこの文字化けが発生するのか?

まずは、比較検証のためいくつかLinuxディストリビューションにLibreOfficeをインストールし、この現象が発生する環境と、そうでない環境を整理してみた結果がこちらです。

Linux
Distribution
現象の有無Desktop
Environment
LibreOffice
GUI Framework
OS System
Default JP Font
Manjaro 26.0.3
KDE
文字化け発生KDE Plasmakf6 (cairo+wayland)DroidSansJapanese.ttf
"Droid Sans"
Manjaro 26.0.3
GNOME
正常GNOMEgtk3NotoSansCJK-Regular.ttc
"Noto Sans CJK JP"
Manjaro 26.0.3
Xfce
文字化け発生Xfcegtk3DroidSansJapanese.ttf
"Droid Sans"
Mageia 9
KDE
正常KDE Plasmakf5 (cairo+xcb)SourceHanSans.ttc
"源ノ角ゴシック"
Linux Mint 22.3
Cinnamon
正常Cinnamongtk3fonts-japanese-gothic.ttf
"Takao Pゴシック"
OpenSUSE Tumbleweed
GNOME
正常GNOMEgtk3ipagp.ttf
"IPA Pゴシック"
Solus 4.8
Budgie
正常Budgiegtk3DroidSansFallbackFull.ttf
"Droid Sans Fallback"
CachyOS
KDE
正常KDE Plasmakf6 (cairo+wayland)NotoSansCJK-Regular.ttc
"Noto Sans CJK JP"

まず、この現象が発生するのはManjaro KDEとManjaro Xfceですが、同一バージョンのManjaro 26.0.3 GNOMEデスクトップ環境では発生しないため、OSそれ自体に起因する問題ではありません。

さらに、同じArch LinuxをベースとするCachyOS KDEはManjaro KDEによく似た構成とも言えますが、にもかかわらずCachy OS KDEでは発生しないことから、KDE Plasmaに起因する問題でもないことがわかります。

また、アプリケーション開発に用いられるGUIフレームワークのQtでのみ発生するのかどうかという点については、GTK版のLibreOfficeがインストールされるManjaro Xfceで同じ現象が発生していることから、フレームワークに起因する問題でもありません。

そうなると怪しいのは、OSを日本語環境でインストールした際に適用されるデフォルトフォントです。この現象が発生するManjaro KDEとManjaro Xfceでは、いずれもDroidSansJapanese.ttf / "Droid Sans" "Regular"がデフォルトフォントになっています。察するに、LibreOfficeは前述の一部表示領域においてはLibreOfficeの環境設定で指定したフォントではなく、OS側のデフォルトフォントを用いる仕組みになっていて、何らかの理由でそれが文字化けの原因となっていると考えられます。

Fig.2-1: Manjaro KDEにプリインストールされているDroid系フォント

解決方法

Pamacパッケージマネージャから「ttf-droid」を検索します。

Fig.3-1: パッケージマネージャからプリインストール済みのttf-droidフォントを検索

このDroidフォントをアンインストールすると、日本語環境のデフォルトフォントがその次に優先度の高いNotoSansCJK-Regular.ttc / "Noto Sans CJK JP" "Regular"に変わり、これによって前述のLibreOfficeの一部文字化け現象は解決されます。

Success

文字化け現象は解決されました。

なお、デフォルトフォントがNoto Sans CJK JPに変わったことによって何かしら副作用はないのかどうかについては、今のところ目につく範囲では何も問題ありません。どういった理由でManjaroの各デスクトップ環境のうちGNOMEだけ初期状態でデフォルトフォントがNoto Sans CJK JPになっているのかは不明ですが、そもそも先程の表を見るとわかるようにNoto Sans CJK JPはCachyOS KDEの日本語環境デフォルトフォントであり、したがってKDE Plasmaと相性が悪いということもないと思われます。

Warning

Manjaro KDEとXfceにプリインストールされたFirefoxの設定の「既定のフォント」はDroid Sansになっています。このため、Droidフォントをアンインストールした後にFirefoxを初回起動した際に一瞬英語表示になりますが、ひと呼吸待つとそれも自動的にNoto Sans CJK JPに変わって日本語表示に戻ります。

備考

このDroid Sansは元々Androidのために作られたフォントで、多くのAndroidスマートフォンでデフォルトフォントとして用いられています。Manjaro 26.0.3時点のKDEとXfceデスクトップ環境版ではこのフォントがプリインストール済み、かつ優先度の高い設定になっています。

そして、このOS側のデフォルトフォントがどうなっているのかはKDEシステム設定からは視認できません。以下のように、Manjaro KDEでもCachyOS KDEでも、KDEシステム設定上のフォント設定は何も変わらないのです。

Fig.4-1: Manjaro KDEのフォント設定

Fig.4-2: CachyOS KDEのフォント設定

デフォルトフォントの確認は、ターミナルから、バックグラウンドで動作している「fontconfig」サービスへのアクセスを行うコマンド操作が必要となります。

Information

fontconfigのバージョン確認

fc-list -- version

デフォルトフォントの確認

fc-match

Fig.4-3: 初期状態のManjaro KDEのターミナルでfc-matchコマンドを実行した様子

なお、厳密に言えばフォント関連の設定はroot下の/etc/fonts/の中で指定されており、やりようによってはアンインストールしなくても優先度を入れ替えることも可能かもしれませんが、これは非常に複雑な操作になってしまうためここでは触れません。

前の記事
Application: LibreOffice - Installation (1)

インストール 文書作成を行うためのオフィススイート、LibreOfficeのインストール手順について解説します。 パッケージマネージャからインストール まずはパッケージマネージャからLibreOfficeを検索しましょう […]

Read more
次の記事
Application: LibreOffice - Installation (3)

GUIのバリエーション LibreOfficeのGUIには様々なバリエーションがあり、好みに合うものに設定できます。 まず、インストール直後の初期設定は以下の例のように、インストール先のLinuxディストリビューションに […]

Read more