Arch Linuxで顔文字を正しく表示させる
最近、Unicodeを多用した顔文字が多く利用されています。
多分、利用者の多いiOSで表示できるように作られていて、iOSやOSXでは多くのUnicodeの表示に対応したフォントが入っています。
Windowsの標準フォントも完全ではありませんが、ほぼ表示することができます。
Linuxでの日本語環境で多く利用されているフォントはVLゴシックやIPAゴシックなどですが、これらはほとんど表示することができません。
今回はこちらのサイトの顔文字を正常に表示させられるようにしたいと思います。
(๑˃̵ᴗ˂̵)و 女子力が高そうな顔文字《超厳選編》【コピペ・スマホ用】 - NAVER まとめ
顔文字の文字コードを見てみると、記号だけでなく様々な国の文字なども混ぜて作られているようです。
なので、Unicode対応を謳ったフォントだけでなく、様々な文字に対応したフォントが必要になります。
様々なフォントを入れたところで、その文字ごとに文字の見た目が変わってしまい、統一性がなくなってしまうので、1つのフォントで多言語と記号に対応している必要があります。
多言語、記号に対応したフォントというとほぼ有料のフォントになってしまいますが、無料で使えるのがありました。
それがGoogleのNoto Fontsです。
GoogleとAdobeが共同開発したフォントで、AdobeからはSource han sansとして同じフォントが配布されていますが、Noto Fontsのほうが絵文字などもあるので強いです。
豆腐フォントを排除するためという意味でno more tofu、Noto Fontということらしいです。
ライセンスはSIL Open Font Licenseで比較的自由に利用することができます。
Arch Linuxでは公式レポジトリにNoto Fontsがありますが、主要フォントだけが入ったものなので公式サイトから完全なNoto Fontsをダウンロードします。
解凍
フォントディレクトリにコピー。Arch Linuxでは、システム全体のフォントは /usr/share/fonts/ 、ユーザーのフォントは ~/.local/share/fonts/ です。
分かりやすいように/usr/share/fonts/Noto-hinted/*.otf
というようにディレクトリにまとめたままにします。
フォントキャッシュのアップデート
表示できました。
アンインストールするときは
$ sudo rm -Rf /usr/share/fonts/Noto-hinted
$ fc-cache -vf
他のフォントがデフォルトになっている場合、表示できる文字はデフォルトフォントで、表示できない文字はNoto Fontsで表示する、というようにフォントが混ざってしまうので気になる場合はNoto Fonts以外のフォントを削除するか、Noto Fontsをデフォルトに設定して優先順序をNoto Fontsを最初の方に設定する必要があります。
英数字はプロポーショナルフォントですが、日本語は等幅フォントになっています。
等幅フォントとしてNoto Monoが入っていますが、Monospaceの代替フォントとしてプロポーショナルなNoto Fontsが設定されてしまうので手動で設定する必要があります。
Arch Linuxでのfontconfigの設定は次で
fontconfigでフォントの指定
Android 6.0からシステムフォントがNoto Fontsになり、AOSPのソースにもNoto Fontsが含まれていました。サブセット化された日本語フォントとNoto Sans UIが追加で含まれていますが、Noto Sans UIとNoto Sansを比べてみると全く一緒だったのでよく分かりません。
master - platform/external/noto-fonts - Git at Google
𓀀𓀁𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀛𓀽𓀾𓀿𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓁇𓁈𓁉𓁊𓁍𓁕𓁖𓁗𓁞𓁢
(ؓؒؒؑؑؖؔؓؒؐؐ⁼̴̀ωؘؙؖؕؔؓؒؑؐؕ⁼̴̀ ) ₍₍ ◝('ω'◝) ⁾⁾ ₍₍ (◟'ω')◟ ⁾⁾
多分、利用者の多いiOSで表示できるように作られていて、iOSやOSXでは多くのUnicodeの表示に対応したフォントが入っています。
Windowsの標準フォントも完全ではありませんが、ほぼ表示することができます。
Linuxでの日本語環境で多く利用されているフォントはVLゴシックやIPAゴシックなどですが、これらはほとんど表示することができません。
今回はこちらのサイトの顔文字を正常に表示させられるようにしたいと思います。
(๑˃̵ᴗ˂̵)و 女子力が高そうな顔文字《超厳選編》【コピペ・スマホ用】 - NAVER まとめ
顔文字の文字コードを見てみると、記号だけでなく様々な国の文字なども混ぜて作られているようです。
なので、Unicode対応を謳ったフォントだけでなく、様々な文字に対応したフォントが必要になります。
様々なフォントを入れたところで、その文字ごとに文字の見た目が変わってしまい、統一性がなくなってしまうので、1つのフォントで多言語と記号に対応している必要があります。
多言語、記号に対応したフォントというとほぼ有料のフォントになってしまいますが、無料で使えるのがありました。
それがGoogleのNoto Fontsです。
GoogleとAdobeが共同開発したフォントで、AdobeからはSource han sansとして同じフォントが配布されていますが、Noto Fontsのほうが絵文字などもあるので強いです。
豆腐フォントを排除するためという意味でno more tofu、Noto Fontということらしいです。
ライセンスはSIL Open Font Licenseで比較的自由に利用することができます。
Arch Linuxでは公式レポジトリにNoto Fontsがありますが、主要フォントだけが入ったものなので公式サイトから完全なNoto Fontsをダウンロードします。
$ wget https://noto-website-2.storage.googleapis.com/pkgs/Noto-hinted.zip
解凍
$ unzip Noto-hinted.zip
フォントディレクトリにコピー。Arch Linuxでは、システム全体のフォントは /usr/share/fonts/ 、ユーザーのフォントは ~/.local/share/fonts/ です。
$ sudo cp -R Noto-hinted /usr/share/fonts/
分かりやすいように/usr/share/fonts/Noto-hinted/*.otf
というようにディレクトリにまとめたままにします。
フォントキャッシュのアップデート
$ fc-cache -vf
表示できました。
アンインストールするときは
$ sudo rm -Rf /usr/share/fonts/Noto-hinted
$ fc-cache -vf
他のフォントがデフォルトになっている場合、表示できる文字はデフォルトフォントで、表示できない文字はNoto Fontsで表示する、というようにフォントが混ざってしまうので気になる場合はNoto Fonts以外のフォントを削除するか、Noto Fontsをデフォルトに設定して優先順序をNoto Fontsを最初の方に設定する必要があります。
英数字はプロポーショナルフォントですが、日本語は等幅フォントになっています。
等幅フォントとしてNoto Monoが入っていますが、Monospaceの代替フォントとしてプロポーショナルなNoto Fontsが設定されてしまうので手動で設定する必要があります。
Arch Linuxでのfontconfigの設定は次で
fontconfigでフォントの指定
Android 6.0からシステムフォントがNoto Fontsになり、AOSPのソースにもNoto Fontsが含まれていました。サブセット化された日本語フォントとNoto Sans UIが追加で含まれていますが、Noto Sans UIとNoto Sansを比べてみると全く一緒だったのでよく分かりません。
master - platform/external/noto-fonts - Git at Google
𓀀𓀁𓀍𓀎𓀏𓀐𓀑𓀒𓀓𓀔𓀕𓀖𓀗𓀛𓀽𓀾𓀿𓁀𓁁𓁂𓁃𓁄𓁅𓁆𓁇𓁈𓁉𓁊𓁍𓁕𓁖𓁗𓁞𓁢
(ؓؒؒؑؑؖؔؓؒؐؐ⁼̴̀ωؘؙؖؕؔؓؒؑؐؕ⁼̴̀ ) ₍₍ ◝('ω'◝) ⁾⁾ ₍₍ (◟'ω')◟ ⁾⁾
コメント
コメントを投稿