Различный межстрочный интервал в зависимости от кодировки шрифта

471
Bass

Исторически я использовал Monotype Courier New в качестве шрифта XTerm (он хорошо отображает как кириллические символы, так и символы рисования прямоугольников ). При переходе от традиционных KOI8-R в UTF-8 локали, я заметил изменение расстояния между линией (или ведущего ), который не сделал Courier New больше не подходит для терминалов.

Вот как выглядит мой XTerm в 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 ? Любые идеи приветствуются.

3

0 ответов на вопрос

Похожие вопросы