Frage Kann ich Schriften überschreiben, die von ttf-mscorefonts-installer installiert wurden, bevorzuge Liberation fonts?


Ich musste apt-get installieren ttf-mscorefonts-Installer auf Ubuntu 12.04 / 12.10. Die kurze Version ist, ich muss PDF-Dateien aus einer Anwendung, die diese Schriftarten für bestimmte Glyphen erfordert.

Das Problem besteht nach dem Ausführen dieses Befehls darin, dass die Schriftarten in meinem Webbrowser (und einigen Java-Anwendungen) jetzt "hässlich" sind. Offensichtlich ist dies eine subjektive Meinung, aber es ist diejenige, die ich halte.

Ich möchte die alten Schriften für die meisten Fälle (Liberation, DejaVu, Ubuntu, ...) zurückhaben. Ich bin mir nicht sicher, wie ich das am besten beschreiben soll, aber hier ist ein Beispiel:

Beispiel CSS in Webbrowser

font-family: Verdana,Arial,sans-serif;

Ohne ttf-mscorefonts-installer (Fall 1):

    $ fc-match Verdana
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match Arial
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"`

Mit ttf-mscorefonts-installer (Fall 2):

    $ fc-match Verdana
    Verdana.ttf: "Verdana" "Normal"

    $ fc-match Arial
    Arial.ttf: "Arial" "Normal"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"`

Ich möchte (Fall 1). Optional möchte ich, dass die Schriftarten in (Fall 2) nicht "hässlich" IE aussehen. Sie sind gezackter, weniger glatt als ihre kostenlosen Alternativen in meinen Webbrowsern.

Ist das möglich?


4
2017-11-01 16:14


Ursprung


Brauchen Sie noch die Funktion "PDF-Dateien aus einer Anwendung herausreißen"? Wenn nicht, würde das Entfernen des ttf-mscorefonts-Installers das Problem nicht lösen? - Clive van Hilten
Ja, die App, die ich verwende, hängt von MS-Schriftarten ab. Ich muss diese App regelmäßig ausführen. Deinstallieren ist nicht wirklich eine Option. - conner_bw
Was ist die App - etwas, das wir betrachten können oder ein proprietäres / geschlossenes Quellsystem? Sie können auch die Schrifteinstellungen im Browser anpassen, z. B. in Chrome / Chromium, chrome: // chrome / settings / in die Adressleiste eingeben, zu Erweiterte Einstellungen anzeigen blättern und dann im Abschnitt Webinhalt auf die Schaltfläche Schriftarten anpassen klicken . - Clive van Hilten
App ist proprietär. Google Princexml. Versuchen Sie, Hebräisch zu generieren. - conner_bw


Antworten:


fontconfig verwendet einen vollständigen Satz von Schriftersetzungssystemen. Es gibt verschiedene Ebenen der Schriftdefinition: Schriftart und Schriftfamilien. Bei einer bestimmten Schriftart verwendet fontconfig die Schriftart mit dem gleichen Namen, falls verfügbar, und sucht ansonsten nach der gleichnamigen Schriftfamilie. Wenn es immer noch keine Übereinstimmung gibt, verwendet es die Standardschriftfamiliendefinition als Substitution, d. H. Sans, Sans-Serif und Mono.

Ubuntu hat die Schriftfamilie Verdana in `/etc/fonts/conf.d/45-latin.conf 'definiert, wobei' Verdana 'standardmäßig auf' Sans-serif 'gesetzt ist Sans-Serif wird standardmäßig für Verdana verwendet. Aber "Verdana.ttf" würde stattdessen verwendet werden, wenn es installiert ist.

In Ihrem System ist die bevorzugte Schriftart in der Sans-Serif-Familie "Liberation Sans" fontconfig verwendet die 'Liberation Sans' als Ersatz für 'Verdana' vorausgesetzt, es gibt keine Schriftart mit demselben Namen, wohingegen "Verdana.ttf" verwendet wird, wenn es sich im Suchpfad befindet. Dies erklärt, was Sie gepostet haben.

Also ist die Lösung für Ihr Problem, dass Sie müssen die Schriftart "Verdana" neu zuordnen zu einer anderen Schriftart, oder zu einer Gruppe von Schriften, die "Liberation Sans" die höchste Priorität zuweist. (Letzterer Fall wird empfohlen)

Öffne oder erstelle die Datei ~ / .config / fontconfig / fonts.conf, füge folgendes hinzu:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

<match>
    <test name="family"><string>Verdana</string></test>
    <edit name="family" mode="prepend" binding="strong">
        <string>Liberation Sans</string>
        <string>Verdana</string>
    </edit>
</match>

</fontconfig>

Beachten Sie, dass ~ / .fonts.conf jetzt veraltet ist und wenn Sie bereits eine benutzerdefinierte fonts.conf haben, entfernen Sie die Kopf- und Fußzeile und behalten Sie nur den Abschnitt "Übereinstimmung" bei. Und es wäre zu langatmig, die gleiche Problemumgehung für 'Arial' zu demonstrieren. Ich bin sicher, du kannst es alleine finden.


4
2017-11-07 03:31



Wann war ~/.fonts.conf veraltet? Gilt das für die Precise-Version? - Jonah Bishop
~ / .fonts.conf ist aufgrund der neuen Version von. veraltet Schriftartconfig in Ubuntu 12.10 installiert. Ich bin mir nicht sicher, ob es zum 12.04 zurückportiert wurde oder würde. - funicorn