Wie kann verhindert werden, dass die „automatische“ fett gedruckte Version einer Schriftart breiter als normal ist und dieselbe Punktgröße hat?

10

Ich habe eine monospaced Schriftart ( PT Mono), die ich lieber beim Programmieren von IDEs verwende. Die Schriftart hat nur Regularalle anderen Boldund Italicwird durch Schrägstellung und "Fettdruck" der abgeleitet Regular. Das Problem ist, dass die "fettgedruckten" Zeichen breiter als die regulären sind, sodass die Quellcode-Zeichenfolgen im IDE-Fenster jetzt aus nicht monospaced Zeichen bestehen.

Wie steuere ich die "Fettschrift" der Schriftart, damit sie nicht breiter als normal wird?

Das Problem ist auf dem folgenden Screenshot dargestellt ( PT Monokein dedizierter Fettdruck). Sehen Sie, wie sich "unsigned char" und "sizeof" Wörter von ihren richtigen Positionen entfernen.

Die automatische Fettschrift ändert die Breite

Hier ein weiteres Beispiel Droid Sans Mono(kein dedizierter Fettdruck). Geben Sie hier die Bildbeschreibung ein

Und hier ein Beispiel, wenn die Schriftart eine fett gedruckte Version ( Liberation Mono) hat. Fett und regelmäßig sind perfekt aufeinander abgestimmt. Geben Sie hier die Bildbeschreibung ein

Das Problem liegt also definitiv in der leichtfertigen Darstellung von Fettdruck in Situationen, in denen kein Fettdruck bereitgestellt wird. Die Font Engine ist schuld.

UPD: Es gibt eine Datei, /etc/fonts/conf.avail/90-synthetic.confdie, wenn auf sie verwiesen wird, /etc/fonts/conf.d/die Schriftart-Engine optimiert, um eine synthetische Ermutigung der Schriftarten durchzuführen, die nicht die fett gedruckte Version haben. Wenn der symbolische Link zu dieser Datei aus dem entfernt wird /etc/fonts/conf.d/, verschwindet die Ermutigung. Dies ist nicht genau das, was genau gewünscht wird, aber zumindest heilt dies den Fall, dass Monospace-Schriften keine Monospace-Schriften sind (siehe unten PT Mono). Die Feinabstimmung der Ermutigung ist weiterhin erwünscht (entweder nach Konfigurationsdatei oder nach freetype2Patch.

Geben Sie hier die Bildbeschreibung ein

mbaitoff
quelle
Das kannst du nicht kontrollieren. Schriftdesign wäre ruiniert. Selbst wenn Sie die Größe genau reduzieren (was Sie nicht können), um sie an den normalen Schriftabstand anzupassen, würde die fette Schrift kleiner aussehen. Wenn Sie eine gleichmäßig verteilte Schriftart wünschen, verwenden Sie einfach keine fette Schriftart ... oder versuchen Sie es mit terminal
zetah
Das ist nicht wahr. Schriftarten, die sowohl normale als auch fette Schriftarten in separaten Dateien enthalten, haben die gleiche Zeichenbreite in regulären und fetten. Zum Beispiel LetterGothic.
Mbaitoff
Ich stehe korrigiert. Ich habe dasselbe mit SciTE bemerkt (und vielleicht verwenden Sie auch den Scintilla-basierten Editor - vielleicht Geany?), Während meine Schriftart Droid Sans Mono ist, aber ich habe es als selbstverständlich angesehen, und ich hatte keine Ahnung, dass gewichtete Schriftarten unterschiedliche Abstände haben können Selbst für monospaced Schriftarten, während fette Schriftarten den gleichen Abstand wie normale verwenden. Noch mehr scheint es, dass auch proportionale Schriftarten diese "Funktion" haben, die Sie bemerkt haben, Sie nicht alle. Entschuldigung für meine kühne erste Antwort, ich hätte zuerst
nachsehen
@zetah: Ich habe verschiedene Schriftdateien durchgesehen und es sieht so aus, als ob die Änderung der Breite nur dann erfolgt, wenn es keine dedizierte fett gedruckte Version der Schrift gibt. Ich werde die Frage mit weiteren Screenshots aktualisieren.
Mbaitoff

Antworten:

8

mbaitoff , ich poste dies als Ergänzung zu Ihrem Update, nicht als Antwort

Wenn der Benutzer eine Datei mit dem Namen erstellt ~/.fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <test name="spacing" compare="eq">
            <const>mono</const>
        </test>
        <edit name="embolden" mode="assign">
            <bool>false</bool>
        </edit>
    </match>
</fontconfig>

In diesem Fall können Anwendungen fett gedruckte Monospaced-Schriftarten verwenden, sofern verfügbar, und die "synthetische Fettschrift" deaktivieren, wenn die verwendete Schriftart keine fett gedruckte Schrift hat.

Es ist nur eine Alternative und ein etwas anderer Ansatz mit unterschiedlichem Ergebnis

Zetah
quelle
Wenn der Symlink /etc/conf.d/50-user.confumbenannt wird, um danach ausgeführt zu werden 90-synthetic.conf, müssen Sie embolden nicht vollständig entfernen. 99-user.conffunktioniert gut. Andernfalls 90-synthetic.confwird es wieder aktiviert.
musiKk