Печать двойных символов с помощью Ncurses

Многие эмуляторы терминала (xterm, Konsole) поддерживают символы двойного размера. Ncurses не поддерживает это, и, насколько я знаю, ncurses не будет печатать escape-символы (\033 будет экранирован и напечатан в виде открытого текста).

Можно ли вообще печатать символы двойного размера в приложении ncurses?

1 ответ

Ссылочная возможность "двойного размера", на которую вы ссылаетесь, задается следующими последовательностями ANSI (см. Здесь):

    ESC# 3 DEC линия двойной высоты, верхняя половина (DECDHL)
    ESC # 4   DEC линия двойной высоты, нижняя половина (DECDHL)

\e#3 Атрибут делает наборы переключателей терминала на набор, который содержит только верхнюю половину каждого символа. Так же, \e#4 переключается на набор символов, содержащий нижнюю половину. Используя их вместе,

echo -e "\e#3Foo\n\e#4Foo"

терминал может отображать текст "двойной высоты" в двух отдельных строках.

Насколько я могу судить, вы правы - ncurses не "реализовал" их - возможно, потому, что они используют специализированный набор шрифтов, изначально уникальный для DECTerminals.

Приступая к делу, это кажется невозможным, поскольку ncurses не имеет атрибутов для этой функции, хотя я, правда, не могу найти никаких ссылок, прямо заявляющих, что это невозможно. Возможно, кто-то с сумасшедшими навыками terminfo сможет объяснить, почему это так (или нет).

Другие вопросы по тегам