Jenseits von WYSIWYG bietet neben LaTeX auch das schlanke Lout eine Alternative für das Erstellen hochwertiger Dokumente. Zum Bearbeiten der Texte reicht ein einfacher Editor.
Beim Bearbeiten von Texten ergeben sich durchaus Vorteile daraus, wenn Sie jenseits von WYSIWYG-Programmen Dokumente als “Quellcode” mit einem Markup schreiben. Das Druckergebnis erfordert dann zwar einen zusätzlichen Schritt, und manchmal verwirrt, das unterschiedliche Textelemente zusammen stehen, nur durch Steuerzeichen unterbrochen. Andererseits lassen sich Elemente wie etwa Querverweise und andere sonst unsichtbaren Bestandteile so viel angenehmer editieren.
Erfahrungsgemäß bewähren sich Textsatzsysteme wie zum Beispiel LaTeX speziell bei langen und aufwendigen Dokumenten, integrierte Makrosprachen erlauben dabei beliebige Sondererweiterungen. Ihre volle Stärke spielen solche Systeme aus, wenn es um Indices oder automatische Verzeichnisse geht. Wem der Einstieg bei LaTeX aber zu mühselig erscheint, der sollte einen Blick auf Lout [1] werfen.
Hintergrund
Der Informatiker Jeffrey H. Kingston hat Lout (Deutsch: “Rüpel”, aktuelle Version: 3.39) an der Universität Sydney entwickelt. Die Arbeit begann bereits 1984 mit einem Forschungsprojekt über Auszeichnungssprachen. Während Lout eigentlich die für die Quelldateien entwickelte Textsatz-Sprache meint, verweist “Basser Lout” (Kingston arbeitet im Basser-Department) auf die 1991 veröffentlichte Implementation, also das eigentliche Programm – alternative Implementierungen sind theoretisch möglich.
Tatsächlich steht ein ausgeklügeltes Konzept hinter der Software, und Lout gehört aus diesem Grund zu den höheren Markup-Sprachen. Es beeindruckt besonders vor dem Hintergrund, dass die Implementation nur rund 1,6 MByte umfasst, aber dennoch zahlreiche Features mitbringt. Lout wurde in ANSI C geschrieben und unterliegt der GNU General Public License. Der Lout-Interpreter gibt in der Regel Postscript-Code aus, unterstützt aber mittlerweile auch den Export von PDF-Dateien.
Vom Funktionsumfang reicht Lout durchaus an ein LaTeX-Grundsystem heran, während es vom Ressourcenverbrauch fast so schlank bleibt wie das Urgestein der Textformatierungs, Troff. Ein Lout-Paket steht in den Repositories vieler Distributionen bereits parat, und einen Lout-Quelltext schreiben Sie mit einem beliebigen Editor.
Dass Lout nicht ähnlich populär ist wie LaTeX sagt nichts über den Nutzwert der Software aus. Als Dokumentation existiert immerhin ein Benutzerhandbuch [2], das gut 335 Seiten umfasst, sowie ein Expertenhandbuch [3] (unter Debian und Ubuntu beide im Paket lout-doc), welche die Entwickler beide natürlich mit Lout erzeugt haben. Außerdem existiert eine recht aktive Mailingliste [4], deren Teilnehmer sich über jeden Neuling freuen.
Lout-Dokumente
Zu Beginn eines Lout-Quelltextes geben Sie zunächst mit dem Befehl @SysInclude eine Dokumentenklasse an, wobei die Standardklasse doc für einfache Dokumente vorgesehen ist. In die Umgebung zwischen @Doc @Text @Begin und @End @Text kommt nun ein beliebiger Haupttext (Listing 1). Dann speichern Sie die Datei ab und erzeugen auf der Kommandozeile mit dem Aufruf
$ lout -Z Datei.lout -o Datei.pdf
beispielsweise die entsprechende PDF-Datei. Die Entwickler bezeichnen die PDF-Ausgabe mit -Z immer noch als experimentell. Tauchen Probleme auf, erzeugen Sie zuerst Postscript und nutzen dann das Tool Ps2pdf. Haben Sie (wie im Beispiel) keine Grundeinstellungen verändert, dann zeigt die PDF-Datei eine A4-Seite mit Rand sowie Text in der Schrift Times New Roman mit einer Größe von 12 Punkt. Einfacher geht es kaum mehr.
Listing 1
@SysInclude{doc}
@Doc @Text @Begin
Hello, world!
@End @Text
Neben den grundlegenden Befehlen (siehe Tabelle “Handwerkszeug”) existieren in Lout komplexere Elemente, die meistens als Umgebungen angelegt sind. Dazu gehören zum Beispiel Aufzählungen, bei denen Sie zwischen @NumberedList und @EndList jeweils mit @ListItem beliebig viele Punkte angeben. Es gibt eine ganze Reihe weiterer Listentypen. Außerdem haben Sie die Möglichkeit, einer Liste mit @Heading{} ein Titel mitzugeben. Auch Kapitel funktionieren als Umgebungen: Sie legen Sie jeweils mit @Section @Title{} @Begin und @End @Section an, wobei alle Kapitel bei doc von @BeginSections und @EndSections eingeklammert sein müssen.
Handwerkszeug
| Befehl | Funktion |
|---|---|
@PP |
neuer Absatz |
@LP |
neuer Absatz ohne Einzug |
@LLP |
neue Zeile |
@NP |
neue Seite |
@B{} |
fett |
@I{} |
kursiv |
@Underline{} |
unterstrichen |
@Display @Heading{} |
Überschrift |
@LeftDisplay @Heading{} |
linksbündige Überschrift |
@FootNote{} |
Fußnote |
@EndNote{} |
Endnote |
@LeftNote{} |
Randbemerkung links |
@Date |
Datum ausgeben |
@Time |
Zeit ausgeben |
@PageMark{foo} |
Marke setzen |
@PageOf{foo} |
Seitenzahl davon ausgeben |
Die Klasse doc findet sich in der Datei /usr/share/lout/include/doc. Dort stehen die Standardeinstellungen wie @InitialFont{Times Base 12p} und @InitialLanguage{English}. Möchten Sie grundsätzlich eine der anderen innerhalb von Lout verfügbaren Schriften verwenden, wie zum Beispiel Helvetica, und schreiben Sie hauptsächlich Texte in deutscher Sprache, dann stellen Sie dies global ein (Listing 2). Das gilt auch für Parameter wie zum Beispiel @PageHeaders{NoTitles}, der – etwas irritierend – Seitenzahlen in den Fußzeilen erzeugt (Listing 2).
Listing 2
@SysInclude{pie}
@SysInclude{doc}
@Document
@InitialLanguage{Deutsch}
@InitialFont{Helvetica Base 12p}
@PageHeaders{NoTitles}
//
@Text @Begin
Das ist eine @I{Testdatei}. Hier findet man @B{einige} der gängigen Befehle.
@LP
Hier beginnt ein neuer Absatz. Lout @FootNote{Ein Textsatzsystem} erzeugt sehr saubere PDF-Dateien.
Jetzt kommt mal eine Liste:
@NumberedList
@ListItem Hamburg
@ListItem Berlin
@ListItem Düsseldorf
@EndList
@BeginSections
@Section @Title{Das erste Kapitel}
@Begin
@LP
Das ist ein Testkapitel. Hier wird einiges besprochen
@End @Section
@Section @Title{Das zweite Kapitel}
@Begin
@LP
Heute, am @Date bringen wir mal eine Kuchengrafik:
@CD @Pie
aboveextra{2c}
belowextra{1.5c}
belowcaption{Ein typischer Tag}
labelradius{external}
{ @Slice
detach{yes}
weight{23}
paint{lightgreen}
label{Essen @LLP (23%)}
@Slice
weight{27}
paint{lightred}
label{Fernsehen @LLP (27%)}
@Slice
weight{50}
paint{lightyellow}
label{Computer @LLP (50%)}
}
@End @Section
@EndSections
@End @Text
Zu den Stärken von Lout gehört, dass Sie einfache Vektorgrafiken wie Fluss- oder Liniendiagramme ganz einfach im Quelltext erstellen. Über SysInclude{pie} im Dokumentenkopf binden Sie das entsprechende Paket ein. Ein Kuchengrafik leiten Sie mit dem Befehl @Pie ein, wobei Sie die Sektoren mit dem Unterbefehl @Slice bestimmen. Dabei dürfen Sie eine Farbe für ein Teilstück angeben (was besonders in Kombination mit der Slides-Klasse für Präsentationen interessant ist ) und steuern bei Bedarf, ob die Beschriftung innen oder außen erscheint.
Lout bietet darüber hinaus Befehle für den Formelsatz, Funktionen für Indices, Glossare und Literaturverzeichnisse. Obendrein formatiert der Interpreter den Code verschiedener Computersprachen automatisch. Lout erweist sich als zuverlässig und umfangreich, und tatsächlich existieren im naturwissenschaftlichen Bereich und in der EDV eine ganze Reihe von Büchern, welche die Autoren mit Lout geschrieben haben.
Wem das noch nicht genügt, der kann Lout mit selbst geschriebenen Funktionen und beliebigen Schriften erweitern. Bereits nach einer kurzen Einarbeitungszeit haben Sie ein sehr nützliches Werkzeug für das Erstellen hochwertiger Dokumente an der Hand. Eine nicht mehr ganz zeitgemäße Einschränkung weist Lout allerdings auf: Das Programm kommt mit Unicode nicht zurecht. Daher müssen Sie Dateien mit Umlauten vor dem Verarbeiten unbedingt nach Latin-1 umwandeln.
Glossar
-
Troff
-
Von AT&T in den Siebziger Jahren des letzten Jahrhunderts entwickeltes System für die formatierte Darstellung am Bildschirm, aber auch für Druckerzeugnisse. Auch heute kommt die Sprache noch bei Manpages zum Einsatz.
Infos
[1] Lout: http://savannah.nongnu.org/projects/lout
[2] Benutzerhandbuch: http://tinyurl.com/loutuserguide
[3] Expertenhandbuch: http://tinyurl.com/loutexpertguide
[4] Mailingliste: http://lists.nongnu.org/mailman/listinfo/lout-users






