2

许多终端仿真器(xterm、Konsole)支持双倍大小的字符。Ncurses 不支持这一点,据我所知,ncurses 不会打印转义字符(\033 将被取消转义并以明文形式打印)。

是否可以在 ncurses 应用程序中打印双倍大小的字符?

4

1 回答 1

7

您所指的“双倍大小”字符功能由以下 ANSI 序列(在此处找到)设置:

    ESC #3 DEC 双高线,上半部分 (DECDHL)
    ESC # 4 DEC 双高线,下半部分 (DECDHL)

\e#3属性使终端将字符集切换为仅包含每个字符的上半部分的字符集。同样,\e#4切换到包含下半部分的字符集。通过这些一起使用,

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

终端可以在两个单独的行上显示“双倍高度”文本。

据我所知,你是对的——ncurses 没有“实现”它们——可能是因为它们依赖于 DECTerminals 最初独有的专用字体集。

说到重点,这似乎是不可能的,因为 ncurses 没有这个特性的属性,尽管我承认我找不到任何直接说明它不可能的参考资料。也许具有疯狂 terminfo 技能的人可以解释为什么会(或不是)这种情况。

于 2010-08-12T19:45:49.413 回答