web-dev-qa-db-ja.com

Gnomeターミナル、または等幅フォントが必要な場所でFixedsysを使用する方法

Fixedsys フォントは、プログラミング用の最も読みやすい等幅フォントの1つだと思います。アンチエイリアスはゼロで、縦線のほとんどは2ピクセル幅です。 (文字通り)私の目では、現在のモニターのドットピッチに理想的です。サンプルを次に示します。

Fixedsys sample

Fixedsysをシェル、IDEフォントとして使用し、WindowsでCygwinを介して(会社のポリシー上の理由で)自宅でWindowsを(家族向け)、職場でLinuxサーバーを何年も使用した後、最終的に切り替えることにしました自宅のUbuntu。

Eclipseとgeditは問題ありません。修正されたバージョンの Fixedsys Excelsior を見つけることができるTTFフォントを受け入れます ここでコメント#16 (ファイル名:FSEX301-L2.ttf) 。ただし、Gnomeターミナルは等幅フォントのみを受け入れます。

Fixedsys Excelsiorは基本的に等幅ですが、大きなグリフ(主に東部言語用)といくつかの合字が含まれています。フォントがモノスペースとして認識されるためには、明らかにすべての文字の幅が同じでなければならないため、固定スペースフォントが必要なすべてのコンテキスト(gnome-terminalを含む)でFixedsys Excelsiorを選択できません。

固定幅フォントのみを受け入れるコンテキストでFixedsysクローンを使用する最も簡単でクリーンな方法は何ですか?

10
Walter Tross

これが私が見つけた解決策です。私はそれを数回徹底的にテストし、結果のフォントを多くの場所で2年以上使用していますが、注意してください:手順の一部は次善から明白な間違いまでどこかにあるかもしれません。

「結果のフォントを利用可能にしないのはなぜか」と尋ねる前に、答えは「そうすることができるかどうかわからないから」です。フォントの著作権は複雑な問題です。


修正されたFixedsys Excelsiorフォント (ファイルFSEX301-L2.ttf、コメント#16)をダウンロードします

インストール FontForge (たとえば、Ubuntu Software Centerから)

FSEX301-L2.ttfファイルを右クリックして、FontForgeで開きます。表示されるLoad Bitmap Fontsウィンドウで、Noをクリックします。

ファイル→スクリプトを実行...をクリックし、表示されるウィンドウに以下をコピー&ペーストします:

SelectAll()
foreach
   if (GlyphInfo("Width") != 80)
      DetachAndRemoveGlyphs()
   else
      b = GlyphInfo("BBox")
      if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130)
         DetachAndRemoveGlyphs()
      endif
   endif
endloop
SelectNone()

次に、FFを選択し、OKをクリックします(しばらく時間がかかりますが、スクリプトの実行ウィンドウが消えます)

Element→Font Info ...をクリックしますPS NamesFontnameを変更します姓、およびHumansの名前。たとえば、Monoを追加します(スペースは2番目と3番目の文字列でのみ許可されます)。

同じFont Informationウィンドウで、OS/2を選択します。
Misc。タブで、PFM FamilyMonospaceに変更します。
[メトリック]タブで、Win Descent OffsetとHHead Descent Offsetの両方を0に設定します(*)
Panoseタブで、ProportionMonospacedに変更します。

同じFont Informationウィンドウで、Lookupsを選択します。
GSUBタブ、およびGPOSタブで、各行を順番に選択し、削除

同じフォント情報ウィンドウで、OKをクリックし、Change UniqueID?表示されるウィンドウ(変更)をクリックします。

必要に応じて、Fixedsysの1つ以上の疑わしい機能を調整できます。たとえば、ゼロ文字は1ピクセル右にシフトされます。中央に戻すには、ダブルクリックしてからMetrics→Set LBearing ...を選択し、LBearing10に設定してOK。文字の形状を変更することもできますが、コントロールポイントは常に10の倍数、幅は80のままにしてください。

Element→Bitmap Strikes Available ...をクリックし、表示されるウィンドウでPixel Sizes16に設定して、をクリックしますOK

File→Generate Fonts ...をクリックし、別のディレクトリまたは必要に応じて別のファイル名を選択し、出力形式がTrueTypeであることを確認し、そしてSaveをクリックします。表示されるNon-standard Em-Sizeウィンドウで、Yesをクリックします。次に表示されるErrors detectedウィンドウで、Saveをクリックします(心配しないでください)。

FontForge(File =→Quit)を終了します。表示されるFont changedウィンドウで、Do n't Saveをクリックします。


生成されたファイルをホームディレクトリの.fontsサブディレクトリに移動します(存在しない場合は作成します)。

Gnomeターミナルを開きます。 Edit→Profiles ...をクリックします。プロファイルで(新しいプロファイルを作成することをお勧めします)フォントをFixedsys Excelsior 3.01-L2 Mono(またはFixedsys Excelsiorのモノバージョンと呼ばれるもの)に変更します。 12(唯一の「真の」Fixedsysサイズです)。必要に応じて、太字のテキストを無効にすることもできます。白い背景に黒いテキストをお勧めしますが、それは好みの問題です。

このフォントの太字のバリアントは、文字を1ピクセル右にシフトして繰り返すことに相当します(これは、FSEX301-L2.ttfとは異なり、スムーズに表示されます)。それは非常に読みやすいではありません-しかし、あなたは本当に大胆に必要ですか?しません。問題は、太字を無効にできないコンテキストのみです(たとえば、構文の強調表示を編集しても)、特に文字間隔が1ピクセルずつ増加し、アライメントが壊れる場合(これはgnomeには当てはまりません) -ターミナル)。私はこの最後の迷惑に対する解決策をまだ見つけていません。提案を歓迎します。


(*):2012-07-31のFontForgeリリース以降は不要(14.04 LTS-Trusty Tahr)

7
Walter Tross

Walter Trossによる優れたソリューションですが、すべての仕事をしたくない場合は、ダウンロードリンクをご覧ください。

FixedsysExcelsiorIIIb-L2_Mono.ttf

3
Borjovsky