Windows 端末ではどのようにして中国語と英語の文字幅を 1:2 にするのでしょうか?

Windows 端末ではどのようにして中国語と英語の文字幅を 1:2 にするのでしょうか?

ipconfigCMDでの出力:

ここに画像の説明を入力してください

ipconfigPowerShell での出力:

ここに画像の説明を入力してください

ipconfigGit Bashでの出力:

ここに画像の説明を入力してください

中国語と英語の文字の幅は、どのフォントファミリーを使用しても常に1:2であることに注意してください。その結果、点が一列に並ぶ

これには驚きました。なぜなら、通常のテキスト エディター (たとえば VSCode) では、出力は次のようになるからです (フォント ファミリーは Consolas で、等幅フォントです)。

ここに画像の説明を入力してください

ご覧のように、点が揃っていない、そして上記の端末とは異なり、特別なフォントファミリー(例えばサラサゴシック)を使用して、幅の比率を 1:2 にします。

そこで私の質問は、これらの Windows 端末では、フォント ファミリに関係なく、中国語と英語の文字の幅を 1:2 にするにはどうすればよいでしょうか。また、テキスト エディターでこれを実現できますか。

答え1

これらの Windows 端末では、フォント ファミリに関係なく、中国語と英語の文字の幅が 1:2 になるのはなぜですか?

ほとんどのコーディング スタイルの端末またはコード テキスト エディターは、文字をリテラル X/Y グリッドに表示し、間隔のフォントを完全に無視します。ただし、ほとんどの「一般的な」テキスト エディターは、フォントで定義されているグリフ幅のみを使用して、次の文字を配置する場所を決定します。

テキストエディタでそれを実現することはできますか?

もちろん機能はエディタ自体に依存しますが、等幅フォントフォントは、どのテキスト エディターでも文字を揃えるために使用されます。たとえば、VS Code はデフォルトで等幅フォントを使用するため (設定 > テキスト エディター > フォント)、通常は適切に揃えられます。

ただし、すべての等幅フォントが同じというわけではなく、通常は等幅フォントとして想定されるフォントでも、珍しい文字や幅の広い文字が例外となる場合があります。コンソラス代わりに、幅の広い文字を 2 つのラテン文字としてレンダリングするフォント (例: Inconsolata) を試すこともできます。

エディターでは合字 (結合文字) も有効にでき、等幅合字グリフのない等幅フォントを使用することもできます。

答え2

この会話すべてを説明します:

ここに画像の説明を入力してください

PS 「Inconsolata」は、この配置の問題を解決するのに最適なフォントですが、このフォントの英語の文字は私にとってはちょっと細すぎると感じたので、現在も「Consolas」を使用しています。

関連情報