Рецепт. Печать русского текста на PS-принтере. Unix
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
Last-modified: Wed, 24 Jun 1998 10:56:19 GMT