So ändern Sie die Standard-Fallback-Schriftart (für nicht-lateinische Sprachen)

Meine Frage ist: Wie ändere ich die Standard-Fallback-Schriftart für Thai (oder eine andere nicht-lateinische Sprache), sodass die Terminal-App die thailändische Schriftart meiner Wahl anzeigt, während die englische Schriftart beibehalten wird.

Verzeihen Sie die langen zusätzlichen Details, aber ich stecke wirklich hier unter Mac OS 10.11.1 fest und meine Terminal-Schriftart ist auf Menlo mit einer für mich angenehmen Schriftgröße eingestellt. Menlo hat keine thailändischen Schriftzeichen, was ich doppelt eingecheckt habe Fontbook > View > Repertoireund auch über die Menu bar > Show Emoji and Symbols. (Aber interessanterweise hat Lao.) Wenn ich jedoch thailändische Zeichen in das Terminal eintippe, erscheint auf wundersame Weise Thai. Anscheinend gibt es eine systemweite Standard-Fallback-Schriftart. Ein thailändisches Zeichen wird jedoch nicht richtig angezeigt. (Sara Am, สระ อำ) Ich kann die Schriftart des Terminals in CS Prajad ändern und Thai sieht sehr gut aus, einschließlich der Problemzeichen. Allerdings ist die englische Schriftart scheußlich hässlich und als Programmierschrift unbrauchbar.

DefaultFontFallbacks.plistIch habe SIP (System Integrity Protection) deaktiviert, um die darin befindliche XML-Datei zu ändern

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/Resourcesdann neu gestartet und dachte, dass dies mein Problem lösen würde. Die ursprüngliche thailändische Standardschrift wird jedoch weiterhin im Terminal angezeigt.

(Von mir vorgenommene Änderungen an DefaultFontFallbacks.plist.)

Ersetzen Sie die Standardzeichenfolge.

<default>...
    ...
    <string>Thonburi</string> to <string>CSPrajad</string> (no space)
    ...
</default>

Fügen Sie CS Prajad als Monospace-Schriftart gemäß han-chinesischen und koreanischen XML-Strings hinzu.

<monospace>
    ...
    <array>
        ...
        <array>
            <string>th</string>
            <string>CSPrajad-Regular</string>
        </array>
        ...
    </array>
    ...
</monospace>

Wie ändere ich die Standard-Fallback-Schriftart für Thai (oder eine andere nicht-lateinische Sprache), sodass die Terminal-App die thailändische Schriftart meiner Wahl anzeigt, während die englische Schriftart beibehalten wird.

Seltsamerweise hat Menlo Glyphen für Lao und Arabisch, die nicht an Unicode-Werte angehängt sind und daher nicht für die Eingabe/Anzeige verwendet werden können.
Ist die Schriftart, die Sie verwenden möchten, für das System installiert? oder als Benutzerschrift? Ist es auch als TrueType-Schriftart installiert?

Antworten (1)

Du warst fast da!

Fügen Sie sie wie zuvor zur Liste der bevorzugten Sprachen hinzu, stellen Sie jedoch sicher, dass Sie den PostScript-Namen für die Schriftart verwenden. Es muss genau sein!

<array>
    <!-- for Thai  -->
    <string>th</string>
    <!-- below is the case sensitive PostScript name  -->
    <string>CSPraJad</string>
</array>

Referenzen:
https://gist.github.com/Moligaloo/3180490
https://github.com/zerustech/font-fallbacks-tutorial
https://github.com/zonble/tcfail/