Макроопределения ms обеспечивают три команды смены шрифта. Команда
.R
меняет шрифт на латинский (обычный),
.I
устанавливает курсив, а
.B
— жирный шрифт:
Этот текст обычный,
.I
это курсив
.R
это снова обычный, а
.B
это жирный шрифт.
При выполнении команд приведенный выше текст превращается в следующий:
Этот текст обычный, это курсив, это снова обычный, а это жирный шрифт.
Команды
.I
и
.В
воспринимают
возможные аргументы, причем смена шрифта относится только к аргументу. В
troff
аргументы, содержащие пробелы, должны быть экранированы, и единственным символом для такой операции служит двойная кавычка
"
.
Это обычный текст, но
.I - это
курсив, а
.В "эти слова"
напечатаны жирным шрифтом.
Данный текст печатается так:
Это обычный текст, но — это курсив, а эти слова напечатаны жирным шрифтом.
В конечном счете второй аргумент для
.I
или
.B
, напечатанный обычным шрифтом, добавляется без пробелов к первому аргументу. Это средство широко используется при выборе шрифта для пунктуации. Обратите внимание на последнюю скобку фразы
(взятые в скобки
.I "слова курсивом)"
которая печатается неверно в виде
(взятые в скобки слова курсивом)
и сравните ее с фразой
(взятые в скобки
.I "слова курсивом")
которая печатается верно как
(взятые в скобки слова курсивом)
Различные шрифты распознаются программой
nroff
, но результат оставляет желать лучшего. Символы курсива подчеркнуты и нет жирных литер, хотя некоторые версии
nroff
изображают жирный шрифт двойной печатью.
Смешанные команды
Сноски вводятся с помощью
.FS
и заканчиваются
.FE
. Ваше дело определить метку (сноску) в виде звездочки
*
или крестика
†
. Такая сноска создается следующим образом:
определяющая метка типа звездочки или крестика. \(dg
.FS
\(dg подобно этому .FE
Эта сноска была создана с помощью ...
Выделенные отступом абзацы, возможно с использованием номера или другой пометки на границе, создаются командой
.IP
. Сделаем следующее:
1. Первый небольшой абзац.
2. Второй абзац, который мы удлиняем, чтобы показать, что отступ во второй строке будет таким же, как в первой.
Для этого нужен такой входной текст:
.IP(1)
Первый небольшой абзац.
.IP(2)
Второй абзац ...
Команды
.PP
или
.LP
(выравненный слева абзац) завершают дело, начатое командой
.IP
. Аргументом
.IP
может быть любая строка: введите кавычки, а при необходимости и пробелы. Второй аргумент можно использовать, чтобы определить значение отступа.
Когда вы работаете с парой команд
.KS
и
.KE
, текст должен быть размещен в одном месте; текст, заключенный между этими командами, будет перенесен на новую страницу, если он не разместится весь на текущей странице. Заменив
.KS
на
.KF
, вы можете передвинуть текст за последующий текст в верхнюю часть следующей страницы (если его необходимо поместить на одной странице). Все таблицы в книге построены с помощью
.KF.
Можно изменить большинство значений
ms
, принятых по умолчанию, путем установки некоторого числа регистров, являющихся переменными
troff
и используемых
ms.
Наиболее часто применяются регистры, управляющие размером текста и интервалом между строками. Нормальным размером текста считается размер в "10 точек", где точка составляет 1/72 дюйма (единица, заимствованная
из полиграфии). Обычно строки печатаются с 12-точечным разделением (интервалом). Чтобы изменить интервал, например на 9 или 11 точек (как сделано в наших отображениях), присвойте указанные числа регистрам
PS
и
VS
:
.nr PS 9
.nr VS 11
Другие числовые регистры включают
LL
для установки длины строки,
PI
— для определения отступов абзацев и
PD
— для отделения последних. Это влияет на следующие
.PP
или
.LP
.
Пакет макроопределений
mm
Мы не будем подробно рассматривать этот пакет макроопределений, поскольку в целом, а зачастую и в деталях он похож на
ms
. Пакет
mm
обеспечивает контроль параметров в расширенном по сравнению с ms диапазоне, обладает большими возможностями (например, автоматически нумеруемые списки) и выдает лучшие сообщения об ошибках. В табл. 9.2 показаны команды
mm
, эквивалентные командам ms из табл. 9.1.
.AB
Печатать резюме; оканчивается
.AE
.AU
Ввести в следующей строке имя автора; разрешены многократные
.AU
.B
Начать печатать "жирный" текст либо выделить жирным шрифтом аргумент, если он есть
.DS t
Начать отображать (незаполненный) текст, оканчивающийся
.DE
t=
L
(выравнивание по левому краю),
С
(центрирование),
В
(центрирование блока)
.EQ s
Начать выравнивание s (входной поток
eqn
); оканчивается
.EN
.FS
Начать печатать сноску; оканчивается
.FE
Л
Начать печатать текст, выделенный курсивом, или выделить курсивом аргумент, если он есть
.IP s
Сделать абзац с отступом, помеченный s
.KF
Печатать слитно часть текста, если необходимо целиком передвинуть на следующую страницу; конец ее
.KE
.KS
Печатать статно часть текста на странице; заканчивается
.KE
.LP
Печатать новый выравненный слева абзац
.NH n
Ввести чистовой заголовок n– го уровня; затем сам заголовок до