Cara menggunakan Fixedsys di Terminal Gnome, atau di mana pun font monospace diperlukan

10

Saya pikir font Fixedsys adalah salah satu font monospace yang paling mudah dibaca untuk pemrograman. Ini memiliki nol antialiasing, dengan garis-garis vertikal sebagian besar lebar 2 piksel. Dekat dengan ideal untuk monitor pitch dot saat ini, di mata saya (secara harfiah). Berikut ini contohnya:

Sampel Fixedsys

Setelah bertahun-tahun Windows di rumah (untuk alasan keluarga) dan server Linux di tempat kerja diakses melalui Cygwin pada Windows (untuk alasan kebijakan perusahaan), dengan Fixedsys sebagai shell dan font IDE, akhirnya saya memutuskan untuk beralih ke Ubuntu di rumah.

Eclipse dan gedit tidak masalah, mereka menerima versi yang diperbaiki dari font Fixedsys Excelsior TTF yang dapat Anda temukan di komentar # 16 (nama file: FSEX301-L2.ttf). Tetapi Terminal Gnome hanya menerima font monospace.

Meskipun Fixedsys Excelsior pada dasarnya monospace, ini berisi mesin terbang yang lebih besar (kebanyakan untuk bahasa timur), dan juga beberapa ligatur. Karena tampaknya SEMUA karakter harus memiliki lebar yang sama agar font dapat dikenali sebagai monospace, Fixedsys Excelsior tidak dapat dipilih dalam semua konteks di mana font monospace diperlukan, termasuk gnome-terminal.

Jadi apa cara termudah / terbersih untuk menggunakan klon Fixedsys dalam konteks yang hanya menerima font monospace?

Walter Tross
sumber
BTW, untuk menggunakan Fixedsys Excelsior di NetBeans, Anda harus menambahkan -J-Dswing.aatext=falseke netbeans_default_options di /etc/netbeans.conf. Kalau tidak, NetBeans akan membuatnya "berwarna" dan buram - ini berlaku untuk Windows juga
Walter Tross
Pembaruan untuk komentar saya sebelumnya: Netbeans 7.4 di Windows mengharuskan -J-Dawt.useSystemAAFontSettings=onuntuk menyingkirkan anti-aliasing.
Walter Tross
Pada MacBook Pro saya harus bekerja dengan sampel gambar yang tidak tajam. Font Fixedsys tampaknya memiliki piksel batas berwarna abu-abu. AFAICT ini karena apa yang disebut "retina" display, tampilan resolusi tinggi yang menyebabkan gambar dalam HTML diskalakan oleh faktor dua (ya, mereka lebih suka merusak HTML dan membuat gambar kabur ...). Penskalaan yang sama berlaku untuk font itu sendiri, merusaknya. Di sisi lain, tampilan resolusi tinggi sangat meningkatkan keterbacaan dari semua font, meniadakan kebutuhan Fixedsys.
Walter Tross

Jawaban:

7

Ini solusi yang saya temukan. Saya telah mengujinya dengan seksama beberapa kali, dan saya telah menggunakan font yang dihasilkan di beberapa tempat selama lebih dari 2 tahun sekarang, tetapi berhati-hatilah: beberapa bagian dari prosedur ini dapat berada di mana saja dari kesalahan suboptimal ke plain salah.

Sebelum Anda bertanya "mengapa Anda tidak membuat font yang dihasilkan tersedia", jawabannya adalah: "karena saya tidak yakin saya bisa melakukannya". Hak cipta font adalah masalah yang rumit.


Unduh font Fixedsys Excelsior yang diperbaiki (file FSEX301-L2.ttf, di komentar # 16)

Instal FontForge (mis., Dari Pusat Perangkat Lunak Ubuntu)

Klik kanan pada FSEX301-L2.ttffile tersebut dan buka dengan FontForge. Dalam Beban Bitmap Font jendela yang muncul, klik No .

Klik File → Execute Script ... , dan salin & tempel yang berikut ke jendela yang muncul:

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()

Kemudian pilih FF dan klik OK (perlu beberapa saat, Anda harus menunggu sampai jendela Execute Script menghilang)

Klik Elemen → Info Huruf ... Dalam Nama PS ubah Nama Font , Nama Keluarga , dan Nama untuk Manusia , misalnya dengan menambahkan Mono(spasi hanya diperbolehkan dalam string kedua dan ketiga).

Di jendela Informasi Huruf yang sama , pilih OS / 2 .
Di Misc. tab ubah Keluarga PFM ke Monospace .
Di tab Metrik, atur Win Descent Offset dan HHead Descent Offset ke 0 (*) .
Di tab Panose , ubah Proporsi menjadi Monospace .

Di jendela Informasi Huruf yang sama , pilih Pencarian .
Dalam GSUB tab, dan di GPO tab, pilih setiap baris pada gilirannya dan klik Delete .

Di jendela Informasi Huruf yang sama , klik OK , dan di Ubah UniqueID? jendela yang muncul klik Ubah .

Jika mau, Anda dapat mengubah satu atau lebih fitur Fixedsys yang dipertanyakan. Misalnya, karakter nol digeser satu piksel ke kanan. Untuk menggesernya kembali ke tengah, klik dua kali, lalu klik Metrik → Set LBearing ... , atur LBearing ke 10dan klik OK . Anda juga dapat mengubah bentuk karakter, tetapi selalu pertahankan titik kontrol di kelipatan 10, dan lebarnya di 80.

Klik Elemen → Bitmap Strikes Available ... , lalu, di jendela yang muncul atur Ukuran Pixel ke 16dan klik OK .

Klik File → Hasilkan Font ... , pilih direktori yang berbeda dan / atau nama file yang berbeda jika diperlukan, pastikan format output adalah TrueType , dan klik Simpan . Di jendela Non-standar Em-Size yang muncul klik Ya . Di jendela Kesalahan terdeteksi yang muncul selanjutnya klik Simpan (jangan khawatir).

Keluar dari FontForge ( File → Quit ). Di jendela Font berubah yang muncul klik Don't Save .


Pindahkan file yang dihasilkan ke .fontssubdirektori direktori home Anda (buat jika tidak ada).

Buka Terminal Gnome. Klik Edit → Profil ... Dalam profil (saya sarankan Anda membuat yang baru) ubah font menjadi Fixedsys Excelsior 3.01-L2 Mono(atau apa pun yang Anda sebut versi mono dari Fixedsys Excelsior), pada ukuran 12(yang merupakan satu-satunya ukuran Fixedsys "benar") . Jika mau, Anda juga dapat menonaktifkan teks tebal. Saya menyarankan teks hitam dengan latar belakang putih, tapi itu masalah selera.

Varian tebal font ini sama dengan mengulangi karakter yang digeser satu piksel ke kanan (ini berbeda dari FSEX301-L2.ttf, di mana ia terlihat dihaluskan). Ini tidak bisa dibaca - tetapi apakah Anda benar-benar perlu berani? Bukan saya. Masalahnya hanya dengan konteks di mana huruf tebal tidak dapat dinonaktifkan (bahkan tidak, misalnya, dengan mengedit penyorotan sintaks), terutama dalam kasus-kasus di mana spasi karakter bertambah satu piksel juga, merusak keberpihakan (memecah keberpihakan (ini bukan kasus di gnome -terminal). Saya belum menemukan solusi untuk gangguan terakhir ini. Saran diterima.


(*): tidak diperlukan sejak rilis FontForge 2012-07-31 (dalam 14,04 LTS - Trusty Tahr)

Walter Tross
sumber
Kepada semua yang telah menyimpan dan / atau menerapkan resep ini: harap dicatat bahwa itu mungkin telah sedikit berubah sementara itu untuk menyelesaikan beberapa masalah kecil, dan bahwa itu mungkin masih berubah di masa depan. Anda bisa melihat pada sejarah edit.
Walter Tross
FYI, berfungsi dengan baik di Windows juga. Juga dengan "Fixedsys Excelsior 2.0" (yang, menurut saya, jauh lebih baik untuk terminal karena karakternya sedikit kurang tinggi daripada di FSEX3). Font yang bagus untuk Putty! (FSEX asli dan font apa pun yang dianggap non-monospace membuat Putty sangat lambat ketika layar di-refresh sangat sering)
ThiefMaster
PhpStorm 7.1 pada 14.04 tidak mengenali font yang saya jelaskan dalam jawaban saya sebagai font monospace, saya tidak tahu mengapa :-( Untungnya, jika Anda hapus centang "hanya tampilkan font monospace", Anda masih bisa mendapatkannya. Untuk beberapa alasan ukurannya harus 15 atau 16 (mereka terlihat sama), bukan 12. PhpStorm tampaknya agak buggy bagi saya ...
Walter Tross
3

Solusi hebat oleh Walter Tross, tetapi jika Anda tidak ingin melakukan semua pekerjaan, berikut ini tautan unduhannya:

FixedsysExcelsiorIIIb-L2_Mono.ttf

Borjovsky
sumber
1
Terima kasih Rafael, "mengapa" ada di paragraf kedua dari jawaban saya
Walter Tross
Ops! Maaf ... Kurang perhatian ... Tetap sekarang.
Borjovsky