Кумков С.С.. Как подготовить для печати книгу или методичку.

Регулярно после набора текста встает задача оформить его с иной последовательностью и/или размером страниц. Например:

1) набрана статья и нужно подготовить "копию", т.е. когда каждые две страницы уменьшены и размещены на одном листе А4;
2) набрана методичка и нужно переставить страницы так, чтобы опять же на каждом листе А4 располагалось две исходных страницы, а кроме того порядок этих маленьких страниц был таков, чтобы все складывалось в одну тетрадь;
3) набрана книга (размер страницы уже А5) и "спустить полосы", т.е. переставить страницы так, чтобы получился набор небольших тетрадочек (брошюрок) по 16 или 32 страницы;
4) набран некий файл для двусторонней печати и хочется из него подготовить для печати два файла, содержащие нечетные и четные страницы, соответственно.

Эти задачи и многие другие, им подобные, могут быть решены при помощи утилиты PSTOPS из набора программ PSUTILS (автор - Энгус Дагган, Angus J. C. Duggan). Этот пакет распространяется как отдельно, так и в составе других систем, например, в составе MiKTeX'а. В этом случае, документация по программам пакета, в том числе и по PSTOPS, может быть найдена в директории <директорий MiKTeX'а>\doc\psutils в виде DVI-файлов (если установлены эти утилиты и документация к ним).

Формат командной строки PSTOPS имеет следующий вид:

PSTOPS.EXE [-q] [-b] [-wширина] [-hвысота] [-pстраница] [-dтолщина_линии] формат_расположения входной_файл выходной_файл

Для чего предназначены отдельный опции:

-w, -h, -p:
регулируют размеры страницы выходного файла. Размеры могут быть заданы явно в опциях -w и -h или при помощи опции -p может быть выбран один из стандартных размеров:
a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quatro или 10x14.
По умолчанию выходная страница имеет размер a4. Размеры в опциях -w и -h могут указываться в пунктах (200 или 200pt), миллиметрах (200mm), сантиметрах (10cm) или дюймах (2in).
-b:
при перестановке страниц могут нарушаться связи настроек отдельных страниц и содержимое результирующего файла может не соответствовать содержимому исходного. В этом случае можно попробовать исправить ситуацию, указав эту опцию.
-q:
в инструкции написано, что использование этой опции подавляет надпечату исходных номеров страниц. Однако, в моих экспериментах надпечатка не происходила и в отсутствии этой опции.
-d:
использование этой опции дает возможность нарисовать рамку вокруг каждой исходной страницы. При этом толщина_линии задается в пунктах (1/72 дюйма, 0.035 мм) и масштабируется в соответствии с коэффициентами, заданными в формате_расположения (см. ниже).
входной_файл, выходной_файл:
имена файлов, откуда будет браться и куда будет записываться текст. Следует отметить, что не всякий входной файл может быть обработан корректно. Например, во время экспериментов не обрабатывался файл, полученный посредство печати через драйвер постскриптного принтера HP LaserJet 5P - выходной файл в этом случае содержал лишь пустые страницы.
формат_расположения:
собственно описание того, как группировать и располагать страницы исходного текста. Описание имеет следующий вид:

размер_группы|:[страница_1][,|+ страница_2[,|+ страница_3 ...]]

В начале исходный файл разбивается на группы страниц, по размер_группы в каждой. Последняя группа при необходимости долполняется пустыми страницами. Далее последовательно в каждой группе производится раскладка страниц в соответствии с описанием. Каждое описание страница_n имеет вид:

[-]номер[L|R|U][@масштаб][(смещение_x,смещение_y)]

Здесь: номер - номер страницы в группе (от 0 до размер_группы-1). Если перед номером стоит знак минус, это значит, что страница берется не из текущей группы, а из соответствующей группы, отсчитанной от конца файла (это полезно при создании брошюр).
L|R|U - указывает поворот страницы:
L - на 90 градусов против часовой стрелки (left), R - на 90 градусов по часовой стрелки (right), U - на 180 градусов (up-side down - вверх ногами).
@масштаб - коэффициент растяжения/сжатия страницы. Задание отрицательных значений эквивалентно заданию поворота страницы на 180 градусов.
(смещение_x,смещение_y) - смещение того угла исходной страницы, который раньше был левым нижним, относительно левого нижнего угла новой страницы. Размеры могут указываться в пунктах (200 или 200pt), миллиметрах (200mm), сантиметрах (10cm) или дюймах (2in).

Страницы, описания которых объединены знаком +, укладываются на одну страницу. Группы описаний, разделенные запятой, укладываются на разные страницы выходного файла.

Примеры форматов_описаний:

1) 2:0+1
простой и понятный, но абсолютно бесполезный пример: нечетная и следующая за ней четная страницы укладываются на одну страницу друг поверх друга.

2) 2:0@0.5(52mm,148mm)+1@0.5(52mm,0mm)
уменьшает исходные страницы и располагает их друг над другом по две на каждой странице выходного файла

3) Выделение нечетных и четных страниц можно проделать командами 2:0 и 2:1 соответственно.

4) Пусть нужно уложить страницы по две на а4.

     +---------+  +---------+   
     | +-+ +-+ |  | +-+ +-+ |
     | |1| |2| |  | |3| |4| |  и т.д.
     | +-+ +-+ |  | +-+ +-+ |
     +---------+  +---------+
(для правильного расмотрения нужно наклонить голову вправо :)
2:0L@0.7(210mm,0mm)+1L@0.7(210mm,148mm)
То есть, каждую страницу кладем набок (L), сжимаем с формата а4 до формата а5 (в 0.7 раза), пестраницу из пары кладем вниз новой страницы, вторую - наверх.

5) Приведем пример командной строки, создающей брошюру из файла (в котором N страниц). Рассмотрим сначала, как должны располагаться страницы:

     +---------+   +---------+
     |  N   1  |   |  2  N-1 |
     +---------+   +---------+
     +---------+   +---------+
     | N-2  3  |   |  4  N-3 |  и т.д.
     +---------+   +---------+

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

2:-1L@0.7(210mm,0mm)+0L@0.7(210mm,148mm),1L@0.7(210mm,0mm)+-0L@0.7(210mm,148mm)
Единственный минус этой команды, что обрабатываются ВСЕ группы, и выходной файл будет содержать нужные страницы дважды: в первый раз страница сформируется при обработке группы из начал файла, а второй раз - при обработке группы из конца файла. То есть, нужные нам страницы - это первая половина страниц выходного файла. Их можно "выхватить" при помощи утилиты PSSELECT.

6) "Спуск полос" (создание тетрадей для печати книги). Обычно теради набираются из 16 или 32 страниц, но для комактности я приведу пример тетради из 8 страниц.
Нарисуем их:

     +---------+   +---------+
     |  8   1  |   |  2   7  |
     +---------+   +---------+
     +---------+   +---------+
     |  6   3  |   |  4   5  |
     +---------+   +---------+
И пусть, для простоты, исходные страницы уже подготовлены в формате а5 (чтобы не писать каждый раз уменьшение в 0.7 раза). Тогда команда быдет выглядеть как
   
8:7L(210mm,0mm)+0L(210mm,148mm),1L(210mm,0mm)+6L(210mm,148mm),
     5L(210mm,0mm)+2L(210mm,148mm),3L(210mm,0mm)+4L(210mm,148mm)

(автор - Кумков С.С.: 2445@mail.ur.ru, ICQ:8418050, 2:5080/800.20@fidonet)