Anpassen von Texteditor und Terminal für die Verwendung von Schriftarten ohne Schriftzug ohne die schrecklichen Ergebnisse?

3574
Aeschylus

Ich möchte mit allen Schriftarten experimentieren, auch mit solchen, die nicht in einem Abstand liegen. Ich verstehe den Grund für die Verwendung von Monospaced-Schriftarten, aber ehrlich gesagt scheinen sie mir nicht legitim zu sein.

Ein Grund, monospaced-Schriftarten zu verwenden, besteht beispielsweise darin, dass Codeblöcke perfekt im Editor angeordnet sind. Aber warum kann nicht einfach ein Raster aus dem kleinsten Zeichen in der gegebenen Schriftart oder einer Einheit erstellt werden, die dies schafft. Es scheint wie ein Überbleibsel aus ASCII-Tagen. Ich habe gegoogelt, finde aber nicht viele Informationen dazu.

Hat jemand das schon einmal versucht oder wissen Sie von Projekten, die dies zu ermöglichen versuchen? Insbesondere möchte ich die Schriftarten in VIM und iTerm2 unter OS X verwenden.

6
Klingt eher nach einem OS X-Problem als nach einem Font- oder Vim-Problem ... Ignacio Vazquez-Abrams vor 12 Jahren 0
Einige Monospac-Schriftarten sind proportionale Schriftarten, die so bearbeitet wurden, dass sie gut aussehen, wenn sie in einem Raster ausgerichtet sind. Im Grunde ist es das, wonach Sie fragen, aber ein Designer hat sich die Mühe gemacht, es am Ende schön aussehen zu lassen. Ich denke, dass Monospaced-Schriften absolut legitim sind; ^) beroe vor 10 Jahren 0
Für das Protokoll (und die Googlers) gab es eine funktionierende Antwort auf Vi.SE: http://vi.stackexchange.com/a/707/2221 Robbie Wxyz vor 8 Jahren 2

5 Antworten auf die Frage

6
romainl

Ich habe eine Reihe von Blog-Posts in der fernen Vergangenheit gelesen, die von Leuten geschrieben wurden, die eigentlich proportionale Schriften für ihren Code bevorzugten. Normalerweise mochten sie an dieser Art von Schriftart ihre Ausdruckskraft, aber sie benötigten ausnahmslos sehr umfangreiche Syntax-Hervorhebungen und / oder benutzerdefinierte externe Tools, damit sie funktionieren und ihren eigenen Code tatsächlich lesen und verstehen können.

Sie lesen keinen Code wie Sie einen Text lesen. Einer ist meistens vertikal, der andere ist meistens horizontal.

Wie Sie wissen, werden monospaced Schriftarten in einem Raster entworfen, sodass jedes Zeichen den gleichen horizontalen Platz einnimmt wie die anderen. Daher können wir die Dinge abgleichen und unseren Code in diskreten Brocken ohne viel Gehirnarbeit lesen und verstehen: Alles ist regelmäßig und vorhersehbar, was in unserem Handwerk eine Notwendigkeit darstellt.

Da wir in der Regel kurze Zeilen schreiben und die logischen Teile unserer Quelldateien vertikal verteilt sind, sind die meisten Augenbewegungen vertikal. Dies ist der natürliche Ablauf der Programmierung. Monospaced-Schriftarten erleichtern solche Bewegungen, da sich die Dinge ordentlich ausrichten und wir die Augen nicht zu sehr bewegen müssen.

Jedes einzelne Symbol einer proportionalen Schriftart wird mit einer anderen Breite und unterschiedlichen Standard-Leerraumeinstellungen entworfen. Darüber hinaus nutzen solche Schriftarten intensiv das Kerning (die Anpassung des Leerraums zwischen Glyphen), wodurch Text tatsächlich gut aussieht . Entfernen Sie Kerning und alle proportionalen Schriftarten (auch die besten wie Frutiger oder was auch immer) werden wie ish aussehen. Einzelne Glyphen sind immer noch gut gezeichnet, passen jedoch nicht mehr zusammen und erzeugen einen bestimmten Rhythmus, der sie nützlich und angenehm macht.

Das Anwenden eines Gitters auf einen Text in Helvetica Neue würde zu einer ungleichmäßigen Verteilung von Schwarz / Weiß und zu einem unlesbaren Durcheinander führen, da wir eigentlich das wichtigste Merkmal proportionaler Schriftarten entfernen würden.

Proportionalschriften sind nicht für den vertikalen Fluss ausgelegt. Beim Kerning wird viel Sorgfalt aufgewendet, um den bestmöglichen horizontalen Rhythmus zu ermöglichen, aber diese Art von Funktion ist im Zusammenhang mit der Programmierung völlig unnötig.

Zum Abschluss können Sie die Schriftart von Vim auf eine Proportionalschriftart setzen. So sieht sie mit Helvetica Neue bei 12 px aus:

Bildschirmfoto
    (Bilder zum Vergrößern anklicken)

und dieselbe Datei mit Inconsolata-dz bei 12 px:

Ich denke, diese Screenshots sprechen für sich.

Es wäre wahrscheinlich ein bisschen weniger schrecklich, wenn sich der Anker der Glyphen in der unteren Mitte anstatt in der unteren linken Ecke befände. Aber immer noch schrecklich. Ignacio Vazquez-Abrams vor 12 Jahren 0
Ja, ich stimme dir zu. romainl vor 12 Jahren 0
Das antonym, nach dem Sie suchen, ist * proportional * font. Andrew Vit vor 12 Jahren 0
Ich bin immer mehr davon überzeugt, dass ich Schriftarten mit proportionaler Breite ausprobieren möchte. Diese Screenshots zeigen lediglich, dass vim die Darstellung dieser Objekte mit einem Scheißfaust erledigt - er zwingt jeden Charakter in ein Feld mit fester Breite. Ich wäre daran interessiert, relevantere Screenshots zu sehen, bevor Sie ein Urteil abgeben. Beim Lesen von Code muss * nur * der Whitespace am Zeilenanfang verwendet werden, um eine gute Ausrichtung zu erreichen. Schriftarten mit proportionaler Breite funktionieren genauso gut wie feste Breite. Aber ja, ich gebe zu, es gibt Zeiten, in denen ich nach dem ersten Nicht-Whitespace-Zeichen eine zusätzliche Ausrichtung vornehme. Aaron McDaid vor 9 Jahren 3
@AaronMcDaid, ich schlage vor, Sie probieren Scite aus. Vielleicht nicht als direkter Ersatz für Vim, sondern um sich ein Bild davon zu machen, wie proportionale Schriftarten für die Programmierung funktionieren, wenn sie nicht in einem Raster verwendet werden. romainl vor 9 Jahren 0
Für das Protokoll (und die Googlers) gab es eine funktionierende Antwort auf Vi.SE: http://vi.stackexchange.com/a/707/2221 Robbie Wxyz vor 8 Jahren 0
"Bestmöglicher horizontaler Rhythmus ... aber diese Art von Funktion ist im Zusammenhang mit der Programmierung völlig überflüssig." "Eh? Wie ist das? Wer hat Ihnen gesagt, dass dies unnötig ist? Tatsächlich ist es notwendig. Scheint, Sie haben ein gutes Verständnis von Schriftarten , aber Sie ziehen falsche Schlüsse daraus: In Monospaced-Schriftarten ist nichts zu suchen, es handelt sich lediglich um ein Artefakt der ersten Technologiestufen. * Gute * Fonts waren, sind keine und werden niemals Monospaces sein. Mikhail V vor 6 Jahren 0
2
qak

Ich verwende ein modifiziertes SciTE (Windows), das Scintilla (tragbar aus Quellcode) verwendet und nach vielen Jahren als Monospace-Fan auf Proportionalschrift umgestellt ist. Der Text ist kompakter (und besonders für lange Klassennamen ist das Auge ansprechend), so dass Zeilenumbrüche selten erforderlich sind. Die vertikale Anordnung wird mit einem Tab beibehalten, den ich als Anzahl Pixel definiert habe. Durch das Hinzufügen einer 'Tabify'-Routine und die Verwendung der kleinen Tab-Breite (etwa 3 Leerzeichen) können Sie jeden Blockcode ordentlich anordnen: nicht nur am Zeilenanfang, sondern mehrspaltige Struktur oder mehrzeiliges #define in einem anderen Editor, und Sie müssen andere Personencodes neu formatieren.

0
beroe

Mit den Terminal-Programmen kann ich jedes Schriftbild einstellen, nicht nur Monospaced. Ich glaube, ich könnte mich daran gewöhnen!

enter image description here

Ich bin sicher, Sie haben auch die Listen anderer Schriftarten von Monospaced-Schriftarten gesehen ... Einige kostenlose und die Wikipedia-Seite

-1
Rook

Es ist möglich, viele Dinge mit variablen Schriften auszuführen, aber die Geschichte hat gezeigt, wie auch die allgemeine Meinung ist, dass dies eine schlechte Idee ist. Die meisten Editoren, die auf Programmierer abzielen, erlauben Ihnen daher nicht, sie zu verwenden, und dies zu Recht.

Angenommen, Sie zeichnen "ein Kästchen" aus den kleinsten Zeichen der angegebenen Schrift. Und irgendwie schaffte es es, es aufzustellen.

Setzen Sie ein Leerzeichen vor eine Reihe ... da der Platz relativ groß ist, ruiniert das Ganze. Jetzt müssen Sie es entweder mehrmals freigeben, ... bis die Breiten wieder übereinstimmen, oder ... es ist keine gute Idee. Es gibt nicht einmal eine Diskussion zu diesem Thema.

Nun, ein * könnte * mit der Font-Engine verschrauben und ihm sagen, dass er jedes Zeichen in eine Zelle mit fester Größe zeichnen soll, woran ich glaube, dass der Fragesteller sich damit beschäftigte. Ignacio Vazquez-Abrams vor 12 Jahren 0
@ IgnacioVazquez-Abrams - Aufgrund seines Titels und Textes war ich nicht sicher, was er fragt. Was auch immer es war ... mein starker Standpunkt ist, dass es eine schlechte Idee ist. EOD. (Übrigens, ja, schöne Wahl für Worte ... :) Rook vor 12 Jahren 0
-1
surfasb

Keine Ahnung, wie OSX seine Schriftarten rendert, aber es gibt den obligatorischen Old New Thing Blog-Post über alles, was unter Computing alles sehr eigenartig und historisch ist.

Der Blogpost spricht darüber, wie für TrueType-Schriftarten die Buchstaben nicht in schönen kleinen Rastern gezeichnet werden. Einige hängen absichtlich aus dem Raster, während andere dies nicht tun. Wenn Sie die Schriftart programmgesteuert in ein ordentliches Raster einfügen möchten, müssen Sie keine TrueType-Schriftarten verwenden . Daher haben wir den Kreis geschlossen.

Dies ist aber auf der Windows-Seite. Keine Ahnung, wie OSX TrueType-Schriftarten rendert, aber ich wette, dass dies der Grund ist, warum nicht alle Schriftarten verfügbar sind, abgesehen von der gesamten Frage "Unterstützt sie alle Zeichen?" Ding.

Nun, Sie * können * skalierbare Schriftarten verwenden, aber sie müssen explizit als Monospace in den Kopfzeilen markiert werden (und es ist hilfreich, wenn sie tatsächlich * Monospace * sind). Ignacio Vazquez-Abrams vor 12 Jahren 0