Исторически я использовал Monotype Courier New в качестве шрифта XTerm (он хорошо отображает как кириллические символы, так и символы рисования прямоугольников). При переходе от традиционных KOI8-R в UTF-8 локали, я заметил изменение расстояния между линией (или ведущего), который не сделал Courier New больше не подходит для терминалов.
Вот как мой XTerm выглядел в локали ru_RU.KOI8 ru_RU.KOI8-R
(12pt Courier New):
Вот как это выглядит сейчас (ru_RU.UTF-8
, снова 12pt, ширина символа та же, но обратите внимание, что увеличенные начальные вертикальные символы рисования прямоугольников образуют двойную "пунктирную" линию):
Судя по всему, XTerm не единственное приложение, на которое влияют. По сути, все программы, использующие шрифты Core X11, демонстрируют одинаковое поведение. Посмотрите на xfontsel
отображающий разные кодировки одного и того же шрифта:
KOI8-R:
ISO 10646-1 (что означает Unicode):
Интересно, что Courier New, похоже, является единственным моноширинным шрифтом. Другие шрифты, такие как -misc-freemono-*
, имеют одинаковые начальные значения независимо от кодировки.
Теперь вопрос:
Есть ли способ, которым я могу обеспечить конкретное ведение для определенного шрифта? Должен ли я посмотреть в библиотеку FreeType? Или Xft? Любые идеи приветствуются.