(Ertragen Sie mit mir, ich weiß, dass es etwas kontraintuitiv ist, Zeichen zu haben, die keine Monobreite in einer Monospace-Schriftart haben, aber unten gibt es einen legitimen Anwendungsfall.)
Ich habe eine Anwendung, die ich geschrieben habe, wo ich Hexadezimalzeichen mit fester Breite benötige, damit meine Ausgabe wie folgt aussehen kann:
21 41 49 56 44 4d 2c 31
2c 31 2c 2c 41 2c 42 35
4e 62 54 66 50 30 3f 36
66 64 57 36 56 33 69 4b
Es ist sehr wichtig, dass die Spalten perfekt ausgerichtet bleiben, daher ist eine Monospace-Schriftart von entscheidender Bedeutung.
Ich benötige jedoch nicht so viel Leerraum zwischen den Zeichen, und tatsächlich erschwert dies die Verwendung der Benutzeroberfläche aufgrund der übermäßigen Entfernung. Als Ergebnis möchte ich eine Schriftart finden, bei der die Nicht-Leerzeichen eine konstante Breite haben, aber wo ich die Leerzeichen wie in den Beispielen in https://jkorpela.fi/chars/spaces.html einstellen kann .
Gibt es so ein Tier?
Wir wissen nichts über die technische Seite der "Anwendung, die Sie geschrieben haben" , aber in einigen Designprogrammen gibt es neben den üblichen Leerzeichen unterschiedliche Breiten Space.
Diese funktionieren sogar für Schriftarten mit festem Abstand, aber ich glaube, dass sie nicht in die eigentliche Schriftartdatei integriert sind, sondern irgendwie von der Software emuliert werden (wieder nicht bewusst, wie es auf der Codierungsebene funktioniert).
Alternativ könnten Sie mit einer komprimierteren Monospace-Schriftart experimentieren.
Siehe dazu: Welche Funktion haben EM- und EN-Räume?
em
und en
Unicode-Leerzeichen mit Courier New ausprobiert, aber es überrascht nicht, dass sie alle einem einzigen em
Leerzeichen zugeordnet sind. Meine Software zeigt nur eine einzelne Zeichenfolge aus einfachem, nicht reichem Text an, daher ist sie in dieser Hinsicht etwas starr. Ich glaube nicht, dass es eine schmerzlose Möglichkeit gibt, das zu erreichen, was ich möchte, abgesehen davon, die richtige Schriftart zu finden.Es ist äußerst unwahrscheinlich, dass eine Schriftart mit fester Breite über eine solche Funktion verfügt, da die Schriftarten dadurch nicht untereinander ausgerichtet werden könnten. Was der Designer offensichtlich nicht beabsichtigt hat. Aber bedenke:
Für die meisten Pars sind solche Dinge sogar nicht erforderlich, da es ein Zeichen gibt, das eine unbestimmte Breite hat, die vom Benutzer angepasst werden kann. Dies ist das Tabulatorzeichen. Selbst die meisten rudimentären Systeme sollten es Ihnen also ermöglichen, die Registerkarte so zuzuordnen, dass sie das tut, was Sie wollen.
Fast jedes System, das ich verwendet habe, erlaubte mir, dies einfach zu tun. Manchmal, indem ich mir einfach erlaube, die Tabulatorbreite oder Tabstopps zu definieren. Manchmal durch Zeichnen von einem anderen Punkt aus. Normalerweise keine so große Sache, wie Sie denken, denn alles, was es wirklich braucht, ist ein Wrapper mit einer Schleife.
Wenn Sie wirklich einen besonderen Raum haben müssen. Nehmen Sie einfach eine Open-Source-Schriftart, öffnen Sie sie in Fontforge und definieren Sie den Raum. 15 Minuten Arbeit inklusive Download von Fontforge.
Obwohl ich sagen würde, dass dies ein wirklich minderwertiger Workflow ist.
0-9
und die Buchstaben A-F
und a-f
.double
es als a eingestellt ist, zu einem gekürzt int
, während die Schriftpixelbreite ein echter Wert ist, sodass dieser coole Hack in diesem Zusammenhang nicht funktioniert. Ich werde versuchen, meine Schriftgröße auf eine ganzzahlige Breite zu zwingen, und ich werde auch einen Fehlerbericht an Qt senden
joojaa
neugierigdannii
jamesdlin