LaTeX Schaukasten

Hier ist der Vortrag, den ich am 30. Juni 2010 auf dem jährlichen Doktorandenforum der Universität Leeds gehalten habe. Für die Präsentation habe ich die LaTeX Beamer-Klasse sowie einige spezielle Pakete und Vorlagen verwendet. In diesem Artikel werde ich auf diese technischen Aspekte meiner Präsentation eingehen.

postgrad talk slide 1 postgrad talk slide 2

(PDF Download - 960 KiB)
(Quellcode Download - 17 KiB)

 

  • die Gestaltungsvorlage ist progressbar v0.32 von Sylvain Bouveret: http://recherche.noiraudes.net/en/LaTeX.php
  • die verwendete Schriftart ist Palatino
  • die animierten Vektorgrafiken auf Seite 11 wurden mit der PSTricks-Erweiterung pst-solides3d erstellt

 

Mit Ausnahme der Gestaltungsvorlage sollte alles in einer aktuellen und umfassenden LaTeX-Installation enthalten sein. Übrigens wurden die beiden Abbildungen im oberen linken Bild mit Inkscape bzw. Mathematica erstellt.

Wie richten wir das alles ein? Schauen wir uns zunächst die Präambel des LaTeX-Dokuments an:

 

sh: 1class="mapi" : /home/lusever/6.lusever.z8.ru/docs/api/../../cgi/syntax/tm_shl-1.0/tm_shl: n

Um die Gestaltungsvorlage progressbar zu verwenden, müssen wir diese zuerst herunterladen und die Dateien im gleichen Verzeichnis wie das LaTeX-Dokument entpacken. Die dritte Zeile der Präambel lädt das Farbschema crane, welches eines der Standardfarbschemen der beamer-Klasse ist. Die nächsten beiden Zeilen werden für die Erstellung von animierten Vektorgrafiken benötigt. Das PSTricks-Paket pst-solides3d lädt automatisch pstricks nach, so dass wir für letzteres keinen eigenen Eintrag machen müssen. Schließlich weisen die letzten drei Zeilen LaTeX an, die Schriftart Palatino zu verwenden (Fragt mich aber nicht, warum dafür drei Befehle nötigt sind. Ich habe das im Internet gefunden, und es funktioniert bei mir nicht, wenn ich eine der Zeilen weglasse.).

Es sei angemerkt, dass ich Version 0.32 der progressbar Vorlage verwendet habe anstatt der aktuellen Version 0.42, weil meine Präsentation mit dem alten Farbschema besser aussieht. Ich habe Sylvain per E-Mail gefragt, ob er nicht in einer zukünftigen Version den alten Stil als Option verfügbar machen kann, und er hat geantwortet, dass er es für den anstehenden 0.5x Zweig in Betracht ziehen wird.

icosahedronantiprism

Beim Öffnen der Präsentation mit dem Adobe Reader sollte man auf Seite 11 Animationen von rotierenden Polyedern sehen. Diese wurden mit Hilfe der Pakete pst-solides3d und animate erstellt. Das erste Paket ist eine Schnittstelle zur Verwendung der mächtigen Vektorgrafikfähigkeiten von PSTricks, um 3D-Grafiken zu erstellen. Das zweite Paket ermöglicht es uns, daraus Animationen zu erstellen und diese in die PDF-Datei einzubetten. Die Reihenfolge der Kompilierung ist latex → dvips → ps2pdf, da PSTricks nicht mit pdflatex zusammenarbeitet (allerdings gibt es dafür auch Abhilfen). Weiterhin ist zu beachten, dass nicht alle PDF-Betrachter eingebettete Filme und Animationen unterstützen. Für Vektoranimationen ist der Adobe Reader eine sichere Wahl, weil er diese auf allen Plattformen (Windows, Mac, Linux) wiedergeben kann.

Und so können wir die schicken animierten Objekte erstellen: Das pst-solides3d Paket bringt einige vordefinierte geometrische Körper wie die Kugel, den Würfel und die platonischen Körper mit. Das links abgebildete gelbe Polyeder ist der Ikosaeder, einer der fünf platonischen Körper. Er kann mit dem nachfolgenden Code leicht erstellt werden, und das Ergebnis sollte so aussehen (Quellcode).

 

sh: 1class="mapi" : /home/lusever/6.lusever.z8.ru/docs/api/../../cgi/syntax/tm_shl-1.0/tm_shl: n

Lasst uns den Code analysieren. Die {animateinline} Umgebung umfasst den Abschnitt, wo eine Animation abgespielt werden soll. Die Optionen [autoplay, loop]{20} bewirken, dass die Animation automatisch startet, 20 Bilder pro Sekunde umfasst, und sich endlos wiederholt. Die nächste Zeile bewirkt, dass 72 Einzelbilder generiert werden, und dass die Variable rotationangle bei 0 startet und sich schrittweise nach jedem Einzelbild um 1 erhöht. Die Zeile, die mit \psset anfängt, nimmt einige Optionen entgegen, welche den Betrachtungswinkel sowie die Licht- und Schatteneigenschaften beschreiben (für genauere Informationen siehe das pst-solides3d Handbuch). Nun sind wir bereit für die eigentliche {pspicture} Umgebung, welche eine PSTricks-Vektorgrafik zeichnet. Die Zahlen in runden Klammern geben die Abmessungen und den Versatz des Bildes an. Der wichtigste Befehl ist \psSolid, welcher das eigentliche Objekt zeichnet. Hier geben wir an, dass ein gelber Ikosaeder mit Kantenlänge 1 gezeichnet werden soll, und dass dieser um die vertikale Z-Achse um einen Winkel gedreht werden soll, welcher durch die Variable rotationangle gegeben ist. Im Allgemeinen müssen dreidimensionale Objekte um 360 Grad gedreht werden, um in die Ausgangsstellung zurückzukehren, aber aufgrund der Ikosaedersymmetrie müssen wir nur um 360/5 = 72 Grad drehen, um zu einer Stellung zu gelangen, welche identisch zur Ausgangsstellung ist.

Lasst uns nun einen Blick auf den orangefarbenen Polyeder im obigen Bild rechts werfen. Dieses "quadratische Antiprisma" ist nicht in pst-solides3d enthalten, also müssen wir LaTeX alle seine Ecken und Flächen mitteilen. Der folgende Code erzeugt dieses Resultat (Quellcode).

 

sh: 1class="mapi" : /home/lusever/6.lusever.z8.ru/docs/api/../../cgi/syntax/tm_shl-1.0/tm_shl: n

Dieser Code ist zum großen Teil analog zum Code des vorherigen Beispiels. Ein wichtiger Unterschied ist, dass object=new angibt, dass wir es jetzt mit einem benutzerdefinierten Objekt zu tun haben, dessen geometrische Eigenschaften an den Befehl \psSolid weitergeleitet werden müssen. Dies lässt sich entweder direkt im LaTeX-Dokument bewerkstelligen (wie hier geschehen) oder durch den Import einer 3D-Datendatei (.obj oder .off Datei, siehe pst-solides3d Handbuch für weitere Infos). Die kartesischen (x,y,z)-Koordinaten der acht Eckpunkte des Antiprisma werden der sommets Liste übergeben. Schließlich müssen wir die faces Liste mit Informationen, wie die Flächen des Objekts mit seinen Eckpunkten verbunden sind, versorgen. Beispielsweise bedeutet [0 1 2 3], dass die ersten vier Eckpunkte der sommets Liste zusammen eine Fläche aufspannen (und zwar das Quadrat auf der Oberseite des Antiprisma). Das gleiche gilt für die anderen Flächen, wobei jede Fläche durch mindestens drei Eckpunkte verläuft. So weit so gut, aber man muss auf ein paar Dinge aufpassen: Erstens fängt die Nummerierung der Eckpunkte mit 0 an, nicht mit 1. Zweitens müssen die Eckpunkte einer Fläche entweder im Uhrzeigersinn oder im Gegenuhrzeigersinn aufgeführt werden, da die Fläche sonst nicht korrekt gezeichnet wird (aus diesem Grund steht im obigen Quellcode [0 3 1 2] statt [0 1 2 3]). Drittens scheint es, dass pst-solides3d manchmal Schwierigkeiten hat, zu bestimmen, welche Flächen andere Flächen überdecken, und stattdessen die Flächen einfach in der Reihenfolge zeichnet, wie sie in der faces Liste aufgeführt sind. Sicherheitshalber sollte die Liste daher mit denjenigen Flächen beginnen, die am weitesten hinten liegen. Aus diesem Grunde erscheint [0 3 1 2] im obigen Quellcode als letzter Eintrag, so dass die obere Quadratfläche des Antiprisma nie von anderen Flächen überdeckt wird.