(Letzte Änderung: Mit Mär 7 19:20:55 CET 2001)
Die gesamte Dokumentation kann jetzt komplett heruntergeladen werden: latex_vortrag.tgz (279 kB)
TeX gilt seit 1992 als fehlerfrei. Der TeX-Autor Donald
E. Knuth ist als perfektionistischer Autor umfangreicher Werke wie
"The Art Of Computer Programming" berühmt und hat für die Entdeckung
eines Programmierfehlers in TeX eine Belohnung von 215 US-Cents
(ca. EUR 350) ausgesetzt. Es existieren eine Reihe von weiteren
Anekdoten zu
TeX: Z.B. nähern sich die Versionsnummern pi an.
Der Quelltext zu TeX gilt als eines der ästhetischsten Programmcodes.
Tatsächlich ist der Perfektionismus vielleicht gerade eine Schwäche
von TeX: Wegen besserer Lesbarkeit sind die Schriftschnitte kleiner und
großer Buchstaben unterschiedlich. Später haben sich Schriftsysteme
mit niedrigerem Anspruch (PostScript, TrueType) durchgesetzt, die einfach
nur proportional vergrößert werden. Dadurch muß man Hürden
überwinden, um andere Schriften einzubinden.
LaTeX wurde von Leslie Lamport geschrieben. Es stellt fertige
Funktionen zur Satz umfangreicher Dokumente zur Verfügung.
Da diese freie Software schon seit vielen Jahren im Umfeld von Universitäten
und Verlagen gebräuchlich ist, gibt es sehr viele Erweiterungen wie
z.B. Notensatz, Unterstützung der arabischen, hebräischen, mongolischen,
tibetischen Sprache etc.
Für die deutsche Sprache gibt es spezielle Pakete, die für
korrekte Silbentrennung sowohl in der alten wie auch neuen Rechtschreibung
sorgen. Im Gegensatz zu früheren Versionen, die sich streng an den
ASCII-Standard hielten, kann man heute auch deutsche Sonderzeichen einfach
hinschreiben, anstatt Umschreibungen wie "u
für ü zu bemühen. Es
soll aber viele geben, die sich an die alte Schreibweise so gewöhnt
haben, daß sie nur noch so schreiben!
%% "einfaches_beispiel0.tex" - Einfaches LaTeX-Beispiel 0 \documentclass[12pt,german]{article} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage{babel} \makeatletter \begin{document} Hier ist Text. \end{document} |
Mit
latex einfaches_beispiel0.tex
wird diese Datei in ein auflösungsunabhängiges (device independent)
*.dvi-Format
übergeführt, das mit xdvi (unter Windoze gibt es auch "Yap")
angezeigt werden kann.
Um die Datei zu drucken, reicht ein
dvips einfaches_beispiel0.dvi
Wenn ich 1994 gewußt hätte, wie einfach LaTeX ist, hätte
ich mir keinen windoze-Computer zugelegt!
Damals brauchte ich skalierbare Fonts und Formelsatz. Damals hat mich
Win3.1 mit Winword 2.0b überzeugt.
Als ich mir einen Palm-kompatiblen Handrechner zulegte, wollte ich
mit vollwertigen Formatierungen schreiben können. Ich testete also
LaTeX, und probierte alle mir wichtigen Funktionen. Diese hatte ich
an einem Abend gelernt.
Es geht aber noch einfacher: Mit LyX existiert eine intuitive
Oberfläche, die man wie herkömmliche Office-Pakete bedient. Hier
braucht man im Grunde gar nichts lernen. Es gibt auch windoze-Versionen
von LyX, die aber eine virtuelle UNIX-Umgebung brauchen (u.a. einen X-Server)
und schwierig zu konfigurieren sind.
LaTeX dagegen gibt es für alle gängigen Betriebssysteme,
wobei miktex(?) (URL) unter windoze wohl die verbreitetste ist. Die Installation
von LaTeX ist im Gegensatz zu LyX auf windoze-Plattformen trivial.
Auf http://www.dante.de wird ein
CTAN-Mirror zur Verfügung gestellt, auf dem sich die neuesten Versionen
der jeweiligen Pakete (auch per Suchmaschine) finden lassen. Allein das
Inhaltsverzeichnis der Dateien (FILES.byname) dort ist 4 MB groß.
Zum leidigen Thema der windoze-Formate gibt es diverse Konvertierer
im support-Verzeichnis im CTAN. Der beste Konvertierweg besteht wohl über
das RTF-Format; die entsprechenden Konvertierer bauen dabei auch gleich
die Grafiken (*.wmf, *.gif et al. werden unterstützt) um und werden
laufend aktualisiert. Aber bei OLE-Objekten haben selbst windoze-User keine
Chance, wenn die verwendeten Programme nicht auf ihrem Rechner installiert
sind.
Neben diesen proprietären Formaten gibt es aber auch Konverter
wie html2latex, die auch ein Weg sein können, die Lerninvestition
gering zu halten, indem man einen intuitiven HTML-Editor (z.B. Netscape
Composer) verwendet und hinterher nach LaTeX wandelt.
Warum sollte ich in Zeiten der WYSIWYG-Editoren LaTeX verwenden?
%% Erweitertes LaTeX-Beispiel \documentclass[12pt,german]{article} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage{babel} \usepackage[dvips]{graphics} \usepackage{palatino} \makeatletter \begin{document} \section{Überschrift in \LaTeX{}} Dies ist normaler Text \subsection{Eine Unter-Überschrift} Weiterer Text... Eine Formel:\\ $\sqrt{\frac{\pi}{2}}$\\ %% Der Doppel-Backslash erzeugt einen Zeilenumbruch. "`Deutsche Anführungsstriche"' %% Eine Leerzeile trennt Absätze. \textbf{Formatierung:} Als Beispiel stehen hier \textbf{fetter,} \emph{kursiver, }sowie \textsf{serifenloser} Text. Für Code-Beispiele ist \texttt{diese Notation gebräuchlich, }gelegentlich auch in der \texttt{\textbf{fetten Variante.}} Eine kompliziertere Formel: \begin{equation} f(x)=\frac{1}{\sqrt{2\pi}\sigma}~e^{-\frac{(x-\mu)^2}{2 \sigma^2}} \end{equation} Seitenumbruch \footnote{!`Mit Fußnote!} \newpage \begin{figure} \includegraphics{a.ps}\caption{Eine eingebettete (PostScript-)Grafik} \end{figure} \end{document} |
Das Ergebnis sieht so aus: einfaches_beispiel1.pdf
%% "Gelber-Schein.tex"
\documentclass[12pt,german]{g-brief} \usepackage{palatino} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} \usepackage{babel} \makeatletter \lochermarke \faltmarken \fenstermarken \trennlinien\makeatother \begin{document} \Name{Jochen Plumeyer} \Unterschrift{\emph{Jochen}} \Strasse{Schwachhauser Heerstr. 4} \Zusatz{} \Ort{28203 Bremen} \Land{} \RetourAdresse{} \Telefon{+49 173 7723607} \Telefax{} \Telex{} \EMail{plumeyer@gmx.de } \HTTP{www.plumeyer.org} \Bank{Sparkasse in Bremen} \BLZ{290 501 01} \Konto{12547618} \Adresse{Ingenieurbüro Kochjohann
GmbH\\
\Betreff{Gelber Schein}
\begin{g-brief}
Mindestens zwei Tage Ruhe und Kräutertee empfahl mir der Doc,
der mich schon sechs Jahre nicht mehr gesehen hatte. \\
\end{g-brief}
|
Auf dem Palm sieht das dann z.B. so aus:
Wie kann ich diese LaTeX-Datei nun drucken?
Die Datei wird mit dem Befehl latex LaTeX-Datei in das *.dvi-Format
übergeführt. Achtung: Um Inhaltsverzeichnisse und Seitenreferenzen
ausrechnen zu können, muß dieser Vorgang dreimal ausgeführt
werden!
Im xdvi kann das Produkt dann betrachtet werden. Dabei werden eingebettete
Grafiken oder gedrehte Schriften mitunter nicht vollständig angezeigt.
Vollständigkeit auf dem Monitor bekommt man mit GhostView (gv),
der die PostScript-Datei, die auch auf den Drucker gegeben wird, anzeigt.
Um diesen Vorgang zu automatisieren, habe ich das Mini-Perlskript "tv"
(TeX-View) geschrieben:
#!/usr/bin/perl # 'tv' - Ansehen einer LaTeX-Datei in GhostView $infile=$ARGV[-1]; system ("latex $infile"); system ("latex $infile"); system ("latex $infile"); $infile=~ /(.*)\./; $name=$1; system ("dvips -o $name.ps $name.dvi"); system ("gv $name.ps"); |
Das PDF-Format, für das auf nahezu allen Plattformen und Browsern Betrachtungsprogramme zur Verfügung stehen, ist dem PostScript-Format sehr ähnlich. Während man für Adobe Acrobat ca. DM 600 bezahlen muß, werden PDF's mit LaTeX ganz einfach mit
pdflatex LaTeX-Datei
erzeugt. Das Ergebnis ist dann in nahezu jedem Browser zu betrachten: Gelber-Schein.pdf
Mithilfe einfacher Skriptsprachen und freien GNU-Werkzeugen können
so billig und effizient Anforderungen erfüllt werden.
vorname | nachname | abteilung | organisation | strasse | hausnummer | postfach | postleitzahl | ort | tel | fax | http | weiblich | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Belunge | Mboso | Strategische Planung | WHO | Heinburger Ring | 14 | Postfach 13243 | 13324 | Duisburg | +49 3427 234987 | +49 3427 234933 | mboso@who.org | http://www.who.org | f |
Marita | Heinzmann | Bäckereiinnung | Klöckesberger Str. | 255 b | 65536 | Töllinghausen | +49 8963 322325 | +49 8963 322325 | heinzmann@baeckereiinnung.de | http://www.baeckereiinnung.de | t | ||
Volker | Anglicisco | Dufte Partydüfte | Steineichenallee | 12 | 24535 | Rheingur | +49 6398 345877 | +49 6398 345811 | volki@dufteduefte.de | http://www.dufteduefte.de | f |
Auf einem Debian GNU/Linux-System habe ich das Ansprechen der Datenbank hier mit dem Paket libpgperl und dem Perl-Modul Pg.pm realisiert. Hier wird auch das obenerwähnte Skript "tv" für die Ausgabe verwendet.
Anmerkung zu PosgrSQL:
Ich war froh, anläßlich der "Zimmermann-Anfrage" dieses Datenbank-System kennengelernt zu haben, da es sich nicht nur um ein Paket mit reichhaltigen Funktionen, sondern auch um eine deutlich beschleunigtes System handelt.
Es hat fast so viele Möglichkeiten wie Oracle, und ist dabei auch fast so schnell und klein wie MySQL. Mit empfehlenswerten Paketen wie pgaccess ist das Erstellen von Datenbanken, Abfragen und Datenobjekten ausgezeichnet vereinfacht.
Das Skript habe ich lpg.pl genannt (LaTeX-Postgres).
#!/usr/bin/perl -w # Hauptvariablen; sie sind an andere Anforderungen anzupassen. $LatexFile="Einladung.tex"; $Abfrage='select * from adressen'; $OutFile="Einl_"; $WhatToDo="tv"; # Mal eben die LaTeX-Datei einlesen open(LATEX, "< $LatexFile"); $j=""; while(defined($i=<LATEX>)) { $j.=$i; } close(LATEX); use Pg;# Das PosgreSQL-Modul wird geladen. # Die Datenbank-Verbindung wird aufgebaut. $conn = Pg::connectdb("dbname=adressen"); Pg::doQuery($conn, $Abfrage, \@ary); # Referenz der Antwort-Tabelle wird übergeben. # Das Ergebnis wird als "Liste von Listen" zurückgegeben. for $i ( 0 .. $#ary ) { for $j ( 0 .. $#{$ary[$i]} ) { # Überflüssige Leerzeichen werden entfernt. $ary[$i][$j]=~ s/\s*(.*)\s*/$1/; } } for $i ( 0 .. $#ary ) { # Variablen werden aus der Datenbank mit Werten gefüllt. ($Vorname, $Nachname, $Abteilung, $Organisation, $Strasse, $Hausnummer, $Postfach, $Postleitzahl, $Ort, $Tel, $Fax, $email, $HTTP, $weiblich)=@{$ary[$i]}; # Sonderinhalte werden speziell verändert. $Abteilung=&ol($Abteilung); $Organisation=&ol($Organisation); $Postfach=&ol($Postfach); # Das Ergebnis wird ausgegeben. &drucke_Einladung; } sub drucke_Einladung() { $PostgresAdresse="$Vorname $Nachname\\\\\n$Abteilung$Organisation$Strasse $Hausnummer\\\\\n$Postfach$Postleitzahl $Ort"; # print $PostgresAdresse; if($weiblich eq "t") { $PostgresAnrede="Sehr geehrte Frau $Vorname $Nachname,"; } else { $PostgresAnrede="Sehr geehrter Herr $Vorname $Nachname,"; } # print $PostgresAnrede; # Hier werden die "$Postgres"-Zeichen in der LaTeX-Datei interpretiert. ($out=$j)=~ s/PostgresAdresse/$PostgresAdresse/gs; ($out=$out)=~ s/PostgresAnrede/$PostgresAnrede/gs; open(LATEXOUT, "> $OutFile$i.tex"); print LATEXOUT ("$out"); close(LATEXOUT); system("$WhatToDo $OutFile$i.tex"); } sub ol { my $a=shift; if(defined($a) && length($a)!=0) { $a.="\\\\\n"; } return $a; } |
Auf UNIX/ Linux-Systemen können mit demselben Skript auch Massenfaxe oder Mails versendet werden. Dafür braucht nur die Variable $WhatToDo angepaßt werden. Wegen der Mausklick-Philosophie von windoze sind Automatisierungsaufgaben unter dem Micros~1-Betriebssystem meist wesentlich schwieriger, teuer oder gar nicht zu lösen. Manchmal drückt McMurphy aber ein Auge zu.
Fazit:
LaTeX läßt sich dank seines gut durchdachten Formats nahtlos
in andere Anwendungen einbinden.
Thema | Dateien |
Mein erstes LaTeX-File vom Abend des 2. Dezember 2000 | meinersteslatexfile.tex
redsquare.ps |
LaTeX auf windoze (Installation, Tuning und Einbinden von Gnuplot-Diagrammen unter windoze) | LaTeX-Lisa.tex
test.tex |
Bei großen LaTeX-Dateien wie dem Gnuplot-Beispiel muß unter Linux der "main memory" in der Konfigurationsdatei /etc/texmf/texmf.cnf (vielleicht um 1 Mio.) erhöht und texconfig init aufgerufen werden.