Verwendung von Fixedsys im Gnome-Terminal oder überall dort, wo monospaced Schriftarten erforderlich sind

10

Ich denke, dass die Fixedsys- Schriftart eine der am besten lesbaren Monospaced-Schriftarten für die Programmierung ist. Es hat kein Antialiasing, mit vertikalen Linien, die meist 2 Pixel breit sind. In meinen Augen (im wahrsten Sinne des Wortes) nahezu ideal für aktuelle Monitorpunktabstände. Hier ist ein Beispiel:

Fixedsys Probe

Nach Jahren von Windows zu Hause (aus familiären Gründen) und Linux-Servern bei der Arbeit, auf die über Cygwin unter Windows zugegriffen wurde (aus Gründen der Unternehmensrichtlinien), mit Fixedsys als Shell- und IDE-Schriftart, habe ich mich endlich entschlossen, zu Hause zu Ubuntu zu wechseln.

Eclipse und gedit sind kein Problem. Sie akzeptieren eine korrigierte Version der TTF-Schriftart Fixedsys Excelsior , die Sie hier unter Kommentar Nr. 16 (Dateiname: FSEX301-L2.ttf) finden. Das Gnome-Terminal akzeptiert jedoch nur monospaced Schriftarten.

Obwohl Fixedsys Excelsior im Wesentlichen monospaced ist, enthält es größere Glyphen (hauptsächlich für östliche Sprachen) und auch einige Ligaturen. Da anscheinend ALLE Zeichen dieselbe Breite haben müssen, damit eine Schriftart als monospaced erkannt wird, kann Fixedsys Excelsior nicht in allen Kontexten ausgewählt werden, in denen monospaced Schriftarten erforderlich sind, einschließlich gnome-terminal.

Was ist der einfachste / sauberste Weg, einen Fixedsys-Klon in Kontexten zu verwenden, die nur monospaced Schriftarten akzeptieren?

Walter Tross
quelle
Übrigens, um Fixedsys Excelsior in NetBeans zu verwenden, müssen Sie -J-Dswing.aatext=falsenetbeans_default_options in /etc/netbeans.conf hinzufügen. Andernfalls wird es von NetBeans "farbig" und verschwommen dargestellt - dies gilt auch für Windows
Walter Tross
Update auf meinen vorherigen Kommentar: Netbeans 7.4 unter Windows erfordert -J-Dawt.useSystemAAFontSettings=ondie Beseitigung des Anti-Aliasing.
Walter Tross
Auf dem MacBook Pro muss ich mit dem Beispielbild arbeiten, das nicht scharf ist. Die Fixedsys-Schriftart scheint graue Randpixel zu haben. AFAICT Dies liegt an der sogenannten "Retina" -Anzeige, einer hochauflösenden Anzeige, bei der Bilder in HTML um den Faktor zwei skaliert werden (ja, sie haben es vorgezogen, HTML zu brechen und unscharfe Bilder zu haben ...). Die gleiche Skalierung gilt für die Schriftart selbst, wodurch sie beschädigt wird. Auf der anderen Seite verbessern hochauflösende Displays die Lesbarkeit aller Schriftarten erheblich und machen Fixedsys überflüssig.
Walter Tross

Antworten:

7

Dies ist die Lösung, die ich gefunden habe. Ich habe es mehrmals gründlich getestet und verwende die resultierende Schriftart seit über 2 Jahren an mehreren Stellen. Seien Sie jedoch gewarnt: Einige Teile des Verfahrens können von suboptimal bis einfach falsch sein.

Bevor Sie fragen "Warum stellen Sie die resultierende Schriftart nicht zur Verfügung?", Lautet die Antwort: "Weil ich nicht sicher bin, ob ich das kann". Das Urheberrecht an Schriftarten ist eine komplizierte Angelegenheit.


Laden Sie die korrigierte Fixedsys Excelsior-Schriftart herunter (Datei FSEX301-L2.ttf, Kommentar 16).

Installieren Sie FontForge (z. B. aus dem Ubuntu Software Center).

Klicken FSEX301-L2.ttfSie mit der rechten Maustaste auf die Datei und öffnen Sie sie mit FontForge. Im Last Bitmap - Schriften Fenster , das angezeigt wird , klicken Sie auf Nein .

Klicken Sie auf Datei → Skript ausführen ... und kopieren Sie Folgendes und fügen Sie es in das angezeigte Fenster ein:

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

Wählen Sie dann FF und klicken Sie auf OK (es dauert eine Weile, Sie müssen warten, bis das Fenster " Skript ausführen" verschwindet.)

Klicken Sie auf Element → Schriftinfo ... Ändern Sie in PS-Namen den Schriftnamen , den Familiennamen und den Namen für Menschen , z. B. durch Anhängen Mono(Leerzeichen sind nur in der zweiten und dritten Zeichenfolge zulässig).

Im gleichen Font Informationen Fenster wählen Sie OS / 2 .
In der Misc. Registerkarte Ändern Sie die PFM-Familie in Monospace .
Setzen Sie auf der Registerkarte Metriken den Win Descent Offset und den HHead Descent Offset auf 0 (*) .
In der Panose Registerkarte Veränderung Anteil an Monospace .

Im gleichen Font Informationen Fenster wählen Lookups .
In der GSUB Registerkarte und in der GPOS Registerkarte, wählen Sie jede Zeile der Reihe nach und klicken Sie auf Löschen .

Im gleichen Font Informationen Fenster klicken Sie auf OK , und im Wechsel UniqueID? Das angezeigte Fenster klicken Sie auf Ändern .

Wenn Sie möchten, können Sie eine oder mehrere fragwürdige Funktionen von Fixedsys optimieren. Beispielsweise wird das Nullzeichen um ein Pixel nach rechts verschoben. Um es wieder in die Mitte zu verschieben, doppelklicken Sie darauf, klicken Sie dann auf Metriken → LBearing einstellen ... , setzen Sie das LBearing auf 10und klicken Sie auf OK . Sie können auch die Form von Zeichen ändern, aber die Kontrollpunkte immer auf einem Vielfachen von 10 und die Breite auf 80 halten.

Klicken Sie auf Element → Bitmap Strikes Available ... , setzen Sie dann im angezeigten Fenster Pixel Sizes auf 16und klicken Sie auf OK .

Klicken Sie auf Datei → Schriftarten generieren ... , wählen Sie bei Bedarf ein anderes Verzeichnis und / oder einen anderen Dateinamen aus, stellen Sie sicher, dass das Ausgabeformat TrueType ist , und klicken Sie auf Speichern . In der Nicht-Standard - Em-Größe Fenster , das angezeigt wird klicken Sie Ja . In den Fehlern erkannt Fenster , das erscheint nächsten klicken Speicher (keine Sorge).

Beenden Sie FontForge ( Datei → Beenden ). In der Schrift geändert angezeigten Fenster klicken Sie nicht speichern .


Verschieben Sie die generierte Datei in das .fontsUnterverzeichnis Ihres Home-Verzeichnisses (erstellen Sie sie, wenn sie nicht vorhanden ist).

Öffnen Sie das Gnome-Terminal. Klicken Sie auf Bearbeiten → Profile ... Ändern Sie in einem Profil (ich schlage vor, Sie erstellen ein neues) die Schriftart in Fixedsys Excelsior 3.01-L2 Mono(oder wie auch immer Sie die Monoversion von Fixedsys Excelsior genannt haben) in der Größe 12(die die einzige "wahre" Fixedsys-Größe ist). . Wenn Sie möchten, können Sie auch Fettdruck deaktivieren. Ich schlage schwarzen Text auf weißem Hintergrund vor, aber das ist Geschmackssache.

Die fette Variante dieser Schriftart entspricht der Wiederholung des um ein Pixel nach rechts verschobenen Zeichens (dies unterscheidet sich von der Stelle FSEX301-L2.ttf, an der es geglättet erscheint). Es ist nicht gut lesbar - aber brauchen Sie wirklich Mut? Ich nicht. Das Problem besteht nur in solchen Kontexten, in denen Fettdruck nicht deaktiviert werden kann (nicht einmal durch Bearbeiten der Syntaxhervorhebung), insbesondere in den Fällen, in denen der Zeichenabstand ebenfalls um ein Pixel erhöht wird, wodurch Ausrichtungen unterbrochen werden (dies ist im Gnom nicht der Fall -Terminal). Ich habe noch keine Lösung für dieses letzte Ärgernis gefunden. Vorschläge sind willkommen.


(*): wird seit der Veröffentlichung von FontForge am 31.07.2012 nicht benötigt (in 14.04 LTS - Trusty Tahr)

Walter Tross
quelle
An alle, die dieses Rezept gespeichert und / oder angewendet haben: Bitte beachten Sie, dass es sich in der Zwischenzeit geringfügig geändert hat, um einige kleine Probleme zu lösen, und dass es sich in Zukunft möglicherweise noch ändert. Sie können sich den Bearbeitungsverlauf ansehen.
Walter Tross
Zu Ihrer Information, funktioniert auch unter Windows einwandfrei. Auch mit "Fixedsys Excelsior 2.0" (was meiner Meinung nach für Terminals viel besser ist, da die Zeichen etwas weniger hoch sind als in FSEX3). Großartige Schriftart für PuTTY! (Die ursprüngliche FSEX und jede Schriftart, die als nicht monospace betrachtet wird, macht PuTTY sehr langsam, wenn der Bildschirm sehr oft aktualisiert wird)
ThiefMaster
PhpStorm 7.1 am 14.04 erkennt die Schriftart, die ich in meiner Antwort als Monospaced-Schriftart beschreibe, nicht. Ich weiß nicht warum :-( Wenn Sie das Kontrollkästchen "Nur Monospaced-Schriftarten anzeigen" deaktivieren, können Sie sie trotzdem erhalten. Aus irgendeinem Grund Die Größe muss entweder 15 oder 16 sein (sie sehen gleich aus) statt 12. PhpStorm scheint mir ein bisschen fehlerhaft zu sein ...
Walter Tross
3

Tolle Lösung von Walter Tross, aber wenn Sie nicht den ganzen Job machen wollen, hier ist der Download-Link:

FixedsysExcelsiorIIIb-L2_Mono.ttf

Borjovsky
quelle
1
Danke Rafael, das "Warum" steht im zweiten Absatz meiner Antwort
Walter Tross
Ops! Entschuldigung ... Unaufmerksamkeit ... Jetzt behoben.
Borjovsky