Как изменить стандартный резервный шрифт (для нелатинских языков)

20

У меня вопрос: как мне изменить запасной шрифт по умолчанию для тайского (или любого другого нелатинского языка), чтобы в терминальном приложении отображался тайский шрифт по моему выбору при сохранении английского шрифта.

Простите за дополнительные подробности, но я действительно застрял здесь, в Mac OS 10.11.1, и мой терминальный шрифт установлен на Menlo с размером шрифта, который мне удобен. В Menlo нет тайских символов, которые я дважды проверил, Fontbook > View > Repertoireа также через Menu bar > Show Emoji and Symbols. (Но интересно, что есть лаосский.) Однако, когда я набираю тайские символы в терминале, чудесным образом появляется тайский. Очевидно, существует общесистемный резервный шрифт по умолчанию. Однако один тайский символ отображается неправильно. (Сара Ам, อำ อำ) Я могу изменить шрифт терминала на CS Prajad, и тайский язык выглядит очень хорошо, включая символ проблемы. Однако английский шрифт ужасно уродлив и бесполезен в качестве программного шрифта.

Я отключил SIP (защиту целостности системы), чтобы изменить файл XML, DefaultFontFallbacks.plistрасположенный в

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/Resourcesзатем перезагрузился, думая, что это решит мою проблему. Однако оригинальный тайский шрифт по умолчанию все еще отображается в терминале.

(Изменения, которые я сделал для DefaultFontFallbacks.plist.)

Подставьте строку по умолчанию.

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

добавьте CS Prajad как моноширинный шрифт в соответствии с ханским и корейским XML-строками.

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

Как изменить стандартный резервный шрифт для тайского (или любого другого нелатинского языка), чтобы в терминальном приложении отображался тайский шрифт по моему выбору при сохранении английского шрифта.

Брайан Уилсон
источник
Как ни странно, у Menlo есть глифы для лаосского и арабского языков, которые не привязаны к значениям Юникода и поэтому не могут использоваться для ввода / отображения.
Том Гевеке
Установлен ли шрифт, который вы пытаетесь использовать, для системы? или как пользовательский шрифт? Кроме того, это установлено как шрифт TrueType?
user3052786

Ответы:

1

Вы были почти там!

Добавьте его в список предпочтительных резервных языков, как вы это сделали, но убедитесь, что вы используете имя PostScript для шрифта. Это должно быть точно!

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

Ссылки:
https://gist.github.com/Moligaloo/3180490
https://github.com/zerustech/font-fallbacks-tutorial
https://github.com/zonble/tcfail/

Мэтт Сефтон
источник