[P&AM Lab] GNU troff макрос для рисования бинарных чисел

Grigoriy A. Sitkarev sitkarev на komitex.ru
Вт Авг 7 05:16:05 MSK 2012


Приветствую всех.

Если кто-то обратил внимание, в предыдущей портянке по форматам с 
плавающей точкой показывались поля чисел в двоичном виде. Для того, 
чтобы такие числа можно было удобно и быстро набирать в troff, я написал 
очень простой макрос DGBOX. Если кому-то интересно, можете попробовать 
его использовать.

.de DGBOX
.	nr @wb \w'\\$1'
.	nr @zw \w'0'
.	nr @dx (\\n[@wb]u + 1m)
.	nr @dy (\\n[rst]u - \\n[rsb]u + 1m)
\h'.5m'\
\h'-.5m'\v'(.5m - \\n[rsb]u)'\
\D'l \\n[@dx]u 0'\
\D'l 0 -\\n[@dy]u'\
\D'l -\\n[@dx]u 0'\
\D'l 0 \\n[@dy]u'\
\h'.5m'\v'-(.5m - \\n[rsb]u)'\
\\$1\
\h'.5m'\c
.	if !'\\$2'' \|\\$2
.	rr @wb
.	rr @zw
.	rr @dx
.	rr @dy
..

Чтобы нарисовать число из трёх полей, макрос можно вызвать внутри пары 
DS/DE вот так:

.DS C
.DGBOX 0
.DGBOX 111111111111111
.DGBOX 0000000000000000 ,
.DE

В последнем вызове DGBOX передаётся два аргумента. Второй аргумент 
опциональный, обычно там ставят знак препинания (точку или запятую).

Если макрос поместить в файл, то можно его подключить так:

.so dgbox.tmac

Файлы во вложении.

--
Г.А.
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: out1.ps
Type: application/postscript
Size: 11351 bytes
Desc: отсутствует
URL: <http://amplab.syktsu.ru/pipermail/lab/attachments/20120807/18dc21cd/attachment.ps>
----------- следущая часть -----------
An embedded and charset-unspecified text was scrubbed...
Name: dgbox.tmac
URL: <http://amplab.syktsu.ru/pipermail/lab/attachments/20120807/18dc21cd/attachment.asc>


Подробная информация о списке рассылки Lab