こんな設定ファイルを作る。1Mのspacingは100(FC_MONO)になる。1M:spacing=100けど、リストには入らない。Sansリストにはない。foo90(FC_DUAL)を100(FC_MONO)として認識させると、フォントに設定されている幅を無視するアプリケーションが存在するため、リストに入れてくれるわけでもないのならばデメリットしかない。</edit></match>問題はQtである。QtはMonospaceフォントとしてFC_MONOの値よりもspacingが大きいフォントを提示する。問題は、FC_MONOは100であり、FC_DUALは90であるため、FC_DUALなフォントは提示されない、ということだ。この問題はバグとして報告されているのだが、今以て解決していない。現状、monospaceを和文フォントにするか、適当な(使わない)欧文monospaceフォントをインストールして、その名前を利用して置き換えるくらいしかなさそうだ。日本語部分までプロポーショナルになっている「和文プロポーショナルフォント」というのはかなり珍しい。このためか、ラテン部分がプロポーショナルであるにもかかわらず、spacing=90にしてしまうフォントが結構あるようだ。Dynafontとか。90とすればdualspaceフォントを含めてリストしてくれるけれども、必ずしも等幅フォントであるとは限らない。今回のスクリプトGitHubにアップした。基本的にはFontConfigから値をひらってeRubyで埋め込んだHTMLを作るプログラムである。プログラム自体は至ってシンプルなものだ。どちらかといえばFontConfigに関する知識のほうが求められる。READMEにある通り、うまく動作しない部分がある。「フォントの情報って結構ガバガバだなぁ」と感じてしまう。フォントの情報から取っているわけで、がフォントにウソ情報を書かれたりするとスクリプト側では処理しがたい。ビットマップとスケーラブルがスタイルの違いになっているもの(例えばTelegramaはRawがビットマップ、Renderがスケーラブル)と厄介なものは色々ある。欧文モノスペースフォント紹介ボリュームがすごーく増えてしまったので独立させました今回の件で気づいたこと欧文フォントフェイスはかなり似ている「読みやすいアルファベット」という条件がついていて、あまり標準的でない形は読みづらさにつながる。結局、こうした条件のためにだいたいのフォントが似ていて、「ターミナル」「タイプライター」「セリフ」「サンセリフ」の4種類で分類できるような形状しか生まれてこない。微妙な違いが読みやすさにつながる部分もある。現在人気のフォントはどれも似たようなサンセリフまたはターミナル体なのだけど、探せばちょっと変わったフォントもあるにはある。Monoがちょっと変わったグリフをしている。Monoはものすごく普通。Codeなど見比べて「おっ、いいな」と思うフォントは軒並み商用フォントになっている。プログラマ、コーダーなど「日がな一日プログラムを書いている」人に関しては、これぞと気に入ったフォントがあれば買ってみるのも手ではないだろうか。一日中向き合っているものだし。欧文フォントも売られているものは高いものもあるOperatorなんて$199もする。1書体のお値段としてはモリサワフォント並。レギュラー/ボールド/イタリックで€199。日本語フォントとは制作労力が雲泥の差なので、ちょっとえげつない値段だと言っていい。Monoも40ポンドとかなりお高め。Atomはレンダリングが汚いフォントのウェイトやサイズがばらつきやすく、autohintのようなガタツキも発生する。うまく表示してくれるフォントを探すのにはずいぶん苦労した。Atomでキレイに表示してくれるのはCPMonoなのだけど、CPMonoはコーディングフォントとして決して快適ではない。Mesloあたりが快適。この組み合わせは非常に違和感がないが、後述のようにもう少し違和感があったほうが読みやすい。その点、LuculentやMesloのほうが有力だった。「漢字グリフはなくてひらがなだけなんだけど、haniは書いてあってkanaは書いてない」みたいなフォントもある。商用フォントでも結構ザルである。プログラムとしてはフォントの情報に基づいて処理するしかないわけで、「なんでここでそのフォントが?」と思うようなフォントが提示されたり、偽薬に提示されなかったりというのはここらへんに理由があるのだろう。日本では紹介されていないモノスペースフォントはいろいろ日本人としては日本語Glyphのないフォントは使えない、という感覚があるのだろう。紹介されることもない。今はglyphがなければそれなりに処理してくれるのが普通なので別に好きに組み合わせても良いのではないだろうか。日本で紹介されるものは人気があるというよりも無難なものが多く、実際にはもっと使ってみる価値のあるフォントは色々ある。フォントレンダリングの微妙な差KDEアプリケーションは割とにじみ強く太めに描画するため、キレイに見える。Gnomeアプリケーションはもっとくっきり描画する。どちらもFontConfigを使っているのだけど、描画ライブラリの微妙な差なのか、見え方が割と違う。FirefoxとChromiumの描画差は気づきやすい。前述のようにAtomはあまりよくない。以前は有効にするのが一般的だったように思うautohinterだけども、有効にするとガタガタになる。フォントが寄る、ガタつく、崩れるなどのことがあったらautohinterを切るといいかも。Arch設定だと色々いじってみても基本的にはデフォルトが良いようだ。nobitmapと、サブピクセルレンダリングの配置くいらはいじったほうがいいけども。日本語とアルファベットは差があるほうが見やすいコーディング向きのglyphを持つ日本語フォント2の場合、統一感があるように調整されている。「日本語とアルファベットの統一的デザインってなんだ」と思うかもしれないが、主にはグリフのボックスサイズと、線の太さである。普通は「半角は全角の半分」となるように設計する。JPフォントの場合は全角は半角の1.5倍幅になっている。Linux環境ではこのような和文フォントのスペーシングがうまく適用されないことが多い。Atomの場合和文フォントを指定すると縦には揃ってくれない。このことから、このようにメリットは少ない。区別しやすいほうが良いと考えられる。このことを踏まえると、「日本語とアルファベットの統一感はなくても困らないし、むしろないほうが便利」だったりする。今回のフォント画像に使ったコードJavaScript組み込みHTMLのPandocテンプレートである。false)</script></body></html>Iosevkaはdualspace扱いになっている。↩そもそも合成でないフォントでそのようなフォントはかなり少ない。M+(VLゴシックとMiguもこのglyph)くらいではないだろうか。JPとOsaka等幅は専用に調整されてリリースされているものなので含めてもいいかもしれないが。