Однако организация взаимодействия программ через конвейеры связана с некоторыми проблемами. Отчасти снижается быстродействие, поскольку увеличивается объем ввода и вывода: обычно и eqn
, и tbl
дают расширение выходного потока по отношению к входному в отношении 8:1. Еще более существенно, что информация идет только в одном направлении. Например, нет способа определения текущего размера шрифта, что создаст неудобства в пользовании языком. И, наконец, трудно обеспечить сообщения об ошибках, так как иногда трудно связать диагностику из troff
с eqn
и tbl
. Тем не менее преимущества разделения значительно перекрывают недостатки, поэтому было написано несколько препроцессоров, основанных на этой модели.
Обсудим кратко работу tbl
и прежде всего таблицу операций по документации к hoc
. tbl
читает свои входные файлы или стандартный входной поток и преобразует текст между командами .TS
(начало таблицы) и .ТЕ
(конец таблицы) в команды troff
, печатающие таблицу, выравнивающие столбцы и обеспечивающие все типографские атрибуты. Строки .TS
и .ТЕ
тоже копируются, поэтому пакет макроопределений выдает для них подходящие определения с тем, например, чтобы можно было помещать таблицу на одной странице и отделять ее от окружающего текста.
При формировании сложных таблиц вам, конечно, придется обращаться к справочному руководству по tbl
. Хотя для уяснения основных принципов работы вполне достаточно приведенного ниже примера (из документации по hoc
).
.TS
center, box;
с s
lfCW 1
\fВТаблица 1:\fP Операции по порядку уменьшения приоритета
.sp.5
^ возведение в степень (\s-1FORTRAN\s0 **) правоассоциативна
!\- одноместные логическое и арифметическое отрицания
* / умножение, деление
+\- сложение, вычитание
> >= операции отношения: больше, больше или равно < <= меньше, меньше или равно
\&== != равно, не равно (все отношения одинакового приоритета)
&& логическое И (оба операнда всегда вычисляются)
|| логическое ИЛИ (оба операнда всегда вычисляются)
\&= присваивание, правоассоциативна
.ТЕ
В результате мы получаем следующую таблицу:
^ | возведение в степень (FORTRAN **) правоассоциативна |
! - | одноместные логическое и арифметическое отрицания |
* / | умножение, деление |
+ - | сложение, вычитание |
> >= | операции отношения: больше, больше или равно |
< <= | меньше, меньше или равно |
== != | равно, не равно (все отношения одинакового приоритета) |
&& | логическое И (оба операнда всегда вычисляются) |
!! | логическое ИЛИ (оба операнда всегда вычисляются) |
= | присваивание, правоассоциативна |
Слова перед точкой с запятой описывают глобальные свойства таблицы: центрировать по горизонтали на странице и заключить в рамку. Другие средства включают doublebox
(сделать двойную рамку), allbox
(включить каждый элемент в рамку) и expand
(расширить таблицу на формат страницы).
Следующие строки до точки описывают формат различных секций таблицы. Первая спецификация служит для первой строки таблицы, вторая для второй, последняя для всех остальных строк. В табл. 1 вы видите только две строки спецификаций, поэтому вторая спецификация применяется к каждой строке таблицы посте первой. Символы формата для элементов центрированных в столбце, с
, r
и l
для правого и левого выравнивания и n
— для выравнивания чисел по десятичной точке. Символ S
определяет столбец с промежутком; в нашем случае 'c s
' означает центровку названия над всей таблицей путем задания размера второго столбца так же, как и первого. Для столбца можно определить шрифт. Спецификация tbl lfCW
позволяет печатать выравненный по левому краю столбец шрифтом CW.
Текст таблицы следует за информацией для форматирования. Символы табуляции разделяют столбцы и некоторые команды troff, например .sp
, которые уместны внутри таблиц. (Отметим пару вхождений \&
: незащищенный передний символ -
и знак =
в столбцах указывают tbl
на необходимость располагать строки таблицы в этой точке.)
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии