Текст таблицы следует за информацией для форматирования. Символы табуляции разделяют столбцы и некоторые команды troff, например .
sp
, которые уместны внутри таблиц. (Отметим пару вхождений
\&
: незащищенный передний символ
-
и знак
=
в столбцах указывают
tbl
на необходимость располагать строки таблицы в этой точке.)
Программа
tbl
строит более широкий набор таблиц, чем показано в примере: текст может помещаться в рамки, могут вертикально выравниваться заголовки столбцов и т.д. Самый легкий способ использовать
tbl
для создания сложных таблиц обратиться к справочному руководству по UNIX (том 2A) и применить перечисленные в нем команды.
Математические выражения
Второй препроцессор
eqn
превращает язык, описывающий математические выражения, в команды
troff
, чтобы эти выражения печатать. Препроцессор автоматически обрабатывает смены шрифта и формата и, кроме того, предоставляет имена для стандартных математических символов. Входной текст для
eqn
обычно находится между строками
.EQ
и
.EN
, аналогично командам
tbl .TS
и
.ТЕ
. Например,
.
EQ
x sub i
.EN
выдаёт xi. Если используется пакет
ms
, уравнение печатается как "отображение", а возможный аргумент
.EQ
определяет номер уравнения. Например, формула интеграла Коши
записывается как
.EQ (9.1)
f( zeta ) ~=~ 1 over {2 pi i} int from С
f(z) over {z - zeta} dz
.EN
В основу языка
eqn
и положен способ чтения вслух математических формул. Единственное различие между "разговорной" математикой и входным текстом
eqn
состоит в том, что скобки
{ }
отменяют заданные по умолчанию правила предшествования языка, однако обычные скобки специального смысла не имеют. Пробелы тем не менее важны. Заметим, что первое вхождение
zeta
в примере, приведенном выше, окружено пробелами: ключевые слова, такие, как
zeta
и
over
, распознаются только тогда, когда они окружены пробелами или скобками, но ни те, ни другие в выходной текст не попадают. Чтобы обеспечить пробелы в выходном потоке, используйте символ
~
, как показано в примере (
~=~
). Для получения скобок используйте "
{
" и "
}
".
Существует несколько классов ключевых слов
eqn
. Греческие буквы записываются прописными и строчными:
lambda
и
LAMBDA
(λ и Λ). Другие математические символы имеют имена, такие как
sum
,
int
,
infty
,
grad
: Σ, ∫, ∞, ∇. Есть знаки позиции, например
sub
,
sup
,
from
,
to
,
and
,
over
:
Эта формула выводится так:
sum from i=0 to infinity x sub i sup 2~→~1 over {2pi}
Существуют знаки операций типа
sqrt
, расширяющие скобки, фигурные скобки и т.д. Программа
eqn
, кроме того, позволяет создавать из объектов столбцы и матрицы. Предусмотрены команды для управления шрифтами и позициями, если те, которые установлены по умолчанию, не подходят.
Часто приходится помещать небольшие математические выражения, такие, как log10(x), в тело текста, а не в отображение. Ключевое слово
eqn
delim
определяет пару символов для выделения подобных выстроенных выражений. Символы, задаваемые в качестве левого и правого ограничителей, обычно одинаковы: часто применяется знак доллара
$
. Но поскольку
hoc
использует
$
для аргументов, в нашем примере мы употребили
@
. Символ
%
тоже удобен как ограничитель, но других символов избегайте: многие из них имеют специальные назначения в различных программах, поэтому вы можете спровоцировать непредсказуемое поведение
eqn
(именно так у нас и получилось с этим разделом).
Итак, после обозначения
.EQ
delim @ @
.EN
можно напечатать встроенное выражение
в виде
@ sum from i == 0 to infinity x sub i @ can be printed.
Встроенные выражения используются для вывода формул в таблице (см. пример из документации по
hoc
):
.TS
center,box
css
lfCWn1.
\fВТаблица 3:\fР Встроенные константы
.sp.5
DEG 57.29577951308232087680 @180/pi@, градусы и радианы
E 2.71828182845904523536 @e@, основание натурального логарифма
GAMMA 0.57721566490153286060 @gamma@, константа Эйлера-Масчерони
PHI 1.61803398874989484820 @(sqrt5+1)/2@, золотое сечение
PI 3.14159265358979323846 @pi@, круговое трансцендентное число
.ТЕ
Из этой таблицы, кроме того, видно, как строки
tbl
помещают десятичные точки в числовых (
n
) столбцах. Результат показан ниже.
Таблица 3: Встроенные константы
DEG
| 57.29577951308232087680 | 180/π, градусы на радианы |
E
| 2.71828182845904523536 | е, основание натуральных логарифмов |
GAMMA
| 0.57721566490153286060 | γ, константа Эйлера-Масчерони |
PHI
| 1.61803398874989484820 | (√5 + 1)/2, золотое сечение |
PI
| 3.14159265358979323846 | π, круговое трансцендентное число |