Mal eben schnell drucken in Emacs
lpr oder lp, das sind doch bürgerliche Kategorien.In Emacs gibt es eine ganze Reihe von Wegen, hübsche Ausdrucke zu erzeugen. Die meisten erzeugen am Ende PDFs. Aber wenn man einfach mal schnell einen Ausdruck des Buffers haben will, um darin mit Bleistift und Textmarker zu arbeiten, dann kann das schon mal ein Problem werden. Ich hab einen Abend lang versucht, das zu lösen, und es schliesslich auch geschafft. Damit ich mich daran erinnere gibt es diesen Blogeintrag.
Im Prinzip gibt es den befehl print-buffer
, der bei mir aus Gewohnheit mit CTRL-p aufgerufen wird. Ich erwarte dann, dass aus dem Drucker Papier kommt, das unformatiert einfach das enthält, was ich im Buffer auf dem Bildschirm sehe.
Leider funktionierte das bei mir überhaupt nicht. Emacs benutzt für diese Art Ausdrucke den Linux Kommandozeilenbefehl lpr
, und schnell war klar, das mit dem auch auf der Kommanduzeile kein Blumentopf zu gewinnen ist. Jeder Versuch irgendetwas damit zu drucken endete mit der Meldung, dass der lpr Daemon nicht laufen würde. Jeder Versuch diesen zu starten schlug fehl. Irgenwann dämmerte es mir, das lpr als Tool zum drucken vielleicht einfach zu alt ist.
Zurück in die Zukunft
lpr
ist nämlich ein älterer Befehl, der aus den Zeiten stammt, als Drucker häufig direkt an Unix-Systeme angeschlossen waren. Inzwischen begab es sich aber, das das "Common Unix Printing System" (CUPS) entwickelt wurde, das eine moderne Druckverwaltung auf Unix-Systemen bietet. Und ein wenig Websuche ergab, dass es seinen eigenen Kommandozeilenbefehl mitbringt lp
.
Die Syntax der beiden Befehle kann leicht variieren. lpr
akzeptiert normalerweise einfach den Dateinamen, den ich drucken möchte, während lp
eine Reihe von Optionen akzeptiert, die es mir ermöglichen, verschiedene Aspekte des Druckauftrags zu steuern, wie z.B. die Anzahl der Kopien, den Drucker, das Papierformat usw.
In Emacs gibt es dafür netterweise die Möglichkeit den Befehl, den es unter der Decke nutzt zu konfigurieren. Wir sagen also, das wir statt lpr
lieber lp
vervenden wollen
(setq lpr-command "lp")
Da lp
und lpr
unterschiedliche Parameter auf der Kommandozeile mitgeben, macht es auch keinen Sinn, für lp
weiterhin die lpr
Standard Switches zu nutzen. Die schalten wir also ab
(setq lpr-add-switches nil)
Und Zack funktionierte alles wie erwartet, also habe ich es in meiner Config verewigt
Fazit
Wenn man nicht gerade ein antikes Linux System nutzt macht lpr
keinen Sinn mehr, und sollte durch lp
ersetzt werden. IMHO wäre das mittlerweile auch ein guter Default.
In der Konfiguration kann man übrigens auch eigene Parameter einstellen, die an lp
übergeben werden, ich denke damit bekomme ich dann auch den doppelseitigen Druck hin.