Schriftartersetzung mit ~ / .fonts.conf

11210
Matteo Riva

Ich versuche, ~ / .fonts.conf zu verwenden, um Helvetica durch Droid Sans zu ersetzen. Hier ist der Inhalt der Datei:

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test qual="any" name="family"><string>Helvetica</string></test> <edit name="family" mode="assign"><string>Droid Sans</string></edit> </match> </fontconfig> 

aber egal was passiert, scheint nichts zu passieren. Ich habe versucht, fc-cache auszuführen, habe eingecheckt /etc/fonts/conf.dund festgestellt, 50-user.confdass benutzerspezifische Konfigurationen explizit aufgerufen werden.

Was vermisse ich?

Vielen Dank

EDIT: nach der Untersuchung fand ich heraus, dass andere Regeln /etc/fonts/conf.düberschreiben Benutzerkonfiguration, so Verknüpfung user.confzu 00-user.confhelfen. Trotzdem ist es nur ein Teilerfolg, da ich angeben kann, welche Schriftarten ersetzt werden sollen. Der Ersatz meiner Wahl wird jedoch ignoriert: Mit anderen Worten, ich kann mich Helveticaungültig machen und das System greift auf die nächste Schrift (dh im Browser) zurück nimmt die nächste im Stylesheet angegebene Schriftart, wenn keine vorhanden ist, wird die Standard-Serifenlose angezeigt.

18
Ich bin hierher gekommen, weil ich gleich etwas erreichen würde. Hoffentlich hat jemand eine Antwort ... Ludwig Weinzierl vor 14 Jahren 0
immer noch auf der Suche nach einer Antwort. Capi Etheriel vor 14 Jahren 0

4 Antworten auf die Frage

14
frenkx

Ich glaube, das Bindungsattribut war in Ihrer Konfiguration nicht vorhanden. (Siehe auch fonts-conf ). Abhängig von Ihrer anderen Konfiguration kann eine Bindung von "gleich" oder "stark" möglicherweise funktionieren, während "schwach" Ihnen möglicherweise nicht das gibt, was Sie möchten.

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="pattern"> <test qual="any" name="family"><string>Helvetica</string></test> <edit name="family" mode="assign" binding="same"><string>Droid Sans</string></edit> </match> </fontconfig> 
Arbeitete für mich. Das Hinzufügen des Attributs 'binding' hat den Unterschied gemacht. Ich verwende fontconfig-2.8.0. MaoPU vor 14 Jahren 1
Das hat bei mir funktioniert miloshadzic vor 13 Jahren 0
4
Geoff Reedy

Ich denke, der Alias-Mechanismus würde dafür funktionieren:

<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <alias> <family>Helvetica</family> <prefer>Droid Sans</prefer> </alias> </fontconfig> 
Ist Nicht nur, um nicht installierte Schriftarten zu ersetzen? MaoPU vor 14 Jahren 0
@MaoPU: Ich dachte dasselbe, aber nachdem ich die Dokumentation gelesen hatte, kam ich zu der Annahme, dass dieses Verhalten konfiguriert ist. ``hat Vorrang, wenn keine Schrift installiert ist,``hat Vorrang, unabhängig davon, ob die Schriftart installiert ist. J. M. Becker vor 11 Jahren 0
0
vasquez

Zeigt "fc-list" eigentlich "Helvetica"? Was sagt fc-match? Auf meiner Box (F-12) bekomme ich:

 >fc-match Helvetica n019003l.pfb: "Nimbus Sans L" "Regular" 

Möglicherweise müssen Sie auch die Alias-Schriftart zu Ihrer Vertretung hinzufügen.

0
j605

Ich hatte ein ähnliches Problem, als ich versuchte, Helvetica als serifenlose Familie zu verweisen. Für alle, die das gleiche Problem haben, sollten Sie sich die Systemkonfiguration ansehen, in /etc/fonts/conf.d/der Links zu Dateien von angezeigt werden /etc/fonts/conf.avail. Ich musste viele dieser Aliase entfernen, um deterministisches Verhalten zu erhalten.