Skip to content

while true ...

linux Neben vielen anderen Pluspunkten ist die Shell etwas, was ich an Linux besonders mag.

Bis vor kurzem habe ich meine LaTeX-Präsentationen und andere Dokumente mittels Makefile und einer Endlos-Schleife entwickelt. Dokumentbetrachter wie beispielsweise Okular oder Evince (Adobe Reader kann es nicht) erlauben es, dass eine gerade angeschaute Datei verändert werden darf und zeigen die Veränderungen auch direkt an.

Dazu benutze ich ein (nahezu) generisches Makefile (make clean löscht beispielsweise alle Temporärdateien):
.PHONY: clean
.DEFAULT_GOAL := lessons-learned.pdf

clean:
        find . \( -name '*.dvi' -o -name '*.aeb' -o -name '*.aux' -o -name '*.idx' -o -name '*.ilg' -o -name '*.ind' -o -name '*.ivz' -o -name '*.ivz.xml' -o -name '*.log' -o -name '*.pic.xml' -o -name '*.toc' -o -name '*.nav' -o -name '*.out' -o -name '*.snm' -o -name '*.vrb' -o -name '*~' -o -name '*.pdfpc' -o -name '*.fls' -o -name '*.fdb_latexmk' -o -name '*.xdv' \) -delete

lessons-learned.pdf:    *.tex *.png # *.jpg
        xelatex lessons-learned
        xelatex lessons-learned
        xelatex lessons-learned


Und der Rest wird durch eine Endlossschleife erledigt:
while : # oder while true
do
  make -q || make
  date
  sleep 5
done


Allerdings hat sich dieses Verfahren erledigt, nachdem ich bei Sujeevan von latexmk gelesen habe.

Seit dem reicht ein:
latexmk -pvc -xelatex lessons-learned.tex
make clean

TeX Live 2013 ...

TeX Live 2013 ist in den vergangenen Tagen erschienen.

TeX Live ist eine der wenigen Softwaresammlungen, die ich manuell installiere und aktualisiere. Das liegt einfach daran, dass ich auf Rechnern mit verschiedenen Betriebssystemen "TeXe" und ich gerne das gleiche LaTeX auf allen Systemen einsetze, um Fehler auf allen Systemen gleich zu halten ;-)

Installation über das Internet für Linux (oder Unix) und Cygwin unter Windows geht über das gleiche Archiv (wieder einmal ein "hoch auf Perl"). Für "normales" Windows gibt es ein separates Paket und sogar eine deutschsprachige Installationsanleitung.

Aktuell hält man die Installation übrigens via:
tlmgr update --self
tlmgr update --all

TeX Live ...

Für meine Präsentationen, den Lebenslauf bei Bewerbungen, "Das Buch" und vielen anderen Schriftverkehr nutze ich schon seit längerer Zeit mit steigender Begeisterung LaTeX. Die Einarbeitungskurve ist etwas höher, dafür überzeugen die Resultate. Hier gibt es ein paar einführende Links: Teil 1 und Teil 2.

In vielen Linux-Distributionen ist TeX Live enthalten. Nachdem ich im Büro auf dem Arbeitsplatzrechner Windows benutzen muss und nur Cygwin zur Verfügung habe, dessen TeX Live unvollständig ist, bin ich dazu übergegangen, TeX Live direkt über das Internet zu installieren. Das install-tl-unx.tar.gz funktioniert sowohl unter Linux wie auch unter Cygwin.

Ein weiterer Vorteil ist, dass man sich nicht mit Inkompatibilitäten herumärgern muss, weil naturgemäss die Distributionen nicht den gleichen Stand haben, den die "Erzeuger" direkt anbieten. Tatsächlich hatte ich im Rahmen des Buchprojektes schon damit zu kämpfen.

Die folgenden Zeilen in der .bashrc dürfen nach der Installation nicht fehlen (Achtung: bei einem 32bit-System sieht der Linux-Pfad etwas anders aus).

case "$(uname)" in
        "CYGWIN_NT-6.1")
                export PATH=${PATH}:/usr/local/texlive/2012/bin/i386-cygwin
                ;;
        "Linux")
                export PATH=${PATH}:/usr/local/texlive/2012/bin/x86_64-linux
                ;;
        *)
                echo "Dich kenne ich nicht, Dich fresse ich nicht."
esac

export MANPATH=${MANPATH}:/usr/local/texlive/2012/texmf/doc/man
export INFOPATH=${INFOPATH}:/usr/local/texlive/2012/texmf/doc/info


Aktualisieren lässt sich das so installierte TeX Live mit tlmgr update --all, die Manpage zu tlmgr erklärt noch mehr, beispielsweise gibt tlmgr gui eine grafische Oberfläche, wenn perl-tk installiert ist.

Zusammen LaTeX bearbeiten ...

Nachdem die ganzen Online-Editierlösungen wie EtherPad, GoogleDocs und andere das Licht der Welt erblickt hatten, war es nur eine Frage der Zeit bis es das auch für LaTeX gibt. Und ich muss gestehen, dass ich über die Umsetzung begeistert bin.

ShareLaTeX

Ich fürchte, dass das niemals Open-Source-Software wird und damit ist selber hosten ausgeschlossen. Doof.

Beginnen mit LaTeX (2) ...

Sebastian hatte bei Google+ gefragt, mit welcher Literatur er LaTeX lernen soll und ich habe das unten stehende geantwortet. Vermutlich hilft es noch dem Einen oder Anderen unter meinen Lesern.

In meinem Blogartikel sind zwei sehr gute PDFs von der Fernuni Hagen verlinkt, das ist ein guter Anfang.

"Den Kopka", mit dem ich angefangen habe, gibt es leider nicht mehr.

Toter Baum: "Schnell ans Ziel mit LaTeX 2e" von Jörg Knappen

Ich habe im Hinterkopf, dass der Dante (Deutschsprachige Anwendervereinigung TeX e.V.) ein Einsteiger-Buch in der Mache hat und würde darauf warten.

Einführung in LaTeX

Die Dante-Bücher kann ich alle empfehlen.

Auf deren Webseite gab es mal eine Literaturliste, die nicht nur Dante-Publikationen enthält. Ah, die ist jetzt hier: http://projekte.dante.de/DanteFAQ/Literatur - die FAQ kannte ich noch nicht.

Ich vermute, dass es eine gute Idee ist, mit einem Schriftstück zu beginnen, was Du "erzeugen" möchtest und daran dann LaTeX zu lernen.

Beginnen mit LaTeX ...

Aus der Wikipedia:
LaTeX ist ein Softwarepaket, das die Benutzung des Textsatzprogramms TeX mit Hilfe von Makros vereinfacht.
Meinen allerersten Kontakt zu LaTeX hatte ich irgendwann rund um 1990 herum als ich die Dokumentation für ein Softwarepraktikum schreiben musste durfte. Wir hatten damals nur ASCII-Terminals (nichts mit bunt oder anderen Hervorhebungen) für einen grösseren Rechner und die Ausdrucke liefen über einen zentralen Drucker und konnten frühestens am nächsten Tag abgeholt werden. Damals ...

Gelernt habe ich LaTeX mit einem Buch von Helmut Kopka aus dem Addison-Wesley Verlag. Ich kann mich nicht mehr daran erinnern, wie es hiess, vermutlich "Einführung in LaTeX". Das war richtig gut. Wie gut oder schlecht die aktuellen Bücher sind, kann ich leider nicht sagen.

Um ehrlich zu sein: Nach dem Praktikum habe ich LaTeX bestimmt 15 Jahre nicht mehr angefasst. Jetzt benutze ich es aber seit einigen Jahren wieder und unser Buch wurde ebenfalls damit geschrieben.

Warum eigentlich? Zum Einen wegen der Ergebnisse, ausgedruckt (und auch als PDF) sieht LaTeX einfach besser aus als die Resultate verschiedener grafischer Textverarbeitungen. Bei LaTeX kann ich einfach drauf los schreiben, ohne mich um die Ausgabe kümmern zu müssen ("WYGIWYM") "What you get is what you mean" - "Was Du bekommst ist das, was Du haben willst" (sehr frei übersetzt). Ich kenne sehr viele Menschen, mich eingeschlossen, die grafische Textverarbeitungen nutzen, ohne die automatische Formatierung durch Absatzformate in Anspruch zu nehmen, was zu einigen stilistischen Meisterleistungen führt. Früher hatten grafische Textverarbeitungen auch Probleme mit grossen Dateien (jenseits der 50-Seiten-Grenze), ob das heute noch so ist, weiss ich nicht. Ein weiterer Vorteil von den LaTeX-Dateien ist, dass man sie durch ein Versionsverwaltungssystem versionieren kann.

Ja, LaTeX hat eine etwas steilere Lernkurve, aber das System ist es wert, sich damit auseinanderzusetzen. Wenn man erst einmal die Basis verstanden hat, wird die Bedienung immer leichter, weil man im Laufe der Zeit für jeden Zweck bereits Dokumente vorbereitet hat.

Und da kommen wir leider zu dem Punkt, den viele gewachsene Systeme haben. Die Einsteigerdokumentation ist meist nur sporadisch vorhanden und wenn es sie gibt, dann ist sie häufig auch noch veraltet.

Dominik, den ich bei LaTeX-Fragen immer löchere hat mich drüben bei DeimHart auf die Einsteiger-Dokumentation von Manuela Jürgen hingewiesen und ich habe herausgefunden, dass die sehr aktuell (September 2011) von Thomas Feuerstack überarbeitet wurde. Das ist der meiner Meinung nach beste Einstieg.

Zu finden sind die zwei PDF-Dateien auf dieser Seite der FernUniversität Hagen:

Dominik hat auch schon einiges zu LaTeX gemacht und veröffentlicht:

... da ist noch einiges mehr, was Ihr auf seiner Homepage oder in seinem Blog findet (einfach nach "latex" suchen).

Wie immer, wenn Ihr Fragen habt, einfach hier in die Kommentare.

Basis-Artikel für LaTeX ...

Man kann bei LaTeX tausend und dreizehn Optionen (wenigstens) angeben, um Dokumente zu strukturieren. Ich habe eine sehr kleine und einfache Vorlage, die alles tut, was ich im Normalfall brauche und sie besteht nur aus wenigen Zeilen.

\documentclass[parskip=half]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel
}
% \usepackage[swissgerman]{babel}
% \usepackage[english]{babel}
% \usepackage[UKenglish]{babel}
% \usepackage[USenglish]{babel}
\usepackage{hyperref}
\hypersetup{colorlinks=true, linkcolor=blue, urlcolor=blue}
\pagestyle{empty}

\title{Ein einfaches LaTeX-Dokument}
\author{Dirk Deimeke}

\begin{document
}

% \section*{Abschnitt}
% \subsection*{Unterabschnitt}
% \subsubsection*{Unterunterabschnitt}
% \href{http://www.all2e.com/Ressourcen/Blindtexte}{all2e.com}
% \url{http://dirk.deimeke.net/}

\end{document}

Zeilen, die mit einem % beginnen, beinhalten Kommentare.

Die erste Zeile legt als Dokumentenklasse scrartcl, das ist die Artikel-Klasse aus dem Koma-Skript fest. Damit ist auch gleichzeitig die Papiergrösse auf DIN A4 und die Schriftgrösse auf 11pt gesetzt. Neben anderen Optionen gibt es standardmässig auch keine Titelseite und das Layout ist einseitig. "parskip=half" sagt, dass eine halbe Zeile Luft zwischen zwei Absätzen sein soll.

Unter Linux ist UTF8 als Kodierung der Normalfall, Windows-Nutzer können in der zweiten Zeile stattdessen auch latin1 setzen.

Die Babel-Optionen schreiben das Verhalten für die Silbentrennung fest. Ich habe einmal die für mich gebräuchlichen aufgelistet, ngerman ist für die neue deutsche Rechtschreibung, die anderen sind selbsterklärend.

Das Paket hyperref erlaubt den Einbau von klickbaren Links, hypersetup formatiert die Links so, wie man das aus dem Webbrowser gewöhnt ist. Im Dokumentteil gibt es zwei Beispiele für den Aurfuf.

Pagestyle "empty" macht keine Fusszeilen oder Kopfzeilen, lässt man das weg, ist der Stil "plain" gesetzt, in dem schon Seitennummerierungen enthalten sind.

Für Artikel nicht nötig aber für spätere Sortierungen nicht uninteressant (oder falls man mit \titlepage eine Titelseite setzen möchte), sind die Optionen "title" und "author".

Dann folgt das eigentliche Dokument, der "*" bei den Überschriften bzw. den Abschnitten sorgt dafür, dass keine Nummerierungen gesetzt werden.

Ein Beispiel mit Blindtexten, kann man hier herunterladen (pdf, 44 kB): article.pdf

Wunderbar ...

Bestens, ein erster Test hat ergeben, dass die Synchronisation zwischen Palm Pre und Tine 2.0 via ActiveSync wirklich funktioniert. Danke an die Entwickler.

Ich hatte Gelegenheit, in die beiden LaTeX-Bücher KOMA-Script und Präsentationen mit LaTeX zu werfen und habe sie dann auch gleich gekauft. Die anderen Bücher aus der Reihe sehen auch gut aus, aber ich habe derzeit noch keinen Bedarf dafür.

Momentan überlege ich daran, im Dante e. V., aber die gleichen Überlegungen habe ich schon seit Jahren mit dem Chaos Computer Club und der German Unix User Group. Die Frage ist natürlich, ob man bei allem, was man gut findet, Mitglied sein muss ...

LaTeX ...

Meine bessere Hälfte ist sehr begeistert von LaTeX und hat auch gleich die beiden grossen Stärken erkannt: Die produzierten Dokumente sehen einfach gut aus und man kann sich beim Schreiben auf das wesentliche konzentrieren.

Eine Studie von AT&T hat erwiesen, dass selbst geübte Menschen mit textorientierten Eingabemethoden wesentlich schneller gute Resultate erzielen als mit WYSIWYG-Programmen ("What you see is what you get" - Du bekommst das, was Du siehst). LaTeX stellt dem ein WYSIWYM ("What you see is what you mean" - Du bekommst das, was Du meinst) entgegen.

Zitat eines Usenet-Artikels von 1991:
From: n...@cbnewsl.cb.att.com (nils-peter.nelson)
Newsgroups: comp.text
Subject: Why We Didn't Give You WYSIWYG troff
Message-ID: <1991Aug2.213430.8633@cbnewsl.cb.att.com>
Date: 2 Aug 91 21:34:30 GMT
Organization: AT&T Bell Laboratories
Lines: 59
---
[...]
A while ago a large internal documentation organization inside AT&T had a shoot-out between troff and one of the well-known Unix WYSIWYG formatters on a Sun 3. Two different, trained groups were given a large document to produce, one with troff, the other with WYSIWYG. The troff group finished substantially ahead. The experiment was deemed a failure (since it was supposed to show WYSIWYG improved productivity) and repeated. Same result.

Subsequent analysis indicated that the WYSIWYG group spent a lot of time "prettying" up layout at an early stage of authoring; a good deal of this effort was undone by subsequent changes to the text. The troff group was more or less forbidden to address layout; they used an SGML-flavored set of macros, based on -mm, that automatically determined fonts, header placement, page breaks, etc.

The credit goes, really, not to troff, but to a well-defined batch markup language that allows authors to concentrate on content and leave layout to the software.
[...]
Kurz zusammengefasst, AT&T liess zwei Gruppen von Autoren gegeneinander antreten, um zu beweisen, dass WYSIWYG der textorientierten Eingabemethode überlegen ist. Herausgekommen ist aber dass die WYSIWYG-Leute deutlich langsamer als die anderen waren. Ein Grund dafür war, dass sich die Gruppe sehr früh schon mit dem Aussehen des Textes befasst hat und das musste bei jeder Änderung neu angefasst werden. Die Arbeit wurde also mehrfach gemacht. Die andere Gruppe hatte nur eine Liste von "Kontrollelementen", die sie einfügen mussten und das Programm troff hat den Rest erledigt.

Dominik hat auf der Ubucon 2009 eine sehr gute Einführung in LaTeX gegeben, die ich jedem Neuanfänger ans Herz legen kann.

LaTeX, heute in Form von TeXLive, ist bei jeder Linuxdistribution zu finden und es gibt auch Varianten für Windows, Mac OS X und viele andere Betriebssysteme.