Date: 30 Jun 97
From: Dima Barsky (d.barsky@ee.surrey.ac.uk)

Проблема старая, но чистого решения я еще ни у кого не
видел. Мое тоже не идеал, но все-таки...

Излагаю рецепт. Список ингредиентов:

1. GNUшная программа enscript версии 1.5 с любого GNU ftp-сервера,
например, ftp://src.doc.ic.ac.uk/gnu/enscript-1.5.0.tar.gz

2. Postscript фонты cmtt12 и cmctt12. Я их посылаю уже в правильном
формате, а изготовить их можно вот так:

a) берешь cmtt12.pfb и cmctt12.pfb с любого CTAN сервера, например
ftp://ftp.dante.de/pub/tex/fonts/cm/ps-type1/paradissa/cmctt12.pfb
и
ftp://ftp.dante.de/pub/tex/fonts/cm/ps-type1/bakoma/cmtt12.pfb

b) конвертируешь pfb в pfa программой pfb2pfa, которая входит в
любой приличный TeX-distribution. В teTeX она точно есть.

c) Извлекаешь font metrics из pfa файлов с помощью getafm (из того
же teTeXa) и ghostscripta:

getafm cmtt12 | cat cmtt12.pfa - | gs -q -DNODISPLAY - >cmtt12.afm
getafm cmctt12 | cat cmctt12.pfa - | gs -q -DNODISPLAY - >cmctt12.afm

3. Ма-аленькая программа-перекодировщик rusprint (исходный текст прилагается).
rusprint.tgz
Занимается тем, что отслеживает переход с латинских букв в русские
и назад, и вставляет соответствующие переключения фонтов в файл для
enscript'a, заодно сдвигая русские буквы в нижнюю половину таблицы.

Подготовительные упражнения:

mkdir ~/.enscript
cp cmtt12.pfa cmtt12.afm cmctt12.pfa cmctt12.afm ~/.enscript
cd ~/.enscript
mkafmmap *.afm (если нет программы mkafmmap - тогда просто:
echo cmtt12 cmctt12 >~/.enscript/font.map


Не забудь скомпилировать rusprint.c и положить куда-нибудь в PATH.

Печатаем так:

rusprint < koi.txt | enscript -e -X ps --download-font=cmtt12 --download-font=cmctt12 | lpr

Вроде бы все.. Предложения, замечания, жалобы?

Дима Барский. d.barsky@ee.surrey.ac.uk