奇妙なUnicode動作

奇妙なUnicode動作

私はArch Linuxを使用していますが、Unicodeフォントが何であるかわからないようです。

何が間違っているかを例に見てみましょう。以下はgucharmapのスクリーンショットです。 グチャルマップ

左上隅にある選択した文字の外観は期待どおりにレンダリングされますが、コピーするテキスト別のフォントでまったく異なるアイコンでレンダリングされます。

以下は、同じアイコンを示すurxvtのスクリーンショットです。

UrxVT

ご覧のとおり、一部のボックスのみをレンダリングします。これは、ほとんどのアプリケーションで最も一般的な動作です。

返品ここfc-list出力です(長すぎるので貼り付けボックスにあります)。たぶん役に立つかもしれません。

そのため、Unicode領域がマテリアルアイコンのフォントと重なる他のフォントをインストールしたようです。だから私の質問は、この問題をどのように解決できるかということです。これは問題ですか?

修正する

私のフォント設定を次のように変更しました。

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
    <family>serif</family>
    <prefer><family>Noto Sans</family></prefer>
    <default><family>Material Icons</family></default>
</alias>
<alias>
    <family>sans-serif</family>
    <prefer><family>Noto Sans</family></prefer>
    <default><family>Material Icons</family></default>
</alias>
<alias>
    <family>sans</family>
    <prefer><family>Linux Libertine</family></prefer>
    <default><family>Material Icons</family></default>
</alias>
<alias>
    <family>monospace</family>
    <prefer><family>Hack</family></prefer>
    <default><family>Material Icons</family></default>
</alias>
</fontconfig

gucharmap グリフが動作する問題を修正しました。コピーするテキスト しかし、グリフをレンダリングしないアプリケーションの問題は依然として存在します。

これにより、アプリケーションが文字の外観をレンダリングするために正しいフォントを使用しないことが問題であると考えられます。私は設定を仮定します基本Aliasedタグはこれを実行するため、デフォルトのフォントにUnicode文字が含まれていない場合は代替タグとして使用されます。これは間違っていると思いますが、文書わからない。

修正する

誰かが出力について尋ねましたlocale。ここには次のようなものがあります。

LANG=en_GB.utf8
LC_CTYPE="en_GB.utf8"
LC_NUMERIC="en_GB.utf8"
LC_TIME="en_GB.utf8"
LC_COLLATE="en_GB.utf8"
LC_MONETARY="en_GB.utf8"
LC_MESSAGES="en_GB.utf8"
LC_PAPER="en_GB.utf8"
LC_NAME="en_GB.utf8"
LC_ADDRESS="en_GB.utf8"
LC_TELEPHONE="en_GB.utf8"
LC_MEASUREMENT="en_GB.utf8"
LC_IDENTIFICATION="en_GB.utf8"
LC_ALL=

答え1

私はあなたが何が起こっているのかを理解し、この問題を自分で解決するのを助けたいと思います。あなたに起こっていることは非常に正常な行動です。

しかし、グリフをレンダリングしないアプリケーションの問題は持続します。

どのアプリケーションが失敗したのか言及していません。各アプリケーションに移動して、グリフを含むフォントを設定する必要があります。たとえば、LibreOfficeの場合Tools -> Options -> LibreOffice Writer -> Basic Fonts (Western)、またはに移動してBasic Fonts (CTL)フォントを設定できますDefault, Heading, List, Caption, Index"。これを制御するために設定ファイルに依存してはいけません。

その後、次のように質問できます。

なぜこれですかfontconfigprefer、、...は何でdefaultあり、doに記載されているものは何ですかman fonts-conf

一つアプリケーションがフォントを設定できず、フォント構成のみに従うことができる場合に使用されます。花飯はい、一般的な姓用語(たとえば、、、、serif... )を使用してアプリケーションを設定する場合は可能です。sans-serifmonospaceここ、あなたのアプリはあなたの好みのフォントを参照してくださいfontconfig

同様に、各アプリケーションにはフォントを設定する独自の方法があります。これらのそれぞれに対して設定したい方法で設定する必要があります。持つ世界中のすべてのアプリに希望のフォントを使用するように強制することはできません。

関連情報