Чтение онлайн

ЖАНРЫ

UNIX — универсальная среда программирования
Шрифт:

Слова перед точкой с запятой описывают глобальные свойства таблицы: центрировать по горизонтали на странице и заключить в рамку. Другие средства включают

doublebox
(сделать двойную рамку),
allbox
(включить каждый элемент в рамку) и
expand
(расширить таблицу на формат страницы).

Следующие строки до точки описывают формат различных секций таблицы. Первая спецификация служит для первой строки таблицы, вторая для второй, последняя для всех остальных строк. В табл. 1 вы видите только две строки спецификаций, поэтому вторая спецификация применяется к каждой строке таблицы посте первой. Символы формата для элементов центрированных в столбце,

с
,
r
и
l
для правого и левого выравнивания и
n
— для выравнивания чисел по десятичной
точке. Символ
S
определяет столбец с промежутком; в нашем случае '
c s
' означает центровку названия над всей таблицей путем задания размера второго столбца так же, как и первого. Для столбца можно определить шрифт. Спецификация
tbl lfCW
позволяет печатать выравненный по левому краю столбец шрифтом CW
.

Текст таблицы следует за информацией для форматирования. Символы табуляции разделяют столбцы и некоторые команды 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 , круговое трансцендентное число

И, наконец, поскольку

eqn
выделяет курсивом любую строку букв, которые она не распознает, довольно просто выделять обычные слова курсивом. Последовательность
@Word@
например, печатается как Word. Но будьте внимательны:
eqn
распознает некоторые обычные символы (такие, как
from
и
to
) и специальным образом их рассматривает: она "глотает" пробелы, поэтому указанный прием следует применять с осторожностью.

Получение выходного потока
Поделиться с друзьями: