10.4 Стили печати с использованием a2ps contents

Подраздел


10.4 Стили печати с использованием a2ps

Для повышения выразительности печати подсистема a2ps да©т возможность определять и использовать различные стили печати. Нетрудно видеть, что для большей выразительности печати следует использовать особенности печатаемого текста. Представляется очевидным, что стили печати текста программы на языке C и на языке fortran90 должны быть разными. То же самое можно сказать и о других видах текста: текстов скриптов на разных языках, текстов описаний или руководств и т.д. Программа a2ps имеет набор уже подготовленных стилей печати, к описанию которым мы приступим в данном разделе.

10.4.1 Параметры выразительной печати

-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, а также при использовании спецификаций, которые порождены графическими редакторами.

10.4.2 Готовые стили печати

Стили описываются в специальных конфигурационных файлах подсистемы a2ps. Имена файлов имеют вид стиль.ssh, например, ada.ssh. Конфигурационные файлы с описанием стилей находятся в подкаталоге sheets основного каталога a2ps.

10.4.2.1 Стили для языков программирования

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.

10.4.2.2 Стили печати различных файлов

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).

10.4.2.3 Стили печати файлов подсистемы a2ps

a2psrc
Стиль печати инициализационных конфигурационных файлов a2ps.cfg или .a2ps/a2psrc.

ssh
Стиль печати конфигурационных файлов a2ps, описывающих стили печати, например, a2psrc.ssh, или ada.ssh.

10.4.3 PreScript

PreScript был разработан вместе с a2ps. Поскольку заглавные последовательности, специальные символы и прочее были реализованы в a2ps, то было бы неплохо иметь доступ к этим возможностям: таким механизмом является язык описания вводного потока данных, который получил имя PreScript. С помощью этого языка можно описать специальную обработку фонтов с использованием синтаксиса ssh (Style Sheets Implementation - Реализация стилевых листов).

К основным достоинствам PreScript можно отнести: а) очевидную простоту и б) доступность на любой аппаратной платформе.

10.4.4 Синтаксис

Каждая команда в языке PreScript начинается с обратного слеша (SPMquot).

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

Внутри команд PreScript не должно использоваться никаких других команд PreScript, т.е. суперпозиция команд запрещена. Например, следующая строка будет неверно интерпретироваться подсистемой a2ps
SPMquotProblems using recursive calls"
Следует писать так
SPMquotProblems using recursive calls"

Комментарии начинаются знаком процент (SPMquot

10.4.5 Команды PreScript

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.

10.4.6 Примеры использования PreScript

Пусть мы хотим напечатать список пользователей на сервере выделив часть выводимой информации:


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 - означает, что одна страница документа должна размещаться на одной физической странице.


contents
Обновлено: 16.03.2015