Home / LinuxUser / 2001 / 02 / The Answer Girl

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Geheftet

The Answer Girl

Erstmal die kleineren Brötchen

Ein kurzer Blick auf die Manpages zu pstops und mpage verspricht die Lösung für ambitionierte Heftchenherausgeber/innen zwar mit ersterem Tool, doch wirkt letzteres leichter bedienbar. Da es zudem perfekt auf die Aufgabe "Papierstapelverkleinerung durch Drucken mehrerer logischer Seiten auf einer A4-Seite" zugeschnitten scheint, lassen wir zunächst unsere Faulheit siegen.

mpage ist oft so vorkonfiguriert, dass sein Output direkt an den Defaultdrucker geht. Was später nützlich ist, wollen wir zunächst vermeiden, denn was soll die Papiersparerei, wenn wir auf dem Weg dahin massenweise Probeausdrucke produzieren? Wie es sich für ein ordentliches Unix-Filterprogramm gehört, kann mpage seine PostScript-Ausgabe über den "Pfeil" > in eine Datei umleiten.

Mit altgedienten PostScript-Anzeigeprogrammen wie gv und ghostview oder der (aus dem KDE-Dateimanager auch per Drag&Drop bedienbaren) KDE-Alternative kghostview lässt sich die so erzeugte Testdatei stets inspizieren, bevor man sie auf Papier bannt.

So ausgestattet fällt die erste mpage-Übung nicht schwer: Glaubt man der Manpage, bannt mpage -2 diplomarbeit.ps > korrektur.ps die Datei diplomarbeit.ps so auf's virtuelle Blatt, dass immer eine ungerade und die darauf folgende gerade Seite (also insgesamt 2) auf einer A4-Seite landen.

Netterweise hat mpage um jede logische Seite einen hübschen Rahmen gezogen – doch beim Ausdruck sitzt der und damit der gesamte Blattinhalt alles andere als zentriert auf der A4-Seite. Da stimmt wohl was mit dem Format nicht…

Tatsächlich kennt mpage die Option -b, hinter der ohne Leerzeichen das Papierformat angegeben werden muss. Wenn die mit mpage -x erhältliche Kurzbeschreibung des Programms mit

-b papersize: A4|Letter|Legal (default US letter)

erklärt, dass die einkompilierte Voreinstellung das "US letter"-Format ist, braucht die Verschiebung nicht wundern. Dann bleibt wohl nichts anderes übrig, als das mpage-Kommando um -ba4 anzureichern, sofern wir auf A4 ausdrucken. Gerade wenn man ohnehin unnummerierte Seiten auf Papier bannen will (wie die, die z.B. Netscape 4.x unter File/Save as... produziert, wenn man als Format for saved document PostScript auswählt), hilft ein -X, das den Namen der Datei sowie das Datum in der Kopfzeile verewigt, beim Ordnunghalten. Die Option -o wie "outlines off" schaltet den per Default erzeugten Rahmen um jede einzelne logische Seite ab.

All das lässt sich bei Netscape u.a. natürlich auch ohne das Zwischenspeichern in einer echten PostScript-Datei nutzen: Ein mpage -ba4 -X |lpr als Print Command wie im in Abbildung 1 gezeigten File/Print-Dialog druckt die angezeigte Webseite seitennummeriert und mit der Quelle stdin versehen auf A4-Papier aus, wobei – die Option -4 muss als Standardeinstellung nicht mit angegeben werden – vier logische Seiten auf einer A4-Seite landen.

Abbildung 1

Abbildung 1: Mit mpage die Druckausgabe von Netscape beeinflussen

Diese werden dabei wie in Abbildung 2 angeordnet – links, wenn Netscape die logischen Seiten im Portrait-Format, rechts in Landscape ausrichtet, bevor mpage zum Zuge kommt. Will man auf einem hochkanten Blatt oben von links nach rechts die logischen Seiten 1 und 2 sowie darunter 3 und 4 haben, muss man die mpage-Option -a einschalten.

Abbildung 2

Abbildung 2: Defaultanordnung logischer Seiten bei mpage: rechts lag das Ausgangsmaterial im Querformat vor, links im Hochformat

Der aufmerksamen Manpage-Leserin ist inzwischen natürlich längst aufgefallen, dass mpage neben weiteren spannenden Optionen auch eine beherrscht, die das "Pipen" der mpage-Ausgabe ins Druckkommando lpr (so überhaupt nötig) überflüssig macht: mpage -P druckt von sich aus auf dem Standarddrucker aus (wie erwähnt kann man dieses Flag je nach Vorkonfiguration ggf. ganz weglassen), mit -Pdruckername wird wie bei lpr ein anderer eingerichteter Drucker ausgewählt.

Doch bei aller Schwelgerei in mpage-Optionen lässt sich nicht verhehlen, dass sich Enttäuschung breit macht: Heftchen lassen sich nicht mal mit -E (jede 1. und 4. Seite gemeinsam auf einer Seite) und -E (jede 2. und 3. Seite auf einer Seite) erstellen – es sei denn, es handelt sich um ein sehr dünnes Heft, das lediglich aus einem einzigen Bogen Papier besteht.

Ordnung ins Chaos

Da empfiehlt sich pstops schon dem Namen nach als Allheilmittel in Sachen PostScript-interner Umwandlung. Doch auch dieses Tool kann nicht hexen und erwartet, dass die Quelldatei die Konventionen zur Strukturierung von PostScript-Dokumenten ("Document Structuring Conventions" – DSC) des PostScript-Erfinders Adobe einhält.

Leider tun das weder alle PostScript-ausgebende Programme, noch beherrscht pstops sämtliche DSC-Anforderungen von A bis Z, sodass es vorkommen kann, dass pstops' Künste versagen.

Doch das soll nicht als Ausrede dienen! Jetzt heißt es, tapfer zu sein und der pstops-Manpage ins Auge zu sehen. Und damit wir den Wald vor lauter Bäumen auch sehen, tun wir gut daran, erst einmal zu spezifizieren, was wir wollen.

Wir möchten unsere Gedichtsammlung gern so ausdrucken, dass ein Heftchen heraus kommt. Damit das geht, muss die logische Seitenanzahl durch vier teilbar sein – pstops wird am Ende soviel Leerseiten hinzu fügen, dass das passt. Auf der Vorderseite eines A4-Bogens landen dann jeweils die erste (rechts) und die letzte (links), die dritte (rechts) und die vorvorletzte (links) usw. Auf die Rückseite von Bogen 1 kommen Seite 2 (links) und die vorletzte Seite (rechts). Bei einem 12-seitigen Heftchen sieht das aus wie in Tabelle 1a.

Da wir pstops jedoch schlecht mit einer solchen Tabelle füttern können, müssen wir das Ganze ein wenig formalisieren. Wenn wir die zu druckenden Seiten gedanklich so durchzählen, dass wir aller vier Seiten neu mit 0 beginnen (bei zwölf Seiten also 0 1 2 3 0 1 2 3 0 1 2 3), ergibt sich folgendes Schema: Auf die erste zu bedruckende Vorderseite kommt rechts die erste noch nicht gedruckte logische Seite, die beim Durchzählen gedanklich mit 0 markiert wurde. Links daneben wird die letzte ungedruckte Seite, also die erste Seite von hinten, gesetzt, wobei die Division ihrer Seitenzahl minus 1 durch vier den Rest 3 ergibt.

Auf die Rückseite kommt mit dem Rücken zur letzten Seite die zweite Seite von hinten (Rest: 2), links daneben findet die zweite Seite von vorn (Rest 1) ihren Platz.

Das ganze Prozedere – wir teilen Seitenzahl-1 durch 4 und schreiben den Rest auf – nennt sich übrigens modulo-Division.

Die ersten vier logischen Seiten sind damit abgehakt, die alte Seite 3 wird zur neuen logischen Seite 1, und wir beginnen wieder von neuem mit der Modulo-Durchnummerierung: 0 1 2 3 0 1 2 3. Hier – oh Wunder – wiederholt sich das Schema: Auf die nächste Vorderseite gehören die erste Seite von hinten mit Rest 3 und die erste Seite von vorn mit Rest 0. Die Rückseite teilen sich wiederum 1 von vorn und 2 von hinten.

Das selbe Spielchen wiederholt sich mit den verbleibenden vier logischen Seiten, und mit dem so gefundenen Schema (vgl. Tabelle 1b) hätten wir den Anfang der Druckseitenspezifikation gefunden, die in der pstops-Manpage so angegeben ist:

pstops […] pagespecs […][…]
 pagespecs folgt folgender Syntax:
     pagespecs   = [modulo:]specs
     specs       = spec[+specs][,specs]
     spec        = [-]pageno[L][R][U][@scale][(xoff,yoff)]

Wir haben den Teiler 4 für den modulo-Wert, die Vorderseiten-specs beginnen mit der spec für die linke Seite: einem -, weil wir eine Seite von hinten haben wollen, gefolgt von der pageno 3. Da wir noch eine spec für die rechte Seite dazu wollen, gibt es ein + und eine neue spec: kein Minus diesmal, da wir eine logische Seite von vorn nehmen, als pageno hatten wir die 0 heraus gefunden.

Damit lauten die pagespecs für alle Druckvorderseiten bislang:

4:-3+0

Analog hilft ein Blick in Tabelle 1b dabei, die bislang gefundene Seitenbeschreibung für die Druckrückseite aufzuschreiben:

4:1+-2

Tabelle 1a: Blatteinteilung für ein 12-seitiges A5-Heftchen

A4-Blatt Nr. Vorderseite Rückseite
links rechts links rechts
1 12 1 2 11
2 10 3 4 9
3 8 5 6 7

Tabelle 1b: … auf eine Formel gebracht

Noch nicht berücksichtigte Seiten durchgezählt von 0 bis 3: 3 0 1 2
Von vorn (+) oder von hinten (-)? - + + -
Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 108 Punkte (5 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...