Nroff / Troff

Выполнил

Студент гр. 2100

Голубцов Евгений

2008

Nroff

Форматор nroff позволяет управлять процессом форматирования текстов, в частности задавать размер страницы, длину строк и интервал между строками, а также делать отступы и выполнять табулирование. Можно также устанавливать режим с заполнением строк (с выравниванием по правому краю). Программа nroff предназначена для обычных печатающих устройств.

Данные, передаваемые для обработки nroff содержат текст документа и инструкции (или запросы), описывающие, в каком виде должен быть распечатан этот текст.

Запросы форматора nroff, начинаются со специальной -точки ( . ) и должны быть записаны строчными буквами в отдельной строке и с первой позиции. Форматирующие макрозапросы вставляются прямо в текст документа.

Простейшая форма команды nroff

% nroff [ option ] ... [ file ]

Вызов команды nroff с использованием макропакета MS

% nroff -ms file

Опции командной строки NROFF

  • -ms - Использовать макропакет ms ;

  • -np - Начало номера страницы (установить номер первой страницы = p);

  • -op - Специальные страницы (распечатать только страницы с номерами, заданными в списке p);

  • -sn - Остановка вывода между страницами (делать останов после печати каждых n- строк);

  • -Tname - Определение печатающего устройства.

Остановка печати после заданной страницы

Останавливать печать после каждой страницы:

% nroff -s text | lpr

Oстанавливать печать каждой 3-й страницы:

% nroff -s3 text | lpr

Печать начиная с заданной страницы

Начать печатать на стр. 11 :

% nroff -n11 text | lpr

Выбор страниц

Напечатать только страницу 7:

% 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

  • .pl - длина страницы;

  • .ll - длина строки;

  • .po - отступ страницы;

  • .pn - номер страницы;

  • .bp - смена страницы;

  • .ne - дополнительное требование (сохранение целостности строк);

  • .sp - вывод пустой строки;

  • .cen - центрировать строку или n -строк;

  • .ul - подчеркнуть заголовок;

  • .cu - непрерывное подчеркивание;

  • .tin - временный отступ;

  • .br - переход на следующую строку;

  • .in n - сделать отступ на n - позиций.

Остановимся немного подробнее на некоторых основных запросах nroff и рассмотрим некоторые базовые встроенные в nroff команды (или запросы) используемые при работе nroff.

Размер страницы (.pl)

Запрос .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

Переход на новую страницу

Если вы хотите, чтобы конкретный текст начинался с новой страницы, поставьте одну из следующих команд:

  • .bp - начать новую страницу здесь;

  • .bp 21 - начать новую страницу здесь и назвать ее 21;

  • .bp +2 - начать новую страницу и увеличить номер страницы на 2.

Борьба с нежелательным разрывом страницы

Возможны случаи, когда нежелательно разбивать на части некоторый текст, тогда используйте запрос

.ne

Например: сохранить на странице следующие 7 строк

.ne 7

Комментарии

Если в текст нужно ввести некоторый комментарий:

\" текст

Макропакет MS

Далее мы остановимся на использовании макропакета MS. Командная строка:

% 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, которые записаны строчными буквами). Ниже рассмотрим некоторые форматирующие команды более подробно.

Формирование параграфа (раздела) .РР

Стандартный раздел смещает первую строку на 5 пробелов и выравнивает все строки по правому краю.

Раздел без отступа .LP

Чтобы сформировать раздел без отступа со строками, выровненными слева и справа (кроме последней) поставьте перед первой строкой команду .LP

Раздел цитат .QP

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

Смещенный раздел .IP

Чтобы сформировать раздел, выделенный пятью пробелами слева, а все строки выровнены по левому и правому краям, поставьте перед первой строкой команду .IP . Пример:

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

Когда задано число, указывающее отступ, это указание остается в силе до тех пор, пока не будет изменено.

Сдвиг разделов .RS и .RE

Команда .RS используется совместно для сдвига разделов вправо и влево на 5 позиций. Запрос .RS также позволяет вставлять строку перед первой строкой раздела.

Заголовки

  1. Ненумерованные заголовки. Чтобы получить обыкновенный ненумерованный заголовок длиной менее одной строки, поставьте перед ним команду .SH , а за ним команду .LP или .PP , чтобы отменить начало следующего текста. Заголовок будет подчеркнут, выровнен по левому краю и отделен от обычного текста сверху и снизу пустыми строками.

  1. Нумерованные заголовки. При использовании команды .NH оставить пробел справа команды и набрать число, указывающее уровень подчиненности (до 5 уровней). В заголовке 1-го уровня число можно опустить. Тогда средство MS приписывает следующий допустимый номер на любом данном уровне. Например:

.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

Борьба с нежелательным разрывом страницы

Стандартное сохранение. Иногда встречаются строки текста, которые желательно хранить вместе на одной странице и вы хотите получить гарантию, что они не будут разъединены при смене страницы. Заключите текст между двумя запросами: .KS и .KE

и тогда команда 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

Изменение даты

Команда: .ND

Если вы хотите изменить дату, поместите команду .ND рядом с началом текстового файла. Если вы хотите использовать некоторую дату, отличную от текущей, введите команду: .DA , набрав желаемую дату после .DA

.DA September 15, 1994

Изменение заголовка

Заголовок (особая строка над текстом вверху страницы) обычно остается в документе фиксированным. Вы можете поместить текст заголовка, на всех страницах в любую из трех позиций этой строки: в левый край, по центру, в правый край. Для каждой из этих позиций команда nroff имеет соответствующую строковую переменную.

  • .LH (левый заголовок);

  • .CH (центрированный заголовок);

  • .RH (правый заголовок)

по умолчанию переменная .CH содержит номер страницы, а две другие ничего не содержат. Чтобы изменить любую из этих переменных, используйте команду nroff .ds (определить строку). Пример:

.PP

.ds LH Draft Copy

.ds RH Revision 3

В данном случае мы заголовок текста Draft Copy поместим слева, а Revision справа и номер страницы разместим в середине.

Изменение футера

Футер - особая строка под текстом внизу страницы. Вы можете поместить в любую из трех позиций этой строки:

  • .LF - левый край;

  • .MF - центр;

  • .RF - правый край

Пример:

.PP

.ds LF Confidential

.ds RF Internal Use Only

Расположение номера страницы

Команда nroff помещает номер страницы в середине заголовка по умолчанию.

.PP

.ds RF Page %

номер страницы помещается с правой стороны футера и ему предшествует слово Page.

Двухколонный формат

Если вы хотите разместить текст в более узких колонках, можно отпечатать документ в двухколонном формате с помощью команды .2C из текста ms . Затем использовать команду .1C , чтобы вернуться к одноколонному формату:

.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

ваш текст будет распечатан в два столбца.

Список встроенных команд MS

1. Для формирования разделов:

  • .PP - стандартный раздел;

  • .LP - раздел без отступа;

  • .QP - раздел цитат;

  • .IP - смещенный раздел;

  • .RS - сдвиг вправо;

  • .RE - сдвиг влево.

2. Для непрерывного вывода текста на экран:

  • .DS (.DE) - стандартный вывод;

  • .DS B (.DE) - сблокированный вывод;

  • .DS C (.DE) - центрированный вывод.

Тексту должна предшествовать одна из перечисленных выше команд, а за текстом должна находиться команда завершения ( .DE ).

3. Сохранение непрерывного следования строк текста на странице:

  • .KS (.KE) - стандартное сохранение

4. Использование сносок для печати в конце страницы.

  • .FS (.FE) - установка сноски;

  • .\u (\d) - использование подчеркивания.

5. Использование заголовков (для печати заголовков):

  • .SH - ненумерованные заголовки;

  • .NH - нумерованные заголовки.

6. Выделение текста (отмена выделения):

  • .I (.R)

запрос .I производит подчеркивание для выделения.

7. Разметка страниц.

Стандартная разметка страницы для ms есть область печати размером 12х22.5 см на стр. размером - 17х27.5 см., причем в центре вверху помещается ее номер, а в середине строки в конце страницы помещается дата. Используя следующие команды, вы можете сделать некоторые изменения в разметки:

  • .ND - удалить дату;

  • .DA - изменить дату;

  • .ds LH , .ds CH , .ds RH - Изменить заголовок

  • .ds LF , .ds CF , .ds RF - Изменить футер

  • % - переместить номер страницы;

Соседние файлы в папке материалы к собеседованию