デフォルトのフォールバックフォントを変更する方法(非ラテン言語の場合)


20

私の質問は次のとおりです。英語のフォントを保持したまま、ターミナルアプリが選択したタイ語のフォントを表示するように、タイ語の既定のフォールバックフォント(またはそれ以外のラテン語以外の言語)を変更するにどうすればよいですか?

長い余計な詳細は許しますが、私はMac OS 10.11.1に本当にこだわっており、私の端末フォントはメンロに設定されています。Menloにはタイ語の文字はありません。これをダブルチェックインしFontbook > View > Repertoire、を介してチェックインしましたMenu bar > Show Emoji and Symbols。(しかし、興味深いことにラオス人がいます。)しかし、ターミナルでタイ語の文字を入力すると、奇跡的にタイ語が表示されます。どうやら、システム全体のデフォルトのフォールバックフォントがあります。ただし、タイ語の1文字は正しく表示されません。(Sara Am、สระอำ)端末のフォントをCS Prajadに変更できます。タイ語は問題の文字を含めて非常にきれいに見えます。しかし、英語のフォントはひどくく、プログラミングフォントとしては役に立ちません。

にあるxmlファイルを変更するために、SIP(System Integrity Protection)を無効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>

漢字中国語および韓国語のxml文字列に従って、CS Prajadを等幅フォントとして追加します。

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

ターミナルアプリが英語のフォントを保持したまま、選択したタイ語のフォントを表示するように、タイ語(またはその他の非ラテン語)の既定のフォールバックフォントを変更するにはどうすればよいですか。


奇妙なメンロにはラオスとアラビア語のグリフがありますが、これらはユニコード値に添付されていないため、入力/表示には使用できません。
トムGewecke

使用しようとしているフォントはシステムにインストールされていますか?またはユーザーフォントとして?また、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/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.