
答え1
Windows 7には、合成フォント
国際フォントのリンクとフォールバックロジックを記述するために使用される ソース
文字定義の範囲が限定された多数のフォントからリンクされた仮想フォントを作成できます。
デフォルトの合成フォントはグローバルユーザーインターフェースファイル にあります
C:\Windows\Fonts\GlobalUserInterface.CompositeFont
。
素晴らしいバベルマップUnicode、複合フォント、および関連するものの実装を試して理解するためのツール。
こちらもチェックフォントフォールバックのサブセクション備考このセクションMSDN記事このような複合フォントがどのように構築されるか、フォールバック ルールは何かという興味深い背景を学びます。
文字のフォントの検索(上記の情報に基づく):
- 任意のプレーンテキスト エディター/ビューアで、ファイルを表示します
C:\Windows\Fonts\GlobalUserInterface.CompositeFont
。 - タグで
<FontFamily.FamilyMaps>
、文字の定義範囲を見つけます。 FontFamilyMap
属性に範囲を含むタグを検索しUnicode
、その範囲に指定されたフォント (またはフォント リスト) を取得します (属性に格納されていますTarget
)。
例:キャラクターの場合05D0ファイル内で見つかった範囲は0590-05FF(ヘブライ語)
およびフォントの置換は次のとおりです。
"Segoe UI, Tahoma, Arial, Arial Unicode MS, Microsoft Sans Serif, Lucida Sans Unicode"
- フォントが1つだけの場合は、そのフォントが見つかります。そうでない場合は、リストを順番にチェックしてみましょう。BabelMapを実行します。
- 指定された文字へ移動
- ラジオボタンを切り替える合成フォントに単一フォント
または、メニューに移動フォント>フォント範囲...を押して計算するボタン - 手順に表示されている順にフォントを切り替えます3グリフが表示されている最初のフォントがあなたのフォントです。
注記:利用可能な複合フォント ファイルは 4 つありますが、お客様のケースに適したファイルは であることを確認しましたGlobalUserInterface.CompositeFont
。
この手法は、定義を検索することで Windows と同じことを実行するため、信頼性があります。
答え2
miroさんの答えは素晴らしいです、私は少し違う書き方をします
複合フォントファイルは 4 つあります。
その4人は
C:\Windows\Fonts>dir *composite* /s/b
C:\Windows\Fonts\GlobalMonospace.CompositeFont
C:\Windows\Fonts\GlobalSansSerif.CompositeFont
C:\Windows\Fonts\GlobalSerif.CompositeFont
C:\Windows\Fonts\GlobalUserInterface.CompositeFont
C:\Windows\Fonts>
一度見てみると、例えば、 GlobalMonospace.CompositeFont
0590-06FFがあり、フォールバックフォントとしてリストされているのは、Alephを含むCourier Newだけです。しかし、Miroは、それが使用されている合成ファイルではなく、使用されているものであると判断しました。GlobalUserInterface.CompositeFont
このファイルを開く C:\Windows\Fonts\GlobalUserInterface.CompositeFont
Alephは\u05D0
、私が写真で示している場所に到達するためにファイルを下にスクロールする必要がありますが、それが注目すべきセクションです
複合フォントファイルには、さまざまな範囲の Unicode 文字のフォールバックフォントとして機能するフォントのファミリがリストされています 0590-06FF
(05D0/aleph を含む範囲)
<FontFamilyMap
Unicode = "0000-052F, 0590-06FF, 0750-077F, 1D00-1FFF, 2C60-2C7F, FB00-FB0F, FB1D-FBFF"
Target = "Segoe UI, Tahoma, Arial, Arial Unicode MS, Microsoft Sans Serif, Lucida Sans Unicode"
Scale = "1.0"/>
Charmap は FFFF まで到達できますが、これは十分な距離です。Charmap は segoeUI には存在しないことを示しています。しかし、Tahoma には存在します。
Babelmap は、FFFF を超える文字を表示できる (この場合は必要ありません) ことと、システム上のどのフォントに特定の Unicode 文字が含まれているかを表示できることが興味深いです。ただし、メモ帳でフォールバック フォントとして実際に使用されているフォントを確認するには、GlobalUserInterface.CompositeFont ファイルを確認する必要があります。次に、charmap または babelmap で、必要なグリフ/Unicode 文字を含む最初のフォントを探します。
Babelmap には複合フォントがありますが、それらは Windows で使用されるカスタム フォントではなく、カスタム フォントだと思います。ただし、どのフォントに Unicode 文字が含まれているかを検索したり、FFFF を超えてフォント内にどのような文字が含まれているかを確認したりするために、babelmap を使用すると便利です。