1

Я хотел бы использовать SimSun(宋体) шрифт для отображения интерпункт / средняя точка ·, одиночные кавычки (фигурные) ‘’ двойные кавычки (фигурные) “” символы в их полной ширине формы, потому что легко отличить их . (точка) ' (одинарная кавычка) " (двойная кавычка), и такая различимая видимость особенно полезна при вводе кода с использованием метода ввода, поскольку метод ввода может легко вводить символы ·' '“ ”и делает код не подлежащим компиляции (char *str=“will not compile”;).

В редакторе gedit, geany и leafpad, установите шрифт SimSun, чтобы он работал как положено.

Geany редактор, шрифт SimSun, полная ширина формы

Однако в gnome-terminal установка шрифта на SimSun не дает ожидаемого результата. Кажется, gnome-терминал использует другой шрифт для отображения форм половинной ширины, или кажется, что они просто переполнены.

gnome-терминал, шрифт SimSun, формы половинной ширины

Я также попробовал lxterminal(LXDE) и Terminal(xfce) и ROXTerm, они отображались так же, как и gnome-Terminal.

Как позволить этим эмуляторам терминала отображать знаки пунктуации в полноразмерных формах, как это делает Geany?

Пример текста

1234567890
·“”‘’

Unicode кодовые точки (HEX)

   UTF16  UTF8
· 00B7   C2B7
‘ 2018   E28098
’ 2019   E28099
“ 201C   E2809C
” 201D   E2809D

1 ответ1

1

Для более старых версий gnome-терминала вы должны экспортировать переменную VTE_CJK_WIDTH=wide перед запуском первого экземпляра gnome-терминала.

В более новых версиях gnome-terminal (возможно, начиная с 3.12 или 3.14) это было перенесено в настройку пользовательского интерфейса: настройки профиля -> совместимость -> символы неоднозначной ширины: узкий (по умолчанию) или широкий (то, что вы ищете).

Обратите внимание, что любое сложное приложение (например, текстовый редактор), которое вы запускаете в своем терминале, также должно быть уведомлено об этом изменении, иначе у него будут ложные предположения о местоположении курсора, и дисплей, вероятно, развалится. Я не знаю об общем методе для этого (может быть / должна быть локаль, в которой wcwidth () возвращает 2 для этих символов, а не 1, но я не думаю, что они есть), поэтому вам придется настраивать каждый приложение отдельно (если у них есть такая опция конфигурации вообще). Простые утилиты, которые не заботятся о курсоре, например команда cat должны работать без изменений.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .