Каким образом терминалы Windows делают китайские и английские символы шириной 1:2?

Каким образом терминалы Windows делают китайские и английские символы шириной 1:2?

ipconfigвывод в CMD:

введите описание изображения здесь

ipconfigвывод в PowerShell:

введите описание изображения здесь

ipconfigВывод в Git Bash:

введите описание изображения здесь

Обратите внимание, что ширина китайских и английских символов всегда составляет 1:2, независимо от используемого семейства шрифтов.и в результате точки выровнялись.

Я был поражен этим, так как в обычном текстовом редакторе, например VSCode, вывод будет выглядеть следующим образом (семейство шрифтов Consolas, моноширинное):

введите описание изображения здесь

Как вы видете,точки не выровнены, и в отличие от терминалов, перечисленных выше, вам придется найти некоторые специальные семейства шрифтов (например,Сараса Готика) чтобы соотношение ширины было 1:2.

Итак, мой вопрос:как эти терминалы Windows делают китайские и английские символы 1:2 по ширине независимо от семейства шрифтов? И можно ли добиться этого в текстовых редакторах?

решение1

как эти терминалы Windows создают китайские и английские символы шириной 1:2 независимо от семейства шрифтов?

Большинство терминалов в стиле кодирования или редакторов текста кода отображают символы в буквальной сетке X/Y и полностью игнорируют шрифт для интервалов. Однако большинство «общих» текстовых редакторов используют только ширину глифа, определенную в шрифте, чтобы определить, где разместить следующий символ.

Можно ли добиться этого в текстовых редакторах?

Очевидно, что возможности зависят от самого редактора, ноМоноширинныйШрифты используются для выравнивания символов в любом текстовом редакторе. Например, VS Code по умолчанию использует моноширинные шрифты (Настройки > Текстовый редактор > Шрифты), поэтому он обычно выравнивается правильно.

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

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

решение2

Этот разговоробъясняет все это:

введите описание изображения здесь

P.S. Хотя «Inconsolata» — отличный шрифт для решения этой проблемы выравнивания, я обнаружил, что английские символы этого шрифта слишком тонкие для меня, поэтому в настоящее время я все еще использую «Consolas».

Связанный контент