GNU/Linux で日本語フォントを選ぶ話は、しばしば「昔は VL ゴシックを使っていたが、いまは何を使えばよいのか」という形で立ち上がる。しかし実際の問題は単なる好みや懐古ではない。現在の Linux 環境では、文字の幅、フォントの選択、欠字時の代替描画、アプリケーションごとの扱いが多層に絡み合っており、見た目の違和感、表のずれ、ターミナルや Emacs における日本語表示の破綻は、それぞれ別の層で発生している。したがって本稿では、VL ゴシックの歴史的位置づけから出発しつつ、Unicode の East Asian Width、wcwidth 系 API、fontconfig によるマッチング、Pango のフォールバック、FreeType の描画層、Emacs の fontset、そして現在実務で安定するフォント構成までを一つの流れとして整理する [1][2][3][4][5][6]。
結論を先に述べると、VL ゴシックは「古くて無価値なフォント」ではなく、Linux 日本語環境の一時代を支えた実用フォントである。ただし現代の標準として新規採用するなら、全体バランスでは IPAex、広い文字集合まで重視するなら Noto Sans CJK、さらに Pan-CJK の高品質な見た目まで求めるなら Source Han Sans 系が候補になる。一方で、英数字と日本語を 1 つのフォントで全部解決しようとすると、かえって表示品質や運用の一貫性を崩しやすい。そのため Linux では、欧文用と日本語用を分けて設計する考え方を前提にした方が理解しやすい。
1. まず結論を一覧で押さえる
最初に全体像を短く示す。Linux の日本語フォント選定は、実際には次のような判断に収束する。ここで重要なのは、GUI とターミナルと Emacs は同じに見えても内部の扱いが必ずしも同じではないため、用途別に整理した方が誤解が少ないという点である。
| 目的 | 主な構成 | 評価 | 向いている場面 |
|---|---|---|---|
| 現代標準 | DejaVu Sans または DejaVu Sans Mono と Noto Sans CJK | 文字集合が広く多言語混在に強い | GUI 全体、多言語文書、Web、汎用 Linux 環境 |
| 実用バランス | DejaVu Sans Mono と IPAex ゴシック | 軽くて安定し、日本語表示の癖が少ない | Emacs、ターミナル、日常的な Linux デスクトップ |
| 高品質重視 | Noto Sans CJK または Source Han Sans 系 | Pan-CJK としての整合性が高い | 文書制作、見た目を重視する環境、印刷寄り用途 |
| 軽量志向 | DejaVu Sans Mono と M+ 系 | 軽量で扱いやすい | 軽量デスクトップ、古い機材、最小構成 |
| 歴史的構成 | VL ゴシック中心 | 当時の Linux 日本語環境としては実用的だった | 旧環境の再現、慣れた字形を維持したい場合 |
この表だけ見ると単なる選び方の話に見えるが、なぜこうなるのかを理解するためには、Unicode と描画系の構造を順番に辿る必要がある。
2. Linux のフォント問題は 1 枚岩ではない
Linux における日本語表示の問題は、単純に「日本語フォントを入れれば終わり」ではない。少なくとも、文字そのものの幅属性、文字列が画面上で何列ぶんを占有するかを決める API、アプリケーションが要求したフォントと実際に描画されるフォントを結び付ける仕組み、欠字時のフォールバック、そして最終的なグリフ描画という層に分かれている [1][2][3][4][5]。
| 層 | 役割 | 典型的な問題 |
|---|---|---|
| Unicode | 文字の属性を定義する | 曖昧幅文字を半角扱いするか全角扱いするかで表示列数が変わる |
| wcwidth 系 | 文字列が何列ぶんを占有するか計算する | ターミナルや表組みで文字位置がずれる |
| fontconfig | 要求されたフォントから実際の候補を選ぶ | 欧文と日本語で別フォントが混ざり見た目が不揃いになる |
| Pango など | 欠字時のフォールバックやレイアウトを扱う | 意図しない代替フォントに切り替わる |
| FreeType | 最終的にグリフを描画する | ヒンティングや小サイズ描画で印象が変わる |
| アプリケーション | 独自のフォント選択や文字幅処理を持つ | GUI と Emacs と端末で結果が食い違う |
この多層性を無視すると、「同じフォントを入れたのに端末だけ崩れる」「GUI は綺麗なのに Emacs だけ変」「フォントを変えたのに表がずれる」といった現象を説明できない。逆にこの構造を理解すると、どこが原因なのかを切り分けやすくなる。
3. 文字幅問題の中心にある East Asian Width
日本語表示の基礎にあるのは、Unicode が定義する East Asian Width である。UAX #11 は、東アジア文脈での文字幅を扱うための性質を定義しており、特に問題になりやすいのが Ambiguous に分類される文字である [1][20]。ギリシャ文字、数学記号、罫線の一部などは、環境によって 1 列と見なされる場合も 2 列と見なされる場合もあるため、日本語環境で表が崩れる原因になりやすい。
wcwidth と wcswidth は、まさにその「画面上で何列ぶんを占有するか」を返す API であり、ターミナル、CLI ツール、TUI 系アプリケーションはこの前提に強く依存している [2]。そのため、フォントの見た目が同じでも、幅計算が異なれば罫線やカーソル位置がずれる。これは「フォントの問題」に見えて、実際には文字幅計算と表示列数の問題である。
| 分類 | 意味 | Linux で問題になりやすい点 |
|---|---|---|
| Narrow | 半角前提の文字 | 通常は問題になりにくい |
| Wide | 全角前提の文字 | 日本語文字の多くはここに入り比較的安定する |
| Ambiguous | 環境依存で半角にも全角にもなり得る文字 | 端末や表組みや Emacs でずれの主因になる |
さらに、wcwidth の実装や移植性には環境差があり、Gnulib の文書でも曖昧幅文字の扱いがプラットフォーム間で一貫しない点が指摘されている [21]。したがって、曖昧幅問題は「特定フォントが悪い」というより、Unicode の性質定義と表示列数 API の実装差が結び付いて起きる構造問題だと捉えた方が正確である。
4. fontconfig が実際の見た目を決める
Linux で「このフォントを使う」と設定しても、その名前どおりのフォントだけで画面が構成されるとは限らない。fontconfig は、設定 XML をもとにパターンを解釈し、最も近い候補を返すライブラリであり、要求されたフォントに必要なグリフが足りなければ別のフォントへ接続される [3]。freedesktop.org の文書でも、fontconfig は設定モジュールとマッチングモジュールを持ち、XML ベースの設定から候補集合を構築して近似マッチを返すと説明されている [3]。
つまり、GUI 側で DejaVu Sans を指定していても、日本語グリフを含まない場合には、日本語部分だけ IPAex や Noto Sans CJK に切り替わる。これは便利だが、同時に「欧文の高さ」と「和文の高さ」、「太さ」、「ベースライン」が揃わない原因にもなる。見た目の違和感の多くは、単体フォントの良し悪しではなく、合成された 2 種類以上のフォントの相性に起因する。
| 設定したつもりの状態 | 実際に起きること | 結果 |
|---|---|---|
| DejaVu Sans を指定する | 欧文は DejaVu Sans、日本語は別フォントにフォールバックされる | 一見 1 つのフォントに見えて実際は混成になる |
| モノスペースを指定する | 英数字だけ等幅で日本語は別系統になることがある | 端末やエディターで整列に影響する |
| 見た目が似た組を使う | 字面と高さの差が小さくなる | 違和感が減る |
このため、Linux のフォント設計では「英数字用」と「日本語用」を分けて考える方が実務的である。意図的に分けて設計した方が、結果として見た目も安定する。
5. フォールバックは便利だが、違和感の発生源でもある
Pango にはフォントフォールバックを有効化または無効化する属性が用意されており、欠字があるときに別フォントへ落とす動作が前提として組み込まれている [4]。これは GUI アプリケーションで文字化けを減らすうえで重要だが、同時に「見た目が途中で変わる」「一部の記号だけ別フォントになる」といった現象も生む。
例えば、通常の日本語文書では問題が見えなくても、数式記号、ギリシャ文字、矢印、罫線、CJK 拡張漢字が混ざった瞬間に、フォールバック先が変わり、文中のある箇所だけ印象が変わることがある。Noto が「No Tofu」を掲げるのは、この欠字による四角い豆腐表示を減らすという思想に基づく [13][14]。ただし、豆腐が減ることと、文全体の統一感が維持されることは別問題である。
| フォールバックの利点 | フォールバックの欠点 |
|---|---|
| 欠字による表示不能を減らせる | 文中の一部だけ別フォントになり統一感が崩れる |
| 多言語混在に対応しやすい | 記号や数式の箇所だけ突然見た目が変わる |
| 一般利用では設定を簡略化できる | 原因切り分けが難しくなり、意図しない組み合わせが生じる |
したがって、欠字を避ける設計と、視覚的一貫性を維持する設計は分けて考えた方がよい。Noto や Source Han Sans の価値は、単に収録文字数が多いからではなく、この一貫性問題を比較的低いコストで抑えやすい点にある。
6. FreeType は最後の描画層であり、印象差の源でもある
FreeType はグリフの輪郭、メトリクス、ビットマップ化を扱う描画ライブラリであり、Linux の多くの環境で最終描画層として機能している [5]。同じフォント名でも、小さなサイズで読んだときの印象が違うのは、字形デザインだけではなく、アウトラインからピクセルへ落とす段階の扱い、ヒンティング、メトリクスの丸め方などの影響も受けるためである。
このため、VL ゴシックが「昔の Linux では見やすかった」と感じられることには、字形への慣れだけでなく、当時の画面解像度やレンダリング状況との相性も含まれている。DejaVu がスクリーン向けとして広く普及したのも、低解像度デバイスでの利用を意識した設計だったことと無関係ではない [16][17]。
7. Emacs では fontset の理解が重要になる
Emacs は多言語文字を扱う仕組みを長く持っており、GNU Emacs Manual でも国際化対応と fontset の考え方が説明されている [6][7]。ここで重要なのは、Emacs では単一のフォント名を設定して終わるのではなく、文字集合ごとにどのフォントを割り当てるかという発想が昔から存在することだ。つまり、Emacs の文脈では「英数字は何か」「日本語は何か」「記号は何か」を分けて考えること自体が自然である。
そのため、GNU/Linux 上で Emacs の見た目を安定させたいなら、DejaVu Sans Mono を英数字や記号の基準にし、日本語には IPAex か Noto Sans CJK 系を明示的に割り当てる構成が理解しやすい。VL ゴシックも使用自体は可能だが、現在は IPAex や Noto と比べると更新状況、カバー範囲、現代環境との整合で一歩譲る。
| Emacs で起きやすいこと | 背景 | 実務的な対処 |
|---|---|---|
| 英数字は綺麗だが日本語が浮く | 欧文と和文が別フォントで混在している | 日本語側を明示設定して高さの合う組を選ぶ |
| 表や罫線がずれる | 幅計算とフォント実幅が一致しない | 曖昧幅設定と使用文字を見直す |
| 一部の記号だけ別の見た目になる | 欠字によりフォールバックしている | 収録範囲の広いフォントを補助に使う |
Emacs の設定を考えるとき、単に「好きなフォント」を置くよりも、「どの文字集合を誰に担当させるか」として設計した方が再現性が高い。
8. VL ゴシックとは何だったのか
VL ゴシックは Project Vine による日本語 TrueType フォントであり、Debian パッケージの説明では Sazanami Gothic と M+1C / M+1M を基にした美しい日本語フリーフォントとして紹介されている [8]。つまり、VL ゴシックは偶然広まったわけではなく、自由な日本語フォントの選択肢が限られていた時代に、実用性とライセンスの両面で重要な位置を占めていた。
Linux 日本語環境の歴史を大まかに並べると、古い環境では Sazanami 系、そこから VL ゴシック、さらに IPA / IPAex、現在は Noto Sans CJK や Source Han Sans 系へと重心が移っていると整理すると理解しやすい [8][10][13][15]。
| 時期 | 代表的な日本語フォント | 背景 |
|---|---|---|
| 2000 年代前半 | Sazanami 系 | 自由に使える日本語フォントがまだ少なく、Linux 日本語環境ではさざなみフォントが広く使われていた |
| 2000 年代後半〜2010 年代前半 | VL ゴシック | M+ フォントと Sazanami を組み合わせた VL ゴシックが Linux 日本語環境の定番として広く普及した |
| 2010 年代 | IPA、IPAex | IPA フォントおよび IPAex が整備され、文書用途や標準的な日本語表示として広く採用されるようになった |
| 2015 年頃以降 | Noto Sans CJK、Source Han Sans | Google と Adobe による Pan-CJK フォントが登場し、多言語環境と広い Unicode カバーを前提とする設計へ移行した |
したがって、VL ゴシックを「もう古いから駄目」と切り捨てるのは不正確である。正確には、「一世代前の標準であり、現在でも使えるが、新規採用の第一候補ではなくなった」と表現するのが妥当である。
9. M+ はなぜ今でも候補に残るのか
M+ FONTS は現在も継続して公開されているフォント群であり、公式サイトでも M PLUS 1 / 2、M PLUS 1 Code などが案内されている [9]。VL ゴシックの系譜を理解するうえでも重要で、軽量な日本語環境を志向する場合の現役候補でもある。
M+ が候補に残る理由は、極端に豪華な Pan-CJK を目指すのではなく、軽量さと可読性のバランスがよいからである。特に古いノート PC、軽量デスクトップ、単純なテキスト主体の利用では、「必要十分な日本語フォント」として扱いやすい。一方で、巨大な文字集合や高度な多言語混在を前提にするなら、Noto や Source Han Sans の方が有利になる。
10. IPA と IPAex は何が違うのか
IPA の公式説明では、IPAex フォントは 2010 年 2 月に追加された「ドキュメント用日本語フォントの標準的な実装」であり、和文を基本的に固定幅、欧文を文字幅に合わせた変動幅とする実装で、日本語文書作成の利便性向上を目指したとされている [10]。一方で、過去システムとの互換性を重視する場合には、欧文も和文も固定幅の IPA ゴシック、欧文も和文も変動幅の IPA P ゴシックなど、旧来系の使い分けが案内されている [10][18]。
ここで重要なのは、IPAex は「日本語文書にとって扱いやすいバランス」を目指した設計であって、単純な完全等幅フォントとは違うという点である。そのため、GUI 文書や Emacs では自然に見えやすいが、厳密なセル幅一致を要求する一部の端末用途では、モノスペース欧文フォントと組み合わせて使う方が運用しやすい。
| 系統 | 特徴 | 向いている場面 |
|---|---|---|
| IPA ゴシック | 欧文と和文が固定幅で互換性重視の性格が強い | 旧来環境との整合や固定幅前提の用途 |
| IPA P ゴシック | 欧文と和文が変動幅で自然な文書表現に向く | 一般的な文書用途 |
| IPAex ゴシック | 和文固定幅を基本に欧文は変動幅で文書向けに調整されている | 現在の Linux 日本語実務で最も扱いやすい場面が多い |
さらに IPAex のリリースノートでは、数式記号の調整や欧文の一部の見直しも説明されており、単なる名前違いではなく、実用上の違和感を減らす方向に設計が再調整されている [12]。このため、現代 Linux で「軽くて壊れにくい日本語フォント」を求めると、IPAex が今でも強い候補になる。
11. Noto Sans CJK が現代標準と見なされる理由
Noto は Google の公開情報でも 1000 以上の言語、150 以上の書記体系を対象にした高品質フォント群とされており、名前自体も「No Tofu」を由来にしている [13]。Debian の fonts-noto-cjk パッケージでも、Noto は視覚的に調和したフォントコレクションであり、当該パッケージは日本語・中国語・韓国語向けの CJK ファミリーを収録すると説明されている [14]。
Noto Sans CJK が現代標準と見なされやすいのは、単に Google 製だからではない。多言語混在、欠字回避、Pan-CJK の整合性、Linux ディストリビューションとの親和性という複数条件を同時に満たしやすいからである。Debian パッケージには fontconfig 用設定ファイル 70-fonts-noto-cjk.conf も含まれており、システム全体のフォールバック候補としても統合しやすい [14]。
欠点は、サイズが大きく、軽量環境ではやや重いこと、そして英数字と混在させたときの印象が必ずしも DejaVu Mono などと完全一致するわけではないことである。そのため、GUI 全体では Noto、端末や Emacs では DejaVu Mono と IPAex のように使い分ける構成が実務的である。
12. Source Han Sans はどの位置にあるか
Source Han Sans は Adobe のオープンソース Pan-CJK フォントであり、GitHub の公式リポジトリーでも OpenType の Pan-CJK フォント群であると説明されている [15]。Noto Sans CJK と思想的に近く、広域の CJK カバーと高い統一感を重視する場合の有力候補である。
実務では、Source Han Sans は「とにかく綺麗に見せたい」「印刷物や長文表示での品位を重視したい」場合に価値が高い。一方で、Linux の標準セットアップや軽量構成ではやや重く、日常の端末作業だけを考えるなら、そこまで大きな恩恵を感じないこともある。したがって、Source Han Sans は優秀だが、全員にとっての最適解ではない。
13. DejaVu が欧文側の基準として残り続ける理由
Debian の fonts-dejavu-core パッケージ説明では、DejaVu は Bitstream Vera 系の拡張であり、広い文字集合と品質を目標とし、スクリーン利用を意識したフォントであると説明されている [16][17]。Linux 環境では、この「欧文側の安定した基準」としての価値が非常に大きい。
特に DejaVu Sans Mono は、英数字、記号、プログラミング用途の可読性が安定しており、Emacs やターミナルの基準フォントとして扱いやすい。日本語まで 1 フォントで済ませるより、欧文は DejaVu Mono、日本語は IPAex か Noto と割り切った方が、総合的な見た目とトラブル回避のバランスがよい。
14. では現在の実務では何を選ぶべきか
ここまでを踏まえると、実務では次の 3 系統を使い分けるのがわかりやすい。これは「唯一の正解」を示すものではなく、Linux の日本語環境で破綻しにくい構成を優先した整理である。
| 構成名 | 内容 | 長所 | 短所 |
|---|---|---|---|
| 現代標準構成 | DejaVu Sans または Mono と Noto Sans CJK | 文字集合が広く豆腐を避けやすい | やや重く、軽量環境では過剰な場合がある |
| 実用バランス構成 | DejaVu Sans Mono と IPAex ゴシック | 軽量で安定し、Emacs と端末での実務感がよい | 極端な多言語混在では Noto ほど万能ではない |
| 軽量構成 | DejaVu Sans Mono と M+ | 軽く、古い機材でも扱いやすい | 総合的な網羅性では Noto や Source Han Sans に劣る |
この中で、日常の GNU/Linux デスクトップ、Emacs、ターミナルを同時に考えた場合の最も無難な答えは、やはり DejaVu Sans Mono と IPAex ゴシックである。VL ゴシックが好きだったという感覚自体はよくわかるが、その「好きだった」に含まれているのは、字形だけでなく、軽さ、当時の Linux 日本語環境の雰囲気、X11 ベースの見え方への慣れでもある。現在それに近い実用感を維持しつつ、全体の安定性を上げるなら IPAex へ寄せるのが最も自然である。
15. 実際に Debian 系でどう確認し、どう入れるか
Debian 系では、fonts-dejavu、fonts-ipaexfont、fonts-noto-cjk といったパッケージが利用できる [11][14][16]。また fontconfig の設定は XML と symlink 群で構成され、fc-match や fc-list によって実際の解決結果を確認できることが、fontconfig の関連文書や Oracle のガイドでも案内されている [3][19]。
実務では、入っているかどうかだけでなく、「monospace を要求したとき、実際に誰が選ばれるか」「ja ロケールで何が返るか」を見ることが重要である。fontconfig の世界では、インストール済みであることと、実際に優先されることは同義ではないためである。
1 2 3 4 5 6 7 | sudo apt install fonts-dejavu fonts-ipaexfont fonts-noto-cjk fc-list :lang=ja family fc-match sans fc-match monospace fc-match "sans:lang=ja" fc-match "monospace:lang=ja" |
また、IPAex の最新版配布ページでは Ver.004.01 が公開されており、Debian パッケージを使わず直接導入する経路も存在する [22]。ただし、システム全体の整合性や更新追従を考えると、通常はディストリビューションのパッケージを使う方が管理しやすい。
16. 用途別の判断基準
「結局どれを選ぶべきか」は、実は用途別に決めた方が早い。文字集合と見た目の統一感を重視するのか、軽量性を重視するのか、Emacs と端末の実務感を重視するのかで、最適解は少しずつ変わる。
| 用途 | 推奨構成 | 理由 |
|---|---|---|
| Linux GUI 全体 | DejaVu Sans と Noto Sans CJK | 多言語混在と欠字回避のバランスがよい |
| Emacs | DejaVu Sans Mono と IPAex ゴシック | 英数字と日本語の役割分担が明確で見た目が安定する |
| Terminal | DejaVu Sans Mono を軸に必要なら日本語補助を加える | 列幅と可読性を優先しやすい |
| 軽量環境 | M+ 系または IPAex の軽量運用 | フォントサイズと負荷を抑えやすい |
| 文書制作や見た目重視 | Noto Sans CJK または Source Han Sans | Pan-CJK と視覚的一貫性を確保しやすい |
| 旧 Linux の雰囲気を維持したい | VL ゴシック | 当時の字形と感触を保ちやすい |
17. まとめ
VL ゴシックは、Linux 日本語環境の歴史の中で確かな役割を果たしたフォントであり、いまでも「好きだった」と感じること自体は自然である。その感覚は、単に古い環境への郷愁ではなく、軽さ、読みやすさ、そして当時の Linux 日本語環境における実用性の記憶に支えられている。しかし現在の Linux では、Unicode の East Asian Width、wcwidth による列数計算、fontconfig のマッチング、Pango のフォールバック、FreeType の描画、Emacs の fontset という多層構造の中で文字表示が成立しており、問題の切り分けも選定基準も当時より複雑になっている [1][2][3][4][5][6][7]。
そのうえで実務的な答えを 1 行で言えば、現在の GNU/Linux で日本語環境を安定させる最有力は DejaVu Sans Mono と IPAex ゴシックの組み合わせであり、多言語重視なら Noto Sans CJK、見た目重視なら Source Han Sans、軽量志向なら M+、そして旧来の感触を残したいなら VL ゴシックという整理になる。つまり VL ゴシックは「もう終わったフォント」ではなく、「一世代前の標準として十分に意味を持ち、現在は用途限定で残るフォント」である。
参考文献
- Unicode Consortium. UAX #11: East Asian Width. https://www.unicode.org/reports/tr11/
- man7.org. wcwidth(3) – Linux manual page. https://man7.org/linux/man-pages/man3/wcwidth.3.html
- freedesktop.org. fontconfig user documentation / developer reference. https://www.freedesktop.org/software/fontconfig/fontconfig-user.html
- GTK Documentation. Pango font fallback attribute. https://docs.gtk.org/Pango/func.attr_fallback_new.html
- FreeType Project. FreeType Glyph Conventions. https://freetype.org/freetype2/docs/glyphs/index.html
- GNU Project. GNU Emacs Manual – International. https://www.gnu.org/s/emacs/manual/html_node/emacs/International.html
- GNU Project. GNU Emacs Manual – Lucid Resources / fontSet. https://www.gnu.org/s/emacs/manual/html_node/emacs/Lucid-Resources.html
- Debian Packages. fonts-vlgothic. https://packages.debian.org/sid/fonts/fonts-vlgothic
- M+ FONTS PROJECT. M+ FONTS. https://mplusfonts.github.io/
- 一般社団法人 文字情報技術促進協議会. IPAex フォントおよび IPA フォントについて. https://moji.or.jp/ipafont/
- Debian Packages. fonts-ipaexfont. https://packages.debian.org/sid/fonts/fonts-ipaexfont
- 一般社団法人 文字情報技術促進協議会. IPAex リリースノート Ver.002.01. https://moji.or.jp/ipafont/releasenote00201/
- Google Fonts. Noto Home. https://fonts.google.com/noto
- Debian Packages. fonts-noto-cjk. https://packages.debian.org/sid/fonts/fonts-noto-cjk
- Adobe Fonts / GitHub. source-han-sans. https://github.com/adobe-fonts/source-han-sans
- Debian Packages. fonts-dejavu-core. https://packages.debian.org/bookworm/fonts-dejavu-core
- Debian Packages. fonts-dejavu source package. https://packages.debian.org/ja/source/sid/fonts-dejavu
- Debian Packages. fonts-ipafont-gothic. https://packages.debian.org/sid/fonts-ipafont-gothic
- Oracle. fontconfig ライブラリ – 国際化対応言語環境の利用ガイド. https://docs.oracle.com/cd/E26924_01/html/E27144/glmkf.html
- Unicode Consortium. The Unicode Standard, Chapter 18. https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-18/
- GNU Gnulib. wcwidth portability notes. https://www.gnu.org/software/gnulib/manual/html_node/wcwidth.html
- 一般社団法人 文字情報技術促進協議会. IPA Font ダウンロード. https://moji.or.jp/ipafont/ipafontdownload/
