Данные, передаваемые для обработки nroff содержат текст документа и инструкции (или запросы), описывающие, в каком виде должен быть распечатан этот текст.
Запросы форматора nroff, начинаются со специальной -точки ( . ) и должны быть записаны строчными буквами в отдельной строке и с первой позиции. Форматирующие макрозапросы вставляются прямо в текст документа.
Простейшая форма команды nroff
% nroff [ option ] ... [ file ]
Вызов команды nroff с использованием макропакета MS
% nroff -ms file
% nroff -s text | lpr
Oстанавливать печать каждой 3-й страницы:
% nroff -s3 text | lpr
% nroff -n11 text | lpr
% nroff -o7 text | lpr
Напечатать страницы 3, 9 и 18:
% nroff -o3,9,18 text | lpr
Напечатать страницы с 11-13 и 22:
% nroff -o11-13,22 text | lpr
Напечатать страницы с 1-5:
% nroff -o-5 text | lpr
Напечатать страницы от 14 до конца документа:
% nroff -o14- text | lpr
Остановимся немного подробнее на некоторых основных запросах nroff и рассмотрим некоторые базовые встроенные в nroff команды (или запросы) используемые при работе nroff.
Запрос .pl устанавливает размер страницы которая печатается построчно (высота каждой строки 0.4 см). По умолчанию страница содержит 66 строк (28 см).
Пример:
1. Установить размер страницы 24 строки будет выглядить так:
.pl 24
2. Уменьшить размер страницы на 12 строк
.pl-12
3. Восстановить размер страницы
.pl
4. Установить размер строки 132 символа
.ll 132
5. Увеличить длину строки на 12 символов
.ll+12
6. Восстановить размер строки
.ll
7. Установить отступ страницы 8 символов
.po 8
8. Уменьшить отступ страницы на 2 символа
.po -2
9. Восстановить прежнее значение
.po
1. Установить номер страницы 27
.pn 27
2. Увеличить номер страницы на 2
.pn +2
Если вы хотите, чтобы конкретный текст начинался с новой страницы, поставьте одну из следующих команд:
Возможны случаи, когда нежелательно разбивать на части некоторый текст, тогда используйте запрос
.ne
Например: сохранить на странице следующие 7 строк
.ne 7
\" текст
% nroff -ms [ options ] file
Чтобы помочь начинающим пользователям и обеспечить стандартные наборы форматов, проектировщики создали стандартные средства, называемые макропакетами. Наиболее известными пакетами являются MS, ME и MM. Кроме того существуют несколько препроцессоров, которые обрабатывают специальные типы текстов:
tbl - для таблиц;
eqn и neqn - для математических выражений.
Существуют утилиты:
checked - для проверки работы препроцессоров eqn и neqn ;
deroff - для удаления всех форматирующих команд ( nroff , tbl , eqn , neqn ).
Макропакет MS запускается с помощью опций в командной строке nroff.
% nroff -ms [ options ] file ...
Препроцессоры такие как tbl (для таблиц) eqn и neqn (для математических выражений), активизируются отдельными командами, которые посылают текст в nroff через конвейер, например:
% tbl file | nroff -ms
Макропакет MS предоставляет широкий выбор заранее определенных средств форматирования текста, которые вы можете активизировать и дезактивизировать, помещая встроенные команды (или запросы) в свой файл.
Каждая встроенная команда MS (или запрос) состоит из точки в колонке 1, за которой следует одна или две прописные буквы (этим отличаются данные команды от команд nroff, которые записаны строчными буквами). Ниже рассмотрим некоторые форматирующие команды более подробно.
Input Output
.LP
ssssssssssssssssss ssssssssssssssssssss
ssssssssssssssssssssssss ssssssssssssssssssss
ssssssssss sssssssssssssss
.IP
ddddddddddddddddddd ddddddddddddddddddd
dddddddddddddd ddddddddddddddddddd
ddddddddd ddddddddd
Чтобы поместить короткую строку (например: число или метку) перед первой строкой раздела, оставьте один пробел после команды .IP и наберите необходимую строку.
Input Output
.IP (1)
ccccccccccccccccccccc (1) ccccccccccccccccccc
ccccccccccccc ccccccccccccccccccc
cccccccccccccccc cccccccccccc
Чтобы поместить более длинную строку перед смещенным разделом, оставьте один пробел после команды .IP , а затем наберите строку, за которой следует число (которое должно быть по крайней мере на единицу больше длины строки). Это число показывает, на сколько колонок следует сдвинуть (отступить) раздел. Если строка содержит пробелы, заключите ее в кавычки:
Input Output
.IP "Part 1" 8 bbbbbbbbbbb
jjjjjjjjjjjjjjjjjj Part 1 jjjjjjjjjjjjjjjjj
jjjjjjjjjjjjjjjj jjjjjjjjjjjjjjjjj
jjjjjjjjjjjjjjjjjjjj jjjjjjjj
Когда задано число, указывающее отступ, это указание остается в силе до тех пор, пока не будет изменено.
.NH
The Main Thing 1. The Main Thing
.NH 2 1.1. Where to Start
Where to Start 1.2. When to start
.NH 2 1.2.1. The best Time
When to Start 1.2.2. The Worst Time
.NH 3 2. Other
The Best Time
.NH 3
The Worst Time
.NH
Other...
.LP
и тогда команда nroff сохранит их вместе.
Установка сноски при помощи запросов:
.FS и .FE
Нужно набрать сноску справа от символа ссылки на нее и между командами сноски .FS и .FE . Средства пакета MS выделят место для примечания в конце страницы и напечатают разделитель между сноской и последней строкой основного текста. Пример:
.QP "I'n not a crook"*
"I'n not a crook"* .
.FS .
*Report,1974 .
.FE -----------------
.PP *Report, 1974
.I и .R
Пример:
.PP
Now we are coming to the Now we are coming
.I to the __most important_
most important item of the agenda.
.R
item of the agenda.
Лучшим способом отменить выделение текста в вашем документе является выход из него. Никакой команды форматирования не требуется.
При помощи команд:
.DS и .DE
1. Стандартный вывод иллюстрации
Чтобы вывести иллюстрацию в виде текста т.е. сделать отступ и выровнять строки по левому краю вы можете воспользоваться командами .DS и .DE .
.PP
sssssssssssssssss sssssssssssss
ssssssssssssss ssssssssssssssssss
sssssssss sssssssss
.DS
ddddddddddddddddd ddddddddddddddddd
ddddddddddd ddddddddddddddddd
dddddddd dddd
.DE
2. Сблокированная иллюстрация
Команда: .DS B
Чтобы вывести текст с отступом и так, чтобы иллюстрация располагалась в центре экрана, добавьте к команде .DS опцию B :
.PP
sssssssssssssssssssss sssssssssssssssssssss
sssssssssssssssss ssssssssssssssssssssssssss
sssssss sssssssss
.DS B
dddddddddddddddd ddddddddddddddddd
dddddddddddd ddddddddddddddddd
ddddddddd ddddddddddddd
.DE
3. Центрированная иллюстрация
Команда: .DS C
Чтобы центрировать при выводе каждую строку текста добавьте опцию С к команде .DS .
.DS C
.
.текст
.
.DE
Если вы хотите изменить дату, поместите команду .ND рядом с началом текстового файла. Если вы хотите использовать некоторую дату, отличную от текущей, введите команду: .DA , набрав желаемую дату после .DA
.DA September 15, 1994
по умолчанию переменная .CH содержит номер страницы, а две другие ничего не содержат. Чтобы изменить любую из этих переменных, используйте команду nroff .ds (определить строку). Пример:
.PP
.ds LH Draft Copy
.ds RH Revision 3
В данном случае мы заголовок текста Draft Copy поместим слева, а Revision справа и номер страницы разместим в середине.
Пример:
.PP
.ds LF Confidential
.ds RF Internal Use Only
.PP
.ds RF Page %
номер страницы помещается с правой стороны футера и ему предшествует слово Page.
.2C
.LP
ddddddddddddddddddd dddddddddd dddddddddd
ddddddddddd dddddddddd dddddddddd
ddddddddddddddddddddddd. dddddddddd dddd.
.1C
.LP
sssssssssssssssss sssssssssssssssssssssss
sssssssssssssssssss sssssssssssssssssssssss
sssssss. ssssssssss.
Есть еще способ быстрого получения двухколонного формата. Чтобы быстро получить пример двухколонной печати, сделайте копию своего файла (например: disk ) и назовите его disk.2C , затем начните сеанс редактирования с файлом под именем disk.2C и добавьте нужные запросы. Когда запросы на форматирование вставлены в соответствующее место, выполните следующую командную строку:
% nroff -ms disk.2C | col
ваш текст будет распечатан в два столбца.
2. Для непрерывного вывода текста на экран:
Тексту должна предшествовать одна из перечисленных выше команд, а за текстом должна находиться команда завершения ( .DE ).
3. Сохранение непрерывного следования строк текста на странице:
4. Использование сносок для печати в конце страницы.
5. Использование заголовков (для печати заголовков):
6. Выделение текста (отмена выделения):
запрос .I производит подчеркивание для выделения.
7. Разметка страниц.
Стандартная разметка страницы для ms есть область печати размером 12х22.5 см на стр. размером - 17х27.5 см., причем в центре вверху помещается ее номер, а в середине строки в конце страницы помещается дата. Используя следующие команды, вы можете сделать некоторые изменения в разметки:
tbl [ files ] ...
tbl file | nroff -ms
Препроцессор tbl воспринимает простое описание таблицы и генерирует запросы nroff для печати этой таблицы. Запросы препроцессора tbl помещаются между запросами .TS (начало таблицы) и .TE (конец таблицы).
.TS
.
.
- описание таблицы
.
.TE
Литеры ; (точка с запятой) и . (точка) должны присутствовать явно, завершая соответствующий раздел. Формат столбцов и строк в общем случае задается шаблоном. Литера Т (табуляция) служит разделителем столбцов: Пример:
.TS
center;
c s s s
c c c c
l l n n.
Отделения фирмы Bell Labs
Название Т Адрес Т Код Т Номер
................
.TE
В разделе описания форматов можно задавать следующие опции:
Опция center вызывает размещение таблицы посередине страницы. По умолчанию таблица располагается с левой стороны страницы. Внешний вид таблицы задается следующими опциями.
Более подробную информацию вы можете получить в man nroff, tbl , neqn .