Courier Neue Schriftart mit Unicode-Unterstützung?

8

Ich bin Programmierer und sehr an die Schriftart Courier New gewöhnt. Ich bin ziemlich wählerisch - ich finde andere Schriftarten (einschließlich anderer Monospace-Schriftarten) im Vergleich hässlich.

Jetzt muss ich jedoch an Code arbeiten, der Unicode-Zeichenfolgen enthält, und Courier New unterstützt Unicode nicht vollständig.

Könnte jemand eine (Monospace-) Schriftart empfehlen, die Courier New sehr ähnlich ist, aber Unicode-Unterstützung bietet?

HighCommander4
quelle
Siehe auch
Farray
3
Courier New bietet eine viel bessere Unicode-Abdeckung als die meisten Schriftarten. Es wäre hilfreich, wenn Sie uns genau mitteilen würden, über welche Zeichen / Sprachen / Skripte Sie berichten möchten.
Thomasrutter
@ Thomasrutter: Ich brauche Abdeckung von mathematischen und logischen Symbolen.
HighCommander4

Antworten:

11

Nur wenige Schriftarten bieten "volle Unterstützung für Unicode". Unicode 6.0 hat 109.449 Codepunkte. Aus gestalterischer Sicht ist es ziemlich teuer, jedes dieser Glyphen manuell zu erstellen, wenn die meisten Benutzer nur einen kleinen Bruchteil davon verwenden, ganz zu schweigen von der Größe der Dateigröße.

Courier New gehört tatsächlich zu den Schriftarten mit relativ guter Unicode-Unterstützung bei 3248 Glyphen (im Vergleich dazu hat Lucida Sans Unicode nur 1776).

Die MingLiU / PMingLiU-Schriftarten unterstützen auch eine Vielzahl von Codepunkten. Dies liegt jedoch daran, dass es sich um CKJ-Schriftarten (Chinesisch, Koreanisch, Japanisch) handelt und die meisten unterstützten Codepunkte aus den CKJ-Blöcken stammen. Wenn Sie also keine CKJ-Schriftart benötigen, sind sie nicht sehr nützlich. Und selbst dann sind sie in ~ 6 verschiedene Schriftarten unterteilt, die verschiedene Codeblöcke mit jeweils 30 ~ 40.000 Codepunkten abdecken.

Für die allgemeine Sprachunterstützung ist Arial Unicode MS das Beste, das ich kenne. Es bietet nahezu vollständige Unterstützung für 64 verschiedene Codeblöcke, die 50.377 Codepunkte abdecken.

Darüber hinaus gibt es nur die Unicode BMP Fallback SIL- Schriftart, bei der es sich um eine Debugging-Schriftart handelt. Es deckt alle Unicode 5.1-Codepunkte ab, aber jedes Symbol ist nur ein rechteckiges Feld, das den Hex-Code für diesen Codepunkt enthält. Die meisten Betriebssysteme werden mit dieser Schriftart geliefert und werden angezeigt, wenn einer Unicode-Schriftart eine Glyphe für ein bestimmtes Zeichen fehlt.

Ich meine, es ist möglich, dass es einen verrückten Typografen oder eine verrückte Gießerei gibt, die eine Schriftart mit Glyphen für alle Unicode 5.1- oder 6.0-Codepunkte erstellt hat, aber es wäre wahrscheinlich sehr, sehr teuer.

Die meisten Menschen möchten lieber nur Schriftarten haben, die bestimmte Sprachblöcke abdecken, und mehrere Schriftarten verwenden, um eine vollständige mehrsprachige Unterstützung zu bieten. Zumal verschiedene Sprachfamilien an sich unterschiedliche typografische Stile haben, würden die Glyphen ohnehin sehr unterschiedlich aussehen.

Bearbeiten: Wie Herr Lister betonte, kann derzeit keine Schriftart den vollständigen Unicode-Zeichensatz unterstützen, da jede Schriftart maximal 65536 Glyphen enthalten kann. Möglicherweise können Sie diese Grenze mit TruTypeCollections überschreiten, es handelt sich jedoch weiterhin um separate Schriftarten, nur in einer einzigen Datei.

Lèse Majestät
quelle
1
Vielen Dank für eine ausführliche Antwort. Ich wusste nicht, dass Unicode so groß ist. Die Unicode-Zeichen in meinem Code sind mathematische und logische Symbole. Kennen Sie eine anständig aussehende Monospace-Schriftart, die diese unterstützt?
HighCommander4
4
@ HighCommander4: Dann brauchen Sie nur noch den Block Mathematische Symbole und die Blöcke Mathematische Operatoren. Sie können die Liste der Unicode-Blöcke hier sehen . Wenn Sie auf die einzelnen Schriftarten klicken, finden Sie eine Liste gängiger Schriftarten, die jeden Block unterstützen. Oder klicken Sie einfach auf eine der Schriftarten und suchen Sie die Liste der unterstützten Blöcke, z. B. diese für Code2000 , in der alle unterstützten Blöcke und in welchem ​​Prozentsatz angezeigt werden.
Lèse Majesté
2
Ich glaube, ich habe irgendwo gelesen, dass 65536 Glyphen das Maximum sind, das eine einzelne Schriftartdatei enthalten kann, sodass Sie niemals eine Schriftart mit "vollständiger" Unicode-Unterstützung finden werden.
Herr Lister
1
@Mr Lister: Dies ist wahrscheinlich die Einschränkung einiger Schrifteditoren , aber Unicode-Codepunkte gehen bis zu E0FFF (oder 10FFFF einschließlich des Bereichs für den privaten Gebrauch). Wenn eine Schriftart auf diese High-End-Codepunkte verweisen soll, muss sie auf alles darunter verweisen können.
Lèse Majesté
2
@ Lèsemajesté Nein, das stimmt eigentlich nicht. Schriftarten müssen nicht jedes Zeichen bis zu dem Zeichen mit dem höchsten Unicode-Index enthalten. Andernfalls müsste jede Windows-1252-kompatible Schriftart über 8400 Zeichen enthalten!
Herr Lister
3

Probieren Sie GNU Free Font's Free Mono. Tatsächlich ist es bislang die einzige Monospace-Schriftart, die ich gefunden habe und die sowohl lesbar als auch in Bezug auf die Unicode-Abdeckung relativ vollständig ist.

Noch idealer für Ihren speziellen Fall, basiert es letztendlich auf Courier.

Emacsomancer
quelle
2

Sie können Courier New jederzeit als Hauptschrift verwenden und für die fehlenden Symbole auf eine andere Schriftart mit einer breiteren Zeichenpalette (z. B. DejaVu Sans Mono oder vielleicht Everson Mono) zurückgreifen.

Dies ist, was Ihr Browser tut, wenn Sie Courier New als Ihre bevorzugte Monospaced-Schriftart festlegen und ihn dann auffordern, etwas wie anzuzeigen ∀x: ∃y: x ∊ y. (Na ja, bis auf die Tatsache , dass diese Seite bereits seine eigene Liste von bevorzugten Monospace - Schriften gibt, mit Courier New ziemlich weit unten auf der Liste, so dass Ihr wahrscheinlich nicht sehen xund yoben in Courier New , wenn Sie auch deaktivieren oder überschreiben Sie die SE - Stil Blatt.)

Natürlich sieht das nicht immer gut aus, aber in Ihrem Fall sagen Sie, dass die zusätzlichen Zeichen, die Sie benötigen, hauptsächlich mathematische Symbole sind. Diese sehen ohnehin ganz anders aus als normale lateinische Buchstaben, sodass die Nichtübereinstimmung zwischen verschiedenen Schriftarten möglicherweise nicht so offensichtlich ist, wie es sonst der Fall wäre, insbesondere wenn Sie die Fallback-Schriftart sorgfältig auswählen.

Ilmari Karonen
quelle
Interessant ... Ich wusste nicht, dass Browser das tun. Ist dies ein universelles Verhalten in allen Browsern?
Lèse Majesté
2
Ziemlich genau, ja. Soweit ich weiß, unterstützen alle gängigen modernen Browser die Glyphensubstitution. IE 6 und älter haben dies nicht getan, aber Sie sollten heutzutage sowieso nicht für IE 6 entwerfen - es ist der Weg der Dinosaurier und auch eine gute Befreiung.
Ilmari Karonen
Das ist eine gute Idee, aber es erfordert, dass die Anwendung, in der ich mit dem Code arbeite (in diesem Fall mein Editor), diese Art von "Fallback" -Mechanismus unterstützt, was leider nicht der Fall ist.
HighCommander4
1

Ich weiß, dass dies eine alte Frage ist, aber ich dachte mir, dass ich als Programmierer möglicherweise einige Ratschläge geben kann. Ich verwende FreeMono für alle meine Texteditoren und IDEs. Es sieht Courier New ziemlich ähnlich und unterstützt Unicode besser. Aus den Informationen, die ich aus den Schriftdateien selbst erhalten kann, unterstützt Courier New 3.248 verschiedene Zeichen, während FreeMono 4.177 Zeichen unterstützt. Ich bin mir nicht sicher , wie viel FreeMono haS für die mathematischen und logischen Unicode-Symbole unterstützt, aber ich weiß, dass es bei weitem besser ist als Courier New.

Zack Frost
quelle
1
Was bedeutet "hat bessere Unterstützung für Unicode"? Wie? Bitte vergleichen Sie!
Mensch
@ Kurt Entschuldigung für die Verwirrung! Courier new unterstützt 3.248 Unicode-Zeichen, während Free Mono 4.177 Unicode-Zeichen unterstützt. Ich hoffe das hilft.
Zack Frost