Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Грофф

groff - это набор программ, содержащих GNU-реализацию troff. Он также включает сценарий, который используется для эмуляции nroff и остальной части семейства roff.


В то время как ROFF и его потомки используются для создания форматированных документов, они делают это способом, довольно чуждым современным пользователям. Большинство документов сегодня создается с использованием текстовых процессоров, которые могут выполнять как составление, так и макет документа за один шаг. До появления графического текстового процессора документы часто создавались в виде двухэтапного процесса, включающего использование текстового редактора для создания композиции и процессора, такого как TROFF, чтобы применить форматирование. Инструкции для программы форматирования были встроены в составленный текст с помощью языка разметки. Современным аналогом такого процесса является веб-страница, которая составляется с помощью какого-либо текстового редактора, а затем отображается веб-браузером с использованием HTML в качестве языка разметки для описания окончательного макета страницы.

Мы не собираемся покрывать Грофф в целом, поскольку многие элементы его языка разметки имеют дело с довольно загадочными деталями типографики. Вместо этого мы сконцентрируемся на одном из его макропакеты это остается широко используемым. Эти пакеты макросов объединяют многие из своих низкоуровневых команд в меньший набор высокоуровневых команд, которые делают использование Грофф гораздо проще.

На мгновение давайте рассмотрим скромную страницу руководства. Он живет в / usr / share / человек каталог как GZIP сжатый текстовый файл. Если бы мы исследовали его несжатое содержимое, мы бы увидели следующее (справочная страница для ls в разделе 1 показано):


[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | голова

. \ "НЕ МОДИФИЦИРУЙТЕ ЭТОТ ФАЙЛ! Он был создан с помощью help2man 1.35.

.TH LS "1" "Апрель 2008" "GNU coreutils 6.10" "Пользовательские команды"

.SH ИМЯ

ls \ - вывести содержимое каталога

.SH ОБЗОР

.B лс

[\ fIOPTION \ fR] ... [\ fIFILE \ fR] ...

.SH ОПИСАНИЕ

. \ "Добавьте сюда любое дополнительное описание.

.ПП

[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | голова

. \ "НЕ МОДИФИЦИРУЙТЕ ЭТОТ ФАЙЛ! Он был создан с помощью help2man 1.35.

.TH LS "1" "Апрель 2008" "GNU coreutils 6.10" "Пользовательские команды"

.SH ИМЯ

ls \ - вывести содержимое каталога

.SH ОБЗОР

.B лс

[\ fIOPTION \ fR] ... [\ fIFILE \ fR] ...

.SH ОПИСАНИЕ

. \ "Добавьте сюда любое дополнительное описание.

.ПП


изображение

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


[я @ linuxbox ~] $ мужчина ls | голова

LS (1) Пользовательские команды

LS (1)

[я @ linuxbox ~] $ мужчина ls | голова

LS (1) Пользовательские команды


ИМЯ

ИМЯ


ls - вывести содержимое каталога

ls - вывести содержимое каталога


СИНТАКСИС

ls [ОПЦИЯ] ... [ФАЙЛ] ...

СИНТАКСИС

ls [ОПЦИЯ] ... [ФАЙЛ] ...


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



[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc -T ascii | голова

LS (1) Команды пользователя LS (1)


ИМЯ

ls - вывести содержимое каталога


СИНТАКСИС

ls [ОПЦИЯ] ... [ФАЙЛ] ...

[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc -T ascii | голова

LS (1) Команды пользователя LS (1)


ИМЯ

ls - вывести содержимое каталога


СИНТАКСИС

ls [ОПЦИЯ] ... [ФАЙЛ] ...


Здесь мы используем Грофф программа с параметрами, установленными для указания Mandoc пакет макросов и драйвер вывода для ASCII. Грофф может производить вывод в нескольких форматах. Если формат не указан, по умолчанию выводится PostScript:



[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc | голова

%! PS-Adobe-3.0

%% Создатель: groff версия 1.18.1

%% CreationDate: 5 февраля, четверг, 13:44:37 2009 г.

%% DocumentNeededResources: шрифт Times-Roman

%% + шрифт Times-Bold

%% + шрифт Times-Italic

%% DocumentSuppliedResources: procset grops 1.18 1

%% Страниц: 4

%% PageOrder: Ascend

%% Ориентация: книжная

[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc | голова

%! PS-Adobe-3.0

%% Создатель: groff версия 1.18.1

%% CreationDate: 5 февраля, четверг, 13:44:37 2009 г.

%% DocumentNeededResources: шрифт Times-Roman

%% + шрифт Times-Bold

%% + шрифт Times-Italic

%% DocumentSuppliedResources: procset grops 1.18 1

%% Страниц: 4

%% PageOrder: Ascend

%% Ориентация: книжная


Мы вкратце упомянули PostScript в предыдущей главе и еще вернемся в следующей главе. PostScript - это язык описания страниц, который используется для описания содержимого печатной страницы на устройстве типа наборного устройства. Если мы возьмем вывод нашей команды и сохраним его в файл (при условии, что мы используем графический рабочий стол с Для ПК каталог):


[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc>

~ / Рабочий стол / foo.ps

[я @ linuxbox ~] $ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc>

~ / Рабочий стол / foo.ps


На рабочем столе должен появиться значок выходного файла. При двойном щелчке по значку программа просмотра страниц должна запуститься и отобразить файл в его визуализированной форме:


изображение

Рисунок 4: Просмотр вывода PostScript с помощью программы просмотра страниц в GNOME


Мы видим красиво набранную страницу руководства для ls! Фактически, можно преобразовать файл PostScript в PDF (Переносимый формат документа) файл с помощью этой команды:



[я @ linuxbox ~] $ ps2pdf ~ / Рабочий стол / foo.ps ~ / Рабочий стол / ls.pdf

[я @ linuxbox ~] $ ps2pdf ~ / Рабочий стол / foo.ps ~ / Рабочий стол / ls.pdf


Ассоциация ps2pdf программа является частью Призрачный сценарий пакет, который установлен в большинстве систем Linux, поддерживающих печать.


изображение

Совет: системы Linux часто включают множество программ командной строки для форматирования файлов.


изображение


изображение

конверсия. Их часто называют, используя соглашение формат2формат. Попробуйте использовать команду ls / usr / bin / * [[: alpha:]] 2 [[: alpha:]] * чтобы идентифицировать их. Также попробуйте поискать программы с названием форматвформат.


изображение

Для нашего последнего упражнения с Грофф, мы вернемся к нашему старому другу дистрибутивы.txt еще раз. На этот раз мы будем использовать TBL программа, которая используется для форматирования таблиц для набора нашего списка дистрибутивов Linux. Для этого воспользуемся нашим предыдущим СЕПГ скрипт для добавления разметки в текстовый поток, который мы будем кормить Грофф.

Во-первых, нам нужно изменить наш СЕПГ скрипт для добавления необходимых элементов разметки (называемый Запросы in Грофф) тот TBL требует. С помощью текстового редактора изменим дистрибутивы.sed к следующему:


# sed скрипт для создания отчета о дистрибутивах Linux


1 я \

.TS \

центральная рамка; \ cb ss \

cb cb cb \ ln c. \

Отчет о дистрибутивах Linux \

=\

# sed скрипт для создания отчета о дистрибутивах Linux


1 я \

.TS \

центральная рамка; \ cb ss \

cb cb cb \ ln c. \

Отчет о дистрибутивах Linux \

=\


Имя

_

Версия

Выпущенный\

Имя

_


s/\([0-9]\{2\}\)\/\([0-9]\{2\}\)\/\([0-9]\{4\}\)$/\3-\1-\2/

$ a \

.ТЕ

s/\([0-9]\{2\}\)\/\([0-9]\{2\}\)\/\([0-9]\{4\}\)$/\3-\1-\2/

$ a \

.ТЕ


изображение

Обратите внимание, что для правильной работы сценария необходимо следить за тем, чтобы слова «Name Version Released» были разделены табуляцией, а не пробелами. Полученный файл сохраним как дистрибутивы-tbl.sed. TBL использует . TS и .ТЕ запросы на начало и конец таблицы. Строки, следующие за . TS request определяют глобальные свойства таблицы, которые, в нашем примере, центрированы по горизонтали на странице и окружены рамкой. Остальные строки определения описывают структуру каждой строки таблицы. Теперь, если мы снова запустим конвейер создания отчетов с новым СЕПГ скрипт получим следующее:


[я @ linuxbox ~] $ sort -k 1,1 -k 2n distros.txt | sed -f дистрибутивы-tbl

.sed | groff -t -T ascii 2> / dev / null

+ ------------------------------ +

| Отчет о дистрибутивах Linux |

+ ------------------------------ +

[я @ linuxbox ~] $ sort -k 1,1 -k 2n distros.txt | sed -f дистрибутивы-tbl

.sed | groff -t -T ascii 2> / dev / null

+ ------------------------------ +

| Отчет о дистрибутивах Linux |

+ ------------------------------ +



изображение

| Название Версия Выпущена |

+ ------------------------------ +


| Fedora

5

2006-03-20

|

| Fedora

6

2006-10-24

|

| Fedora

7

2007-05-31

|

| Fedora

8

2007-11-08

|

| Fedora

9

2008-05-13

|

| Fedora

10

2008-11-25

|

| SUSE

10.1

2006-05-11

|

| SUSE

10.2

2006-12-07

|

| SUSE

10.3

2007-10-04

|

| SUSE

11.0

2008-06-19

|

| Ubuntu

6.06

2006-06-01

|

| Ubuntu

6.10

2006-10-26

|

| Ubuntu

7.04

2007-04-19

|

| Ubuntu

7.10

2007-10-18

|

| Ubuntu

8.04

2008-04-24

|

| Ubuntu

8.10

2008-10-30

|

+ ------------------------------ +


Добавление -t вариант Грофф поручает ему предварительно обработать текстовый поток с помощью TBL, Точно так же -T Параметр используется для вывода в ASCII, а не в выходной носитель по умолчанию, PostScript.

Формат вывода - лучший, на что мы можем рассчитывать, если мы ограничены возможностями экрана терминала или принтера в стиле пишущей машинки. Если мы укажем вывод PostScript и просмотрим его графически, мы получим гораздо более удовлетворительный результат:



[я @ linuxbox ~] $ sort -k 1,1 -k 2n distros.txt | sed -f дистрибутивы-tbl

.sed | groff -t> ~ / Рабочий стол / foo.ps

[я @ linuxbox ~] $ sort -k 1,1 -k 2n distros.txt | sed -f дистрибутивы-tbl

.sed | groff -t> ~ / Рабочий стол / foo.ps


изображение

Рисунок 5: Просмотр готовой таблицы


Лучшие облачные вычисления для ОС в OnWorks: