[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Что такое out reverse/half-reverse line feeds?



On 2009.11.25 at 14:42:27 +0200, Oleksandr Gavenko wrote:

> Для получения man в .txt делают:
>
>   $ man $name | col -b >$file.txt
>
> ....
> The col utility filters out reverse (and half reverse) line feeds...
>                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Что это такое?
>
> -b      Do not output any backspaces, printing only the last character
>                           ^^^^^^^^^^
>         written to each column position.
>
> Что такое backspaces?

Символы ASCII с кодом 8.

> В не могу нагуглить (по ключевым словам про принтеры рассказывают).

А именно про принтеры это и есть. Вывод этого символа на принтер
перемещает каретку на один символ назад.

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

Если вывести символ, потом backspace, потом '_', получится подчеркнутый
символ. Это работает даже и на лазернике. 

Говорят, некоторые реализации языка APL, где используется очень много
всяких разных математических символов, использовали и другие комбинации
(вроде O <backspace> / - знак пустого множества) но этого я своими
глазами не видел.



> В hex-редакторе видно что то - где бы доку об этом найти,  
> http://vt100.net/docs/vt100-ug/ - не оно?
>

Нет, это не оно. Терминал vt100 и совместимые сам по себе этих
конструкций не отрабатывает. Вот программа less (которая обычно
используется командой man в качестве $PAGER) - отрабатывает, и
показывает в man-ах сформатированных nroff-ом жирный и подчеркнутый
текст.




Reply to: