Jak zmienić domyślną czcionkę zastępczą (dla języków innych niż łacińskie)

20

Moje pytanie brzmi: jak zmienić domyślną czcionkę zastępczą dla języka tajskiego (lub dowolnego innego niż łaciński język), aby aplikacja terminalowa wyświetlała wybraną czcionkę tajską, zachowując czcionkę angielską.

Wybaczcie mi długie dodatkowe szczegóły, ale tak naprawdę utknąłem tutaj w systemie Mac OS 10.11.1, a czcionka mojego terminalu jest ustawiona na Menlo w rozmiarze, który jest dla mnie wygodny. Menlo nie ma żadnych tajskich znaków, które sprawdziłem dwukrotnie, Fontbook > View > Repertoirea także za pośrednictwem Menu bar > Show Emoji and Symbols. (Ale co ciekawe ma Lao.) Jednak gdy piszę w terminalu tajskie znaki, pojawia się cudownie tajski. Najwyraźniej istnieje systemowa domyślna czcionka zastępcza. Jednak jedna postać z Tajlandii nie wyświetla się poprawnie. (Sara Am, สระ อำ) Mogę zmienić czcionkę terminalową na CS Prajad, a język tajski wygląda bardzo dobrze, łącznie z postacią problemową. Jednak angielska czcionka jest strasznie brzydka i jest bezużyteczna jako czcionka programująca.

Wyłączyłem SIP (System Integrity Protection), aby zmodyfikować plik XML DefaultFontFallbacks.plistznajdujący się w

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/Resourcesnastępnie zrestartowałem myśląc, że to rozwiąże mój problem. Jednak oryginalna domyślna czcionka tajlandzka nadal wyświetla się w terminalu.

(Zmiany, które wprowadziłem DefaultFontFallbacks.plist.)

Zastąp ciąg domyślny.

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

dodaj CS Prajad jako czcionkę monospace zgodnie z chińskimi i koreańskimi ciągami xml.

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

Jak zmienić domyślną czcionkę zastępczą dla języka tajskiego (lub dowolnego języka innego niż łaciński), aby aplikacja terminalowa wyświetlała wybraną czcionkę tajską, zachowując czcionkę angielską.

BrianWilson
źródło
Dziwne Menlo ma glify dla języka laotańskiego i arabskiego, które nie są dołączone do wartości Unicode i dlatego nie mogą być używane do wprowadzania / wyświetlania.
Tom Gewecke,
Czy czcionka, której próbujesz użyć, jest zainstalowana w systemie? lub jako czcionka użytkownika? Czy jest również zainstalowany jako czcionka TrueType?
user3052786,

Odpowiedzi: