pstops [ -q ] [ -b ] [ -wwidth ] [ -hheight ] [ -ppaper ] [ -dlwidth ] pagespecs [ infile [ outfile ] ]
-w, -h | gibt die Maße für die w- bzw. h-Angabe vor. Nach der Skalierung geben sie die Größe des Abschneide-Rechtecks (Clipping) an |
-p | Alternative zu -w und -h zur Angabe des Papierformats a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto oder 10x14. Vorgabe ist a4. |
-b | Verhindert bind-Operatoren im PostScript-Vorspann. Kann nötig sein, falls komplexe Mehr-Seiten-Arrangements gemacht werden sollen |
-d | Zeichnet eine Randlinie um jede Seite in angegebener Breite lwidth (bzgl. der ursprünglichen Skalierung), 1 Punkt breit falls lwidth nicht angegeben wurde. |
-q | Unterdrückt die Ausgabe der rearrangierten Seitennummern auf stderr |
Mit pagespecs erfolgt die Angabe der Verarbeitung.
pstops teilt die Quelle in Blöcke gleicher
Seitenzahl auf, für jede Seite eines Blockes sind unterschiedliche,
sogar mehrfache Aktionen angebbar.
pstops arbeitet die Datei blockweise von vorn nach hinten durch.
Es gilt folgende Syntax:
pagespecs | [modulo:]specs | Allseiten-Spezifikation. Seiten-Nummern sind die der Quelle | ||
modulo | Anzahl der Seiten von jedem Block. Muss >0 sein, Vorgabe ist 1 (also jede Seite einzeln). Geht die Gesamtseitenzahl nicht auf, werden (gedachte) leere Seiten an die Quelle angefügt. | |||
specs | spec[+specs][,specs] | Seiten-Spezifikation für die Seiten in jedem Block | ||
spec | [-]pageno[L][R][U][@scale][(xoff,yoff)] | |||
- | Falls angegeben arbeitet dieses spec blockweise von Dokumentende zum Anfang | |||
pageno | Auswahl einer Seite im Block.
Muss zwischen 0 (die erste Seite im Block)
und modulo-1 (die letzte Seite im Block) liegen. Bei modulo =1 und nur einer spec darf pageno weggelassen werden. | |||
L, R, U | Rotieren der Seite nach links, rechts bzw. 180°. Als Drehpunkt gilt die linke untere Ecke | |||
scale | Skalierung der Seite durch Angabe einer (gebrochenen) Zahl.
Als Ursprung gilt die linke untere Ecke. Eine anisotrope Skalierung (Veränderung des Aspektverhältnisses oder Spiegelung) ist mit pstops leider nicht möglich | |||
xoff, yoff | Verschiebung der Seite in PostScript-Punkten. Positives xoff schiebt nach rechts, positives yoff nach oben. Bei Angabe von cm oder inch erfolgt die Verschiebung in Zentimeter bzw. Zoll, bei w und h als Vielfache der Breite width bzw. Höhe height (Standard: A4) | |||
+ | Die Seiten werden vermischt (über- bzw. nebeneinander)
auf eine Ziel-Seite ausgegeben. (Das ordentliche Nebeneinandersetzen liegt im Geschick von Skalierung und Verschiebung!) | |||
, | Die Seiten werden separat (einzeln hintereinander) ausgegeben. |
Rotation, Skalierung und Verschiebung werden in dieser Reihenfolge ausgeführt, unabhängig von ihrer Sortierung in der Kommandozeile.
2:0@.96(0.5cm,1cm),1@0.96(-0.5cm,1cm)Auf dem HRZ-Drucker „leonardo“ sollte alles 0,1cm nach rechts, also 2:0@.96(0.6cm,1cm),1@0.96(-0.4cm,1cm)
8:0@0.5(0.5w,0.5h)+-7@0.5(0,0.5h)+2@0.5(0.5w,0)+-5@0.5,\ 1@0.5(0,0.5h)+-6@0.5(0.5w,0.5h)+3@0.5+-4@0.5(0.5w,0)Alle Seiten werden auf die Hälfte verkleinert und ohne Drehung auf 2 A4-Seiten verteilt, wie in folgender Illustration:
Vorderseite | Rückseite | |||||||||||||||
" | -7 8 | 0 1 | ← psselect -Seitennummer →← 1-basierte Seitennummer → | 1 2 | -6 7 -5 | 6 2 | 3 ← | psselect -Seitennummer →← 1-basierte Seitennummer → 3 | 4 -4 | 5 |
| |
Bei Vielfachen von nur 4 (bspw. 12) ist die automatische
Aufteilung sehr viel schwieriger! Vielleicht findet jemand eine elegante Lösung.
Am einfachsten erscheint es, an den Anfang 2 Leerseiten auszugeben,
und dann o.g. pstops
-Zeile anzuwenden.
Im Fall von genau 4 Seiten nutzt man das A4-Blatt natürlich doppelt:
4:0@0.5(0.5w,0.5h)+3@0.5(0,0.5h)+0@0.5(0.5w,0)+3@0.5,\ 1@0.5(0,0.5h)+2@0.5(0.5w,0.5h)+1@0.5+2@0.5(0.5w,0)
2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)
2:-0
4:-3L@.7(21cm,0)+0L@.7(21cm,14.85cm)und für die Rückseiten (wie psbook | psnup -2 | psselect -e):
4:1L@.7(21cm,0)+-2L@.7(21cm,14.85cm)
0@1.4(0,0),0@1.4(-14.85cm,0)
0(0,0),0(-1w,0),0(-2w,0),0(-3w,0),\ 0(0,-1h),0(-1w,-1h),0(-2w,-1h),0(-3w,-1h),\ 0(0,-2h),0(-1w,-2h),0(-2w,-2h),0(-3w,-2h),\ 0(0,-3h),0(-1w,-3h),0(-2w,-3h),0(-3w,-3h)(Probleme können Drucker machen, die Ränder weglassen)
pstops -w42cm \ "0(0,-3h),0(-1w,-3h),0(0,-2h),0(-1w,-2h),0(0,-1h),0(-1w,-1h),0(0,0),0(-1w,0)" \ <infile.ps >outfile.ps
pstops 0R@1.414(0,1h),0R@1.414(-1w,1h) | psselect 2-,1
Merke: Mit pstops
kann man gut alle anderen
psutils nachbilden, außer psselect.
übersetzt: H.Haftmann