Muttprint -- BenutzerhandbuchMuttprint -- BenutzerhandbuchMuttprint -- BenutzerhandbuchBernhard WalleBernhard.Walle@gmx.deVersion 0.72Inhaltsverzeichnis1. Über Muttprint.2. Installation.2.1. Systemvoraussetzungen.2.2. Installation der Dateien auf dem Rechner.2.3. Integration von Muttprint in Mail- und Newsprogramme.3. Konfiguration.3.1. Die Konfigurationsdatei.3.2. Kommandozeilenparameter.3.3. Verschiedene Sprachen.4. Bekannte Fehler.5. Hinweise.5.1. Autor, Lizenz.5.2. Druck von Attachements.5.3. Download.5.4. Danke.1. Über MuttprintDer Ausdruck von Mails aus Mutt (und vielen anderen Mailclients) erfolgt als unformatierter Text. Das reicht zwar grundsätzlich aus, ist aber meiner Meinung nicht so schön wie ein formatierter Ausdruck etwa von Netscape.Ein weiterer Punkt, der mich störte: Der Ausdruck enthält alle am Bildschirm angezeigten Headerinformationen. Ich habe Mutt so konfiguriert, dass z. B. auch Dinge wie „X-Mailer“ angezeigt werden, die aber auf dem Ausdruck weniger schön sind. XFMail verhält sich noch schlimmer: Dort werden immer alle Header ausgedruckt, was den Druck meiner Meinung unbrauchbar macht.Irgendwann kam ich dann auf die Idee, selbst ein Skript zu schreiben, das einen schönen Ausdruck daraus macht. Und das ist das Ergebnis sieht meiner Meinung nach deutlich besser aus als der reine ASCII-Text und ist durchaus mit dem Ausdruck von bekannten Mailprogrammen unter Microsoft Windows vergleichbar.2. Installation2.1. SystemvoraussetzungenMuttprint wurde in der Programmiersprache Perl realisiert, was einen funktionierenden Perl-Interpreter der Version 5 auf Ihrem System voraussetzt. Die sollte standardmäßig auf jedem Linuxsystem der Fall sein.Stellen Sie außerdem sicher, dass zum einen eine LaTeX-Distribution (ich empfehle teTeX ab Version 2.0) und zum anderen die Programme psselect und psnup aus den PS-Utils auf Ihrem System verfügbar sind. Letztere sind nur nötig, wenn Sie Duplexdruck und/oder Papiesparmodus nutzen wollen; außerdem sind sie nicht nötig, wenn Sie CUPS nutzen und Muttprint entsprechend konfiguriert haben, siehe Abschnitt 3.1.2.Wenn Perl 5.6 verwendet wird, muss ein kleines zusätzliches C-Programm übersetzt werden. Es wird benötigt, um Informationen über die aktuelle Sprachumgebung herauszufinden. Es muss also ein C-Compiler installiert sein. Wenn Sie Linux benutzen funktioniert Muttprint auch ohne dieses zusätzliche Programm.Alle benötigten LaTeX-Pakete sind in teTeX enthalten. Sollten Sie eine andere LaTeX-Distribution verwenden, lesen Sie die Datei README.latex, die Informationen darüber enthält, welche Pakete von Muttprint benötigt werden. Nicht vorhandene Pakete müssen nachinstalliert werden.Zum Auslesen des Datums benötigt Muttprint das Perl-Modul Date::Parse1 2. Wird das Modul nicht installiert, funktioniert Muttprint ohne Probleme bis auf die Funktion, die Zeitzone zu konvertieren und das Datum in der Landessprache auszudrucken, siehe Abschnitt 3.1.16.Ab Muttprint 0.72 wird das Modul Text::Iconv 3 4 verwendet, um zwischen den Zeichensätzen zu konvertieren. Sehen Sie zunäst nach, ob das Modul im Lieferumfang Ihrer Linux-Distribution enthalten ist. Suchen Sie dazu nach einer Datei Iconv.pm. Falls nicht installieren Sie es nach. Falls Sie nicht in der Lage sind, Module nachzuinstallieren kann Muttprint auch das externe iconv (oder sogar recode) verwenden. Dies ist jedoch langsamer und fehleranfälliger. Setzen Sie zu diesen Zweck die Variable ICONV_EXTERNAL auf den Wert on, mehr zur Konfigurationsdatei im Abschnitt 3.1. Dies ist aber wirklich nur als absolute Notlösung konzipiert!Damit der Unicode-Zeichensatz UTF-8 unterstützt wird muss der LaTeX-Befehl zum Umschalten des Encodings UTF-8 unterstützen. Dies ist normalerweise nicht der Fall! Eine passende Erweiterung finden Sie im CTAN. Laden Sie sich die Datei ftp://ftp.dante.de/tex-archive/macros/latex/contrib/supported/unicode.tar.gz herunter und gehen Sie wie in der enthaltenen Datei INSTALL vor, um sie zu installieren. Sie brauchen UTF-8 Unterstützung nur dann, wenn Sie in einer UTF-8-Umgebung arbeiten. Den aktuellen Zeichensatz finden Sie unter Linux mit locale charmap, ansonsten nach der Installation mit muttprint --print-locale heraus.2.2. Installation der Dateien auf dem Rechner2.2.1. Installation von HandZunächst muss das Skript ausgepackt werden. Am einfachsten geschieht dies mit dem Befehl$ tar xvfz muttprint-Version.tar.gzWechseln Sie dann in das neu erstellte Verzeichnis:$ cd muttprint-VersionMit dem Skript wird ein passendes Makefile geliefert. Um die Pfade für Ihr System anzupassen, editieren Sie am besten das Makefile mit Ihrem Lieblingseditor.Wie oben schon erwähnt, muss zum ein kleines C-Programm kompiliert werden. Wenn Sie Perl 5.8 und/oder Linux verwenden, können Sie diesen Schritt überspringen. Führen Sie dazu folgenden Befehl aus:$ makeUm das Programm dann zu installieren, brauchen Sie Root-Rechte. Wenn Sie mit dem Befehl su zum Root gewechselt haben, führen Sie die Installation mit# make installdurch. Das Skript sollte jetzt funktionieren.Falls Sie das Skript später deinstallieren möchten und sich alle Dateien noch am gleichen Ort befinden, führen Sie einfach# make uninstallals Root aus.2.2.2. Installation der PaketeFalls Ihre Distribution ein Paketmanagementsystem wie RPM oder DPKG verwendet, bietet sich die Verwendung der entsprechenden Pakete an. Der größte Vorteil ist die einfache Deinstallation.Die meisten aktuellen Linux-Distributionen verwenden das RPM-Paketmanagementsystem. Eine Installation des Paketes erfolgt am einfachsten mit dem Befehl# rpm -Uvh muttprint-Version-Release.noarch.rpm Alle RPM-Pakete sind mit meinem Key (ID DDAF6454) signiert. Nähere Informationen zum Umgang mit RPMs und der Überprüfung der Signatur in Maximum RPM (http://www.rpm.org/maximum-rpm.ps.gz).Die Debian-Pakete werden von René Engelhard <rene@debian.org> erstellt und sind meist wenige Tage nach Erscheinen einer neuen Version von Muttprint verfügbar. Die Installation erfolgt mit:# dpkg -i muttprint_[version]-[release]_all.debWeitere Informationen zu Debian-Paketen in der Debian „Entwicklerecke“ (http://www.debian.org/devel/).Eine weitere Möglichkeit, Debian-Pakete zu installieren ist apt-get.2.3. Integration von Muttprint in Mail- und NewsprogrammeUrsprünglich wurde Muttprint ausschließlich für Mutt entwickelt. Trotzdem kann es ohne Probleme in die folgenden Mailprogramme integriert werden. Einige Beschreibungen habe ich von Benutzern erhalten. Auch in Zukunft wird Muttprint trotz des Namens unabhängig von Mutt bleiben.2.3.1. MuttIn der Datei $HOME/.muttrc oder System-weit in /etc/Muttrc muss folgende Zeile hinzugefügt bzw. geändert werden: set print_command="muttprint"Außerdem muss sichergestellt werden, dass alle benötigten Header beim Ausdruck an Muttprint übergeben werden. Die einfachste Möglichkeit dafür ist ein kleines Makro (in die ~/.muttrc geschrieben), das dafür sorgt, dass alle Header übergeben werden. Gedruckt werden sowieso nur die wichtigsten, siehe Abschnitt 3.1.20.Das Makro sieht folgendermaßen aus: # Alle Header sollen an Muttprint �bergeben werden macro index p "<display-toggle-weed> <print-message> <display-toggle-weed> <exit>" macro pager p "<display-toggle-weed> <print-message> <display-toggle-weed>" Das Makro schaltet zunächst auf Anzeige aller Header um, druckt und schaltet wieder zurück. Damit das Makro korrekt funktioniert, muss die Druckbeschätigung abgeschaltet werden: # Keine Rückfrage beim Drucken set print="yes" Um mehrere Mails auf einmal sinnvoll zu drucken, sollte außerdem folgender Eintrag vorgenommen werden: # Jede Mail einzeln drucken set print_split Nähere Informationen entnehmen Sie bitte der Dokumentation zu Mutt (normalerweise befindet sich diese unter /usr/share/doc/muttprint/manual.txt(.gz)).2.3.2. SlrnEinfach in die Konfigurationsdatei ~/.slrnrc folgendes eintragen: % Muttprint zum Drucken verwenden set printer_name "muttprint" Falls mehr Header gedruckt werden sollen als angezeigt werden, so ist statt des normalen Druckkommandos y die Tastenkombination Esc, 1, y (nacheinander drücken) anzuwenden. Besonders wichtig ist dies für den Druck von X-Faces, siehe Abschnitt 3.1.4.2.3.3. XFMailIm Dialog Misc, Config Misc muss beim Eintrag Print Command das Skript folgendermaßen eingetragen werden: /usr/bin/muttprint -f $f.Anmerkung: Mit einigen Versionen von XFMail wurden Probleme berichtet, weil XFMail den Header beim Ausdruck nicht ausgibt. Das Problem liegt hier nicht bei Muttprint. Als Abhilfe können Sie sich nach einer Version von XFMail umsehen, bei der es funktioniert.Im Archiv der XFMail Entwicklermailingliste (http://slappy.org/listarchives/xfmail/2001-June/002398.html) finden Sie eine Lösungsmöglichkeit zu dem Problem.2.3.4. PineUnter Setup, Printer, Personally select print command das Druckkommando muttprint eintragen. Die Änderungen abspeichern.2.3.5. SylpheedUm dauerhaft Muttprint zum Drucken zu verwenden, muss unter Einstellungen, Allgemeine Einstellungen, Weiteres, Drucken das Kommando muttprint -f %s eingetragen werden.2.3.6. GnusAuch in Gnus kann Muttprint integriert werden. Von einem Benutzer habe ich einen Lisp-Code bekommen, der dies realisiert. Da ich selber aber weder (X)Emacs verwende noch eine Zeile Lisp kann, bitte ich, mir keine Mails mit Fragen dazu zu schicken.Den Code habe ich in README.Gnus integriert und möchte hier auf diese Datei verweisen. Falls Sie Pakete verwenden, sollte sich diese Datei in /usr/share/doc/muttprint/muttprint/ befinden.2.3.7. ExmhWählen Sie zuerst Preferences, dann Text Print Command und setzen Sie Text Print Command auf muttprint -f $file.2.3.8. Andere MailprogrammePrinzipiell funktioniert das Skript mit allen Mailprogrammen, die die folgenden Bedingungen erfüllen:•Das Ausgabeformat muss reiner Text ohne Formatierungen sein.•Das Druckkommando muss sich beliebig wählen lassen.Es werden auch Newsreader unterstützt, da der To-Header optional ist und auch der Newsgroups-Header ausgewertet wird.Wenn Sie Muttprint mit weiteren Programmen einsetzen, schreiben Sie bitte eine kurze Nachricht an mich, wie Sie das Programm konfiguriert haben. Dann werde ich es hier hinzufügen.3. Konfiguration3.1. Die KonfigurationsdateiEinige Dinge können an dem Programm konfiguriert werden. Dies geschieht dauerhaft über die Konfigurationsdatei $HOME/.muttprintrc oder systemweit /etc/Muttprintrc. Benutzereinstellungen überschreiben systemweite Einstellungen.Zusätzlich kann mit der Option -r filename eine weitere Konfigurationsdatei angegeben werden, die dann als letztes eingelesen wird und auch Kommandozeilenparameter überschreibt. Dies eignet sich insbesondere zum Verwenden mehrerer Konfigurationsdateien und lässt sich z. B. gut mit irgendwelchen Hooks kombinieren.Die Konfigurationsdatei ist so aufgebaut, dass verschiedenen Variablen Werte zugewiesen werden -- etwas anders als bei der .muttrc. Zuerst steht der Name der Variablen. Es wird zwischen Groß- und Kleinschreibung unterschieden; übernehmen Sie die Namen genauso wie in der Dokumentation geschrieben. Dann folgt ohne Leerzeichen das Gleichheitszeichen (=) und dann der Wert. Anführungszeichen (' oder ") sind optional.Eine Beispielskonfigurationsdatei (sample-muttprintrc) wird mit dem Skript verteilt. Bei der Installation der RPM oder Debian-Pakete ist sie bei der Dokumentation, also unter /usr/share/doc/muttprint/muttprint/, zu finden.Ein Beispiel für eine korrekte Zuweisung: VARIABLE=WertGrundsätzlich funktioniert das Skript aber ohne Anpassungen, es gibt für jeden Wert Standardeinstellungen. Es empfiehlt sich aber, sich die Möglichkeiten der Anpassung anzuschauen.3.1.1. DruckerSoll nicht über den Standarddrucker gedruckt werden, so kann dies über PRINTER eingestellt werden.Um in eine Datei zu drucken, benutzen Sie folgenden Eintrag, wobei die Datei frei gewählt werden kann: PRINTER="TO_FILE:/foo/bar/test.ps"Beim Duplexdruck wird zusätzlich eine zweite Datei mit dem Zusatz 2 angelegt, also z. B. test2.ps.Wird diese Variable nicht gesetzt, so wertet Muttprint die Umgebungsvariable PRINTER aus um den Drucker zu ermitteln. Diese ist normalerweise auf den Standarddrucker gesetzt. Bei kommerziellen Unices wird außerdem die CDE-Konfigurationsdatei für den Drucker ausgewertet.3.1.2. DruckkommandoStandardmäßig verwendet Muttprint lpr zum Drucken. Soll stattdessen ein anderes Programm benutzt werden, kann die Variable PRINT_COMMAND gesetzt werden. Hierbei wird $PRINTER durch den angegebenen Drucker ersetzt. Der Standard lautet lpr -P$PRINTER.Seit der Version 0.70 bietet Muttprint auch eine direkte Unterstützung des neuen Drucksystems CUPS. Diese wird eingeschaltet indem PRINT_COMMAND auf den Wert CUPS gesetzt wird. Alternativ ist es möglich, ein beliebiges Druckkommando zu setzen das den String $CUPS_OPTIONS enthält, welcher dann letztendlich durch die CUPS-Optionen ersetzt wird.Tipp: Sie können gv - verwenden, um sich eine Druckvorschau anzuzeigen. Diese Option eignet sich gut zum Testen der verschiedenen Einstellungen.3.1.3. PinguinStandardmäßig wird oben rechts ein kleiner Pinguin gedruckt. Soll ein anderes Bild gedruckt werden oder soll sich der Pinguin bei einer lokalen Installation an einem anderen Ort befinden, so kann dies über PENGUIN konfiguriert werden. Das Bild muss als Encapsulated PostScript vorliegen (ein geeignetes Umwandlungsprogramm wäre convert aus dem Image Magick-Paket) und wird auf 2 cm Höhe skaliert. Die Breite darf dabei dann nicht größer als 2 cm sein.Mit dem Wert on versucht Muttprint, den Ort des Pinguins selbst herauszufinden. (Lesen Sie den Quellcode, wenn es Sie interessiert, wo Muttprint sucht.) Dies ist die Standardeinstellung.Zusätzlich werden noch Beispielbilder mitgeliefert, die schon in das EPS-Format konvertiert vorliegen. Sie befinden sich nach der Installation in /usr/share/muttprint.Soll der Druck der Grafik ganz ausgeschaltet werden, so kann PENGUIN auf den Wert off gesetzt werden.3.1.4. Druck von X-FacesX-Faces sind 48 x 48 Pixel gro�e Schwarzweißbilder, welche in einem Header (dem X-Face:-Header) codiert mit jeder Nachricht verschickt werden können. Es handelt sich dabei aber um keinen „offiziellen“ Standard, dennoch hat sich dieser Header speziell in Newsartikeln verbreitet.Muttprint unterstützt den Druck der Bilder anstelle des in der PENGUIN-Variablen spezifizierten Bildes, wenn ein solcher Header existiert. Dazu muss die Variable XFACE auf on gesetzt werden. Existiert kein solcher Header, dann wird das Bild (bzw. nichts) gedruckt.Damit es funktioniert, werden folgende zwei Programme benötigt:•convert aus dem Image Magick-Paket (http://www.imagemagick.org)•uncompface (http://www.ibiblio.org/pub/Linux/apps/graphics/convert/compface-1.4.tar.gz)Beide Pakete sollten in größeren Linux-Distributionen enthalten sein und können einfach nachinstalliert werden.Auf jeden Fall muss sichergestellt werden, dass dieser Header auch tatsächlich an Muttprint übergeben wird. In der oben gezeigten Mutt-Konfiguration (siehe Abschnitt 2.3.1) wird dies gewährleistet. Bei anderen Programmen sehen Sie bitte in der jeweiligen Dokumentation nach.3.1.5. DuplexdruckMuttprint ermöglicht manuellen Duplexdruck, indem es zuerst die ungeraden Seiten und dann die geraden Seiten druckt. Dazwischen wird eine kurze Pause eingelegt.Um den Zeitpunkt zu berechnen, nachdem der Druck der geraden Seiten beginnen soll, muss Muttprint die Druckgeschwindigkeit kennen, siehe Abschnitt 3.1.7.Um den Duplexdruck zu aktivieren, muss DUPLEX auf on gesetzt werden.Wenn Sie einen echten PostScript-Drucker besitzen und dieser Duplexfähigkeiten besitzt, sollten Sie DUPLEX auf printer setzen. Dadurch wird der PostScriptcode verändert, so dass der Drucker angewiesen wird, die Duplexfähigkeit zu benutzen; bei CUPS wird einfach die entsprechende Option benutzt.3.1.6. PapiersparmodusEs ist möglich, zwei Seiten auf ein Blatt Papier im Querformat zu drucken, um Papier und Tinte einzusparen sowie die Druckgeschwindigkeit zu erhöhen. Dies ist eigentlich nur beim Papierformat DIN A4 sinnvoll, da dann genau zwei verkleinerte Seiten auf ein Blatt passen.Um Papier zu sparen, wird die Variable PAPERSAVE auf on gesetzt.Wenn der Papiersparmodus nur aktiviert werden soll, wenn mehr als eine Seite gedruckt wird, kann die Variable auf den Wert optional gesetzt werden.3.1.7. DruckgeschwindigkeitWie vorher schon erwähnt wurde, benötigt Muttprint die Dauer, die der Drucker für eine Seite benötigt. Dies erfolgt mit über SPEED. Als Werte sind ganzzahlige Werte in Sekunden erlaubt (ohne Angabe der Einheit). Vorgabewert sind 30 Sekunden, also SPEED="30".3.1.8. SchriftartDer Ausdruck kann mit verschiedenen Schriften erfolgen. Dazu ist FONT gedacht. Der Wert Latex (Standardeinstellung) ist dabei der Standard-LaTeX-Font aus der EC-Familie. Mit Latex-bright wird die Schrift Computer Modern Bright verwendet. Diese Schrift ist aufgrund ihrer Lizenz oft standardmäßig nicht verfügbar5. Eine andere Wahl ist Latin-modern für die lmodern-Schriften (auf wenigen Systemen verfügbar).An PostScript-Schriften sind noch auch noch Times, Palatino, Utopia, Charter Bookman, CentSchool (New Century Schoolbook), Chancery (Zapf Chancery), Helvetica oder AvantGarde möglich.Natürlich müssen die Schriften auch auf Ihrem System installiert sein. Da aber auf Linux-Systemen die LaTeX-Distribution teTeX Standard ist, dürfte dies kein großes Problem sein.3.1.9. SchriftgrößeDie Schriftgröß kann in begrenztem Umfang mit der Variable FONTSIZE konfiguriert werden. Möglich sind die drei Werte 10pt, 11pt und 12pt.3.1.10. Formatierung des MailtextesDer eigentliche Mailtext wird von Muttprint in Text und Signatur aufgespalten. Wenn eine Signatur vorhanden ist und sie nicht gelöscht werden soll (siehe Abschnitt 3.1.18), können beide Bestandteile getrennt formatiert werden.Zum Drucken des Mailtextes verwendet Muttprint das LaTeX-Paket fancyvrb.sty, das zahlreiche Formatierungsoptionen bietet. Die Optionen, die der Verbatim-Umgebung übergeben werden, können über die beiden Variablen VERBATIMNORMAL (für den normalen Text) und VERBATIMSIG übergeben werden.Die genaue Syntax entnehmen Sie der Dokumentation zu fancyvrb.sty, die mit texdoc fancyvrb aufgerufen werden kann. Standardmäßig wird die Signatur in Kursivschrift gedruckt. Es sind auch Rahmenlinien konfigurierbar.Wenn Sie keine getrennte Formatierung von Mailbody und Signatur wünschen, können Sie VERBATIMSIG auf raw setzen. Dann wird die Signatur ganz normal als Mailtext betrachtet und wie dieser gedruckt (inkl. des Signaturtrenners).Hier einige Beispiele:•fontshape=it,frame=topline: kursive Schrift, Rahmenlinie über dem Block•fontfamily=helvetica,fontseries=b: Schriftart Helvetica, fett•numbers=left,stepnumber=5: Zeilennummerierung alle 5 Zeilen3.1.11. RandeinstellungenDie Ränder können mit vier Variablen eingestellt werden: TOPMARGIN (oberer Rand), BOTTOMMARGIN (unterer Rand), LEFTMARGIN (linker Rand) und RIGHTMARGIN (rechter Rand).Die Variablen sind auf eine ganze Zahl zu setzen, die den Rand in Millimetern (mm) angibt. Andere Maßeinheiten sind nicht möglich; 25,4 mm entsprechen 1 Inch.3.1.12. ZeilenlängeDie maximale Zeilenlänge kann mit WRAPMARGIN eingestellt werden. Längere Zeilen werden automatisch umgebrochen und der Absatz wird neu formatiert. Kürzere Zeilen werden jedoch nicht zusammengezogen.3.1.13. Linien unter/über Kopf- und FußzeileUnter der Kopfzeile bzw. über der Fußzeile können auf Wunsch horizontale Linien gedruckt werden. Standardmäßig sind diese ausgeschaltet.Setzen Sie die Variablen HEADRULE bzw. FOOTRULE auf on oder off.3.1.14. Aussehen der ersten SeiteEs existieren verschiedene Möglichkeiten zur Hervorhebung der Mailheader auf der ersten Seite. Hier eine Auflistung der Möglichkeiten:plainkeine LinienborderLinie nach den Headern (Standardeinstellung)Borderdicke Linie nach den Headernfboxeinfacher Kasten um die Headershadowboxschattierter Kasten um die HeaderovalboxKasten mit abgerundeten Ecken um die Header (dünne Linien)Ovalboxwie ovalbox nur etwas dickere LiniendoubleboxKasten mit doppelten Linien um die Headergreygrau hinterlegte Headergreyboxwie grey nur mit zusätzlichem KastenStilBeschreibungSetzen Sie die Variable FRONTSTYLE auf einen Wert aus der obigen Tabelle.3.1.15. PapierformatUm das Papierformat einzustellen, ist die Variable PAPER zu verwenden. Momentan können die Werte A4 und letter verwendet werden.Eine evtl. vorhandene Datei /etc/papersize, wie sie auf Debian-Systemen üblich ist, wird auch ausgelesen. Eine eigene Einstellung überschreiben jedoch diese.3.1.16. DatumDie DATE-Option erlaubt zwei Einstellungen: original und local. Bei original druckt Muttprint das Datum unverändert so, wie es im Date-Header der Mail erscheint, d. h. auf English und in der Zeitzone des Absenders.Wird diese Option auf local gesetzt, konvertiert Muttprint die Zeitzone in Systemzeitzone und gibt das Datum in der Landessprache aus6.Das Format des Datums kann über die Variable DATE_FORMAT beeinflusst werden. Als Argument wird ein Formatstring akzeptiert, z. B. "%A, %d. %B %Y %H:%M:%S". Die Anführungszeichen sind notwendig, weil der String Leerzeichen enthält. Die strftime(3)-Manpage enthält Details darüber.3.1.17. Format der gedruckten MailadressenEs existieren verschiedene Schreibweisen, wie Mailadressen und Name im Mailheader auftauchen. Hier einige Beispiele:•Bernhard Walle <Bernhard.Walle@gmx.de> •"Bernhard Walle" <Bernhard.Walle@gmx.de> •Bernhard.Walle@gmx.de (Bernhard Walle) Die verwendete Formatierung hängt vom Mailclient des Absenders ab; alle drei sind korrekt. Wird die Variable ADDRESSFORMAT auf den Wert original gesetzt, werden die Adressen unverändert gedruckt.Sollen sie hingegen einheitlich erscheinen, so kann diese Variable einen Formatstring enthalten. Die Voreinstellung ist "%r <%a>,\n". Als Formatstring können beliebige Zeichen verwendet werden, %r wird durch den Namen ersetzt („Realname“), %a durch die Mailadresse und \n gibt einen Newline aus. Die umschließenden Anführungszeichen sind wegen der enthaltenen Leerzeichen nötig. Ein Zeilenumbruch am Ende bedeutet, dass bei mehreren Adressen jede in einer eigenen Zeile steht. Bei der letzten Adresse werden auftretende Newlines und Kommata automatisch entfernt.Zusätzlich können einzelne Bestandteile durch Fett- oder Kursivschrift hervorgehoben werden. Wird ein Bestandteil in Sternchen eingeschlossen (*), wird der innere Teil fett gedruckt; Schrägstriche / stehen für Kursivschrift; Schachtelung ist möglich.Abschließend ein weiteres Beispiel, wie ich meine Mails ausdrucke: "/%r/ (%a),".3.1.18. Signatur abschneidenOft enthält die Signatur unnütze Informationen oder gar Werbung und soll deshalb nicht ausgedruckt werden. Muttprint kann die Signatur abschneiden, wenn sie richtig mit „–– “ abgetrennt wurde -- wichtig ist das Leerzeichen nach den zwei Bindestrichen (einige Mailprogramme erzeugen keine korrekte Signaturtrenner).Dazu muss die Option REM_SIG (ausgesprochen heißt das „remove signature“) auf on gesetzt werden.Sollen andere Signaturtrenner auch als solche erkannt werden so kann die Variable SIG_REGEXP gesetzt werden. Verlangt wird ein regul�rer Ausdruck in Perl-Syntax, die Standardeinstellung ist ^-- $. Wenn Ihnen diese Schreibweise nichts sagt, lassen Sie es bei der Standardeinstellung!3.1.19. Quoting nicht mit ausdruckenOft wird nicht sinnvoll7 zitiert sondern die ganze Mail über mehrere Ebenen angehängt, so dass der Ausdruck zu lang und unübersichtlich wird.Ist REM_QUOTE auf on gesetzt, so wird das Quoting nicht mitgedruckt. Zum Erkennen wird der reguläre Ausdruck von Mutt in der Standardkonfiguration eingesetzt (siehe Mutt-Manual). Es sollte also der von Mutt farblich hervorgehobene Text nicht gedruckt werden, was einem toggle quote (Shift-t) von Mutt auf dem Bildschirm entspricht.3.1.20. Gedruckte HeaderStandardmäßig werden die üblichen für einen Ausdruck interessanten Header gedruckt. Gefällt Ihnen diese Einstellung nicht, so können Sie mit Hilfe der Variablen PRINTED_HEADERS eine eigene festlegen. Geben Sie alle zu druckenden Header durch einen Unterstrich (_) getrennt an.Die Reihenfolge ist dabei entscheidend für den Ausdruck. Groß-/Kleinschreibung wird nicht beachtet. In der Mail nicht vorhandene Header werden einfach ignoriert. Für Fettdruck schließen Sie den Namen des Headers in Sternchen (*), für Kursivschrift in Schrägstriche (/) ein.Die Standardeinstellung lautet: PRINTED_HEADERS="Date_To_From_CC_Newsgroups_*Subject*"Ein weiteres Beispiel für eine sinnvolle Einstellung: PRINTED_HEADERS="/Date/_To_From_*Subject*_X-Mailer"3.1.21. Eigener LaTeX-CodeDie Variable LATEXCODE ist für Leute gedacht, die sich gut mit LaTeX auskennen und den Ausdruck etwas verändern möchten, ohne gleich im Quellcode von Muttprint zu Änderungen vorzunehmen. Zum Beispiel eignet sich die Variable gut, um eigene Schriften zu verwenden.Neben LATEXCODE stehen noch fünf weitere Variablen (LATEXCODE1 bis LATEXCODE5) zur Verfügung, damit der Code schöner aufgeteilt werden kann. Die Variablen werden der Reihe nach in den LaTeX-Quellcode eingebunden.Tipp: Mit folgender Einstellungen kann der Mailtext in einer proportionalen Schrift (anstelle von Schreibmaschinenschrift) gedruckt werden: LATEXCODE="\renewcommand{\ttdefault}{\rmdefault}"3.1.22. Drucken im HintergrundNormalerweise läft Muttprint im Vordergrund ab und terminiert erst, wenn der Druckvorgang erfolgreich abgeschlossen wurde. Dies erleichtert die Ausgabe von Fehlermeldungen. Auf modernen Systemen dauert das Drucken durch Muttprint von normalen Mails nur wenige Sekunden. (Eine Ausnahme kann der erste Ablauf von Muttprint sein, weil dann von LaTeX viele Schriften erzeugt werden müssen.)Manchmal kann es allerdings wünschenswert sein, Muttprint sofort in den Hintergrund zu schicken. Dann kann das Mailprogramm gleich wieder benutzt werden. Dies ist nur dann zu empfehlen, wenn Sie Muttprint bereits getestet haben und so sichergestellt ist, dass keine Fehlermeldungen ausgegeben werden müssen.Zu diesem Zweck können Sie in der Konfigurationsdatei eine Variable BACKGROUND hinzufügen und ihr den Wert on zuweisen. Im Debug-Modus (siehe Abschnitt 3.1.23) wird immer im Vordergrund gedruckt.3.1.23. FehlermeldungenDie Ausgaben von latex und dvips werden nicht angezeigt. Wenn jedoch Probleme bestehen sollten, kann es hilfreich sein, die Fehlermeldungen zu lesen. Dafür kann DEBUG auf 1 gesetzt werden, so dass die Fehlermeldungen in der Datei /tmp/muttprint.log protokolliert werden. Dies kann hilfreich für eine Fehlerbeschreibung bei eventuellen Bugreports sein.3.2. KommandozeilenparameterDie meisten Konfigurationsmöglichkeiten sind auch über Kommandozeilenparameter realisierbar. Dies hat den Vorteil, dass evtl. eine einfachere Integration in das Mailprogramm (z. B. mit eigenen Makros) möglich ist.Eine ausführliche Beschreibung aller Parameter erhalten Sie mit muttprint -h oder in der muttprint(1)-Manpage.Die Wirkung der Optionen ist analog zu der Konfigurationsdatei, jedoch überschreiben Kommandozeilenparameter alle andere Einstellungen.3.3. Verschiedene Sprachen3.3.1. AllgemeinesDas Skript unterstützt verschiedene Sprachen. Im Gegensatz zu früheren Versionen erfolgt die Konfiguration nicht mehr durch entsprechende Variablen in der Konfigurationsdatei sondern über die Sprachumgebung Ihres Betriebssystems.Unter Unix werden dazu Umgebungsvariablen entsprechend gesetzt. Es gibt verschiedene Variablen, abhüngig davon, was lokalisiert werden soll. Beispielsweise wünschen viele Anwender englische Textmeldungen, möchten aber trotzdem in der Lage sein, mit deutschen Texten (und dem entsprechenden westeuropäischen Zeichensatz) zu arbeiten.Für Muttprint sind die Variablen LC_ALL, LANG, LC_MESSAGES, LC_CTYPE und LC_TIME von Bedeutung. LC_CTYPE bestimmt den Zeichensatz, der für die Ein-/Ausgabe verwendet wird. Muttprint erwartet die Eingaben (also insbesondere den Mailtext) in diesem Zeichensatz und gibt alle Meldungen in diesem Zeichensatz aus. LC_MESSAGES legt die Sprache der Meldungen und des Ausdrucks fest und LC_TIME ist für Datumsangaben verantwortlich. Allerdings wird das Datum in der Fußzeile der Mail von LaTeX selbst erstellt und ist daher in der durch LC_MESSAGES spezifizierten Sprache. Daher sollte LC_TIME für Muttprint immer den gleichen Wert wie LC_MESSAGES haben. LC_ALL überschreibt den Wert der vorher genannten Variablen. Wenn LC_ALL gesetzt ist, haben die anderen LC_-Variablen keine Bedeutung. LANG dient als Fallback: Falls beispielsweise LC_MESSAGES nicht definiert ist wird LANG zum Bestimmen der Sprache verwendet. Normalerweise wird deshalb nur LANG gesetzt.Eine Übersicht über alle Übersetzungen finden Sie in der Datei README.translations, die mit der Dokumentation installiert wird und sich im selben Verzeichnis befindet.In Erster Linie betreffen die Sprachanpassungen einige Wörter auf dem erzeugten Ausdruck, also die Beschriftungen der Mailheader und das Datum.Auch der Zeichensatz wird durch die Sprachumgebung Ihres Systems bestimmt. Eine entsprechende Einstellung von Hand kann nicht mehr vorgenommen werden. Allerdings ist die Zahl der unterstützten Zeichensätze bedingt durch die Verwendung von LaTeX begrenzt. Es werden folgende unterstützt: ISO-8859-1 (westeuropäsche Sprachen), ISO-8859-2 (osteuropäsche Sprachen), ISO-8859-3 (südosteuropäsche und sonstige Sprachen), ISO-8859-4 (skandinavische und baltische Sprachen), ISO-8859-9 (Türkisch), ISO-8859-15 (ISO-8859-1 mit einigen Änderungen, insbesondere Eurosymbol), KOI8-R (Sprachen mit kyrillische Schriftzeichen, z. B. Russisch) und UTF-8.Die Unterstützung von UTF-8 ist nicht komplett. LaTeX selbst verwendet 8-Bit-Zeichensätze. Es kann also immer nur die Teilmenge von Unicode verwendet werden, die in der aktuellen Spracheinstellung verwendet wird, d. h. kyrillische Schriftzeichen können nur dann gedruckt werden, wenn eine russische Sprachumgebung angegeben wird. Möglicherweise wird sich das in (ferner) Zukunft ändern. Das Hauptproblem ist LaTeX.3.3.2. ÜbersetzungsdateiDie Muttprint-Übersetzungdateien befinden sich im Verzeichnis /usr/lib/muttprint und haben den Namen translation-Sprache.pl. Es können ohne Änderungen am Skript neue Dateien hinzugefügt werden. In der Datei werden nicht nur einige Wörter aus dem Ausdruck sondern auch der Hilfetext übersetzt.Für neue Übersetzungen nehmen Sie einfach eine alte Datei als Vorlage, kopieren und übersetzen Sie sie. Wenn Sie Ihre Übersetzung anderen Usern zur Verfügung stellen möchten, schicken Sie mir die entsprechende Datei per Mail -- ich werde sie in die nächste Version integrieren.Wichtig: Der Zeichensatz der Datei muss (unabhängig von der Sprachumgebung) UTF-8 sein. Lesen Sie dazu die entsprechende README-Datei, die sich im translation-Verzeichnis von Muttprint (Tarball) befindet.4. Bekannte FehlerAuch Muttprint enthält Fehler. Folgende Probleme existieren derzeit:Problem beim Einlesen der Konfigurationsdatei (RedHat Linux). Aufgrund eines Bugs der bei RedHat Linux 9.0 mitgelieferten Perl-Version funktioniert das Einlesen der Konfigurationsdatei in einer UTF-8-Umgebung nicht. Als Lösung empfiehlt es sich, keine UTF-8-Umgebung zu verwenden (beispielsweise LANG=de_DE@euro) oder das aktuelle Perl von RawHide (ftp://ftp.redhat.com/pub/redhat/linux/rawhide/) zu verwenden. Der Bug wird unter http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=98274 detailliert beschrieben.Fehlerhafter Umbruch bei Perl 5.6.x. Bei allen Perl 5.6.x-Versionen (frühere Versionen können nicht verwendet werden) werden Zeichenketten, die Nicht-ASCII-Zeichen enthalten, zu frü umgebrochen. Umlaute und kyrillische Zeichen zählen dabei als zwei Zeichen. Das Problem tritt in allen Locale-Umgebungen auf und beruht auf einem fehlerhaften Verhalten des Standardmoduls Text::Wrap bei diesen Perl-Versionen. Der Bug tritt nur auf, wenn die Mail überlange Zeichen enthält. Außerdem merkt man es bei einem normalen deutschen Text mit ein paar Umlauten pro Zeile nicht. Gegebenenfalls kann man den Wert von WRAPMARGIN (siehe Abschnitt 3.1.12) erhöhen. Bei aktuellen Perl-Versionen (empfohlen: 5.8.1) ist das Problem behoben.Fehlerhafter Ausdruck des Datums (Perl 5.8.0). Bei Perl 5.8.0 wird das Datum, falls es in der Landessprache ausgedruckt wird (siehe Abschnitt 3.1.16) nicht richtig kodiert. Das Problem liegt darin, dass die genannte Perl-Version die Zeichenkette, nachdem sie schon UTF-8-kodiert ist, noch einmal in UTF-8 kodiert. Das Ergebnis ist ein quasi doppelt UTF-8-kodiertes Datum. Für alle, die sich für das Problem genauer interessieren folgender Link: http://lists.suse.com/archive/suse-programming/2003-Jul/0142.html. Es existieren verbesserte Versionen von Perl 5.8.0, wo dieses Problem behoben ist (beispielsweise Debian unstable).5. Hinweise5.1. Autor, LizenzDas Skript wurde von Bernhard Walle <Bernhard.Walle@gmx.de> geschrieben.Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 der Lizenz oder (wenn Sie es wünschen) jeder späteren Version.Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber ohne jede Gewährleistung -- sogar ohne die implizite Gewährleistung der Marktreife oder der Eignung für einen bestimmten Zweck. Details finden Sie in der GNU General Public License.Sie haben eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten (Datei COPYING). Unter http://www.suse.de/de/private/support/licenses/gpl.html finden Sie eine deutsche Übersetzung der GPL.Anmerkungen, Kommentare, Verbesserungsvorschläge etc. bitte per e-Mail an mich.Die Übersetzungen stehen unter dem Copyright des jeweiligen Übersetzers, siehe README.translations.5.2. Druck von AttachementsMuttprint kann keine Anhänge drucken. Um dies zu erreichen, müsste Muttprint die rohe MIME-Nachricht einlesen und dekodieren. Dies ist ziemlich aufwändig. Zum Beispiel müsste Muttprint eine eventuelle PGP-Entschlüsselung selbst vornehmen, die richtige Wahl bei multipart/alternative treffen und bei message/* rekursiv arbeiten -- um nur einige Sachen zu nennen. Kurz: In Muttprint müssten wesentliche Teile eines Mailclients integriert und viele Einstellungen (wie die PGP-spezifischen) erneut vorgenommen werden. Zudem dürften die wenigsten Mailclients die Übergabe der rohen Nachricht beim Druckkommando unterstützen.Mutt bietet jedoch selbst eine komfortable Funktion, um einzelne Attachements auszudrucken. Für jeden MIME-Typ kann dabei ein eigenes Druckkommando festgelegt werden. Dies kann in der ~/.mailcap festgelegt werden. Nähere Informationen im Mutt-Handbuch, Abschnitt 5.3.3.1.Zum Druck von Bildern könnte ein Skript imageprint verwendet werden (falls der verwendete Druckerfilter zu wenige Formate unterstützt). Hier ein Beispiel: #!/bin/sh target=/tmp/imageprint-$$.ps convert -page A4 $1 $target lpr $target rm $targetDamit kann (fast) jedes Bildformat im Attachementü ausgedruckt werden (Taste p).Benutzer anderer Mailclients lesen bitte die Dokumentation zu ihrem Programm über den Druck von Anhängen.5.3. DownloadDie aktuelle Version kann von http://muttprint.sourceforge.net heruntergeladen werden. Hier befindet sich auch die Homepage und alle alten Versionen.Neue Versionen werden auf Freshmeat (http://www.freshmeat.net) angekündigt.5.4. Dankean alle, die mit ihren Bugreports zur Verbesserung und Erweiterung beigetragen haben! Insbesondere möchte ich Roman Beigelbeck für die zusätzlichen Bilder, Roberto Vallone für die italienische Übersetzung, Vincent Bernat für die französische Übersetzung, Marcelo Ramos für die spanische Übersetzung, Dominik Formánek für die tschechische Übersetzung und den Debian-Maintainern Dr. Guenter Bechly, Chanop Silpa-Anan sowie René Engelhard danken.Schließlich geht mein Dank an alle, die zu freier Software beigetragen haben, die meisten in Ihrer Freizeit, ohne je einen Pfennig dafür erhalten zu haben!Fußnoten1. http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/TimeDate-1.16.tar.gz2. Angaben zur Installation befinden sich in dieser Datei, in der Regel läft es folgendermaßen ab:$ tar xvfz Time-Date-1.16.tar.gz$ perl Makefile.PL$ make$ make test# make install3. http://search.cpan.org/CPAN/authors/id/M/MP/MPIOTR/Text-Iconv-1.2.tar.gz4. Angaben zur Installation befinden sich in dieser Datei, in der Regel läft es folgendermaßen ab:$ tar xvfz Text-Iconv-1.2.tar.gz$ perl Makefile.PL$ make$ make test# make install5. Sie können die Schrift trotzdem selber aus dem CTAN herunterladen und auf Ihrem System installieren. Sie finden die Schriften unter CTAN:/tex-archive/nonfree/fonts/cmbright/ (CTAN = Comprehensive TeX Archive Network besteht aus einem Netzwerk mehrerer Server. Der CTAN-Server in Deutschland ist ftp://ftp.dante.de).6. Dies funktioniert unabhängig von den Muttprint-Übersetzungsdateien über die Betriebssystemfunktionen.7. siehe http://learn.to/quote/ für eine Anleitung zum richtigen Zitieren