Next: 10.5 Инициализационные файлы a2ps
Up: 10. Подсистема печати текста
Previous: 10.3 Простые примеры использования
Подраздел
Для повышения выразительности печати подсистема a2ps да©т
возможность определять и использовать
различные стили печати. Нетрудно видеть, что для большей
выразительности печати следует использовать особенности печатаемого
текста. Представляется очевидным, что стили печати текста
программы на языке C и на языке fortran90 должны быть
разными. То же самое можно сказать и о других видах текста: текстов
скриптов на разных языках, текстов описаний или руководств и т.д.
Программа a2ps имеет набор уже подготовленных стилей печати, к
описанию которым мы приступим в данном разделе.
- -highlight-level=level
- - определить степень выделения текста значением level. Возможные
значения level
- none
- - никакого выделения;
- normal
- - обычное выделение;
- heavy
- - более, чем обычное выделение. Более детальную информацию
по поводу heavy можно получить посредством команды
a2ps -list=style-sheets
- -g
- - сокращ©нное наименование для параметра -highlight-level=heavy.
- -E language
- -pretty-print[=language]
- - без аргумента означает установку автоматического выбора стиля печати. В
противном случае - установить стиль печати в значение language.
Заметим, что если language равно plain, то это выключает
выразительную печать.
Имеющиеся стили печати можно получить посредством команды
a2ps -list=style-sheets
Часть из них рассматривается ниже.
Если значение language имеет вид KEY.ssh, то программа не
производит поиск стиля в библиотеке, а бер©т указанное имя файла в
качестве стиля печати.
- -strip-level=num
- - в зависимости от значения num производится следующее:
- 0
- - вс© печатается;
- 1
- - обычные комментарии не печатаются;
- 2
- - серь©зные комментарии не печатаются;
- 3
- - никакие комментарии не печатаются.
Этот параметр удобен при печати программ Java, а также при
использовании спецификаций, которые порождены графическими редакторами.
Стили описываются в специальных конфигурационных файлах подсистемы a2ps. Имена файлов имеют вид стиль.ssh, например, ada.ssh.
Конфигурационные файлы с описанием стилей находятся в подкаталоге sheets основного каталога a2ps.
- 68000
- Предназначен для печати программ на ассемблере 68K. Предполагается, что
такой стиль подходит и для печати программ на других видах ассемблеров.
- ada
- Стиль печати программ на языке Ada.
- sh
- Стиль печати текстов скриптов оболочек sh и bash.
- c
- gnuc
- Стили печати программ на языке C.
- csh
- tcsh
- Стили печати текстов скриптов оболочек csh и tcsh.
- cpp
- objc
- Стили печати языков C++ и Objective C.
- caml
- Стиль печати языка ML.
- claire
- Стиль печати языка Claire.
- clisp
- Стиль печати языка Common Lisp.
- coqv
- Стиль печати языка Coq Vernacular.
- dc_shell
- Стиль печати языка описания электронных схем Design Compiler.
- eiffel
- Стиль печати языка Eiffel.
- elisp
- Стиль печати языка Emacs Lisp.
- eps
- Стиль печати языка Encapsulated PostScript. Неверные операторы
выделяются в тексте другим начертанием.
- tclx
- tk
- vtcl
- Стили печати языков Extended Tcl, Tk, Visual Tcl.
- fortran
- for-fixed
- for-free
- for-free
- Стили печати языка Fortran.
- for77-fixed
- for77-free
- for77kwds
- Стили печати языка Fortran 77.
- for90-fixed
- for90-free
- for90kwds
- Стили печати языка Fortran 90.
- java
- Стили печати языка Java.
- modula2
- modula3
- Стили печати текстов с использованием вариантов языка Modula.
- oberon
- Стиль печати языка Oberon (потомок Pascal и Modula2).
- pascal
- Стиль печати языка Pascal.
- perl
- Стиль печати языка Perl.
- python
- Стиль печати языка Python.
- rexx
- Стиль печати языка REXX.
- sather
- Стиль печати языка Sather.
- scheme
- Стиль печати языка Scheme.
- zsh
- Стиль печати языка (оболочки) zsh.
- card
- Этот стиль помогает подготовить выразительную карту с кратким описанием
параметров любой программы в Linux. Пример такой карты можно получить с
помощью команды
wget -help | a2ps -Ecard -1 -stdin=wget
Здесь a2ps имеет несколько параметров. -Ecard означает, что
установлен стиль card. -1 - одна страница документа на одной
физической странице, наконец -stdin=wget означает, что
вводному потоку следует присвоить имя wget. Это имя появится в
заголовке напечатанных страниц.
- chlog
- Стиль описывает файлы, которые содержат список изменений (ChangeLog).
- gmake
- make
- Стили печати make-файлов.
- html
- vrml
- Стиль печати html-файлов и vrml-файлов.
- lace
- Эквивалент make-файлов для языка Eiffel.
- mail
- Стиль для печати электронных сообщений. Полезно использовать совместно с
параметрами -g -Email -strip.
- initora
- Стиль печати инициализационного файла Oracle init.ora.
- ps
- Стиль печати файла в формате PostScript.
- pre
- Стиль печати PreScript. Это специальный стиль поддерживаемый
подсистемой a2ps, который позволяет использовать во вводном потоке
ряд операторов форматирования (см. 10.4.3).
- pretex
- Стиль печати PreTeX.
Это специальный стиль поддерживаемый
подсистемой a2ps, который позволяет использовать во вводном потоке
ряд операторов форматирования подмножества операторов LaTeX (см.
info a2ps).
- texscript
- Стиль печати TextScript.
Это специальный стиль поддерживаемый
подсистемой a2ps, который позволяет использовать во вводном потоке
операторы форматирования как типа PreTeX так и PreScript
(подробнее смотрите info a2ps).
- a2psrc
- Стиль печати инициализационных конфигурационных файлов a2ps.cfg или
.a2ps/a2psrc.
- ssh
- Стиль печати конфигурационных файлов a2ps, описывающих стили печати,
например, a2psrc.ssh, или ada.ssh.
PreScript был разработан вместе с a2ps.
Поскольку заглавные последовательности, специальные символы и прочее были
реализованы в a2ps, то было бы неплохо иметь доступ к этим
возможностям: таким механизмом является язык описания вводного
потока данных, который получил имя PreScript.
С помощью этого языка можно описать специальную обработку фонтов с
использованием синтаксиса ssh (Style Sheets Implementation -
Реализация стилевых листов).
К основным достоинствам PreScript можно отнести: а) очевидную
простоту и б) доступность на любой аппаратной платформе.
Каждая команда в языке PreScript начинается с обратного слеша
(SPMquot
).
Если команда использует аргумент, то он обязательно заключается в фигурные
скобки. Не допускается никаких пробелов между командой и аргументом.
Внутри команд PreScript не должно использоваться никаких других
команд PreScript, т.е. суперпозиция команд запрещена.
Например, следующая строка будет неверно интерпретироваться подсистемой
a2ps
SPMquot
Problems using recursive calls"
Следует писать так
SPMquot
Problems using recursive calls"
Комментарии начинаются знаком процент (SPMquot
- CkeywordBtextD
- CKeywordBtextD
- Выделить слегка/сильно данный text. Может использоваться лишь для
нескольких расположенных рядом слов.
- CcommentBtextD
- CCommentBtextD
- Тексту text придать специальное начертание.
Текст text может быть удал©н, если используется параметр -strip.
- ClabelBtextD
- CLabelBtextD
- Текст text должен рассматриваться как определение или как важный
пункт вводного документа.
- CstringBtextD
- Вывести текст text как выделенную строку, например, с фонтом
Times.
- CerrorBtextD
- Вывести текст text как сообщение об ошибке, т.е. с помощью
отличающегося фонта.
- CsymbolBtextD
- Текст text написан с использованием символьного фонта PostScript. В
целом эта возможность не совместима с LaTeX, однако рекомендуется
использовать в тех случаях, где специальные ключевые слова обозначающие
символы совпадают с LaTeX.
Примерами таких кома могут быть:
Crightarrow или COmega,
которые произведут на печати стрелку вправо или греческую букву омега
соответственно.
Полный список таких символов можно узнать из файла с именем symbols.ssh, который находится в подкаталоге sheets
основного каталога подсистемы a2ps.
- CheaderBtextD
- CfooterBtextD
- Использовать текст text как заголовок или подстрочное примечание на
текущей странице.
Используется текст text из последнего оператора, если их оказалось
несколько.
- CencodingBkeyD
- Изменить динамически текущую кодировку входного потока. После этой команды
текст будет печататься с использованием кодировки key.
Пусть мы хотим напечатать список пользователей на сервере выделив часть
выводимой информации:
cat /etc/passwd | \
awk -F: \
'{print "\\Keyword{" $5 "} (" $1 ") \\rightarrow\\keyword{" $7 "}"}'\
| a2ps -Epre -P display -1
Обратите внимание на два обратных слеша, которые необходимо использовать
чтобы учесть особенности интерпретации команды оболочкой bash. В то
же время, если запрос для программы awk будет находиться в файле
(тогда было бы написано awk -F: -f input.awk ..., то
там не потребуется двух обратных слешей.
Итак, в примере указано следующее. Выделенным шрифтом печатается поле
комментария, затем, в скобках, имя для логирования в систему (login name),
далее стрелка вправо, затем выделенным шрифтом печатается имя оболочки,
которую предпочитает пользователь.
Здесь, a2ps имеет несколько параметров. Значением параметра -E
является pre, т.е. определяет стиль печати PreScript.
Значением параметра -P является display, т.е. вывод программы будет направлен во вьюер
gv. Наконец, -1 - означает, что одна страница документа должна
размещаться на одной физической странице.
Next: 10.5 Инициализационные файлы a2ps
Up: 10. Подсистема печати текста
Previous: 10.3 Простые примеры использования
Andrei Chevel
Andrei.Chevel@pnpi.spb.ru