Skriptum - Hochschule Karlsruhe
Transcription
Skriptum - Hochschule Karlsruhe
Ausgewählte LATEX-Kapitel Tabellen, Grafiken und Postscript-Schriften Prof. Dr. Ottmar Beucher Fakultät Maschinenbau und Mechatronik ©2006 Ausgewählte LATEX-Kapitel Microsoft isn’t the answer. Microsoft ist the question. And the answer is NO! Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 1 Vorwort Das vorliegende Skriptum ist ein Beitrag zu einem Kompaktkurs in LATEX, welcher zusammen mit den Kollegen Eberhard Halter und Oliver Stumpf erstmals im November 2001 für Studierende der Hochschule Karlsruhe - Technik und Wirtschaft abgehalten wurde. Das Skriptum deckt die Themengebiete Tabellen, Grafikimport und PostScriptSchriften ab. Die Kapitel enthalten zahlreiche Übungen, die während des Kurses zu bearbeiten waren. Ihre praktische Bearbeitung ist für das Verständnis des Inhalts wesentlich und unverzichtbar. Gegenüber der ersten Version haben sich der Aufbau des Kurses und des zugehörigen Skriptums grundlegend verändert. So wurde etwa das Thema „Tabellen“ ursprünglich umfassend und unter weitreichender Verwendung selbst geschriebener Makros behandelt, um die etwas schwerfälligen Tabellendefinitionen abzukürzen und übersichtlicher zu machen. Im Verlauf des ersten Kurses hatte sich jedoch gezeigt, dass dieses Konzept beim Anfänger zu Verwirrungen führt. Dieser Tatsache wurde im vorliegenden Skriptum insofern Rechnung getragen, als in dem entsprechenden Kapitel (Kapitel 2) auf diese Technik zunächst verzichtet wird. Zudem wurden einige Themenbereiche zu Gunsten einer intensiveren Behandlung der grundlegenden Tabellenkonstrukte weggelassen. Für den interessierten Leser wurden die so aus dem Kapitel verbannten Dinge, welche dem Autor jedoch nichts desto trotz als nützlich erscheinen, in einem eigenen Kapitel am Ende des Skriptums zusammengefasst. Diese können so bei Bedarf und Neigung im Selbststudium erarbeitet werden. Auch die Kapitel zur Grafikeinbindung und zur Verwendung von PostscriptSchriften wurden „entrümpelt“. Dem Kursteilnehmer und Leser soll so eine Konzentration auf das Wesentliche ermöglicht werden, also auf Techniken, welche häufig vorkommen und nach Meinung des Autors von größtem Nutzen sind. Wie bereits erwähnt, stießen die Teilnehmer des ersten Kurses auf Schwierigkeiten, die so vom Autor nicht erwartet und vorhergesehen wurden. Diese 2 Ausgewählte LATEX-Kapitel 3 betrafen in erster Linie die häuslichen Übungen. Es stellte sich heraus, dass vielen Teilnehmern das Konzept der Paketeinbindung von LATEX noch nicht klar war, was nicht nur zu Problemen bei der Verwendung der schon erwähnten selbst geschriebenen Makros führte, sondern auch generell zu Problemen bezüglich der Verwendung von Standardpaketen. Es erschien daher ratsam, in einem eigenen Kapitel, welches neu in das Skriptum aufgenommen wurde, vorab darauf einzugehen. Der Kursteilnehmer sollte so in der Lage sein, auf entsprechende Schwierigkeiten zu reagieren und sich gegebenenfalls selbst helfen zu können. Landau und Karlsruhe im Oktober 2006 Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe O. Beucher Inhaltsverzeichnis 1 2 Vorwort 3 Grundlagen und Voraussetzungen 7 1.1 LATEX-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Aufbau der verwendeten LATEX-Dokumente . . . . . . . . . . . . 11 1.3 Informationsbeschaffung und Trouble-Shooting . . . . . . . . . 15 1.4 Übungen zum Thema Grundlagen und Voraussetzungen . . . . 17 Tabellensatz mit LATEX 19 2.1 Das array-Paket . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.1 Die array-Umgebung . . . . . . . . . . . . . . . . . . . . 20 2.1.2 Die tabular-Umgebung . . . . . . . . . . . . . . . . . . 21 2.2 Übungen zum array-Paket . . . . . . . . . . . . . . . . . . . . . 23 2.3 Das array-Paket (Fortsetzung) . . . . . . . . . . . . . . . . . . . 24 2.3.1 Wiederholung von Spaltendefinitionen . . . . . . . . . . 27 2.3.2 Unterdrückung der Spaltenzwischenräume . . . . . . . . 29 2.3.3 Anpassung der Schriftgrößen . . . . . . . . . . . . . . . . 29 2.3.4 Allgemeine Anpassungen für Spalten . . . . . . . . . . . 30 2.3.5 Tafeln mit vertikalen Linien . . . . . . . . . . . . . . . . . 32 2.4 Übungen zum array-Paket . . . . . . . . . . . . . . . . . . . . . 34 2.5 Der multicolumn-Befehl . . . . . . . . . . . . . . . . . . . . . . 36 2.6 Übungen zum multicolumn-Befehl . . . . . . . . . . . . . . . . 39 2.7 Tabellen im Querformat . . . . . . . . . . . . . . . . . . . . . . . 40 2.8 Übungen zu Tabellen im Querformat . . . . . . . . . . . . . . . . 43 2.9 Automatische Berechnung von Spaltenbreiten . . . . . . . . . . 45 4 Ausgewählte LATEX-Kapitel 3 4 5 6 5 2.10 Übungen zu Tabellen mit automatischer Berechnung von Spaltenbreiten . . . . . . . . . . . . . . . . . . . 46 2.11 Setzen von mehrseitigen Tabellen . . . . . . . . . . . . . . . . . . 47 2.12 Übungen zu mehrseitigen Tabellen . . . . . . . . . . . . . . . . . 52 2.13 Schlussbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . 54 LATEX und Grafiken 58 3.1 Das graphicx-Paket . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.2 Übungen zum graphicx-Paket . . . . . . . . . . . . . . . . . . 63 3.3 Das caption2-Paket . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.4 Übungen zum caption2-Paket . . . . . . . . . . . . . . . . . . 65 3.5 Graphiken nebeneinander setzen . . . . . . . . . . . . . . . . . . 66 3.6 Übungen zum Nebeneinandersetzen von Grafiken . . . . . . . . 67 3.7 Graphiken als Gleitobjekte . . . . . . . . . . . . . . . . . . . . . . 69 Postscript-Schriften für LATEX 70 4.1 Pakete für PostScript-Schriften . . . . . . . . . . . . . . . . . . . 70 4.2 Übungen zu den Paketen für PostScript-Schriften . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.3 PostScript-Pi-Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.4 Übungen zu PostScript-Pi-Fonts . . . . . . . . . . . . . . . . . . 75 Acrobatik mit LATEX 77 5.1 Pdf via Postscript . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2 Übung zur Erzeugung von Pdf via Postscript . . . . . . . . . . . 78 5.3 Pdf mit pdfLATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.4 Übung zur Erzeugung von Pdf via pdfLATEX . . . . . . . . . . . . 79 Tabellen und Grafiken - fortgeschrittene Themen 80 6.1 Makros für den Tabellensatz . . . . . . . . . . . . . . . . . . . . . 80 6.2 Übungen zu den Makros für den Tabellensatz . . . . . . . . . . 83 6.3 Das dcolumn-Paket . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4 Übungen zum dcolumn-Paket . . . . . . . . . . . . . . . . . . . 86 6.5 Zusammenfassen mehrerer Zeilen . . . . . . . . . . . . . . . . . 87 6.6 Übungen zum Zusammenfassen mehrerer Zeilen . . . . . . . . 90 Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 6 6.7 Gedrehte und gestürzte Tabelleneinträge . . . . . . . . . . . . . 90 6.8 Übungen zu gedrehten Tabelleneinträgen . . . . . . . . . . . . . 93 6.9 Textumflossene Grafiken . . . . . . . . . . . . . . . . . . . . . . . 93 6.10 Übungen zu textumflossenen Grafiken . . . . . . . . . . . . . . . 97 6.11 Mehrere Grafik-Pakete verwenden . . . . . . . . . . . . . . . . . 98 6.12 Postscript-Schriften verwenden . . . . . . . . . . . . . . . . . . . 101 6.13 Übungen zu PostScript-Schriften . . . . . . . . . . . . . . . . . . 105 6.14 Mathematische PostScript-Fonts . . . . . . . . . . . . . . . . . . 106 6.15 Übung zu mathematischen PostScript-Fonts . . . . . . . . . . . 107 7 Lösungen zu den Übungen A Pi-Font-Tabellen 108 130 A.1 Die Zapf-Dingbats-Tabelle . . . . . . . . . . . . . . . . . . . . . . 130 A.2 Die Symbol-Font-Tabelle . . . . . . . . . . . . . . . . . . . . . . . 132 Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Kapitel 1 Grundlagen und Voraussetzungen In diesem Kapitel soll zum einen nochmals auf ein paar grundlegende Begriffe eingegangen werden, auf die im ersten Kursteil zum Teil schon hingewiesen wurde, zum anderen sollen spezielle Hinweise gegeben werden, die den Kursteilnehmer in die Lage versetzen sollen, die Inhalte der nachfolgenden Kapitel besser einordnen und selbstständig bearbeiten zu können. 1.1 LATEX-Pakete TEX und seine Erweiterung LATEX stellen eine Programmierumgebung zur Verfügung, die es, wie schon im ersten Kursteil gezeigt, erlaubt, Texte nahezu jeglicher Art in typografisch einwandfreier Form zu setzen. Viele der von LATEX dabei zur Verfügung gestellten Befehle werden dabei durch die so genannte Dokumentklasse festgelegt, welche in der ersten Zeile des Vorspanns eines LATEX-Dokuments, der so genannten Präambel, durch den Befehl \documentclass bekannt gemacht wird. Beispielsweise wird durch die Präambel-Anweisung \documentclass[...<Optionen>...]{book} die Dokumentklasse book eingestellt. Die Definitionen der durch diese Dokumentklasse zur Verfügung gestellten LATEX-Befehle und Umgebungen befinden sich in der Datei book.cls. Im MiKTeX-Verzeichnisbaum sollte diese Datei im Verzeichnis \texmf\tex\latex\base liegen und es lohnt sich, Ausgewählte LATEX-Kapitel einmal mit einem Texteditor einen Blick darauf zu werfen, selbst wenn man die dortigen TEX-Anweisungen nicht versteht. Man erkennt zumindest, dass dort u.A. LATEX-Befehle (mit der Anweisung \newcommand), LATEX-Umgebungen (mit der Anweisung \newenvironment), Zähler und Längen definiert werden, welche dem LATEX-Anwender dann zur Verfügung stehen. Wir werden weiter unten auf die Bedeutung von Befehlen und Umgebungen noch näher eingehen. Wie diese im LATEX-Text zu verwenden sind, kann natürlich der Datei book.cls nicht entnommen werden. Hierfür gibt es die entsprechenden Dokumentationen und Sekundärliteratur [7, 8, 9]. Die Dokumentklasse alleine liefert jedoch u.U. nicht alle notwendigen Befehle und Umgebungen, die nötig sind, um spezielle Dinge, wie etwa den Satz von Tabellen und das Einbinden externer Grafiken zu realisieren. Hierzu gibt es dann ggf. Sammlungen von LATEX-Makros, so genannte Pakete, welche von verschiedenen Autoren geschrieben wurden und der Allgemeinheit auf dem Netz zur Verfügung gestellt werden. Jeder LATEX-Nutzer kann diese Pakete auf den entsprechenden Servern, etwa dem Dante-Server (www.dante.de) suchen und herunterladen. Die entsprechenden Paketsammlungen gibt es auch auf CD-ROM. Den Teilnehmern des Kurses kann eine solche Sammlung mit nahezu allen relevanten Paketen auf Wunsch zur Verfügung gestellt werden. Die Standard-MiKTeX-Installation enthält darüber hinaus bereits die wichtigsten Pakete. Die entsprechenden Dateien (so genannte Style-Files), welche die Endung .sty tragen sind im MiKTeXVerzeichnisbaum meist unter \texmf\tex\latex zu finden. Wie man zusätzliche Pakete installiert ist von Installation zu Installation verschieden. Prinzipiell hat man nur das neue .sty-File in einen Ordner einzufügen, in dem LATEX nach solchen Dateien sucht, also etwa \texmf\tex\latex\ <Ordnername> und dann die Datenbasis mit einem entsprechenden Systembefehl auf den neuesten Stand zu bringen. Da dies jedoch von System zu System unterschiedlich sein kann, soll dies hier nicht näher beschrieben werden. Hier muss auf die Dokumentation des jeweiligen MiKTeX-Systems verwiesen werden. Pakete einbinden Das Einbinden eines Pakets in der Präambel erfolgt mit dem Befehl \usepackage Beispielsweise wird durch die Präambel-Anweisung Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 8 Ausgewählte LATEX-Kapitel \usepackage{longtable} das Paket longtable eingebunden. Dieses Paket stellt Befehle und Umgebungen zur Verfügung, die es erlauben, lange Tabellen, also Tabellen, die über mehrere Seiten hinweg gehen, zu setzen (vgl. Kapitel 2). Eine Präambel enthält i.A. sehr viele solcher usepackage-Anweisungen. Normalerweise erzeugt man sich als LATEX-Anwender im Laufe der Zeit geeignete Vorlagen (Template-Files) für den jeweils gewünschten Dokumenttyp. Wir werden im Folgenden ein Template-File vorstellen und besprechen, welches für die Übungen zu den nachfolgenden Kapiteln verwendet werden sollte. Befehle und Umgebungen In den vorangegangenen Abschnitten war schon mehrfach von LATEX-Befehlen und -Umgebungen gesprochen worden, ohne das diese Begriffe näher erläutert wurden. Ein LATEX-Befehl besteht aus einem mit einem Backslash (\) eingeleiteten Schlüsselwort, welches ggf. Argumente benötigt, die ihrerseits in geschweiften Klammern eingeschlossen werden. Die Wirkung solcher Befehle erstreckt sich entweder auf das ganze nachfolgende Dokument oder auf das Argument oder auf einen vom Nutzer durch geschweifte Klammern definierten Abschnitt des Dokuments. Beispielsweise wird durch den Befehl \emph mit \emph{Befehle} das Wort Befehle zur Hervorhebung (emphasis) in kursiver Form gesetzt. Die Wirkung beschränkt sich dabei auf den Inhalt der nachfolgenden geschweiften Klammern. Durch die Anweisung \bfseries wird der nachfolgende Text fett gedruckt. Die Wirkung erstreckt sich somit bis zum Ende des Dokuments bzw. bis zu einem Befehl, der diese Anweisung wieder aufhebt. Die Wirkung kann allerdings auch dadurch eingegrenzt werden, Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 9 Ausgewählte LATEX-Kapitel dass man den Befehl zwischen zwei geschweifte Klammern setzt. So bewirkt beispielsweise Der Text {\bfseries wird nun fett gesetzt} und dann wieder normal! die Ausgabe: Der Text wird nun fett gesetzt und dann wieder normal! Die Umstellung auf Fettdruck hat sich also nur lokal, d.h. innerhalb der geschweiften Klammern ausgewirkt. Eine LATEX-Umgebung wird durch \begin{<Umgebungsname>} Anweisungen ··· Anweisungen \end{<Umgebungsname>} definiert. Innerhalb der begin...end Klammer werden die LATEX-Anweisungen entsprechend der Definition der Umgebung interpretiert. Ihre Wirkung ist auf diese Klammer beschränkt. So wird etwa mit Der Text \begin{bfseries} wird nun fett gesetzt \end{bfseries} und dann wieder normal! ebenfalls die Wirkung Der Text wird nun fett gesetzt und dann wieder normal! erzielt. Viele LATEX-Anweisungen, wie etwa bfseries, sind sowohl in der Befehlsform als auch in der Umgebungsform definiert und können entsprechend verwendet werden. Einzelheiten sind der Dokumentation des jeweiligen Pakets zu entnehmen, in dem die Befehle und Umgebungen definiert werden. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 10 Ausgewählte LATEX-Kapitel Eigene Befehle definieren und einbinden Besitzt man einige etwas weiter gehende TEX-Kenntnisse, so kann man natürlich auch eigene Makros und Befehle definieren. Fasst man diese Befehle dann in einem eigenen Style-File zusammen, so kann man dieses File, wie oben beschrieben, im MiKTeX-Verzeichnis installieren und die Definitionen mit dem \usepackage-Befehl in sein Dokument einbinden. Wir haben von dieser Möglichkeit in Kapitel 6 Gebrauch gemacht, um die etwas schwerfälligen Tabellendefinitionen durch entsprechende Abkürzungen übersichtlicher und leichter handhabbar zu machen. Der Nachteil dieses Verfahrens ist natürlich, dass man die sicheren Pfade des Standard-LATEX verlässt. Die Einbindung des selbst verfassten Pakets ist in diesem Falle unbedingt notwendig, damit das Dokument TEX-bar bleibt. 1.2 Aufbau der verwendeten LATEX-Dokumente Im Folgenden werden zur Einübung des Erlernten zahlreiche Übungsaufgaben angeboten. Die Bearbeitung der Übungsaufgaben setzt voraus, dass sämtliche verwendeten Pakete mit dem \usepackage-Befehl in der Präambel eingebunden werden. Um dies sicherzustellen, werden vorgefertigte LATEX-Dokumente angeboten, so genannte Template-Files, welche alle notwendigen Präambel-Befehle schon enthalten. Um Fehler und Ärger, etwa bei der häuslichen Nacharbeit der Übungsaufgaben zu vermeiden, wird dringen empfohlen, diese Templates zu verwenden und die unten beschriebene Vorgehensweise einzuhalten. Template-Files für dieses Skript Für die Übungsaufgaben der Kapitel 1 bis 4 sollte das Template-File LatexVor2006VorlageUebungen.tex verwendet werden. Es hat folgende Gestalt: %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% LatexVor2006VorlageUebungen.tex - Vorlesung LaTeX Oktober 2006 Dieses Template-File sollte zur Bearbeitung der Übungsaufgaben der Kapitel 1 bis 4 verwendet werden. Die Vorgehensweise wird im Skript und in den nachfolgenden Kommentaren erläutert! Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 11 Ausgewählte LATEX-Kapitel %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% %%%%%%%% Um Probleme zu vermeiden, wird dringend empfohlen, sich an diese Struktur zu halten! Autor: Prof. Dr. Ottmar Beucher email: [email protected] Bug-reports: bitte nur mit Beispielfile und kompletter Fehlerbeschreibung zusenden!! \documentclass[a4paper,oneside,12pt]{article} %%%%%%% Pakete zur Einstellung der Schrift auf die Palatino%%%%%%% Familie \usepackage{palatino} \usepackage{pifont} \usepackage[scaled=0.92]{helvet} %%%%%%% Pakete zur Einstellung der T1-Fontcodierung (empfohlen) %%%%%%% \usepackage[T1]{fontenc} \usepackage{textcomp} %%%%%%% Einstellungen für die deutsche Sprache (Trennung etc.) %%%%%%% \usepackage{ngerman} %%%%%%% Ifthen-Paket %%%%%%% wird unten verwendet, um einen Schalter zu definieren, der %%%%%%% erkennt, ob pdfLaTeX oder LaTeX läuft. Je nach dem werden %%%%%%% mit \includegraphics dann andere Grafikformate eingebunden %%%%%%% \usepackage{ifthen} %%%%%%% Ansi-Paket, damit im Text Umlaute geschrieben und richtig %%%%%%% erkannt werden %%%%%%% \usepackage[ansi]{umlaute} %%%%%%% Übliche Pakete, die für das Scheiben von Mathematik Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 12 Ausgewählte LATEX-Kapitel %%%%%%% gebraucht werden %%%%%%% \usepackage{theorem} \usepackage{latexsym} \usepackage{verbatim} \usepackage{a4} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsmath} \usepackage{mathpple} % mathematische Zeichen passen zu Palatino \usepackage{fancybox} %%%%%%% Pakete für die Tabellengestaltung %%%%%%% \usepackage{array} \usepackage{longtable} \usepackage{booktabs} \usepackage{dcolumn} \usepackage{tabularx} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% %%% Spezielle Definition für Tabellen: %%% siehe Latex-Begleiter Seite 110 %%% Sichert die Definition des Zeilenumbruchs für die Umgebungen %%% array und tabular, damit dort Flattersatz mit \raggedright %%% verwendet werden kann %%% \newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp} \let\PBS=\PreserveBackslash %%%%%%% Es wird automatisch ermittelt, ob LaTeX oder PdfLaTeX %%%%%%% läuft, damit bei den Bildern entsprechend umgeschaltet %%%%%%% werden kann. Hierzu wird der Schalter ispdftex definiert \newboolean{ispdftex} \ifthenelse{\isundefined{\pdfoutput}}{% \setboolean{ispdftex}{false}}{% \setboolean{ispdftex}{true}} %%%%%%% Mit Hilfe des Schalters ispdftex wird je nach dem %%%%%%% bei PdfLaTeX das graphicx-package, bei LaTeX das Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 13 Ausgewählte LATEX-Kapitel 14 %%%%%%% epsfig-package geladen \ifthenelse{\boolean{ispdftex}}{% \usepackage[pdftex]{graphicx} \usepackage[pdftex]{color}}{% \usepackage[dvips]{epsfig} \usepackage{color}} \usepackage{rotating} \usepackage{caption2} %%%%%%% Vergrößerung der Toleranz für den Zeilenumbruch %%%%%%% es werden größere Zwischenräume zwischen den Wörtern %%%%%%% zugelassen \tolerance=1000 %%%%%%% Das eigentliche LaTeX-Dokument beginnt hier!!! %%%%%%% %%%%%%% %%%%%%% \begin{document} %%%%%%% %%%%%%% %%%%%%% %%%%%%% %%%%%%% %%%%%%% %%%%%%% %%%%%%% %%%%%%% %%%%%%% Die einzelnen Dateien mit den Lösungen der Übungsaufgaben einbinden. Befinden sich die Aufgaben in einem Unterverzeichnis, so muss dies, wie im folgenden Beispiel mit angegeben werden. Bitte tragen Sie in das File LatexVor2006VorlageUebungen.tex keine LaTeX-Anweisungen ein, sondern erzeugen Sie für jede Lösung eine eigene Datei und binden Sie diese dann mit dem \input-Befehl hier ein! \input{Uebungen/aufgabetest.tex} % oder ähnlich! \end{document} Für die Bearbeitung der Aufgaben des letzten Kapitels, in welchem weiter gehende Themen behandelt werden und in dem dann auch in weit reichendem Maße eigene Makros und Befehlsdefinitionen verwendet werden, sollte dann Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel das Template-File LatexVor2006VorlageAdvanced.tex verwendet werden. Unbedingte Voraussetzung für dessen Verwendung ist jedoch, dass zuvor das Style-File skriptdefs.sty in der oben beschriebenen Weise im MiKTeXSystem installiert wurde. Anderenfalls werden die Befehle nicht gefunden. Der \input-Mechanismus Die Übungsaufgaben sollten in separaten Dateien bearbeitet und abgespeichert werden und mit dem \input-Befehl in das Dokument eingefügt werden. Dieser Befehl bewirkt die textuelle Einbindung der Datei in Ihr Dokument. Die Wirkung ist so, als ob Sie den Text direkt an diese Stelle geschrieben hätten. Dieser Befehl gestattet es, das Dokument übersichtlich zu halten, da einzelne Abschnitte, oder auch, wie im vorliegenden Fall Übungsaufgaben, in getrennten Dateien gehalten werden können. Bearbeitung von Übungsaufgaben Die Bearbeitung der Übungsaufgaben erfolgt nun auf folgende Weise: • Eintragen der Lösung in ein eigenes *.tex-File. • Einfügen der Anweisung \input{*.tex} in eines der Template-Files. Ggf. muss der relative Pfad mit angegeben werden. • LATEX-Lauf des Template-Files. • Begutachtung des Ergebnisses im Previewer (yap, AcroReader oder GhostView). Um die Korrektheit der Installation zu testen, sollte vorab ein Testlauf mit dem File aufgabetest.tex gemacht werden. Werden von LATEX fehlende Pakete moniert, so sollten diese auf die oben beschriebene Weise nachinstalliert werden. 1.3 Informationsbeschaffung und Trouble-Shooting Im Folgenden sollen noch einige Hinweise gegeben werden, wie man sich (über die im Literaturverzeichnis angegebenen Quellen hinaus) Informationen über LATEX beschaffen kann. Die Hauptinformationsquelle ist dabei natürlich das Internet. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 15 Ausgewählte LATEX-Kapitel Begeitmaterial Alle vom Autor zur Verfügung gestellten Dateien sind im Ordner MaterialLaTeXVorlesung2006 zusammengefasst und stehen den Kursteilnehmern auf dem lokalen Netzwerk zur Verfügung. Dieser Ordner enthält folgende Dateien und Verzeichnisse • LatexVor2006VorlageAdvanced.tex - Template-File • LatexVor2006VorlageUebungen.tex - Template-File • skriptdefs.sty - Style mit Makros und Sonderdefinitionen • LatexVor2006.pdf (Skriptum im *.pdf-Format) • FHlogo (Verzeichnis) mit den Dateien: – fhlogo.pdf (.png,.eps) - Testgrafik – scharfaufLatex.png (.eps) - Testgrafik • Uebungen (Verzeichnis) mit den Dateien: – aufgabetest.tex - Lösung einer Testaufgabe • Zusatzinfos (Verzeichnis) mit den Dateien: – fntguide.pdf (.tex) - Dokumentation zu Fonts – psnfss2e.pdf - Dokumentation zum Font Selection Scheme – tabsatz.tex - Dokumentation zum Tabellensatz – array.dvi - Dokumentation zum array-Paket – dcolumn.dvi - Dokumentation zum dcolumn-Paket – longtable.dvi - Dokumentation zum longtable-Paket – tabularx.dvi - Dokumentation zum tabularx-Paket – epslatex.ps - Dokumentation zur Verwendung von *.eps-Dateien – grfguide.ps - Dokumentation zur Einbindung von Grafiken – List of all latex packages.htm - Liste aller (?) auf dem Netz verfügbaren Pakete – de-tex-faq.pdf - Frequently Asked Questions zu LATEX Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 16 Ausgewählte LATEX-Kapitel Informationsbeschaffung via Internet Als Zusatzinformation ist insbesondere die Datei de-tex-faq.pdf zu empfehlen. In den meisten Fällen erhält man hier Antwort auf brennende Fragen, wobei allerdings zugegeben werden muss, dass die behandelten Probleme oft über dem Anfängerniveau liegen. Diese Datei wird vom LATEX3Projektteam regelmäßig gepflegt und auf dem Server der deutschen LATEXUser-Vereinigung, dem so genannten dante-server unter www.dante.de veröffentlicht. In der LATEX-newsgroup comp.text.tex.de wird sie darüber hinaus regelmäßig gepostet. Der Dante-Server ist natürlich die erste Anlaufstelle, falls Informationen zu LATEX gesucht werden, sei es Dokumentationen, sei es fehlende Pakete. Über die Suchmaschine kann jedes Dokument, sofern vorhanden, bequem gefunden werden. Zusätzlich empfiehlt es sich, bei speziellen Problemen das Archiv der LATEX-newsgroup mit der Suchmaschine www.google.de zu durchstöbern. Nicht zu verachten ist natürlich auch die Methode „Wir fragen einen Experten“, falls man einen solchen gerade greifbar hat. Die CD zum Kurs Um den Kursteilnehmern die Suche nach Paketen und Dokumentationen auf dem Dante-Server und damit online-Kosten zu ersparen, wurde der ServerInhalt auf CD-ROM gebrannt. Diese steht den Teilnehmern auf Anfrage zu Kopierzwecken zur Verfügung. 1.4 Übungen zum Thema Grundlagen und Voraussetzungen Übung 1 (Lösung S. 108) Suchen Sie im Netz das Style-File url.sty und installieren Sie das Paket in Ihrem MiKTeX-Verzeichnis. Ergänzen Sie anschließend das Template-File LatexVor2006VorlageUebungen.tex so, dass das Paket url verwendet werden kann. Das Paket enthält den Befehl \url{<Argument>}. Der Befehl setzt das Argument in Form einer Internet-URL. Das Besondere daran ist, dass man sich keine Gedanken um Sonderzeichen wie \ , / , _ oder @ zu machen braucht, die in URLs oder e-mailAdressen vorkommen und in LATEX normalerweise den Status von Sonderzeichen annehmen, was zu Problemen führt. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 17 Ausgewählte LATEX-Kapitel Probieren Sie diesen Befehl an folgendem Beispieltext aus: Mein Name ist Manfred Mustermann. Meine e-mail-Adresse ist mannis. [email protected]. Die Adresse meiner Homepage ist http://www.t-online/home/manni_ mustermann-home.de und Sie sollten sich diese wunderbare Homepage dringend mal anschauen. Schreiben Sie diesen Beispieltext zu diesem Zweck in eine eigene *.tex-Datei und binden Sie diese Datei anschließend mit Hilfe des \input-Mechanismus in Ihr MainFile LatexVor2006VorlageUebungen.tex ein. Versuchen Sie anschließend mit einem LATEX-Lauf ein korrektes Dokument zu erzeugen. Übung 2 (Lösung S. 109) Suchen Sie in den Frequently Asked Questions de-tex-faq.pdf einen Hinweis darauf, wie man das Trademark-Zeichen setzen kann. Wenn Sie eine Lösung gefunden haben, probieren Sie diese an folgendem Beispieltext aus: WürgFürWindoofs™ ist ein einbetrogenes Warenzeichen der Billy the Gates Time Destruction Company Inc. Verwenden Sie beim Ausprobieren bezüglich der Dateiorganisation dieselbe Vorgehensweise wie in Übung 1. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 18 Kapitel 2 Tabellensatz mit LATEX Der Tabellensatz mit LATEX ist ein Kapitel für sich, denn der Entwurf einer Tabelle gestaltet sich meist schwierig und oft ist die Editierung recht unübersichtlich. Es empfiehlt sich daher, sich im Laufe der Zeit Vorlagen für Tabellen anzulegen, die man oft verwendet und zwischendrin die Geduld nicht zu verlieren. Dafür wird man dann aber mit typografisch einwandfreien „schönen“ Tabellen belohnt. Im Folgenden sollen die wesentlichen Pakete zum Satz von Tabellen mit Beispielen vorgestellt werden. 2.1 Das array-Paket Das zentrale Paket für das Setzen von Tabellen ist das array-Paket. Das zugehörige Style-File array.sty gehört normalerweise zur Standardinstallation von LATEX. Das Einbinden dieses Pakets in der Präambel erfolgt mit: \usepackage{array} Wesentliche Umgebungen dieses Pakets [5, 7] für den Tabellensatz sind array und tabular. Diese genügen folgender allgemeiner Syntax: \begin{array}{spaltendefinition} Spalten ··· Spalten \end{array} Ausgewählte LATEX-Kapitel 20 und \begin{tabular}{spaltendefinition} Spalten ··· Spalten \end{tabular} 2.1.1 Die array-Umgebung Die array-Umgebung setzt die Tabelle grundsätzlich im Mathematik-Modus (im nachfolgenden Beispiel durch \[ und \] definiert) und ist so am besten geeignet für das Setzen von Matrizen oder Zahlenkolonnen. Beispielsweise wird durch die Anweisungen \[\left( \begin{array}{rrr} 1 & 2 & -1 & -302 & 201 & 0 & \end{array} \right)\] 3 -15 -101 \\ \\ die folgende 3 × 3-Matrix gesetzt: 1 2 3 −1 −302 −15 201 0 −101 Man erkennt, dass in diesem Fall die Spaltendefinition aus der Buchstabenkombination rrr besteht. Dies bedeutet, dass die Einträge in der Matrix rechtsbündig gesetzt werden. Wir werden im Laufe der nachfolgenden Abschnitte die möglichen Spaltendefinitionen nach und nach kennenlernen. Wie man sieht, muss man, da die Matrix aus 3 Spalten besteht, die Spaltenoption r drei mal angeben. Jeder Spalte muss also eine Spaltenoption entsprechen, ansonsten reagiert LATEX mit einer Fehlermeldung. Die Einträge der einzelnen Spalten sind im nachfolgenden Rumpf der Umgebung durch ein & voneinander getrennt. Der Übergang in die nächste Zeile erfolgt mit \\. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 21 Im nachfolgenden Beispiel wird die obige Matrix so gesetzt, dass die erste Spalte linksbündig (Option l), die zweite Spalte zentriert (Option c) und die dritte Spalte rechtsbündig (Option r) gesetzt wird. Dies wird durch die Anweisungen \[\left( \begin{array}{l c r} 1 & 2 & -1 & -302 & 201 & 0 & \end{array} \right)\] 3 -15 -101 \\ \\ erreicht und setzt die Matrix in folgender Form: 1 2 3 −1 −302 −15 201 0 −101 2.1.2 Die tabular-Umgebung Mit der tabular-Umgebung können Tabellen mit Texteinträgen gesetzt werden. Die Umgebung wird jedoch nicht innerhalb einer mathematischen Umgebung verwendet. Zur Erläuterung zunächst ein Beispiel. Durch die Anweisungen \begin{tabular}{l Schnitzel & Steak & Brötchen & Pop Corn & \end{tabular} c r } Fleisch Fleisch Getreide Getreide & & & & Schwein \\ Rind \\ Weizen \\ Mais wird die Tabelle Schnitzel Steak Brötchen Pop Corn Fleisch Schwein Fleisch Rind Getreide Weizen Getreide Mais Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 22 gesetzt. Man erkennt, dass der Satz dieser Tabelle dem gleichen Prinzip wie bei der array-Umgebung folgt. LATEX berechnet dabei selbst, wie breit die benötigten Spalten werden und setzt diese dann entsprechend den in den Umgebungsparametern angegebenen Formatanweisungen, im vorliegenden Beispiel also linksbündig, zentriert und rechtsbündig. Die entstandene Tabelle ist sehr einfach und ihre Gestaltung wurde i.W. LATEXs Algorithmen überlassen. Es ist aber für den Anwender selbstverständlich möglich, hierauf größeren Einfluss zu nehmen. So wäre es im vorliegenden Beispiel etwa wünschenswert, die Tabelle mit einem Kopf zu versehen, mit Trennlinien aufzulockern und die Spaltenbreite zu beeinflussen. Dies erreicht man etwa durch folgende Anweisungen: \begin{tabular}{p{4cm} p{3cm} p{4cm} } \toprule Nahrungsmittel & Art & Ausgangsprodukt \\ \cmidrule{1-3} Schnitzel & Fleisch & Schwein \\ \addlinespace Steak & Fleisch & Rind \\ \addlinespace Brötchen & Getreide & Weizen \\ \addlinespace Pop Corn & Getreide & Mais \\ %%% hier \\ !! \bottomrule \end{tabular} Die Tabelle sieht dann folgendermaßen aus: Nahrungsmittel Art Ausgangsprodukt Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Wie im obigen Beispiel zu sehen ist werden die Tabelleneinträge mit der Option p und einer Breitenangabe für die Spalten gesetzt. Dadurch erhalten die Spalten in jedem Fall die angegebene Breite. Durch die Anweisungen \toprule und \bottomrule werden die begrenzenden Linien oben und unten erzeugt und durch die Anweisung \cmidrule{1-3} entsteht die TrennFachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 23 linie zwischen Kopf und Rumpf der Tabelle. Bei dieser Anweisung muss in den geschweiften Klammern mit angegeben werden, über welche Spalten sich die Linie erstrecken soll. Für die Verwendung dieser Kommandos allerdings ist das Hinzuladen des booktabs-Paketes nötig. Ansonsten müssen die Kommandos \hline und \cline verwendet1 werden, die weiter unten vorgestellt werden. 2.2 Übungen zum array-Paket Übung 3 (Lösung S. 109) Setzen Sie die folgende 4 × 2-Matrix: −2024 204 1 −23006 0 −1 25561 −255 Gehen Sie dabei folgendermaßen vor: • Schreiben Sie Ihre Lösung in eine eigene Datei (namens ue3.tex). • Binden Sie anschließend diese Datei mit dem \input-Kommando in das Template-File LatexVor2006VorlageUebungen.tex ein. Diese Datei soll für LATEX das main-File sein. Stellen Sie Ihre TEX-Umgebung entsprechend ein. • TEXen Sie das main-File und korrigieren Sie ggf. die Fehler in ue3.tex solange, bis die obige Matix korrekt gesetzt ist. Wichtige Bemerkung: Bei allen Übungen und insbesondere bei der häuslichen Nacharbeit sollten Sie stets diese Vorgehensweise beibehalten. Keinesfalls sollten Sie dabei die Präambel des Template-Files ändern. Binden Sie lediglich die separat erstellte Datei mit den Lösungen ein! Übung 4 (Lösung S. 109) Setzen Sie die nachfolgende Tabelle: 1 Es ist nicht garantiert, dass sich diese Kommandos innerhalb einer Tabelle mischen lassen. Also entweder nur die eine oder die andere Kommandogruppe verwenden. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel Der Kommentar 24 Zahlen Fakten Kosten 2.00 14 Gebühren 5.30 12 Daten 1.33 13.3 Werte 0.00 unbekannnt Beachten Sie, dass die Zahlenkolonnen im mathematischen Modus zu setzen sind. 2.3 Das array-Paket (Fortsetzung) Innerhalb der Spalten versucht LATEX bei der p-Option im Blocksatz zu setzen, was oft nicht gut aussieht, wie das folgende Beispiel zeigt: \begin{tabular}{p{4cm} p{3cm} \toprule Nahrungsmittel & Art \cmidrule{1-3} Schnitzel & Fleisch p{4cm} } & Kommentar \\ & Schwein, ist bei Massen-% tierhaltung hormonbe-% lastet \\ \addlinespace Rind, birgt immer noch % BSE-Gefahr \\ \addlinespace Weizen, gegebenenfalls gentechnisch verän-% dert \\ \addlinespace Mais, s.\ Weizen \\ Steak & Fleisch & Brötchen & Getreide & Pop Corn \bottomrule \end{tabular} & Getreide & Die Tabelle sieht dann folgendermaßen aus: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 25 Nahrungsmittel Art Kommentar Schnitzel Fleisch Schwein, ist bei Massentierhaltung hormonbelastet Steak Fleisch Rind, birgt immer noch BSE-Gefahr Brötchen Getreide Weizen, gegebenenfalls gentechnischverändert Pop Corn Getreide Mais, s. Weizen Wie man sieht, versucht LATEX, den Text in der letzten Spalte im Blocksatz zu setzen, was u.U. zu großen Lücken führt, wie in der ersten Zeile der Tabelle. Man kann versuchen, dies durch Anpassung (Erhöhung) der Zeilenbreite abzumildern, besser ist es jedoch, LATEX dazu zu zwingen, die Spalte im Flattersatz zu setzen. Man erreicht dies im vorliegenden Fall etwa durch folgende Anweisung: \begin{tabular}{p{4cm} p{3cm} >{\PBS\raggedright\hspace{0pt}}p{4cm}} \toprule Nahrungsmittel & Art & Kommentar \\ \cmidrule{1-3} Schnitzel & Fleisch & Schwein, ist bei Massen-% tierhaltung hormonbe-% lastet \\ \addlinespace Steak & Fleisch & Rind, birgt immer noch % BSE-Gefahr \\ \addlinespace Brötchen & Getreide & Weizen, gegebenenfalls gentechnisch verän-% dert \\ \addlinespace Pop Corn & Getreide & Mais, s.\ Weizen \\ \bottomrule \end{tabular} Die Tabelle sieht dann folgendermaßen aus: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 26 Nahrungsmittel Art Kommentar Schnitzel Fleisch Schwein, ist bei Massentierhaltung hormonbelastet Steak Fleisch Rind, birgt immer noch BSE-Gefahr Brötchen Getreide Weizen, gegebenenfalls gentechnischverändert Pop Corn Getreide Mais, s. Weizen Die letzte Spalte wirkt nun etwas harmonischer. Die Anweisung >\PBS\raggedright\hspace{0pt} verändert dabei die Eigenschaften der p-Option so, dass die Spalte zwar die angegebene Breite behält, jedoch im Flattersatz gesetzt wird. Wir werden auf die Möglichkeiten die Spaltenoptionen durch voranstellen von >{...} und Nachstellen von <{...} im Abschnitt 2.3.4 noch genauer eingehen. An dieser Stelle sei speziell darauf hingewiesen, dass wir mit der Anweisung >\PBS\raggedright\hspace{0pt} die Pfade der Standard-LATEX-Pakete für kurze Zeit verlassen, da wir auf das spezielle Makro \PBS zurückgreifen, so wie es in [7] beschrieben wird. Das Makro muss, wenn man von dieser Möglichkeit der Umstellung auf Flattersatz Gebrauch machen will, in der Präambel des Dokuments definiert werden. In den Template-Files des Begleitmaterials ist dies bereits geschehen (vgl. Seite 11ff). Auf die Details der Struktur dieser speziellen Konstruktion soll an dieser Stelle nicht eingegangen werden. Hierfür sei der interessierte Leser auf [7] verwiesen. Natürlich wird durch die zusätzliche Anweisung nur die letzte Spalte im Flattersatz gesetzt. Will man dies für alle Spalten haben, so muss die Anweisung für jede Spalte wiederholt werden: \begin{tabular}{>{\PBS\raggedright\hspace{0pt}}p{4cm} % >{\PBS\raggedright\hspace{0pt}}p{3cm} % >{\PBS\raggedright\hspace{0pt}}p{4cm}} \toprule Schnitzel und Eisbein & Fleisch & Schwein, ist bei Massen-% tierhaltung hormonbelastet \\ % \addlinespace Steak, Kalbsschnitzel Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel und Rouladen 27 & Fleisch & Rind, birgt immer noch % BSE-Gefahr\\ \bottomrule \end{tabular} Schnitzel und Eisbein Fleisch Schwein, ist bei Massentierhaltung hormonbelastet Steak, Kalbsschnitzel und Rouladen Fleisch Rind, birgt immer noch BSE-Gefahr Die Wiederholung dieser Anweisung macht die Definition der Spaltenoptionen sehr schwerfällig. Dies gilt im Übrigen auch für andere Modifikationen der Standardoptionen, die wir im Folgenden noch kennenlernen. Wir werden für dieses Problem verschiedene Lösungen angeben. Im vorliegenden Fall bietet sich die Definition einer eigenen Spaltenoption an, die dann statt der Option p verwendet werden kann. Wir werden auf diese Möglichkeiten erst im vorletzten Kapitel dieses Skriptums (Kapitel 6) detailliert eingehen und machen daher an dieser Stelle davon keinen Gebrauch, um nicht den Rahmen der Möglichkeiten der vorgestellten Standardpakete zu verlassen. Sollen die Spalten immer gleich sein, so kann man sich das Konstrukt zu Nutze machen, das im folgenden Abschnitt vorgestellt wird. 2.3.1 Wiederholung von Spaltendefinitionen Soll in mehreren hintereinander liegenden Spalten die gleiche Spaltendefinition verwendet werden, so kann dies durch Voranstellen von *{anzahl} abgekürzt werden. Beispielsweise liefert \begin{tabular}{*{3}{>{\PBS\raggedright\hspace{0pt}}p{4cm}}} \toprule Schnitzel und Eisbein & Fleisch & Schwein, ist bei Massen% tierhaltung hormonbelastet \\ % \addlinespace Steak, Kalbsschnitzel und Rouladen & Fleisch & Rind, birgt immer noch % Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 28 BSE-Gefahr\\ \bottomrule \end{tabular} die Tabelle: Schnitzel und Eisbein Fleisch Schwein, ist bei Massentierhaltung hormonbelastet Steak, Kalbsschnitzel und Rouladen Fleisch Rind, birgt immer noch BSE-Gefahr Es wird also jede der drei Spalten in der Breite 4 cm im Flattersatz gesetzt. Ein etwas einfacheres Beispiel, da es sich nur auf Standardspaltenoptionen bezieht wäre: \begin{tabular}{*{4}l} \toprule Schnitzel & Fleisch Steak & Fleisch Brötchen & Getreide Pop Corn & Getreide \bottomrule \end{tabular} & & & & Schwein Rind Weizen Mais was die Tabelle Schnitzel Steak Brötchen Pop Corn Fleisch Fleisch Getreide Getreide Schwein Rind Weizen Mais gut prima schmeckt lecker liefert. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe & & & & gut\\ prima\\ schmeckt\\ lecker\\ Ausgewählte LATEX-Kapitel 2.3.2 29 Unterdrückung der Spaltenzwischenräume Um überstehende Linien, wie sie etwa in dem vorangegangenen Beispiel zu sehen sind, zu vermeiden sollte @{} vor und/oder nach der Spaltendefinition eingefügt werden, etwa so: \begin{tabular}{@{}spaltendefinition@{}} Zum Beispiel liefert \begin{tabular}{*{3}{@{}{p{5cm}}@{}}} eine Tabelle mit 3 Spalten à 5 cm Breite und unterdrückt die Trennlücke zwischen den Spalten. Dadurch werden Linien direkt über dem Text platziert und stehen nicht über. Dies zeigt das folgende Beispiel: \begin{tabular}{*{4}{@{}p{3cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \cmidrule{3-4} Steak & Fleisch & Rind \cmidrule{1-4} Brötchen & Getreide & Weizen \cmidrule{3-4} Pop Corn & Getreide & Mais \bottomrule \end{tabular} & gut\\ \addlinespace & prima\\\addlinespace & schmeckt\\ \addlinespace & lecker\\ Schnitzel Fleisch Schwein gut Steak Fleisch Rind prima Brötchen Getreide Weizen schmeckt Pop Corn Getreide Mais lecker 2.3.3 Anpassung der Schriftgrößen In manchen Fällen, insbesondere bei Tabellen mit sehr vielen Einträgen, empfiehlt es sich, kleinere Schriftgrößen zu verwenden. Diese kann etwa innerhalb der tabular-Umgebung durch Umschalten der Größe mit den entsprechenden Befehlen geändert werden. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 30 Beispielsweise liefert \begin{tabular}{*{4}{>{\scriptsize}p{2cm}}} \toprule Schnitzel & Fleisch & Schwein & \cmidrule{3-4} Steak & Fleisch & Rind & \cmidrule{1-4} Brötchen & Getreide & Weizen & \cmidrule{3-4} Pop Corn & Getreide & Mais & \bottomrule \end{tabular} gut\\ \addlinespace prima\\\addlinespace schmeckt\\ \addlinespace lecker\\ die Tabelle Schnitzel Fleisch Schwein gut Steak Fleisch Rind prima Brötchen Getreide Weizen schmeckt Pop Corn Getreide Mais lecker mit Einträgen in der Schriftgröße scriptsize. In diesem Beispiel wurde die Schriftgröße der Tabelleneinträge durch Voranstellen des Befehls \scriptsize in allen Spalten auf die Schriftgröße scriptsize geändert. 2.3.4 Allgemeine Anpassungen für Spalten Wie in den obigen Beispielen gezeigt, kann durch Voranstellen von >{Definitionen} das Aussehen der Spalten verändert werden. Allgemein stellt >{Definitionen} den in Definitionen definierten Text oder Befehl dem Spalteneintrag voran. Ähnliches leistet ein nachgestelltes <{Definitionen}. Beispielsweise liefert \begin{tabular}{*{4}{>{$--$\scriptsize}p{3cm}<{ $\clubsuit$}}} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel \toprule Schnitzel & \cmidrule{3-4} Steak & \cmidrule{1-4} Brötchen & \cmidrule{3-4} Pop Corn & \bottomrule \end{tabular} 31 Fleisch & Schwein & gut\\ \addlinespace Fleisch & Rind & prima\\\addlinespace Getreide & Weizen & schmeckt\\ \addlinespace Getreide & Mais & lecker\\ die Tabelle −−Schnitzel ♣ −−Fleisch ♣ −−Schwein ♣ −−gut ♣ −−Steak ♣ −−Fleisch ♣ −−Rind ♣ −−prima ♣ −−Brötchen ♣ −−Getreide ♣ −−Weizen ♣ −−schmeckt ♣ −−Pop Corn ♣ −−Getreide ♣ −−Mais ♣ −−lecker ♣ Hier wird also auf die Schriftgröße scriptsize umgestellt und jedem Eintrag ein −− voran und ein ♣ nachgestellt. Eine andere Anwendung könnte beispielsweise sein, die Einträge einer bestimmten Spalte hervorzuheben. So wird etwa die zweite Spalte der folgenden Tabelle durch die Spaltendefinition fett gesetzt. \begin{tabular}{ l >{\bfseries}p{3cm} *{2}{p{3cm}}} \toprule Schnitzel & Fleisch & Schwein & gut\\ \addlinespace \cmidrule{3-4} Steak & Fleisch & Rind & prima\\\addlinespace \cmidrule{1-4} Brötchen & Getreide & Weizen & schmeckt\\ \addlinespace \cmidrule{3-4} Pop Corn & Getreide & Mais & lecker\\ \bottomrule \end{tabular} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 32 Schnitzel Fleisch Schwein gut Steak Fleisch Rind prima Brötchen Getreide Weizen schmeckt Pop Corn Getreide Mais lecker 2.3.5 Tafeln mit vertikalen Linien Durch Einfügen des Symbols | in die Spaltendefinitionen und durch Verwendung von \hline und \cline für die horizontalen Linien statt der oben verwendeten \toprule, \cmidrule und \bottomrule können die Spalten und Zeilen mit Linien umrahmt werden. So liefert \begin{tabular}{|l|p{3cm}|r|r|} \hline Schnitzel & Fleisch & \cline{3-4} Steak & Fleisch & \cline{1-4} Brötchen & Getreide & \hline \end{tabular} Schwein & gut\\ Rind & prima\\ Weizen & schmeckt\\ die Tafel Schnitzel Steak Brötchen Fleisch Fleisch Getreide Schwein Rind Weizen gut prima schmeckt Wie an dem obigen Beispiel zu sehen ist, „kleben“ die Tabelleneinträge am oberen Rand. Dies kann durch Erhöhung der Zeilenhöhe behoben werden, wie das Beispiel {\setlength{\extrarowheight}{4pt} \begin{tabular}{|l|p{3cm}|r|r|} \hline Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel Schnitzel & \cline{3-4} Steak & \cline{1-4} Brötchen & \hline \end{tabular} } 33 Fleisch & Schwein & gut\\ Fleisch & Rind & prima\\ Getreide & Weizen & schmeckt\\ zeigt: Schnitzel Fleisch Schwein gut Steak Fleisch Rind prima Brötchen Getreide Weizen schmeckt Wie der Name schon sagt, fügt de Befehl \extrarowheight{...} eine zusätzliche Höhe in die Zeilen der Tabellen ein. Die Höhe muss als Parameter angegeben werden. Im obigen Beispiel sind dies 4 Pixelpunkte. Die zusätzliche Höhe könnte aber auch in mm oder cm angegeben werden. \extrarowheight gehört zu den Tabellenstilparametern. Eine Minimalübersicht hierzu findet man in Abschnitt 2.13 am Schluss des Kapitels. Die Wirkung des Parameters erstreckt sich prinzipiell auf alle nachfolgenden Tabellen derselben Gruppe von LATEX-Anweisungen. Wenn der Befehl also irgendwo im Text auftritt, so wirkt er normalerweise im ganzen nachfolgenden Dokument. Im obigen Beispiel ist die Wirkung auf die nachfolgende Tabelle beschränkt worden. Dies wurde dadurch erreicht, dass Befehl und Tabelle in ein { }Paar geklammert wurden. \extrarowheight wirkt somit nur innerhalb der Klammern. Vertikale Linien können auch weggelassen werden oder doppelt und mehrfach vorkommen. So liefert {\setlength{\extrarowheight}{4pt} \begin{tabular}{ |*{2}{|p{3cm}|} p{3cm} >{\large}p{3cm}|||} \hline Schnitzel & Fleisch & Schwein & gut\\ \cline{3-4} Steak & Fleisch & Rind & prima\\ Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel \cline{1-4} Brötchen & \hline \end{tabular} } Getreide 34 & Weizen & schmeckt\\ die Tabelle: Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen gut prima schmeckt Die ersten beiden Linien sind verdoppelt, wobei die zweite durch die Wiederholungsoption verdoppelt wird. Die vierte Linie ist offenbar weggefallen, während die äußerst rechte Begrenzung explizit als Dreifachlinie definiert ist. 2.4 Übungen zum array-Paket Übung 5 (Lösung S. 110) Setzen Sie die Tabelle aus Übung 4 so, dass die erste Spalte eine Breite von 4 cm hat und in der Größe scriptsize gesetzt ist und dass die beiden andern Spalten in der Breite 3 cm gesetzt sind. Die Tabelle muss somit folgende Gestalt haben: Der Kommentar Zahlen Fakten Kosten 2.00 14 Gebühren 5.30 12 Daten 1.33 13.3 Werte 0.00 unbekannnt Übung 6 (Lösung S. 110) Setzen Sie die Tabelle aus Übung 5 so, dass die Einträge in den Spalten von Linien umrahmt sind. Außerdem sollen alle übrigen Texteinträge auch in der scriptsizeFachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 35 Größe gesetzt werden. Beachten Sie, dass die Linien nicht am Text „kleben“. Die Tabelle sollte somit folgende Gestalt haben: Der Kommentar Zahlen Fakten Kosten 2.00 14 Gebühren 5.30 12 Daten 1.33 13.3 Werte 0.00 unbekannnt Übung 7 (Lösung S. 111) Setzen Sie die Tabelle aus Übung 6 so, dass die Texteinträge in normale Größe gesetzt werden. Beachten Sie, dass die Linien nicht am Text „kleben“. Darüber hinaus sollten die Zahleneinträge in der zweiten Spalte standardmäßig mit einem voran gestellten ± und einem nachgestellten mm versehen werden. Die Einträge sollten darüber hinaus zentriert sein. Verwenden Sie dazu den Befehl \centering. Die Tabelle sollte somit folgende Gestalt haben: ± Zahlen mm ± 2.00 mm 14 Gebühren ± 5.30 mm 12 Daten ± 1.33 mm 13.3 Werte ± 0.00 mm unbekannnt Der Kommentar Kosten Übung 8 (Lösung S. 111) Setzen Sie die nachfolgend abgebildete Tabelle. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Fakten Ausgewählte LATEX-Kapitel 36 Artikel Preis/ EUR Kopfsalat 1, 49 EUR Tomaten 2, 99 EUR Kilopreis, Herkunftsland Italien Apfelsinen 3, 99 EUR 1,5-Kilo Netz, Navelinas Herkunftsland Südafrika Ananas 2, 99 EUR „Wenn hier einer Anna nass macht, dann bin ich das!“ Preisfrage: woher stammt dieses Zitat? Preis: eine Ananas! Besonderheit Für diese Tabelle sollten die ersten beiden Spalten eine Breite von 3 cm, wobei die zweite Spalte im mathematischen Modus gesetzt sein sollte. Das Euro-Kürzel sollte dabei automatisch angehängt werden. Die dritte Spalte sollte eine Breite von 5 cm haben. Diese Spalte sollte im Flattersatz gesetzt sein und Schriftgröße (außer für die Überschrift) footnotesize entsprechen. Beachten Sie, dass die Linien nicht am Text „kleben“. 2.5 Der multicolumn-Befehl Mit diesem Befehl kann man nach folgender Syntax Tabellenspalten zusammenfassen [7]: \multicolumn{spaltenzahl}{format}{Ausgabetext} Bei diesem Befehl handelt es sich um eine für den Tabellensatz sehr wichtige Konstruktion, da neben dem eigentlichen Zweck, nämlich eben der Zusammenfassung mehrerer Spalten zu einer Spalte, ein wichtiger Nebeneffekt erzielt werden kann. Mit diesem Befehl kann die eigentliche, im Kopf der tabularoder array-Umgebung definierte Spaltenoption überschrieben werden! Wir werden im Folgenden Beispiele für diese nützliche Anwendungsmöglichkeit geben. Ein Beispiel soll die Verwendung illustrieren. Die Anweisungen \begin{tabular}{*{3}{>{$}p{3cm}<{$}}} \toprule 22.8 & 4.0 & 26.0 \\ \addlinespace \cmidrule{2-3} & \multicolumn{2}{>{\scriptsize}l}% {Die wesentlichen Größen}\\\addlinespace \cmidrule{2-3} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 18.078 & 123.678 & -23.78 66.9 & 0.0 & 0.0 \bottomrule \end{tabular} 37 \\ \addlinespace \\ setzen die Tabelle: 22.8 4.0 26.0 Die wesentlichen Größen 18.078 123.678 −23.78 66.9 0.0 0.0 In dieser Tabelle werden zunächst einmal drei Spalten mit je 3 cm Breite gesetzt. Da die Einträge Zahlen sind, wurden die Zeilen durch Voranstellen von >{$} und Nachstellen von <{$} im mathematischen Modus gesetzt. in der zweiten Zeile ist der erste Eintrag leer und die beiden nachfolgenden Einträge werden mit dem \multicolum-Befehl gesetzt. Dabei wird die Voreinstellung für die Spalten durch >{\scriptsize}l überschrieben, d.h. der Text wird im Textmodus linksbündig und in der Schriftgröße scriptsize gesetzt. Ein weiteres Beispiel für die Verwendung des multicolumn-Befehls ist folgende Anweisungsfolge: {\setlength{\extrarowheight}{4pt} \begin{tabular}{*{3}{>{$}c<{$}}} \toprule 22.8 & 4.0 & 26.0 \\ \addlinespace \cmidrule{1-3} \multicolumn{3}{>{\PBS\centering\hspace{0pt}}p{10cm}}% {Dies sind die wesentlichen Größen}\\\addlinespace \cmidrule{1-3} 18.078 & 123.678 & -23.78 \\ \addlinespace 66.9 & 0.0 & 0.0 \\ \bottomrule \end{tabular} } Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 38 Diese Anweisungen liefern die Tabelle: 22.8 4.0 26.0 Dies sind die wesentlichen Größen 18.078 123.678 −23.78 66.9 0.0 0.0 In diesem Fall wurde die ganze zweite Zeile zusammengefasst und der zugehörige Text zentriert in einer 10 cm langen Zelle gesetzt. Der multicolumn-Befehl bietet, wie bereits angedeutet und wie in den obigen Beispielen auch schon zu sehen, über die reine Möglichkeit der Zusammenfassung von Spalten hinaus noch die Möglichkeit, die globale Spaltendefinition zu durchbrechen. Dies soll ein weiteres Beispiel verdeutlichen. Die Anweisungen {\setlength{\extrarowheight}{4pt} \begin{tabular}{ |>{\centering$}p{4cm}<{$\,DM} % *{2}{|>{$}p{2cm}<{$}}|} \hline 22.80 & 4.0 & 26.0 \\ \hline \multicolumn{1}{|c|}{fehlt!} & 123.678 & -23.78 \\ \hline 66.90 & 0.0 & \multicolumn{1}% {>{\scriptsize\PBS\raggedright\hspace{0pt}}p{5cm}|}% {Das fehlt auch!} \\\hline \end{tabular} } liefern 22.80 DM fehlt! 66.90 DM 4.0 26.0 123.678 −23.78 0.0 Das fehlt auch! Hier wurde die Fähigkeit der Spaltenredefinition des multicolumn-Befehls genutzt, um das Format einzelner Zellen neu zu definieren. Nicht immer ist Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 39 für diesen Zweck die Anwendung des multicolumn-Befehls nötig. Wenn beispielsweise in einer Tabellenzelle eine Zahl im mathematischen Modus gesetzt werden soll, so ist es natürlich einfacher dort direkt die $$-Form zu verwenden. Für komplexere Fälle bleibt aber häufig nur die Möglichkeit einer Neudefiniton via multicolumn. 2.6 Übungen zum multicolumn-Befehl Übung 9 (Lösung S. 112) Versuchen Sie, folgende Tabelle zu setzen: Name/Monat Mai Juni Juli Schulz 2,56$ 3,45$ 26,00$ Müller 18,07$ 123,60$ 23,70$ Meier 66,90$ 0,00$ 0,02$ Hund 8,07$ 12,60$ 23,70$ Katz 6,90$ 1,00$ 0,02$ Die Tabellenspalten sollten jeweils eine Breite von 3 cm haben. Zentrieren Sie dabei die Monatseinträge mit Hilfe des multicolumn-Befehls. Übung 10 (Lösung S. 112) Setzen Sie die nachfolgende Tabelle: Schönes Fräulein darf ich’s wagen, mein Geleit ihr anzutragen ! Bin weder Fräulein, weder schön, kann ungeleit Die Breite der Spalten ist dabei jeweils 4 cm. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe nach Hause geh’n! Ausgewählte LATEX-Kapitel 2.7 Tabellen im Querformat Oft ist man beim Satz von Tabellen vor das Problem gestellt, dass der Platz einer Seite für die Tabellenbreite nicht ausreicht. Dies gilt insbesondere für Tabellen mit wenigen Zeilen und vielen Spalten. In diesem Fall ist es üblich, dass die Tabelle gedreht wird, um für die Spalten die i.A. größere Seitenlänge auszunutzen. Das Drehen einer Tabelle um 90 Grad kann durch die Umgebung turn erreicht werden [14, 7]. Diese Umgebung gehört zum rotating-Paket, welches durch \usepackage{rotating} in der Präambel eingebunden2 wird. Das Paket liefert Umgebungen, die das Drehen von Texten und Grafiken gestatten. Es muss jedoch gleich zu Beginn erwähnt werden, dass nicht alle Previewer dieses Drehen unterstützen. Zwar gibt es bei korrekter Anwendung keine Fehler im LATEX-Lauf, aber die Tabelle oder die Grafik erscheint, beispielsweise im Previewer yap nicht gedreht. Teilweise überlappen sich Fließtextbereich und gedrehte Texte und Grafiken. Man sollte in diesem Falle Previewer verwenden, die mit postscript-Treibern zusammenarbeiten. So werden die gedrehten Objekte bei Verwendung von pdfLATEX im Acrobat Reader oder bei Umsetzung nach Postscript mit dvips im GhostView-Previewer korrekt dargestellt. Für Testzwecke kann aber zunächst der yap verwendet werden. Ein Beispiel soll nun die Verwendung der turn-Umgebung illustrieren. Der LATEX-Code \begin{turn}{90} \begin{tabular}% {*{3}{@{}>{\scriptsize\PBS\raggedright\hspace{0pt}}p{2cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \\\addlinespace \cmidrule(r){2-2} Steak & Fleisch & Rind \\\addlinespace \cmidrule(c){2-3} Pop Corn & Getreide & Mais \\ 2 Das Paket graphics (oder graphicx), auf dem rotating aufsetzt, muss ebenfalls vorhanden sein, sonst gibt es eine entsprechende Fehlemeldung beim LATEX-Lauf. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 40 Ausgewählte LATEX-Kapitel \bottomrule \end{tabular} \end{turn} Getreide Pop Corn Mais Fleisch Steak Rind Fleisch Schnitzel Schwein setzt die nachfolgende Tabelle. Die eigentliche Tabelle, die mit der tabular-Umgebung auf die übliche Weise gesetzt wird, ist dabei in eine turn-Umgebung gepackt worden, welche als Parameter den Drehwinkel in Grad (im vorliegenden Falle 90) aufnimmt. Die Tabelle wird um 90 Grad im Gegenuhrzeigersinn gedreht. Oft entsteht durch diese Art der Tabellensetzung eine große Lücke zwischen Fließtext und Tabelle. Ein ähnliches Problem ergibt sich im Übrigen auch bei Grafiken, wie wir in Kapitel 3 noch sehen werden. Die übliche Lösung besteht darin, dass man die Tabelle mit einer Nummer sowie Über- oder Unterschrift versieht und im Fließtext auf die Nummer referenziert. Das Objekt kann dann an eine andere Stelle platziert werden und der Fließtext kann weitergeführt werden, ohne dass eine Lücke entsteht. In LATEX wird dies dadurch erreicht, dass man aus der Tabelle (oder der Grafik) ein so genanntes Gleitobjekt [7, 13] macht. Dies geschieht durch Einfügen der Tabellendefinition in eine entsprechende Umgebung, der table-Umgebung. Das nachfolgende Beispiel illustriert die Verwendung \begin{table} \caption{Eine gedrehte Tabelle}\label{TabGedreht} \begin{turn}{90} \begin{tabular}% Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 41 Ausgewählte LATEX-Kapitel Getreide Pop Corn Mais Fleisch Steak Rind Fleisch Schnitzel Schwein Tabelle 2.1: Eine gedrehte Tabelle {*{3}{@{}>{\scriptsize\PBS\raggedright\hspace{0pt}}p{2cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \\\addlinespace \cmidrule(r){2-2} Steak & Fleisch & Rind \\\addlinespace \cmidrule(c){2-3} Pop Corn & Getreide & Mais \\ \bottomrule \end{tabular} \end{turn} \end{table} Diese Anweisungsfolge setzt die Tabelle 2.1. Offenbar ist die Tabelle nun an eine LATEX geeignet erscheinende Stelle gerutscht. Durch Einfügen eines caption-Befehls wurde die Tabelle mit einer Überschrift versehen. Der label-Befehl erlaubt es nun, im Fließtext an einer beliebigen Stelle durch einen entsprechenden ref-Befehl zu referenzieren. Im vorliegenden Fall also durch \ref{TabGedreht}. Im Text erscheint dann die Nummer der Tabelle. Ein weiterer Vorteil ist, dass durch so referenzierte Tabellen mit \listoftables an beliebiger Stelle ein Tafelverzeichnis angelegt werden kann. Ähnliches gilt für Grafiken (vgl. Kapitel 3). Ein Problem ist, dass die mit dem caption-Befehl definierte Tabellenüberschrift nicht mitgedreht wird! Soll dies erreicht werden, so muss die Umgebung sidewaystable verwendet werden, die ebenfalls zum rotating-Paket gehört. Hier ein Beispiel: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 42 Ausgewählte LATEX-Kapitel \begin{sidewaystable} \centering \caption{Eine gedrehte Tabelle}\label{TabGedreht2} \begin{tabular} {*{3}{@{}>{\scriptsize\PBS\raggedright\hspace{0pt}}p{2cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \\\addlinespace \cmidrule(r){2-2} Steak & Fleisch & Rind \\\addlinespace \cmidrule(c){2-3} Pop Corn & Getreide & Mais \\ \bottomrule \end{tabular} \end{sidewaystable} Das Ergebnis ist in Tabelle 2.2 zu sehen. Die Tabelle wird auf eine eigene Seite gesetzt. Die Überschrift wurde mitgedreht. Auch ist offensichtlich, dass sidewaystable wieder ein Gleitobjekt erzeugt. 2.8 Übungen zu Tabellen im Querformat Übung 11 (Lösung S. 113) Setzen Sie eine Tabelle mit folgendem Aussehen: el itz hn Sc k ea St n ch or C s ei Fl p Po ch s ei Fl e ei hw Sc id re et G n d in R s ai M Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 43 Ausgewählte LATEX-Kapitel 44 Steak Schnitzel Getreide Fleisch Fleisch Mais Rind Schwein Tabelle 2.2: Eine gedrehte Tabelle Pop Corn Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 45 Übung 12 (Lösung S. 113) Setzen Sie die Tabelle aus Übung 11 auf einer eigenen Seite mit Hilfe der Umgebung sidewaystable. 2.9 Automatische Berechnung von Spaltenbreiten In den bisherigen Beispielen musste man die Spaltenbreite vorgeben. Oft hat man jedoch das Bedürfnis, dass die Spaltenbreite automatisch an bestimmte Gegebenheiten angepasst werden soll. So möchte man häufig etwa die Spalten so breit wählen, dass die Tabellenbreite der Seitenbreite entspricht. Eine Umgebung, die das automatische Berechnen der Spaltenbreiten erlaubt ist tabularx[4]. Diese wird in der Präambel durch \usepackage{tabularx} eingebunden. Die Umgebung definiert die Spaltenoption X. Dies bedeutet, dass die Spaltenbreite entsprechend der angegebenen Gesamtbreite und der Spaltenzahl, sowie ihres Inhalts ausgerechnet wird. Ein Beispiel illustriert die Verwendung für eine über die ganze Seitenbreite ausgedehnte Tabelle. \begin{tabularx}{\linewidth}{*{3}{X}} \toprule Schnitzel & Fleisch & Schwein \cmidrule(r){2-2} Steak & Fleisch & Rind \cmidrule(c){2-3} Pop Corn & Getreide & Mais \bottomrule \end{tabularx} \\\addlinespace \\\addlinespace \\ Schnitzel Fleisch Schwein Steak Fleisch Rind Pop Corn Getreide Mais Hier alternativ dazu eine 10 cm breite Tabelle mit: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 46 \begin{tabularx}{10cm}% {*{3}{>{\small\raggedright\arraybackslash\hspace{0pt}}X}} \toprule Schnitzel & Fleisch & Schwein \\\addlinespace \cmidrule(r){2-2} Steak & Fleisch & Rind \\\addlinespace \cmidrule(c){2-3} Pop Corn & Getreide & Mais \\ \bottomrule \end{tabularx} Schnitzel Fleisch Schwein Steak Fleisch Rind Pop Corn Getreide Mais Hierbei wurde die Spaltenoption so verändert, dass der Text linksbündig mit kleiner Schrift gesetzt wird. Der Befehl \arraybackslash ersetzt in diesem Fall das schon bekannte \PBS zur temporären Neudefinition des Zeilenumbruchzeichens (\\). Der Befehl funktioniert allerdings nur in Verbindung mit der tabularx-Umgebung. 2.10 Übungen zu Tabellen mit automatischer Berechnung von Spaltenbreiten Übung 13 (Lösung S. 114) Setzen Sie eine Tabelle mit folgendem Aussehen: Schnitzel Fleisch Schwein gut ungesund Steak Fleisch Rind prima eiweißhaltig Pop Corn Getreide Mais lecker kalorisch Übung 14 (Lösung S. 114) Setzen Sie eine Tabelle mit folgendem Aussehen: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 47 1 66 -11 Zahl Text langer Text Und nach einer Myrthenlaube führt er des Alkalden Tochter. Pauken und Trommettenjubel klingt herunter von dem Schlosse. 2.11 Setzen von mehrseitigen Tabellen Wird eine Tabelle länger als eine Seite, so kann diese mit den bisher vorgestellten Umgebungen nicht mehr gesetzt werden. Tabellen, die sich über mehrere Seiten erstrecken müssen, können mit der longtable-Umgebung gesetzt werden [3]. Zugriff auf diese Umgebung erhält man durch das Einbinden in der Präambel mit: \usepackage{longtable} Damit wird die Umgebung \begin{longtable}{spaltendef} Spalte ··· Spalte \end{longtable} definiert. Diese erzeugt ein Tabellen-Gleitobjekt, welches sich über mehrere Seiten erstrecken kann. Die Funktion muss vom Befehl \setlongtables aktiviert werden. Allerdings sollte dies erst geschehen, wenn das Layout der Tabelle steht. Bis dahin kann die erzeugte Tabelle merkwürdig aussehen. Es empfiehlt sich, dieses Kommando bis zum letzten LATEX-Lauf auszukommentieren. Ein Beispiel: \setlongtables Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 48 \begin{center} \setlength{\extrarowheight}{4pt} \begin{longtable}{|l|l|l|} \caption{Eine sehr sehr lange Tabelle}\\\hline \multicolumn{3}{|l|}{\emph{Die sehr lange Tabelle beginnt ...}} % \\\hline\hline\endfirsthead\hline \multicolumn{3}{|l|} {\emph{Die sehr lange Tabelle geht hier weiter ...}}% \\\hline\hline\endhead \multicolumn{3}{|r|}{\emph{Fortsetzung auf der nächsten Seite}}% \\\hline \endfoot \multicolumn{3}{|r|}{\emph{Die sehr lange Tabelle hört hier auf}}% \\\hline \endlastfoot \hline xxxxxxxxxx & xxxxxxxxxxxxxxxxxxxxxxxxx & xxxxxxxxxxxxxxxxxxxxx \kill Schnitzel & Fleisch & Schwein \\ \hline Steak & Fleisch & Rind \\ \hline Brötchen & Getreide & Weizen \\ \hline Pop Corn & Getreide & Mais \\ \hline Schnitzel & Fleisch & Schwein \\ \hline Steak & Fleisch & Rind \\ \hline Brötchen & Getreide & Weizen \\ \hline Pop Corn & Getreide & Mais \\ \hline Schnitzel & Fleisch & Schwein \\ \hline Steak & Fleisch & Rind \\ \hline Brötchen & Getreide & Weizen \\ \hline Pop Corn & Getreide & Mais \\ \hline ... Schnitzel & Steak & Brötchen & Pop Corn & \end{longtable} \end{center} Fleisch Fleisch Getreide Getreide & & & & Schwein Rind Weizen Mais Dies liefert die nachfolgende Tabelle. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe \\ \\ \\ \\ \hline \hline \hline \hline Ausgewählte LATEX-Kapitel 49 Tabelle 2.3: Eine sehr sehr lange Tabelle Die sehr lange Tabelle beginnt ... Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Fortsetzung auf der nächsten Seite Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 50 Die sehr lange Tabelle geht hier weiter ... Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Fortsetzung auf der nächsten Seite Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 51 Die sehr lange Tabelle geht hier weiter ... Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Schnitzel Fleisch Schwein Steak Fleisch Rind Brötchen Getreide Weizen Pop Corn Getreide Mais Die sehr lange Tabelle hört hier auf Man beachte die Zeile xxxxxxxxxx & xxxxxxxxxxxxxxxxxxxxxxxxx & xxxxxxxxxxxxxxxxxxxxx \kill Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel in der Definition der Tabelle. Auf Grund des kill-Befehls wird diese Zeile nicht gesetzt, aber zur Berechnung der Spaltenbreiten herangezogen. Damit ist es also möglich, bestimmte Spaltenbreiten voreinzustellen, die nicht von den übrigen Einträgen abhängen. Diese Möglichkeit ist allerdings nicht gerade elegant. Durch die multicolumn-Befehle am Anfang der Tabelle werden die Beschriftungen des ersten Tabellenkopfs, der Tabellenköpfe und Tabellenendezeilen bei Seitenumbruch und der letzten Tabellenzeile eingestellt. Im vorliegenden Fall sollen sie sich über alle drei Tabellenspalten erstrecken. Natürlich müssen nicht alle diese Einstellungen wirklich vorkommen. So kann beispielsweise nur der Tabellenkopf oder nur das Tabellenende spezifiziert werden. Die Spaltenbreitendefinition mit Hilfe des kill-Befehls ist selbstverständlich auch nicht zwingend. Natürlich können die bisher bekannten Spaltendefinitionen mit expliziter Breitenangabe weiter verwendet werden. Manchmal kann der kill-Befehl in der oben angewandten Weise jedoch zu Vereinfachung des Tabellensatzes beitragen. So kann die Spaltenbreite mit Hilfe dieses Befehls unabhängig vom gewählten Format damit definiert werden. Voraussetzung ist, dass man für die kill-Zeile einen Spalteneintrag mit vorbestimmter Länge definieren kann. Eine in [7] vorgeschlagene Möglichkeit dafür ist etwa die Angabe einer unsichtbaren Linie einer bestimmten Länge mit Hilfe des hrule-Befehls. So würde die Zeile \rule{2cm}{0pt} & \rule{4cm}{0pt} & \rule{5cm}{0pt} \kill die Spaltenbreiten auf 2, 4 und 5 cm festlegen, indem drei Linien entsprechender Länge und der Dicke 0 pt3 festgelegt werden. Dies setzt natürlich voraus, das keine anderen Spalteneinträge breiter sind. 2.12 Übungen zu mehrseitigen Tabellen Übung 15 (Lösung S. 115) Setzen Sie eine Tabelle, die in ihren Spalten zentriert die ersten hundert ganzen Zahlen, ihre Quadrate und ihre dritten Potenzen auflistet. Die Zahlen sind dabei im 3 Im Grunde ist es gleich, ob die Linien sichtbar sind oder nicht, da die Zeile ja ohnehin nicht gesetzt wird. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 52 Ausgewählte LATEX-Kapitel 53 mathematischen Modus zu setzen. Die Tabelle soll (auf jeder Seite) mit entsprechenden Köpfen beschriftet sein und am Seitenende den Eintrag Fortsetzung auf der nächsten Seite enthalten. Am Tabellenende soll der Eintrag Ende der Tabelle stehen. Die Spalten sollen die Breite 1.5 cm, 2 cm und 5 cm haben. Definieren Sie diese Spaltenbreiten auf die herkömmliche Weise und vergleichen Sie dies mit der Möglichkeit, den \kill-Befehl zu verwenden und die Spaltenbreite mit dem Befehl \hrule{Breite}{Dicke}) festzulegen. Die Tabelle sollte in jedem Fall etwa folgendes Aussehen haben: Zahlen Quadrate dritte Potenzen 1 1 1 2 4 8 3 9 27 4 16 64 ··· 100 10000 1000000 Ende der Tabelle Übung 16 (Lösung S. 116) Setzen Sie eine Tabelle, die in ihren Spalten zentriert die Polynome xn und ihre Ableitungsfunktionen bis zum Grad n = 30 auflistet. Die Tabelle soll auf der ersten Seite mit dem zentrierten Eintrag Ableitungstabelle und (wie auch auf jeder Seite) mit entsprechenden Köpfen beschriftet sein. Am Seitenende soll sie zentriert den Eintrag · · · enthalten. Am Tabellenende soll der Eintrag Ende der Ableitungstafel stehen. Sie hat also etwa folgendes Aussehen: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 54 Ableitungstabelle xn Ableitung 1 0 x 1 x2 2x x3 3x2 x4 4x3 x5 5x4 x6 6x5 x7 7x6 ··· x8 8x7 x9 9x8 x10 10x9 x27 27x26 x28 28x27 x29 29x28 x30 30x29 Ende der Ableitungstafel 2.13 Schlussbemerkungen In den vorangegangenen Abschnitten wurden natürlich bei Weitem nicht alle Möglichkeiten, Tabellen zu setzen vorgestellt. Hierfür sei auf die einschlägige Literatur wie etwa den LATEX-Begleiter [7] oder die Paketdokumentationen [2, 3, 4, 5, 14, 13] hingewiesen. Es soll aber noch auf ein paar Stilparameter hingewiesen werden, die, wie etwa \extrarowheight in den vorangegangen Beispielen, mit \setlength angepasst werden können. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 55 \extrarowheight erhöht die Tabellenzeile \arraycolsep Hälfte des Spaltenabstandes in array \tabcolsep Hälfte des Spaltenabstandes in tabular \arrayrulewidth Dicke der Linien \doublerulesep Abstand zweier aufeinanderfolgender Linien \arraystretch Streckfaktor für den Zeilenabstand Ein abschließendes Beispiel hierzu soll die Verwendung erläutern. Die LATEX-Anweisungen {% \setlength{\extrarowheight}{4pt} \renewcommand{\arraystretch}{2} \setlength{\arrayrulewidth}{5pt} \begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} \hline $Zahlen$ & $Quadrate$ & $dritte Potenzen$ \\\hline% 1 & 1 & 1 \\\hline 2 & 4 & 8 \\\hline 3 & 9 & 27 \\\hline 4 & 16 & 64 \\\hline \multicolumn{3}{|c|}{\emph{$\cdots$}}\\\hline 100 & 10000 & 1000000\\\hline \end{tabular} }% liefern: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 56 Zahlen Quadrate dritte Potenzen 1 1 1 2 4 8 3 9 27 4 16 64 ··· 100 10000 1000000 In diesem Beispiel wurde neben der schon bekannten Anhebung der Zeilenhöhe mit \setlength{\arrayrulewidth}{5pt} die Dicke der Linien auf 5 Punkte erhöht. Außerdem wurde der voreingestellte Zeilenabstand mit \renewcommand{\arraystretch}{2} um den Faktor 2 erhöht. Die Parameter sind meist Längen und werden auf die obige Weise mit dem Kommando setlength auf neue Werte gesetzt. arraystretch bildet eine Ausnahme. Dies ist keine Länge sondern ein TEX-Kommando. Infolgedessen muss dies mit renewcommand auf einen neuen Wert eingestellt werden. Man beachte, dass die Wirkung der Kommandos auch in diesem Beispiel durch die Klammerung in geschweiften Klammern auf die Tabelle beschränkt wurde! Wenn wir anschließend die obige Tabelle mit \begin{tabular}{|>{$}c<{$}|>{$}c<{$}|>{$}c<{$}|} \hline $Zahlen$ & $Quadrate$ & $dritte Potenzen$ \\\hline% 1 & 1 & 1 \\\hline 2 & 4 & 8 \\\hline 3 & 9 & 27 \\\hline 4 & 16 & 64 \\\hline \multicolumn{3}{|c|}{\emph{$\cdots$}}\\\hline Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 100 & 10000 \end{tabular} 57 & 1000000\\\hline nochmals setzen, so erhalten wir: Zahlen 1 2 3 4 100 Quadrate dritte Potenzen 1 1 4 8 9 27 16 64 ··· 10000 1000000 Für detailliertere Informationen, auch zu den hier nicht angegeben Stilparametern, sollten [7] und [14] konsultiert werden. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Kapitel 3 LATEX und Grafiken LATEX bietet mehrere Pakete an, mit denen Grafiken erstellt werden können. Beispiele sind das picture-Paket zum Erstellen von Strichzeichnungen, das bar-Paket zum Erstellen von Balkendiagrammen oder das curves-Paket zum Zeichen von beliebigen Kurven [7]. Darüber hinaus gibt es zahlreiche spezialisierte Pakete, etwa zum Zeichen elektrischer Schaltkreise, chemischer Formeln, ja sogar von Schach-Stellungen. Umfangreiche Möglichkeiten bietet auch das pstricks-Paket, welches die Möglichkeit bietet innerhalb von LATEX auf die mächtige Postscript-Sprache zuzugreifen. Über all diese Pakete soll an dieser Stelle nicht berichtet werden. Stattdessen soll auf die Möglichkeiten hingewiesen werden, in LATEX Grafiken einzubinden, die mit externen Programmen wie MATLAB, Maple, Powerpoint oder sonstigen gängigen Werkzeugen erstellt wurden [12]. Nach Ansicht des Autors ist es realistischer, diese Situation anzunehmen und hierfür Lösungen anzubieten. 3.1 Das graphicx-Paket Die besten Möglichkeiten zum Einbinden externer Grafiken bietet das graphics-Paket [1, 7] oder besser noch dessen Erweiterung graphicx. Das Einbinden dieses Pakets in der Präambel erfolgt mit: \usepackage{graphicx} Dabei kann das Paket schon mit einer Option im Hinblick auf den verwendeten Ausgabetreiber versehen werden. So bereitet Ausgewählte LATEX-Kapitel \usepackage[pdftex]{graphicx} das Dokument auf die Verwendung von pdfTEX (pdfLATEX) vor, welches das Dokument direkt in Adobes pdf-Format erzeugt, eine Möglichkeit, die insbesondere im Hinblick auf Internet-Publikationen von Interesse sein dürfte [11]. Wird diese Treiberoption gewählt, so muss das LATEX-Dokument auch mit pdfLATEX geTEXt werden, da es sonst zu Fehlermeldungen1 kommt. Mit der Anweisung \usepackage[dvips]{graphicx} wird das Dokument auf den dvips-Treiber eingestellt, mit dem das von LATEX erzeugte dvi-File in ein PostScript-File umgewandelt werden kann. Wird diese Option gewählt, so können so genannte encapsulated PostScript-Grafiken in das Dokument eingebunden werden. Was die Einbindung externer Grafiken anbetrifft, so bestimmt man mit der Treiberoption auch die Typen von Grafiken, welche eingebunden werden. Diese werden an der Endung erkannt. Genaue Auskunft über die möglichen Treiberoptionen und die dadurch verwendbaren Grafikformate gibt [1]. Eine detaillierte Darstellung an dieser Stelle würde den Rahmen sprengen. Wir werden daher nur die beiden wichtigsten, oben vorgestellten Optionen, näher besprechen. Das graphicx-Paket stellt den Befehl includegraphics zu Verfügung, welcher folgender allgemeiner Syntax genügt: \includegraphics[<Optionen>]{<Grafikdatei>} Als Optionen können dabei Größen- und Positionsdaten angegeben werden. Bevor wir in weitere Details eindringen, hier zunächst ein erstes Beispiel2 . Mit \includegraphics[width=7cm]{abb/fhlogo.png} 1 In den in Kapitel 1 vorgestellten und empfohlenen Template-Files zur Bearbeitung der Übungsaufgaben werden die Grafikpaketoptionen mit Hilfe eines Schalters in Abhängigkeit davon geladen, ob pdfLATEX oder LATEX verwendet wird. Verwendet man diese Templates, so braucht man sich also keine Gedanken zu machen. 2 Die nachfolgenden Beispiele müssen mit pdfLAT X geT Xt werden, da es sonst zur FehlerE E meldung cannot determine bounding box! kommt. Will man pdfLATEX nicht verwenden, so muss die Grafik ein anderes Format konvertiert werden. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 59 Ausgewählte LATEX-Kapitel wird eine Grafik im pdf-Format mit einer Breite von 5 cm gesetzt. Da es sich um ein skalierbares Grafikformat handelt, kann die Breite frei gewählt werden und die Höhe der Grafik wird automatisch angepasst. Die Grafik fhlogo.png befindet sich im obigen Beispiel in einem Verzeichnis abb, welches im gleichen Ordner wie das LATEX-Dokument liegt. Also muss dieses Verzeichnis mit angegeben werden. Betrachten wir ein weiteres Beispiel: \begin{figure}[ht!] % Bild wird genau hier oder auf \begin{center} % Seitenanfang (zentriert) gesetzt \includegraphics[width=7cm]{abb/fhlogo.png} \caption{Das anbetungswürdige FH-Logo}\label{AnbetungFH} \end{center} \end{figure} Abbildung 3.1: Das anbetungswürdige FH-Logo Wie man sieht, ist \includegraphics-Befehl hier in eine figure-Umgebung gepackt werden. Diese erzeugt ein Gleitobjekt [13] von der Art, wie wir sie schon im Zusammenhang mit Tabellen kennen gelernt haben (vgl. Kapitel 2). Mit der Option h kann der Wunsch geäußert werden, dass die Grafik genau an diese Stelle gesetzt werden soll. Falls dies aus Platzgründen nicht möglich ist, entscheidet LATEX, wohin die Grafik gleitet (meist an den Seitenanfang, entsprechend Option t). Auf die Steuerung dieser Gleitvorgänge gehen wir später ein. Der Vorteil der Klammerung in eine figure-Umgebung ist die Möglichkeit, die Grafik mit einer Nummer und einer Beschriftung zu versehen. Auch dies kennen wir bereits für Tabellen und die table-Umgebung. In diesem Fall kann Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 60 Ausgewählte LATEX-Kapitel die Grafik auch wieder in ein eigenes Verzeichnis, dem Grafikverzeichnis, aufgenommen werden, welches mit dem Kommando \listoffigures gesetzt wird. Will man das Bild nicht mit der \caption-Anweisung mit einer Beschriftung versehen und auch nicht gleiten lassen, so kann der \includegraphics-Befehl, wie oben schon gezeigt, auch ohne die figure-Umgebung benutzt werden. Hier ein weiteres Beispiel, bei dem Gebrauch von einem zweiten Skalierungsparameter gemacht wird: \begin{center} % Seitenanfang (zentriert) gesetzt \includegraphics[width=10cm, height=2cm]{abb/fhlogo.png} \end{center} Wie man sieht, wird das Bild verzerrt. Will man also die originalen Größenverhältnisse beibehalten, so empfiehlt es sich, nur Breite oder Höhe anzugeben. Die andere Seite wird dann automatisch mitskaliert. Es gibt zahlreiche andere Optionen, von denen hier nur die wichtigsten erwähnt seien: angle Rotationswinkel origin Bezugspunkt für die Rotation scale Skalierungsfaktor type Grafiktyp Hier ein weiteres Beispiel: \includegraphics[width=7cm, angle=45, origin=c]{abb/fhlogo.png} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 61 Ausgewählte LATEX-Kapitel Und noch ein Beispiel: \includegraphics[width=3cm, angle=45]{abb/fhlogo.png} Im ersten Fall wird das Bild um die Bildmitte (origin=c), im zweiten Fall um die linke untere Ecke (default-Einstellung) um 45 Grad im Gegenuhrzeigersinn gedreht. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 62 Ausgewählte LATEX-Kapitel 3.2 Übungen zum graphicx-Paket Übung 17 (Lösung S. 117) Setzen Sie das FH-Logo fholgo.png mit einer Breite von 4 cm auf dem Kopf stehend und mit der Bildunterschrift: Die FH steht Kopf. Das Bild sollte also wie in Abbildung 3.2 aussehen: Abbildung 3.2: Die FH steht Kopf Übung 18 (Lösung S. 118) Zeichnen Sie mit MS Powerpoint oder einem anderen Programm das in Abbildung 3.3 dargestellte Bild. Speichern Sie es im png- und im eps-Format. Setzen Sie es in Ihr LATEX-Dokument mit der Breite 6 cm und versehen Sie es mit der zweifelhaften Bildunterschrift: Scharf auf LATEX!. Abbildung 3.3: Scharf auf LATEX! 3.3 Das caption2-Paket Wie wir in den vorangegangenen Beispielen schon gesehen haben, können Bildunterschriften innerhalb der figure-Umgebung durch die Angabe von \caption{Bildunterschrift}\label{ReferenzAufBild} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 63 Ausgewählte LATEX-Kapitel gesetzt werden. Die Angabe einer Referenz empfiehlt sich, um im Text über die Bildnummer auf das Bild Bezug nehmen zu können. Dies ist insbesondere deshalb von Bedeutung, weil, wie schon erwähnt, die figure-Umgebung Gleitobjekte erzeugt, welche vom zugehörigen Text weggleiten können. Bei den Bildunterschriften, die mit caption zentriert unter das Bild gesetzt werden, ergibt sich ein Problem, das durch das Beispiel in Abbildung 3.4 verdeutlicht werden kann. Abbildung 3.4: Die FH steht Kopf! Kein Mensch weiß, ob der Rektor dafür Verständnis hätte. Ich glaub’ nicht. Der Umbruch unter das Wort Abbildung sieht nicht schön aus. Abhilfe schafft hier das caption2-Paket. Mit dem Kommando \captionstyle{hang} kann die Unterschrift hängend eingezogen werden, wie im Beispiel von Abbildung 3.5. {% \captionstyle{hang} \begin{figure}[ht] \begin{center} \includegraphics[width=3cm, angle=180]{abb/fhlogo.png} \caption{\emph{Die FH steht Kopf! Kein Mensch weiß, ob der Rektor % dafür Verständnis hätte. Ich glaub’ nicht.}}\label{FHstehtKopf3} \end{center} \end{figure} }% Soll der hängende Einzug für alle Bild- und Tabellenunter- bzw. -überschriften des Dokuments gelten, so kann das caption2-Paket alternativ mit der Option hang auf folgende Weise geladen werden: \usepackage[hang] {caption2} Das caption2-Paket bietet noch mehr Möglichkeiten zur Gestaltung der Bildunterschrift. Man konsultiere hierzu die Paketdokumentation. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 64 Ausgewählte LATEX-Kapitel Abbildung 3.5: Die FH steht Kopf! Kein mensch weiß, ob der Rektor dafür Verständnis hätte. Ich glaub’ nicht. 3.4 Übungen zum caption2-Paket Übung 19 (Lösung S. 118) Setzen Sie die Grafik aus Übung 17 mit der Bildunterschrift: Scharf auf LATEX! Dies könnte mißverstanden werden. Aber hier handelt es sich um das einmaligeTextsatzprogramm!. Setzen Sie die Unterschrift dabei fett in der Schriftgröße scriptsize und achten Sie darauf, dass der Einzug hängend ist. Die Optionen sollen sich dabei nur auf dieses Bild erstrecken. Konsultieren Sie dafür die Dokumentation des caption2-Pakets oder direkt das caption2.sty-Style-File. Die Grafik sollte dann so aussehen wie in Abbildung 3.6. Abbildung 3.6: Scharf auf LATEX! Dies könnte mißverstanden werden. Aber hier handelt es sich um das einmaligeTextsatzprogramm! Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 65 Ausgewählte LATEX-Kapitel 3.5 Graphiken nebeneinander setzen Normalerweise werden Grafiken, wenn es der Platz zulässt und wenn zwischen den einzelnen \includegraphics-Anweisungen keine Leerzeile für den Übergang in einen neuen Abschnitt liegt automatisch nebeneinander gesetzt. Dies zeigt das nachfolgende Beispiel: \begin{center} \includegraphics[width=7cm, angle=180, origin=c]{abb/fhlogo.png} \includegraphics[width=3cm]{abb/scharfaufLatex.png} \end{center} Anders verhält es sich bei Gleitobjekten (vgl. dazu auch Abschnitt 3.7). Hier muss die Abbildung in eine minipage-Umgebung verpackt werden. Minipages können ihrerseits dann nebeneinander gesetzt werden. Eine Minipage ist, wie der Name schon sagt eine „kleine Seite“, in der Fließtext aber auch Bilder und Tabellen gesetzt werden können. Eine minipageUmgebung darf keine Gleitobjekte enthalten [7]. Daher müssen die Minipages in die Gleitumgebung integriert werden. Eine Minipage wird durch die Anweisung \begin{minipage}[Position]{Breite} Text, Bilder, etc. \end{minipage} definiert, wobei der optionale Parameter Position (entweder [b],[c] oder [t]) angibt, ob der Inhalt der Minipage am Fuß (bottom) einer gedachten Grundlinie orientiert ist, zentriert dazu (center) oder am Kopf der Grundlinie (top). Verwendet man eine Minipage in einer figure-Umgebung, so können die Bilder wieder mit einer Bildunterschrift versehen werden, wie im Beispiel der Abbildungen 3.7 und 3.8, die mit folgenden Anweisungen gesetzt wurden: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 66 Ausgewählte LATEX-Kapitel 67 Abbildung 3.7: FH-Logo Abbildung 3.8: LATEX-Herz \begin{figure} \begin{minipage}[b]{0.6\textwidth} \begin{center} \includegraphics[width=7cm, angle=180, origin=c]{abb/fhlogo.png} \caption{FH-Logo }\label{fhlog3} \end{center} \end{minipage} \begin{minipage}[t]{0.4\textwidth} \begin{center} \includegraphics[width=3cm]{abb/scharfaufLatex.png} \caption{\LaTeX{}-Herz}\label{scharf3} \end{center} \end{minipage} \end{figure} 3.6 Übungen zum Nebeneinandersetzen von Grafiken Übung 20 (Lösung S. 119) Setzen Sie das FH-Logo in der Breite 6 cm jeweils um 0, 90, 180 und 270 Grad um seinen Mittelpunkt gedreht in Form einer 2 × 2-Matrix und versehen Sie die Bilder mit einer entsprechenden Beschriftung in scriptsize-Größe. Das Ergebnis sollte etwa so Aussehen, wie in den Abbildungen 3.9 bis 3.12. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 68 Abbildung 3.9: FH-Logo korrekt Abbildung 3.10: FH-Logoum 90 Grad gedreht Abbildung 3.11: FH-Logo um 180 Grad gedreht Abbildung 3.12: FH-Logo um 270 Grad gedreht Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 3.7 Graphiken als Gleitobjekte In den vorliegenden Abschnitten wurde des öfteren von der Unterscheidung zwischen Gleitobjekten und Nicht-Gleitobjekten gesprochen. Grundsätzlich definieren die Umgebungen figure und table Gleitobjekte. Man sollte an den Mechanismen, nach denen LATEX Gleitobjekte platziert so wenig als möglich rühren, da LATEX die Gleitobjekte fast immer optimal und nach typografisch einwandfreien Gesichtspunkten setzt. Es gibt eine Reihe von Steuerungsparametern (Zähler oder Längen) mit denen man diese Mechanismen beeinflussen kann. Allerdings erfordert dies viel Erfahrung, so dass man als LATEX-Normalanwender davon die Finger lassen sollte. Einzig und allein die Optionen [h],[t] und [b], welche nach der \begin{figure}oder \begin{table}-Anweisungen stehen, sollten hier erwähnt werden. Hiermit kann man LATEX bitten (nicht zwingen) das Bild oder die Tabelle genau hier, am Seitenanfang oder am Seitenende zu setzen. Besonders die Option [h] scheint in diesem Zusammenhang erwähnenswert, da oft das Bild genau hier gesetzt werden kann, ohne dass es Sch...ändlich aussieht. Zum Abschluss sollte noch erwähnt werden, dass die Gleitobjekte manchmal ganz ans Ende des Dokuments geschoben werden, wenn zu viele oder zu große Gleitobjekte vorkommen. Dies kann durch die Anweisung \clearpage verhindert werden. Die Anweisung beendet die aktuelle Seite und setzt alle noch nicht verarbeiteten Gleitobjekte. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 69 Kapitel 4 PostScript-Schriften für LATEX In diesem Kapitel soll auf die Verwendung von PostScript-Schriften hingewiesen werden. PostScript ist eine mächtige Seitenbeschreibungssprache der Fa. Adobe. Auf ihre Definition und ihre zahlreichen Möglichkeiten soll und kann aber an dieser Stelle nicht eingegangen werden. Für PostScript sind eine Reihe von Schriftfamilien geschaffen worden. Einige sind frei verfügbar, andere können käuflich erworben werden. Wir werden uns hier natürlich auf die freien Schriften beschränken. Diese sind in den ROMs der gängigen PostScript-fähigen Drucker implementiert. LATEX-Dokumente werden normalerweise in der vom TEX-Schöpfer Donald Knuth entworfenen Computer Modern-Schriftfamilie gesetzt. Im Gegensatz zu diesen Schriften sind die PostScript-Schriften jedoch bezüglich ihrer Größe frei skalierbar und somit speziell interessant. Außerdem sind die PostScript-Schriften i.A. besonders schön. Das vorliegende Dokument beispielsweise ist in der Palatino-Schriftfamilie gesetzt. 4.1 Pakete für PostScript-Schriften In der Tabelle 4.1 wird ein Überblick über die LATEX-Pakete gegeben, die mit dem usepackage-Befehl in der Präambel eingebunden werden müssen, um ein Dokument in der gewünschten PostScript-Schriftfamilie zu setzen [10, 15]. Das Paket times beispielsweise stellt die default-Schriftarten mit folgenden Befehlen ein: \renewcommand{\sfdefault}{phv} \renewcommand{\rmdefault}{ptm} \renewcommand{\ttdefault}{pcr} Ausgewählte LATEX-Kapitel 71 Tabelle 4.1: LATEX-Pakete für die PostScript-Schrift-Familien Paket Serifenschrift Sans-SerifSchrift TypewriterSchrift times Times Helvetica Courier palatino Palatino Helvetica Courier newcent NewCenturySchoolbook AvantGarde Courier bookman Bookman AvantGarde Courier helvet Helvetica avant AvantGarde Die Buchstabenkombinationen kennzeichnen die PostScript-Schriftfamilien Helvetica (phv), Times (ptm) und Courier (pcr). Durch die Anweisungen des Pakets werden diese Schriften zu default-Schriften des Dokuments, d.h. im vorliegenden Beispiel wird durch das times-Paket für das Dokument die Normalschrift (rmdefault) auf Times, die defaultmäßig verwendete serifenlose Schrift (sfdefault), die z.B. durch den Befehl \sffamily angewählt würde, auf Helvetica und die Typewriterschrift, die durch einen Befehl wie \texttt{...} verwendet würde, auf Courier umgestellt. 4.2 Übungen zu den Paketen für PostScript-Schriften Übung 21 (Lösung S. 120) Setzen Sie die Tabelle 4.1 so, dass die Einträge in der Schriftart Bookman gesetzt werden. Laden Sie dazu das entsprechende Paket mit Hilfe eines geeigneten \usepackage-Befehls. Falls Sie die Template-Files verwenden, kommentieren Sie den Befehl \usepackage{palatino} kurzzeitig aus und ersetzen ihn durch den richtigen Ladebefehl. Das Ergebnis sollte dann der Tabelle 4.2 entsprechen. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 72 Tabelle 4.2: LATEX-Pakete für die PostScript-Schrift-Familien Paket Serifenschrift Sans-SerifSchrift TypewriterSchrift times Times Helvetica Courier palatino Palatino Helvetica Courier newcent NewCenturySchoolbook AvantGarde Courier bookman Bookman AvantGarde Courier helvet Helvetica avant AvantGarde Übung 22 (Lösung S. 121) Setzen Sie einen Beispieltext in verschiedenen Schriftarten, indem Sie verschiedene Schriftpakete mit Hilfe eines geeigneten \usepackage-Befehls laden. 4.3 PostScript-Pi-Fonts Zum Setzen spezieller PostScript-Symbol-Zeichensätze in LATEX kann das die frei verfügbare Paket pifont eingebunden werden [10, 15]: \usepackage{pifont} Mit diesem Paket kann auf Zeichen wie ✆, ➊, ➽ oder ♣ , ℜ und zugegriffen werden. Die ersten drei dieser Zeichen gehören zu den so genannten Zapf Dingbats, die letzteren zu dem PostScript Symbol Font. Der Zugriff auf diese Zeichen erfolgt durch den Befehl \Pisymbol{fontname}{symbolnummer} wobei für fontname entweder psy (Symbol-Font) oder pzd (Zapf-Dingbats) angegeben werden kann. Für die Zapf-Dingbats kann einfacher der Befehl \ding{symbolnummer} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel angegeben werden. Die Symbolnummer ist eine Zahl zwischen 32 und 254. Genaueres entnimmt man einer entsprechenden Symboltabelle (vgl. Anhang A). Die Anweisungen \Pisymbol{psy}{42}, \Pisymbol{psy}{72}, \Pisymbol{psy}{122}, \Pisymbol{psy}{228}, \Pisymbol{psy}{211} \Pisymbol{pzd}{42}, \Pisymbol{pzd}{72}, \Pisymbol{pzd}{122}, \Pisymbol{pzd}{228}, \Pisymbol{pzd}{211} \ding{42}, \ding{72}, \ding{122}, \ding{228}, \ding{211} liefert die Ausgabe: ∗, Η, ζ, , ☛, ★, ❚, ➤, ➓ ☛, ★, ❚, ➤, ➓ Mit Hilfe der Anweisung \Pifont{font} kann komplett auf einen der Pifonts umgeschaltet werden. Die Anweisungsfolge Jetzt was im Symbol-Font: {% halte Umschaltung lokal \Pifont{psy} Dieser Text wird in einem der Symbolfonts gesetzt! Das sieht bizarr aus, aber was soll’s. }% Das Gleiche mit Zapf-Dingbats: {% halte Umschaltung lokal \Pifont{pzd} Dieser Text wird in einem der Symbolfonts gesetzt! Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 73 Ausgewählte LATEX-Kapitel Das sieht bizarr aus, aber was soll’s. }% liefert: Jetzt was im Symbol-Font: ∆ιεσερ Τεξτ ωιρδ ιν εινεµ δερ Σψµβολφοντσ γεσετζτ! ∆ασ σιεητ βιζαρρ αυσ, αβερ ωασ σολλ∋σ. Das Gleiche mit Zapf-Dingbats: ✤❉❅▲❅❒ ✴❅❘▼ ◗❉❒❄ ❉■ ❅❉■❅❍ ❄❅❒ ✳❙❍❂❏●❆❏■▼▲ ❇❅▲❅▼❚▼✁ ✤❁▲ ▲❉❅❈▼ ❂❉❚❁❒❒ ❁◆▲✌ ❁❂❅❒ ◗❁▲ ▲❏●●✇▲✎ Weitere nützliche Befehle liefert das Paket zum Setzen von nummerierten Listen: \begin{Pilist}{font}{symbolnummer} alternativ für Zapf-Dingbats \begin{dinglist}{symbolnummer} oder auch \begin{Piautolist}{font}{symbolnummer} alternativ für Zapf-Dingbats \begin{dingautolist}{symbolnummer} Damit kann man beispielsweise folgende Auflistungen setzen: \begin{dinglist}{164} \item der erste Eintrag \item der zweite Eintrag \item der dritte Eintrag hat Unterpunkte \begin{dinglist}{68} \item erster Untereintrag \item zweiter Untereintrag \end{dinglist} \item der vierte Eintrag \end{dinglist} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 74 Ausgewählte LATEX-Kapitel ❤ der erste Eintrag ❤ der zweite Eintrag ❤ der ditte Eintrag hat Unterpunkte ✤ erster Untereintrag ✤ zweiter Untereintrag ❤ der vierte Eintrag Die Autolist-Umgebungen werden für fortlaufende Indizierung der Einträge genutzt. Etwa so: \begin{Piautolist}{psy}{97} \item der erste Eintrag \item der zweite Eintrag \item der ditte Eintrag hat Unterpunkte \begin{Piautolist}{psy}{167} \item erster Untereintrag \item zweiter Untereintrag \end{Piautolist} \item der vierte Eintrag \end{Piautolist} α der erste Eintrag β der zweite Eintrag χ der ditte Eintrag hat Unterpunkte ♣ erster Untereintrag ♦ zweiter Untereintrag δ der vierte Eintrag 4.4 Übungen zu PostScript-Pi-Fonts Übung 23 (Lösung S. 121) Setzen Sie den folgenden Text: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 75 Ausgewählte LATEX-Kapitel 76 Ich habe das ➌, ➍, ➎ mal gesagt und wir haben das Ding doch auf ❤ und Nieren geprüft. Allerdings ∃ kein Grund, das von α bis ω noch mal durchzukauen. Es eicht! Übung 24 (Lösung S. 121) Setzen Sie eine Tabelle mit fünf Spalten und vier Zeilen mit den Zapf-Dingbats ab Nummer 161. Dies sieht dann wie folgt aus: ❡ ❢ ❣ ❤ ❥ ❦ ❧ ♣ ♦ ♥ ♠ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ Übung 25 (Lösung S. 122) Setzen Sie folgende nummerierte Aufzählung: ❶ Denk’ ich an Deutschland in der Nacht ❷ so bin ich um den Schlaf gebracht. ❸ Ich kann nicht mehr die Augen schließen, ① und meine heißen Tränen fließen. ② Nach Deutschland lechzst ich nicht so sehr, ③ wenn nicht die Mutter dorten wär. ❹ Der deutsche Geist wird nicht verderben, ❺ jedoch die alte Frau kann sterben! Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Kapitel 5 Acrobatik mit LATEX In diesem Minikapitel soll auf die Möglichkeiten hingewiesen werden, Dokumente im Portable Document Format (*.pdf-Format) für Adobes Acrobat Reader zu erzeugen [11]. Da die zur Zeit verfügbaren LATEX-zu-HTML-Konverter keine befriedigenden Ergebnisse liefern, scheint dies der Königsweg zu sein, seine LATEX-Dokumente im Internet verfügbar zu machen. Zudem hat sich *.pdf seit einiger Zeit zu einem Standard entwickelt, der der elenden VerWordung der Welt endlich etwas entgegensetzt. 5.1 Pdf via Postscript Eine Möglichkeit, pdf-Dokumente zu erzeugen, ist der Umweg über Postscript-Dokumente. In jeder vernünftigen LATEX-Umgebung sollte es die Möglichkeit geben den Konverter (Treiber) dvips aufzurufen. Diese Programm konvertiert das von LATEX erzeugte dvi-File in ein Postscript-Dokument. Dieses Postscript-Dokument kann nun mit Adobes Acrobat Destiller in ein pdfDokument umgesetzt werden. Voraussetzung ist dabei natürlich, dass man Zugriff auf diese Programm hat. Für den Umgang mit diesem Programm sei auf die entsprechende Dokumentation verwiesen. Ausgewählte LATEX-Kapitel 5.2 Übung zur Erzeugung von Pdf via Postscript Übung 26 (Lösung S. 122) Probieren Sie die in Abschnitt 5.1 beschriebene Möglichkeit aus, pdf-Dokumente zu erzeugen! 5.3 Pdf mit pdfLATEX Mit Hilfe des Programms pdfLATEX ist es möglich mit LATEX direkt pdf-Dokumente zu erzeugen! Dies bedeutet, dass statt einer klassischen dvi-Datei direkt ein Dokument im pdf-Format erzeugt wird! Interessant ist pdfLATEX vor allen Dingen auch im Zusammenhang mit dem hyperref-Paket. Diese Paket erlaubt es, im pdf-Dokument Hyperlinks zu definieren und über entsprechende LATEX-Befehle Acrobat-spezifische Befehle abzugeben, die die Gestalt des erzeugten pdf-Dokuments beeinflussen. Auf diese Möglichkeiten kann an dieser Stelle nicht eingegangen werden, da dies den Rahmen dieser Einführung in LATEX deutlich sprengen würde. Allerdings soll kurz die schon in Kapitel 3 angedeutete Möglichkeit beschrieben werden, wie der Anwender zwischen Standard-LATEX und pdfLATEX umschalten kann. Die Definition des Schalters erfolgt wieder mit Hilfe des Pakets ifthen. \usepackage{ifthen} Mit folgenden Präambel-Anweisungen wird nun geprüft, ob es sich um einen LATEX- oder einen pdfLATEX-Lauf handelt und in Abhängigkeit davon ein Schalter ispdftex gesetzt. \newboolean{ispdftex} \ifthenelse{\isundefined{\pdfoutput}}{% \setboolean{ispdftex}{false}}{% \setboolean{ispdftex}{true}} Dabei wird geprüft, ob \pdfoutput definiert ist. Dies ist nur bei einem pdfLATEX-Lauf der Fall. Anschließend kann in Abhängigkeit vom Wert dieses Schalters agiert werden. Beispielsweise kann das graphicx-Paket mit der passenden Option geladen Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 78 Ausgewählte LATEX-Kapitel werden. \ifthenelse{\boolean{ispdftex}}{% \usepackage[pdftex]{graphicx}}{% \usepackage[dvips]{epsfig} } Das Dokument ist so auf die parallele Verarbeitung zu pdf- und ps-Dokumenten vorbereitet. 5.4 Übung zur Erzeugung von Pdf via pdfLATEX Übung 27 (Lösung S. 122) Probieren Sie die in Abschnitt 5.3 beschriebene Möglichkeit aus, pdf-Dokumente zu erzeugen! Laden Sie dazu gegebenenfalls das Paket hyperref und Testen Sie dessen Möglichkeiten aus, über die Sie sich mit der entsprechenden Dokumentation informieren. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 79 Kapitel 6 Tabellen und Grafiken fortgeschrittene Themen In diesem Kapitel sollen weitere nützliche Konstrukte zu den in den Kapiteln 2 und 4 diskutierten Themen vorgestellt werden. Die betrifft Bereiche wie das Ausrichten von Zahlenkolonnen, das Zusammenfassen mehrerer Zeilen einer Spalte zu einer Zelle, das Setzen gedrehter Tabelleneinträge oder das Setzen textumflossener Grafiken. Darüber hinaus soll ein kleiner Einblick gegeben werden, wie man sich durch das Schreiben eigener LATEX-Markros das Leben erleichtern kann. 6.1 Makros für den Tabellensatz Insbesondere beim Satz von Tabellen kann es, wie wir in den Beispielen gesehen haben, zu sehr unübersichtlichen und unschönen Konstruktionen wie der folgenden kommen (vgl. Übung 8): \begin{tabular}{|p{3cm} || >{\centering$}p{3cm}<{\;\mathrm{EUR}$} | >{\footnotesize\PBS\raggedright\hspace{0pt}}p{5cm} |} \hline .... Eine solche unübersichtliche Spaltendefinition ist insbesondere durch die Vielzahl der Klammern sehr fehlerträchtig und im Fehlerfall schwer zu debuggen. In einem solchen Fall ist es angebracht, sich mit Hilfe von Macros Abkürzungen zu definieren. Wir werden im folgenden in mehreren Beispielen demonstrieren, wie dies möglich ist. Ausgewählte LATEX-Kapitel 81 Alle in diesem Skript verwendeten Makros sind in einem Style-File skriptdefs.sty zusammengefasst und können auf die übliche Weise in der Präambel durch den Befehl \usepackage{skriptdefs} geladen werden. Die Datei skriptdefs.sty ist dazu vorher in einen LATEX zugänglichen Pfad zu kopieren und auf die in Kapitel 1 beschriebene Weise in die Datenbasis einzubinden. Natürlich könnten auch alternativ einzelne Makrodefinitionen direkt in der Präambel aufgenommen werden. Um dem Leser die Arbeit mit den Übungen zu erleichtern, ist dem Begleitmaterial ein erweitertes Template-File namens LatexVor2006VorlageAdvanced.tex zugefügt, welches alle notwendigen usepackage-Anweisungen enthält. Neue Spaltenoptionen werden mit dem Befehl newcolumntype nach folgender Syntax definiert: \newcolumntype{<Option>}{Spaltendefinition} Wir diskutieren zunächst ein einfaches Beispiel: \newcolumntype{C}{>{$}c<{$}} \newcolumntype{L}{>{$}l<{$}} \newcolumntype{R}{>{$}r<{$}} % Zentiert aber im Mathe-Modus % linksbündig aber im Mathe-Modus % rechtsbündig aber im Mathe-Modus Mit diesen (Präambel- oder Paket-)Anweisungen werden drei neue Spaltenoptionen C, L und R definiert, mit deren Hilfe es möglich ist, Spalten zentriert, linksbündig und rechtsbündig im mathematischen Modus zu setzen. Statt \begin{tabular}{*{3}{>{$}c<{$}}} ..... für drei zentrierte Spalten im mathematischen Modus kann nun einfacher Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 82 \begin{tabular}{*{3}{C}} ..... geschrieben werden. Der Vorteil der obigen Definitionen ist sicherlich noch nicht so eklatant, dass er der Rede wert wäre. Im nächsten Beispiel verhält es sich schon etwas anders. Mit \newcolumntype{v}[1]{% >{\PBS\raggedright\hspace{0pt}}% p{#1}% } % Typ v für % Flattersatz rechts % Argument ist eine Breitenangabe \newcolumntype{V}[1]{% % Typ V für >{\scriptsize\PBS\raggedright\hspace{0pt}}% % Flattersatz rechts, % in Größe scriptsize p{#1}% % Argument ist eine Breitenangabe } \newcolumntype{Y}{% % Typ Y für tabularx % % Flattersatz rechts >{\small\raggedright\arraybackslash\hspace{0pt}}X}% werden die Optionen v, V und Y definiert, mit denen sich Spalten im Flattersatz rechts setzen lassen. Die ersten beiden Optionen sind über die p-Option definiert, die dritte über die für die tabularx-Umgebung gültige X-Option. Die ersten Optionen können dabei einen Parameter (in diesem Fall die Breite) aufnehmen. Dies wird durch die eckige Klammer angedeutet, die die Anzahl der Parameter enthält. Im Rumpf der Definition wird dann der Parameter mit #Nummer angesprochen. Im obigen Fall gibt es nur einen Parameter. Dieser ist der, der von der p-Option erwartet wird. Die obigen Definitionen können nun den Tabellensatz schon deutlicher vereinfachen. So kann beispielsweise die Definition der Tabelle auf Seite 27 \begin{tabular}{>{\PBS\raggedright\hspace{0pt}}p{4cm} % >{\PBS\raggedright\hspace{0pt}}p{3cm} % >{\PBS\raggedright\hspace{0pt}}p{4cm}} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 83 \toprule Schnitzel und Eisbein ..... durch \begin{tabular}{v{4cm} v{3cm} v{4cm}} \toprule Schnitzel und Eisbein & Fleisch & Schwein, ist bei Massentierhaltung % hormonbelastet \\ \addlinespace Steak, Kalbsschnitzel und Rouladen & Fleisch & Rind, birgt immer % noch BSE-Gefahr\\ \bottomrule \end{tabular} ersetzt werden und liefert ebenfalls: Schnitzel und Eisbein Fleisch Schwein, ist bei Massentierhaltung hormonbelastet Steak, Kalbsschnitzel und Rouladen Fleisch Rind, birgt immer noch BSE-Gefahr 6.2 Übungen zu den Makros für den Tabellensatz Für die Übungen dieses Kapitels muss das Template-File LatexVor2006VorlageAdvanced.tex verwendet werden! Übung 28 (Lösung S. 122) Setzen Sie mit Hilfe der V-Option die Tabelle auf Seite 29 neu. Übung 29 (Lösung S. 123) Definieren Sie eine neue Spaltenoption, bei die Tabelleneinträge fett, in der Schriftgröße footnotesize und zentriert gesetzt werden. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 84 Setzen Sie damit die Tabelle aus Übung 28 neu. 6.3 Das dcolumn-Paket Eine häufig auftretende Anwendung für Tabellen ist, besonders im kommerziellen Bereich, das Auflisten von Zahlenkolonnen. Dabei dient es, insbesondere bei Geldbeträgen der Übersichtlichkeit, wenn diese Zahlen am Komma oder Dezimalpunkt ausgerichtet sind. Ein Paket, welches entsprechende Spaltenoptionen bereitstellt ist das dcolumn-Paket. Das Einbinden dieses Pakets [2] in der Präambel erfolgt mit: \usepackage{dcolumn} Das Paket bietet, wie bereits erwähnt, für die tabular-Umgebung Möglichkeiten der Ausrichtung von Zahlen am Dezimalpunkt. Beispielsweise kann die folgende Tabelle damit gesetzt werden: 22,8 18,078 66,9 4,0 26,0 123,678 −23,78 0,0 0,0 oder die folgende 22·8 18·078 66·9 4·0 26·0 123·678 −23·78 0·0 0·0 Man beachte, dass die Zahlen stets im mathematischen Modus gesetzt werden! In den obigen Beispielen wurde in der Präambel im ersten Fall ein neuer Spaltentyp d und im zweiten Fall ein neuer Spaltentyp q folgendermaßen vereinbart [14]: \makeatletter \newcolumntype{d}[1]{% Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe % Typ d für Ausgewählte LATEX-Kapitel 85 >{\DC@{.}{,}{#1}}l<{\DC@end}% % } % \makeatother % % % % linksbündig und an Punkt/Komma ausgerichtete Zahlen Argument ist die Zahl der Nachkommastellen \newcolumntype{q}{D{.}{$\cdot$}{-1}} Die eigentliche Spaltenoption ist D. Wie bei der Definition von q oben muss dabei in drei Parametern angegeben werden, welches Trennzeichen bei der Eingabe benutzt wird (z.B. {.}), welches bei der Ausgabe (z.B. {\cdot\}) und wieviel Dezimalstellen maximal dargestellt werden sollen (z.B. {-1} für „beliebig“). So wird mit den Anweisungen \begin{tabular} {*{3}{D{,}{.}{10}}} \toprule 22,658 & 4,3450 & 26,0000 \\ \addlinespace 18,078 & 123.678 & -23,7867 \\ \addlinespace 66,9 & 0,0000 & 0,00002 \\ \bottomrule \end{tabular} die Tabelle 22.658 18.078 66.9 4.3450 123.678 0.0000 26.0000 −23.7867 0.00002 gesetzt. Die beiden Eingangsbeispiele wurden mit den Anweisungen \begin{tabular}{*{3}{d{3}}} \toprule 22.8 & 4.0 & 26.0 \\ \addlinespace 18.078 & 123.678 & -23.78 \\ \addlinespace 66.9 & 0.0 & 0.0 \\ Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 86 \bottomrule \end{tabular} und \begin{tabular} {*{3}q} \toprule 22.8 & 4.0 & 26.0 18.078 & 123.678 & -23.78 66.9 & 0.0 & 0.0 \bottomrule \end{tabular} \\ \addlinespace \\ \addlinespace \\ gesetzt. 6.4 Übungen zum dcolumn-Paket Übung 30 (Lösung S. 123) Setzen Sie die nachfolgende Tabelle: 2$56 3$45 26$00 18$07 123$60 23$70 66$90 0$00 0$02 8$07 12$60 23$70 6$90 1$00 0$02 Die zulässige maximale Anzahl der Dezimalstellen soll dabei beliebig sein und das Eingabetrennzeichen soll ein Komma sein! Übung 31 (Lösung S. 124) Setzen Sie die nachfolgende Tabelle: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel Name/Monat 87 Mai Juni Juli Schulz 2$56 3$45 26$00 Müller 18$07 123$60 23$70 Meier 66$90 0$00 0$02 Hund 8$07 12$60 23$70 Katz 6$90 1$00 0$02 Die zulässige maximale Anzahl der Dezimalstellen soll dabei beliebig sein und das Eingabetrennzeichen soll ein Komma sein! 6.5 Zusammenfassen mehrerer Zeilen Normalerweise können mehrere, zu einer Zelle zusammengefasste Zeilen einer Spalte mit dem multirow-Paket gesetzt werden [7]. Dieses lädt man durch Einbinden in der Präambel mit: \usepackage{multirow} Allerdings empfiehlt Axel Reichert [14] ein eigenes Kommando \armultirow{spaltenzahl}{format}{Ausgabetext} welches, in die Präambel eingebunden, mit der tabular-Umgebung zusammen arbeitet und besser arbeiten soll als das multirow-Paket. Dieses Kommando kann in der Präambel 1 durch folgende Anweisungen definiert werden: \newcommand{\armultirow}[3]{% % \multicolumn{#1}{#2}{% % \begin{picture}(0,0)% % \put(0,0){% % \begin{tabular}[t]{@{}#2@{}}%% #3% \end{tabular}% }% \end{picture}% }% 1 In Axel soll #1 = #2 = #3 = Reicherts multirow besser sein, als multirow.sty Anzahl der Spalten Art der Spalte (z.B. p{5cm}) Auszugebender Spalteninhalt dem Style-File skriptdefs.sty des Begleitmaterials ist diese Definition bereits integriert, so dass die obige Definition nicht nochmals in der Präambel aufgenommen werden muss, wenn man dieses File einbindet. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 88 }% Ein Beispiel illustriert die Verwendung. \begin{tabular}{*{3}{v{3cm}}} \toprule Text1 & Text2 & Text3 \addlinespace\cmidrule{2-3} & \multicolumn{2}{>{\scriptsize}l}% {Die wesentlichen Größen} \addlinespace\cmidrule{2-3} Text4 & Text6 & \armultirow{1}{p{6cm}}{Dieser ist etwas länger und erstreckt sich über mehrere Zeilen Tabelle}\\ \addlinespace Text5 & Text7 & \addlinespace \bottomrule \end{tabular} \\ \\ Text der \\ liefert: Text1 Text2 Text3 Die wesentlichen Größen Text4 Text6 Text5 Text7 Dieser Text ist etwas länger und erstreckt sich über mehrere Zeilen der Tabelle Man beachte, dass die darunter liegenden Zeilen leer bleiben müssen, da es sonst zu Überlappungen kommt. Hier muss man gegebenenfalls probieren, wieviel Leerzeilen notwendig sind. Wir wollen die Verwendung von armultirow an einem weiteren Beispiel illustrieren. {% \setlength{\extrarowheight}{5pt} \begin{tabular}{|v{3cm}|*{3}{v{3cm}}} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 89 \hline Fragen: & & \multicolumn{1}{>{\centering}v{3cm}}{Gedicht} % & \multicolumn{1}{>{\centering}v{3cm}|}{} \\ \cline{2-4} & \multicolumn{3}{>{\scriptsize}l|}% {Eine Strophe geht so:} \\ \cline{2-4} woher? & \armultirow{3}{V{11cm}|}{% Doch plötzlich wird Minheer van Koek aus seinen Gedanken gerissen. \newline Der Schiffschirurgius tritt herein, der Doktor van der Smissen. \newline Das ist eine klapperdürre Figur, die Nase voll roter Warzen. \newline "‘Nun Wasserfeldscherer"’, spricht van Koek, "‘wie geht’s meinen lieben Schwarzen?"’} \\ von wem? & & & \multicolumn{1}{>{\centering}v{3cm}|}{} \\ & & & \multicolumn{1}{>{\centering}v{3cm}|}{} \\ \hline \end{tabular} } Dies liefert eine Tabelle, bei der über drei Spalten hinweg mehrere Zeilen zusammengefasst wurden: Fragen: Gedicht Eine Strophe geht so: woher? von wem? Doch plötzlich wird Minheer van Koek aus seinen Gedanken gerissen. Der Schiffschirurgius tritt herein, der Doktor van der Smissen. Das ist eine klapperdürre Figur, die Nase voll roter Warzen. „Nun Wasserfeldscherer“, spricht van Koek, „wie geht’s meinen lieben Schwarzen?“ Man beachte bei diesem Beispiel, wie die vertikalen Linien gesetzt wurden. Dies ist im Fall von armultirow eine besonders knifflige Angelegenheit. Der Leser ist dazu aufgefordert, einmal mit den verschiedenen Möglichkeiten zu spielen, wie in diesem Beispiel die vertikalen Linien gesetzt werden können. Auch sollte man einmal die Effekte studieren, die bei einer Veränderung der Zellenbreite für die Gedichtstrophe oder beim Weglassen der multiFachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 90 column-Befehle herauskommen. 6.6 Übungen zum Zusammenfassen mehrerer Zeilen Übung 32 (Lösung S. 124) Setzen Sie eine Tabelle mit folgendem Aussehen: 2.00 2.00 2.00 2.00 2.00 2.00 2.00 2.00 2.00 2.00 2.00 2.00 Nebenstehend sieht man eine schöne Latte von Zahlen, die aber leider wenig Sinn macht, da sie recht eintönig ist und hier nur der Illustration dient. Man könnte meinen der Autor sei einfallslos. Aber weit gefehlt! Übung 33 (Lösung S. 125) Setzen Sie eine Tabelle mit folgendem Aussehen: 4.00 2.00 2.00 −2.00 0.00 −2.00 2.00 6.7 R1 0 sin( x2 ) dx Wenn das mal stimmt! −2.00 4.00 12.00 −2.00 22.00 Gedrehte und gestürzte Tabelleneinträge Oft findet man bei Tabellen, insbesondere bei Tabellenüberschriften, schräg gestellte oder um 90 Grad gedrehte Tabelleneinträge. Dies ist insbesondere dann der Fall, wenn die Spaltenüberschriften viel breiter sind, als die Einträge der Spalten selbst, so dass man Platzprobleme bekommt, wenn man die Spaltenbreiten an den Breiten der Überschriften ausrichtet. Gedrehte Tabelleneinträge werden durch Einbinden des rotating-Pakets in der Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 91 Präambel vorbereitet. \usepackage{rotating} Man beachte jedoch, dass für die Anzeige PostScript-Treiber nötig sind. Der Previewer Yap beispielsweise kann die Rotationen nicht darstellen. Im Folgenden wird nachstehende Definition2 verwendet, die in der Präambel verankert werden muss: \newcolumntype{Q}[2]{% % Typ R für gedrehte Tabelleneinträge >{\begin{turn}{#1}% % erster Eintrag #1: Drehwinkel \begin{minipage}{#2}% % zweiter Eintrag #2: Breite der minipage \scriptsize\PBS\raggedright\hspace{0pt}}l% % linksbündig in scriptsize gesetzt <{\end{minipage}\end{turn}} % ACHTUNG: PostScript-previewer nötig! }% Ein Beispiel illustriert die Verwendung. Dabei wird der multicolumn-Befehl dazu verwendet, die im tabular-Kopf definierten Einstellungen zu überschreiben. \begin{tabular}{*{3}{@{}V{3cm}@{}}} \toprule Fleisch & ist doch gesund & hoffen wir doch \\ \addlinespace \cmidrule{2-2} Gemüse & \multicolumn{1}{Q{45}{5cm}}{ist viel gesünder} & das wissen wir \\ \addlinespace \cmidrule{2-3} Teigwaren & sind kohlehydratreich& das ist klar!\\ \bottomrule \end{tabular} Diese Anweisungen liefern: 2 s. Style-File skriptdefs.sty Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel ist doch gesund hoffen wir doch Teigwaren das wissen wir is Gemüse tv ie lv ie lv ie lg es ün d er Fleisch 92 sind kohlehydratreich das ist klar! Solche Rotationen von Tabelleneinträgen eignen sich, wie eingangs bereits erwähnt, vorwiegend zur Gestaltung von Kopfzeilen, wie das folgende Beispiel zeigt. {\setlength{\extrarowheight}{4pt} \begin{tabular} {|p{4cm}|*{3}{D{,}{\$}{-1}|}} \hline Name/Monat & \multicolumn{1}{R{45}{1cm}|}{Mai} &% \multicolumn{1}{R{45}{1cm}|}{Juni} & % \multicolumn{1}{R{45}{1cm}|}{Juli} \\\hline Schulz & 2,56 & 3,45 & 26,00 \\\hline Müller & 18,07 & 123,60 & 23,70 \\\hline Meier & 66,90 & 0,00 & 0,02 \\\hline Hund & 8,07 & 12,60 & 23,70 \\\hline Katz & 6,90 & 1,00 & 0,02\\ \hline \end{tabular} } Ju li ni Ju M Name/Monat ai Diese Anweisungen liefern: Schulz 2$56 3$45 26$00 Müller 18$07 123$60 23$70 Meier 66$90 0$00 0$02 Hund 8$07 12$60 23$70 Katz 6$90 1$00 0$02 Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 6.8 93 Übungen zu gedrehten Tabelleneinträgen Übung 34 (Lösung S. 125) eine Formel xyz 125 44 x2 0 sin( x2 ) dx Zahl abc Text R1 Setzen Sie eine Tabelle mit folgendem Aussehen: Zeichen ? * Übung 35 (Lösung S. 126) Setzen Sie eine Tabelle mit folgendem Aussehen: n sin( x2 ) dx he ic R1 Ze l ne me r Fo ei Za 125 hl xt Te xyz ? 0 abc 6.9 44 x2 * Textumflossene Grafiken Im vorliegenden Abschnitt verlassen wir jetzt die Gefilde des Tabellensatzes und kommen zu einer wichtigen Ergänzung der Thematik Grafikeinbindung aus Kapitel 3. Ein häufig vorkommendes Problem, insbesondere bei der Integration kleinerer Grafiken, ist das Umfließenlassen der Grafik mit Text. Für textumflossene Grafiken können in LATEX die Pakete floatfig und wrapfig verwendet werden. Diese werden mit \usepackage{floatfig} bzw. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 94 \usepackage{wrapfig} in der Präambel eingebunden. Die Pakete definieren die Umgebungen floatingfig und wrapfigure mit der Syntax \begin{floatingfig}{Breite} Boxen, Bilder, etc. \end{floatingfig} bzw. \begin{wrapfigure}{Position}{Breite} Boxen, Bilder, etc. \end{wrapfigure} wobei das floatingfig-Paket zusätzlich noch mit dem Befehl \initfloatingfigs zu Beginn des Dokuments initialisiert werden muss. Die zu setzenden Objekte werden in der angegebenen Breite entweder links oder rechts an die Seiten gesetzt. Beim Paket floatingfig erfolgt dies automatisch, bei wrapfigure muss dies im Positionsparameter mit [r] (rechts) oder [l] (links) angegeben werden. Der wesentliche Unterschied ist, dass mit floatingfig Gleitobjekte [13] erzeugt werden (vgl. Abschnitt 3.7) und dass wrapfigure das Objekt fest positioniert. Wir erläutern die Funktionsweise an Hand eines Beispiels: \begin{floatingfigure}{5cm} \fbox{% \parbox{4.5cm}{% \scriptsize Dies ist ein Text, der in einer so genannten \textbf{parbox} separat an den Rand gesetzt wird. Die \textbf{parbox} ist in eine \textbf{floatingfigure}Umgebung gesetzt und mit einem Rahmen umgeben. Stattdessen könnte natürlich hier auch ein mit \textbf{\textbackslash includegraphics} eingefügtes Bild stehen! }% } Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 95 \renewcommand{\captionfont}{\scriptsize} \caption{Eine Box in einer \textbf{floatingfigure}-Umgebung!}% \label{dieParbox} \end{floatingfigure} 1. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. 2. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. 1. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Dies ist ein Text, der in einer so genannten parbox separat an den Rand gesetzt wird. Die parbox ist in eine floatingfigure-Umgebung gesetzt und mit einem Rahmen umgeben. Stattdessen könnte natürlich hier auch ein mit \includegraphics eingefügtes Bild stehen! Abbildung 6.1: Eine Box in einer floatingfigure-Umgebung! 2. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Bitte beachten Sie, dass die floatingfigure-Umgebung zwischen zwei Absätze gesetzt werden muss. Zur Illustration nun das gleiche Beispiel mit einer wrapfigure-Umgebung. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 1. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text 96 Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. 2. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text \begin{wrapfigure}{l}{5cm} \fbox{% \parbox{4.5cm}{% \scriptsize Dies ist ein Text, der in einer so genannten \textbf{parbox} separat an den Rand gesetzt wird. Die \textbf{parbox} ist in eine \textbf{wrapfigure}Umgebung gesetzt und mit einem Rahmen umgeben. Stattdessen könnte natürlich hier auch ein mit \textbf{\textbackslash includegraphics} eingefügtes Bild stehen! Man beachte, dass man die \textbf{wrapfigure}-Umgebung gegebenenfalls \emph{von Hand} platzieren muss, falls Sie nicht auf eine Seite passt. Daher sollte sie nur verwendet werden, wenn das übrige Dokument fertig gesetz ist. }% } \renewcommand{\captionfont}{\scriptsize} \caption{Eine Box in einer \textbf{wrapfigure}-Umgebung!}% \label{dieParbox2} \end{wrapfigure} Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 97 Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. 1. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text 2. Abschnitt: Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Dies ist ein Text, der in einer so Text Text Text Text Text Text Text Text Text Text genannten parbox separat an den Rand gesetzt wird. Die parbox ist in Text Text Text Text Text Text Text Text Text Text eine wrapfigure-Umgebung gesetzt Text Text Text Text Text Text Text Text Text Text und mit einem Rahmen umgeben. Stattdessen könnte natürlich hier Text Text Text Text Text Text Text Text Text Text auch ein mit \includegraphics einText Text Text Text Text Text Text Text Text Text gefügtes Bild stehen! Man beachte, dass man die wrapfiText Text Text Text Text Text Text Text Text Text gure-Umgebung gegebenenfalls von Text Text Text Text Text Text Text Text Text Text Hand platzieren muss, falls Sie nicht auf eine Seite passt. Daher sollte sie Text Text Text Text Text Text Text Text Text Text nur verwendet werden, wenn das Text Text Text Text Text Text Text Text Text Text übrige Dokument fertig gesetz ist. Text Text Text Text Text Text Text Text Text Text Abbildung 6.2: Eine Box in einer wrapText Text Text Text Text Text Text Text Text Text figure-Umgebung! Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Bitte beachten Sie die Hinweise in der Box aus Abbildung 6.2! 6.10 Übungen zu textumflossenen Grafiken Übung 36 (Lösung S. 126) Setzen Sie das LATEX-Herz aus Abbildung 3.3 mit Hilfe einer wrapfigure-Umgebung auf die rechte Seite und lassen Sie das Bild mit einem Text umfließen. Setzen Sie die Bildunterschrift im footnotesize-Format. Das ganze soll dann etwa so aussehen: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text auf Text Text Text Text Text Text Text Text Text Text Text Text Abbildung 6.3: Scharf LATEX! Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Übung 37 (Lösung S. 127) Bearbeiten Sie die Aufgabe aus Übung 36 mit Hilfe einer floatingfigure-Umgebung! 6.11 Mehrere Grafik-Pakete verwenden Ein Problem bei der Einbindung externer Grafiken sind oft die verschiedenen Formate. Beispielsweise wurden im vorliegenden Dokument Portable Network Graphics-Bilder (*.png), Portable Document Format-Bilder (*.pdf) und EncapsuFachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 98 Ausgewählte LATEX-Kapitel lated PostScript-Bilder (*.eps) verwendet. Darüber hinaus kommen natürlich oft auch Bilder im Windows-eigenen (*.wmf)-Format oder im *.gif-, *.tiff- oder Bitmap-Format (*.bmp) vor. Nicht jeder dvi-Treiber kommt mit jedem Format zurecht. Das graphicx-Paket muss für die Verarbeitung der verschiedenen Formate mit entsprechenden Optionen geladen werden, die sich jedoch zum Teil nicht miteinander vertragen. Eine Möglichkeit, diese Schwierigkeiten zu umgehen ist, sich auf eine Formatgruppe festzulegen. Im vorliegenden Dokument beispielsweise sollte von der Möglichkeit Gebrauch gemacht werden, sowohl ein *.pdf-Dokument, als auch ein PostScriptDokument zu erstellen. Hierfür wurden die Bilder doppelt, also einerseits im *.pdf- oder *.png-Format und andererseits im *.eps-Format erstellt. Viele Bildbearbeitungsprogramme erlauben den Export all dieser Formate, so dass dies im Prinzip kein Problem darstellt. Mit Hilfe eines in der Präambel definierten Schalters kann dann das Dokument dann in das gewünschte Format gebracht werden. Die Definition des Schalters erfolgt dabei auf folgende Weise. Zunächst wird das Paket ifthen geladen, um den Schalter und Verzweigungen definieren zu können. \usepackage{ifthen} Anschließend wird der Schalter definiert und auf den gewünschten Wahrheitswert gesetzt. Beispielsweise wird durch \newboolean{istpostscript} \setboolean{istpostscript}{true} der Schalter istpostscript definiert und auf true gesetzt. Anschließend wird in Abhängigkeit von diesem Schalter das graphicx-Paket mit der passenden Option geladen. \ifthenelse{\boolean{istpostscript}}{% \usepackage[dvips]{graphicx}}{% \usepackage[pdftex]{graphicx} } Die Figur kann dann, je nachdem, ob ps- oder pdf-Dokumente erstellt werden sollen, was mit der Präambelanweisung setboolean gesteuert wird, auf folgende Weise gesetzt werden: Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 99 Ausgewählte LATEX-Kapitel \begin{figure}[ht] \begin{center} \ifthenelse{\boolean{istpostscript}}{ \includegraphics[width=3cm, angle=180]{abb/fhlogo.eps}} {\includegraphics[width=3cm, angle=180]{abb/fhlogo.eps}} \caption{\emph{Die FH steht Kopf! }\label{dieFHstehtKopf} \end{center} \end{figure} Im vorliegenden Skriptum wurde eine andere Vorgehensweise gewählt um zwischen der Möglichkeit, Dokumente im *.pdf-Format mit Hilfe von pdfLATEX zu erstellen und mit Hilfe von normalen LATEX-Läufen, zu unterscheiden. Im ersten Fall dürfen dann als Grafikformate *.png- und *.pdf-Formate verwendet werden, im zweiten Fall sollen *.eps-Grafiken integriert werden, da Postscript-Dokumente mit dem dvips-Treiber erstellt werden sollen. Zu diesem Zweck wird mit \newboolean{ispdftex} \ifthenelse{\isundefined{\pdfoutput}}{% \setboolean{ispdftex}{false}}{% \setboolean{ispdftex}{true}} zunächst der Schalter ispdftex definiert und auf true gesetzt, falls die Variable \pdfoutput definiert ist. Dies ist nur der Fall, wenn pdfLATEX verwendet wird. Ansonsten wird der Schalter auf false gesetzt. Mit \ifthenelse{\boolean{ispdftex}}{% \usepackage[pdftex]{graphicx} \usepackage[pdftex]{color}}{% \usepackage[dvips]{epsfig} wird anschließend das graphicx-Paket mit der Option pdftex geladen, falls pdfLATEX verwendet wird und das Paket epsfig wenn einer normaler LATEXLauf durchgeführt wird. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 100 Ausgewählte LATEX-Kapitel Einzufügende Grafiken müssen nun in zwei Formaten, einmal in *.pdf- oder *.png vorliegen und zum andern in *.eps. Die Grafiken werden dann beispielsweise folgendermaßen eingebunden: \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=3cm, angle=45]{abb/fhlogo.png}} {\epsfig{figure=abb/fhlogo.eps, width=3cm,angle=45}} Der Vorteil dieses schreiberischen Mehraufwandes ist der, dass nun keine Veränderungen der Präambel mehr vorgenommen werden müssen, um den Text einmal in pdfLATEX und dann in LATEX zu setzen. 6.12 Postscript-Schriften verwenden In Kapitel 4 wurde gezeigt, wie Pakete für freie Postscript-Schriften eingebunden werden. Durch das Paket werden die default-Schriften für die Normalschrift, die serifenlose Schrift und die Typewriterschrift festgelegt. Es ist jedoch natürlich auch möglich, diese default-Einstellungen im Text zu ändern, falls dies notwendig erscheint. Einzelne Zeichensätze können mit den Befehlen \fontfamily, \fontseries, \fontshape, \fontsize und \selectfont definiert und geladen werden. Beispielsweise setzt die folgende Anweisungsfolge den in { und } gesetzten Abschnitt in der Schriftfamilie NewCenturySchoolbook (pnc), in der Serie bold (b) und im Schriftschnitt italic (it) (man beachte dabei, dass nicht alle Kombinationen definiert sind). Die Schriftgrad (Fontgröße) wird mit der Angabe von Größe und Durchschuss definiert. Wegen der freien Skalierbarkeit der PostScript-Schriften kann hier prinzipiell jeder Wert angegeben werden. Dabei sollte der Durchschuss (Zeilenabstand) etwa das 1.2-fache der Fontgröße betragen. {% \fontfamily{pnc}\fontseries{b}\fontshape{n}% \fontsize{24pt}{28.8pt} \selectfont Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 101 Ausgewählte LATEX-Kapitel Dieser Abschnitt ist in der Schrift NewCenturySchoolbook und in der Serie bold (fett) gesetzt. Darüber hinaus ist die Schriftgröße deutlich erhöht. Die freie Skalierbarkeit der Post\-script\--Schrif\-ten macht in dieser Hinsicht viel möglich. }% Dieser Abschnitt ist in der Schrift NewCenturySchoolbook und in der Serie bold (fett) gesetzt. Darüber hinaus ist die Schriftgröße deutlich erhöht. Die freie Skalierbarkeit der Postscript-Schriften macht in dieser Hinsicht viel möglich. Man sieht, dass sich sehr große Schriften nicht sehr gut für den Satz von Fließtext eignen, weil LATEX dann Probleme mit dem Randausgleich bekommt. Hier ein weiteres Beispiel für die Umstellung auf eine andere Schrift. {% \fontfamily{pbk}\fontseries{m}\fontshape{it}% \fontsize{14pt}{18pt} \selectfont \textbf{Dieser Abschnitt ist in der Schrift Bookman und in einem anderen Schriftschnitt gesetzt.} Darüber hinaus ist die Schriftgröße deutlich erhöht. Die freie Skalierbarkeit der PostScript-Schriften macht in Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 102 Ausgewählte LATEX-Kapitel dieser Hinsicht viel möglich. }% Dieser Abschnitt ist in der Schrift Bookman und in einem anderen Schriftschnitt gesetzt. Darüber hinaus ist die Schriftgröße deutlich erhöht. Die freie Skalierbarkeit der PostScript-Schriften macht in dieser Hinsicht viel möglich. Da die Definitionen in den Beispielen in { und } gesetzt wurden, wirken sich die Änderung nur lokal, also nicht auf das ganze Dokument aus. An dieser Stelle sollte allerdings bemerkt werden, dass von der Möglichkeit einer solchen Schriftfamilien-Umstellung besser nicht oder nur spärlich Gebrauch gemacht wird. Eine exzessive Schriftartenmischung sieht meist sehr besch...eiden aus. Die Umstellung der Schrift kann im Übrigen mit dem \usefont-Befehl vereinfacht werden. Der \usefont-Befehl hat im Wesentlichen die gleichen Parameter wie die Befehle, die in den vorangegangenen Abschnitten verwendet worden sind und setzt automatisch den \selectfont-Befehl zum Laden der Fonts ab. Hier ein Beispiel für die Auswahl der Schriftart Times in der Schriftserie medium und dem Schnitt slanted (schräg gestellt): {% \fontsize{8}{10} \usefont{T1}{ptm}{m}{sl} Ja, dieser Abschnitt ist in der Schriftart \textbf{Times} gesetzt. Die Buchstabengröße wurde bewusst klein gehalten. Deshalb muss man auch viel Text zusammenschreiben, um überhaupt mehr als eine Zeile in einen Abschnitt zu bekommen. Der Schriftschnitt ist schräg. Ob das schön aussieht, bleibt dem Leser überlassen! }% Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 103 Ausgewählte LATEX-Kapitel Ja, dieser Abschnitt ist in der Schriftart Times gesetzt. Die Buchstabengröße wurde bewusst klein gehalten. Deshalb muss man auch viel Text zusammenschreiben, um überhaupt mehr als eine Zeile in einen abschnitt zu bekommen. Der Schriftschnitt ist schräg. Ob das schön aussieht, bleibt dem Leser überlassen! Will man einzelne Wörter umstellen, so ist es bequemer, sich ein geeignetes Kommando zu schreiben. In einem Style-File oder in einer Präambel könnte beispielsweise folgendes Kommando definiert sein, um auf die Schriftart times in der Größe 14 pt mit dem Schnitt Kapitälchen umzustellen. \newcommand{\totimessc}[1]{ { \fontsize{14}{18.8}% \usefont{T1}{ptm}{m}{sc}% #1 }} Dies könnte man dann so anwenden: Dies ist ein ganz normaler Text in Palatino mit Schriftgröße $12$ pt gesetzt, der der das Wort \totimessc{Nudelholzfirma} und das Wort \totimessc{Blödsinn} in der Schriftart \textbf{Times} der Größe $14$ pt enthält. Dies ist ein ganz normaler Text in Palatino mit Schriftgröße 12 pt gesetzt, der der das Wort N UDELHOLZFIRMA und das Wort B LÖDSINN in der Schriftart Times der Größe 14 pt enthält. Man erkennt die Wirkung. Eine Möglichkeit, die auf das Gleiche hinausläuft, ist die Deklaration eines neuen Fontkommandos, etwa so: \DeclareTextFontCommand{\tocourier}{% \fontsize{14}{18.8}% \usefont{T1}{pcr}{m}{n}% }% Dies definiert ein Kommando \tocourier, welches für sein Textargument lokal auf Courier umstellt. Hier ein Beispiel für die Verwendung: Dies ist ein ganz normaler Text in Palatino mit Schriftgröße Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 104 Ausgewählte LATEX-Kapitel 105 $12$ pt gesetzt, der der das Wort \tocourier{Nudelholzfirma} und das Wort \tocourier{Blödsinn} in der Schriftart \textbf{Courier} der Größe $14$ pt enthält. Dies ist ein ganz normaler Text in Palatino mit Schriftgröße 12 pt gesetzt, der der das Wort Nudelholzfirma und das Wort Blödsinn in der Schriftart Courier der Größe 14 pt enthält. 6.13 Übungen zu PostScript-Schriften Übung 38 (Lösung S. 128) Setzen Sie die Tabelle 4.1 so, dass die Einträge zur Schriftart jeweils in der passenden Schriftart erscheinen. Definieren Sie dazu ggf. geeignete neue Fontkommandos. Das Ergebnis sollte dann der Tabelle 6.1 entsprechen. Tabelle 6.1: LATEX-Pakete für die PostScript-Schrift-Familien Paket Serifenschrift Sans-Serif-Schrift TypewriterSchrift times Times Helvetica Courier palatino Palatino Helvetica Courier newcent NewCenturySchoolbook AvantGarde Courier bookman Bookman AvantGarde Courier Helvetica Helvetica avant AvantGarde Übung 39 (Lösung S. 129) Setzen Sie auf einer zentrierten gerahmten parbox 5 cm hohe fette Frage- und Ausrufungszeichen in Anführungszeichen und in der Schriftart Times. Dies soll dann wie in Abbildung 6.4 aussehen. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel „?!“ Abbildung 6.4: Ein geschrieenes Fragezeichen 6.14 Mathematische PostScript-Fonts Normalerweise werden mathematische Symbole in einem zum den Computer-Modern-Fonts (den LATEX-Standard-Fonts) passenden Zeichensatz gesetzt. Und normalerweise empfiehlt es sich, die AMS-Pakete amsmath, amsfonts und amssymb für den Satz mathematischer Symbole zu verwenden. Zusätzlich kann bei Verwendung von Palatino als Standardschrift (wie in diesem Dokument) mit \usepackage{mathpple} das Paket mathpple zur Anpassung der AMS-Symbole an Palatino geladen werden. Grundsätzlich müssen die Mathematik-Pakete, wie mathpple und mathptmx (verwendet Times als grundlegende Schriftart) geladen werden. Es gibt keine (direkten) Befehle, die Symbole einzeln umschalten. Solche Befehle können nur in Paketen oder in der Präambel angegeben werden und sind dann für das ganze Dokument gültig. Ein Beispiel für die Auswirkung, die das Laden des Pakets mathpple hat: Die Stammfunktion von $x\sin(x)$ lässt sich mit Hilfe einer partiellen Integration ermitteln. Es gilt \begin{equation*} \int x\sin(x)\,dx = -x\cos(x) - \int (-\cos(x))\,dx \end{equation*} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 106 Ausgewählte LATEX-Kapitel 107 damit erhält man dann: {% \fontsize{24pt}{28pt}\selectfont \begin{equation*} \int x\sin(x)\,dx = -x\cos(x) + \sin(x) \end{equation*} }% was auch stimmt! Die Stammfunktion von x sin( x) lässt sich mit Hilfe einer partiellen Integration ermitteln. Es gilt Z x sin( x) dx = − x cos( x) − Z (− cos( x)) dx damit erhält man dann: Z x sin( x) dx = − x cos( x) + sin( x) was auch stimmt! Es ist interessant zu beobachten, welche unterschiedlichen Auswirkungen diese Anweisungsfolge hat, wenn das Paket mathpple zugeladen wird, wie im vorliegenden Fall, oder wenn nicht. Im letzteren Fall wird durch die Skalierungsangabe der am besten passende Computer-Modern-Font gesucht, im ersten Fall wird (fast) wie gewünscht skaliert. 6.15 Übung zu mathematischen PostScript-Fonts Übung 40 (Lösung S. 129) Probieren Sie die Auswirkungen aus, die das Laden bzw. Nicht-Laden des mathpple oder mathptmx-Pakets auf die obige mathematische Passage hat. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Kapitel 7 Lösungen zu den Übungen In diesem Kapitel sind die Lösungen zu den im Skriptum vorgeschlagenen Übungsaufgaben zusammengefasst. Lösung zu Übung 1, S. 17 Zunächst sucht man url.sty auf dem Dante-Sever mit Hilfe der dortigen Suchmaschine. Dann fügt man das Style-File in texmf\tex\latex\etc ein oder man kreiert ein eigenes Verzeichnis texmf\tex\latex\url und fügt das File dort ein. Anschließend frischt man die TEX-Datenbasis je nach System auf. Bei MiKTeXSystemen unter Windows muss man wahrscheinlich den den initex-Befehl initexmf--update-fndb unter DOS (Menü Start - Ausführen) ausführen. Dann fügt man die Zeile \usepackage{url} in die Präambel seines LATEX-Dokumentes ein. Dann schreibt man folgenden Text in eine eigene *.tex-Datei: Mein Name ist Manfred Mustermann. Meine e-mail-Adresse ist \url{[email protected]}. Die Adresse meiner Homepage ist \url{http://www.t-online/home/manni_mustermannhome.de} und Sie sollten sich diese wunderbare Homepage dringend mal anschauen. Ausgewählte LATEX-Kapitel Anschließend ist diese Datei mit dem Befehl \input{<name>.tex} im Dokumentbereich des main-Files einzubinden und es kann der LATEX-Lauf durchgeführt werden. Lösung zu Übung 2, S. 18 Ein Suchlauf in dem pdf-File de-tex-faq.pdf nach dem Stichwort trademark führt auf eine Frage zu dem Thema. Man erhält die Antwort, dass es einen Befehl \texttrademark im Paket textcomp gibt, welcher das Gewünschte leistet. Das entsprechende Style ist bereits in den Template-Files eingebunden, so dass an dieser Stelle nichts mehr zu tun ist. Man bindet dann auf die in Übung 1 beschriebene Weise eine Datei mit folgenden LATEX-Anweisungen ein: { WürgFürWindoofs\texttrademark{} ist ein einbetrogenes Warenzeichen der Billy the Gates Time Destruction Company Inc. } Lösung zu Übung 3, S. 23 \[\left( \begin{array}{l r} -2024 & 204 \\ 1 & -23006 \\ 0 & -1 \\ 25561 & -255 \end{array} \right)\] Lösung zu Übung 4, S. 23 Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 109 Ausgewählte LATEX-Kapitel \begin{tabular}{l \toprule Der Kommentar & \cmidrule{2-3} Kosten & Gebühren & Daten & Werte & \addlinespace \bottomrule \end{tabular} 110 c c} Zahlen $2.00$ $5.30$ $1.33$ $0.00$ & Fakten \\ \addlinespace & $14$ & $12$ & $13.3$ & unbekannt \\ \\ \addlinespace \\ \addlinespace \\ \addlinespace Zu beachten ist, dass die Spalten zwei und drei auf Grund der Spaltendefinition im mathematischen Modus gesetzt werden. Daher muss dieser durch zusätzliche $ $ für die Texteinträge wieder einzeln aufgehoben werden. Lösung zu Übung 5, S. 34 \begin{tabular}{>{\scriptsize}p{4cm} *{2}{>{$}p{3cm}<{$}}} \toprule Der Kommentar & $Zahlen$ & $Fakten$ \\ \addlinespace \cmidrule{2-3} Kosten & 2.00 & 14 \\ \addlinespace Gebühren & 5.30 & 12 \\ \addlinespace Daten & 1.33 & 13.3 \\ \addlinespace Werte & 0.00 & $\scriptsize unbekannnt$\\ \addlinespace \bottomrule \end{tabular} Lösung zu Übung 6, S. 34 {\setlength{\extrarowheight}{4pt} \begin{tabular}{|>{\scriptsize}p{4cm} *{2}{|>{$}p{2cm}<{$}}|} \hline Der Kommentar & $\scriptsize Zahlen$ & $ \scriptsize Fakten$ \\ \cline{2-3} Kosten & 2.00 & 14 Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe \\ Ausgewählte LATEX-Kapitel \hline Gebühren & 5.30 \hline Daten & 1.33 \hline Werte & 0.00 kannnt$ \\ \hline \end{tabular} } 111 & 12 \\ & 13.3 \\ & $\scriptsize unbe- Lösung zu Übung 7, S. 35 {\setlength{\extrarowheight}{4pt} \begin{tabular}{|p{5cm} | >{\centering$\pm\;}p{3cm}<{\;\mathrm{mm}$} |% >{$}p{3cm}<{$} |} \hline Der Kommentar & $Zahlen$ & $ Fakten$ \\ \cline{2-3} Kosten & 2.00 & 14 \\ \hline Gebühren & 5.30 & 12 \\ \hline Daten & 1.33 & 13.3 \\ \hline Werte & 0.00 & $unbekannnt$ \\ \hline \end{tabular} } Lösung zu Übung 8, S. 35 {\setlength{\extrarowheight}{4pt} \begin{tabular}{|p{3cm} || >{\centering$}p{3cm}<{\;\mathrm{EUR}$} | >{\footnotesize\PBS\raggedright\hspace{0pt}}p{5cm} |} \hline Artikel & $Preis/$ & {\nomalsize Besonderheit} \\ \hline\hline Kopfsalat & 1,49 & \\ Tomaten & 2,99 & Kilopreis, Herkunftsland Italien \\ Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel Apfelsinen & ka \\ \hline Ananas & na nass macht, 112 3,99 & 1,5-Kilo Netz, Navelinas Herkunftsland Südafri- 2,99 & "‘Wenn hier einer An- % dann bin ich das!"’ % % Preisfrage: woher stammt die- ses % Zitat? Preis: eine Ananas! \hline \end{tabular} } \\ Lösung zu Übung 9, S. 39 {\setlength{\extrarowheight}{4pt} \begin{tabular} {|p{3cm}|*{3}{>{\PBS\raggedleft\hspace{0pt}}p{3cm}<{\$}|}} \hline Name/Monat & \multicolumn{1}{c|}{Mai} & \multicolumn{1}{c|}{Juni} & \multicolumn{1}{c|}{Juli} \\\hline Schulz & 2,56 & 3,45 & 26,00 \\\hline Müller & 18,07 & 123,60 & 23,70 \\\hline Meier & 66,90 & 0,00 & 0,02 \\\hline Hund & 8,07 & 12,60 & 23,70 \\\hline Katz & 6,90 & 1,00 & 0,02 \\\hline \end{tabular} } Lösung zu Übung 10, S. 39 {\setlength{\extrarowheight}{4pt} \begin{tabular}{|*{3}{>{\PBS\raggedright\hspace{0pt}}p{4cm}}|} \hline Schönes & Fräulein & darf ich’s \\ Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel wagen, & mein & Geleit \\ ihr & anzutragen & ! \\\hline \multicolumn{3}{|l|}{Bin weder Fräulein, weder schön,} \\\hline \multicolumn{1}{|l}{kann ungeleit} & \multicolumn{2}{|r|}{nach Hause geh’n!}\\ \hline \end{tabular} } Lösung zu Übung 11, S. 43 \begin{turn}{-45} \begin{tabular}% {*{3}{@{}>{\scriptsize\PBS\raggedright\hspace{0pt}}p{2cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \\\addlinespace \cmidrule(r){2-2} Steak & Fleisch & Rind \\\addlinespace \cmidrule(r){2-3} Pop Corn & Getreide & Mais \\ \bottomrule \end{tabular} \end{turn} Lösung zu Übung 12, S. 43 \begin{sidewaystable} \centering \caption{Eine gedrehte Tabelle}\label{einlabel} \begin{tabular}% {*{3}{@{}>{\scriptsize\PBS\raggedright\hspace{0pt}}p{2cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \\\addlinespace \cmidrule(r){2-2} Steak & Fleisch & Rind \\\addlinespace \cmidrule(r){2-3} Pop Corn & Getreide & Mais \\ \bottomrule Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 113 Ausgewählte LATEX-Kapitel \end{tabular} \end{sidewaystable} Lösung zu Übung 13, S. 46 \begin{tabularx}{\linewidth}% {*{5}{>{\small\raggedright\arraybackslash\hspace{0pt}}X}} \toprule Schnitzel & Fleisch & Schwein & gut & ungesund \\ \addlinespace \cmidrule(r){2-2} Steak & Fleisch & Rind & prima & eiweißhaltig \\ \addlinespace \cmidrule(r){2-3} Pop Corn & Getreide & Mais & lecker & kalorisch \\ \bottomrule \end{tabularx} Lösung zu Übung 14, S. 46 {\setlength{\extrarowheight}{4pt} \begin{tabularx}{\linewidth}% {*{6}{|>{\small\raggedright\arraybackslash\hspace{0pt}}X}|} \hline 1 & 66 & -11 & Zahl & Text & langer Text \\ \hline Und & nach & einer & Myrthenlaube & führt & er \\ \hline des & Alkalden & Tochter. & Pauken & und & Trommettenjubel\\ \hline klingt & herunter & von & dem & Schlosse. & \\ \hline \end{tabularx} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 114 Ausgewählte LATEX-Kapitel } Lösung zu Übung 15, S. 52 \setlongtables \begin{center} \setlength{\extrarowheight}{4pt} \begin{longtable} {|>{\PBS\centering\hspace{0pt}$}p{1.5cm}<{$}| >{\PBS\centering\hspace{0pt}$}p{2cm}<{$}| >{\PBS\centering\hspace{0pt}$}p{5cm}<{$}|} \hline $Zahlen$ & $Quadrate$ & $dritte Potenzen$ % \\\hline\hline\endfirsthead\hline $Zahlen$ & $Quadrate$ & $dritte Potenzen$ % \\\hline\hline\endhead \multicolumn{3}{|r|} {\emph{Fortsetzung auf der nächsten Seite}} \\\hline \endfoot \multicolumn{3}{|r|} {\emph{Ende der Tabelle}} \\\hline \endlastfoot %\rule{1.5cm}{0pt} & \rule{2cm}{0pt} & \rule{5cm}{0pt} \kill 1 & 1 & 1 \\\hline 2 & 4 & 8 \\\hline 3 & 9 & 27 \\\hline 4 & 16 & 64 \\\hline .... 100 & 10000 & 1000000\\\hline \end{longtable} \end{center} oder \setlongtables \begin{center} \setlength{\extrarowheight}{4pt} \begin{longtable} {|>{$}p{1.5cm}<{$}|>{$}p{2cm}<{$}|>{$}p{5cm}<{$}|} \hline Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 115 Ausgewählte LATEX-Kapitel $Zahlen$ & $Quadrate$ & $dritte Potenzen$ % \\\hline\hline\endfirsthead\hline $Zahlen$ & $Quadrate$ & $dritte Potenzen$ % \\\hline\hline\endhead \multicolumn{3}{|r|} {\emph{Fortsetzung auf der nächsten Seite}} \\\hline \endfoot \multicolumn{3}{|r|} {\emph{Ende der Tabelle}} \\\hline \endlastfoot \rule{1.5cm}{0pt} & \rule{2cm}{0pt} & \rule{5cm}{0pt} \kill 1 & 1 & 1 \\\hline 2 & 4 & 8 \\\hline 3 & 9 & 27 \\\hline 4 & 16 & 64 \\\hline .... 100 & 10000 & 1000000\\\hline \end{longtable} \end{center} Lösung zu Übung 16, S. 53 \setlongtables \begin{center} \setlength{\extrarowheight}{4pt} \begin{longtable}{|>{$}c<{$}|>{$}c<{$}|} \hline \multicolumn{2}{|c|}{\emph{Ableitungstabelle}} \\\hline % x^n & $Ableitung$ \\\hline\hline\endfirsthead\hline x^n & $Ableitung$ % \\\hline\hline\endhead \multicolumn{2}{|C|}{\cdots} \\\hline \endfoot \multicolumn{2}{|r|}{\emph{Ende der Ableitungstafel}} \\\hline \endlastfoot 1 & 0 \\\hline x & 1 \\\hline x^2 & 2x \\\hline x^3 & 3x^2 \\\hline x^4 & 4x^3 \\\hline Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 116 Ausgewählte LATEX-Kapitel x^5 & 5x^4 \\\hline x^6 & 6x^5 \\\hline x^7 & 7x^6 \\\hline x^8 & 8x^7 \\\hline x^9 & 9x^8 \\\hline x^{10} & 10x^9 \\\hline \multicolumn{2}{|c|}{\emph{$\cdots$}}\\\hline x^{27} & 27x^{26}\\\hline x^{28} & 28x^{27}\\\hline x^{29} & 29x^{28}\\\hline x^{30} & 30x^{29}\\\hline \end{longtable} \end{center} Lösung zu Übung 17, S. 63 Bei Verwendung von pdfLATEX: \begin{figure}[ht] \begin{center} \includegraphics[width=7cm, angle=180]{abb/fhlogo.png} \caption{\emph{Die FH steht Kopf}}\label{FHstehtKopf} \end{center} \end{figure} Verwendet man die Template-Files und den dort definierten Schalter, so kann mit diesem Schalter die Grafik mit dem passenden Format gesetzt werden. Das Dokument lässt sich dann mit LATEX und mit pdfLATEX gleichermaßen bearbeiten. \begin{figure}[ht] \begin{center} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=7cm, angle=180]{abb/fhlogo.png}} {\epsfig{figure=abb/fhlogo.eps, width=7cm, angle=180}} \caption{\emph{Die FH steht Kopf}}\label{FHstehtKopf} \end{center} \end{figure} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 117 Ausgewählte LATEX-Kapitel Lösung zu Übung 18, S. 63 Bei Verwendung von pdfLATEX: \begin{figure}[ht] \begin{center} \includegraphics[width=4cm]{abb/scharfaufLatex.png} \caption{Scharf auf \LaTeX{}!}\label{schrfLatex} \end{center} \end{figure} Verwendet man die Template-Files und den dort definierten Schalter, so kann mit diesem Schalter die Grafik mit dem passenden Format gesetzt werden. Das Dokument lässt sich dann mit LATEX und mit pdfLATEX gleichermaßen bearbeiten. \begin{figure}[ht] \begin{center} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=4cm]{abb/scharfaufLatex.png}} {\epsfig{figure=abb/scharfaufLatex.eps, width=4cm}} \caption{Scharf auf \LaTeX{}!}\label{schrfLatex} \end{center} \end{figure} Lösung zu Übung 19, S. 65 {% \captionstyle{hang} \renewcommand{\captionfont}{\bfseries\scriptsize} \begin{figure}[ht] \begin{center} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=6cm]{abb/scharfaufLatex.png}} {\epsfig{figure=abb/scharfaufLatex.eps, width=6cm}} \caption{Scharf auf \LaTeX{}! % Dies könnte mißverstanden werden. Aber hier handelt % Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 118 Ausgewählte LATEX-Kapitel es sich um das einmalige% Textsatzprogramm!}\label{schrfLatex2} \end{center} \end{figure} }% Lösung zu Übung 20, S. 67 {% \captionstyle{hang} \renewcommand{\captionfont}{\bfseries\scriptsize} \begin{figure} \begin{minipage}[b]{0.5\textwidth} \begin{center} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=7cm, angle=0, origin=c]{abb/fhlogo.png}} {\epsfig{figure=abb/fhlogo.eps, width=7cm, angle=0, origin=c}} \caption{FH-Logo korrekt}\label{fhlog10} \end{center} \end{minipage} \begin{minipage}[b]{0.5\textwidth} \begin{center} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=7cm, angle=90, origin=c]{abb/fhlogo.png}} {\epsfig{figure=abb/fhlogo.eps, width=7cm, angle=90, origin=c}} \caption{FH-Logoum 90 Grad gedreht}\label{fhlog11} \end{center} \end{minipage} \vspace{2\baselineskip} \begin{minipage}[b]{0.5\textwidth} \begin{center} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=7cm, angle=180, origin=c]{abb/fhlogo.png}} {\epsfig{figure=abb/fhlogo.eps, width=7cm, angle=180, origin=c}} \caption{FH-Logo um 180 Grad gedreht}\label{fhlog12} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 119 Ausgewählte LATEX-Kapitel \end{center} \end{minipage} \begin{minipage}[b]{0.5\textwidth} \begin{center} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=7cm, angle=270, origin=c]{abb/fhlogo.png}} {\epsfig{figure=abb/fhlogo.eps, width=7cm, angle=270, origin=c}} \caption{FH-Logo um 270 Grad gedreht}\label{fhlog13} \end{center} \end{minipage} \end{figure} }% Lösung zu Übung 21, S. 71 In der Präambel ist das Bookman-Paket mit \usepackage{bookman} zu laden. Ggf. müssen andere Ladebefehle für Schriftpakete auskommentiert werden. \begin{table}[ht] \caption{\LaTeX{}-Pakete für die PostScript-Schrift-Familien} \begin{tabular}{>{\PBS\raggedright\hspace{0pt}}p{2.0cm} >{\PBS\raggedright\hspace{0pt}}p{5cm} >{\PBS\raggedright\hspace{0pt}}p{2.5cm} >{\PBS\raggedright\hspace{0pt}}p{3cm} } \toprule Paket & Serifenschrift & Sans-Serif-Schrift & TypewriterSchrift \\ \addlinespace\hline \\ times & Times & Helvetica & Courier \\ \addlinespace palatino & Palatino & Helvetica & Courier \\ \addlinespace newcent & NewCenturySchoolbook & AvantGarde & Courier \\ \addlinespace bookman & Bookman & AvantGarde & Courier \\ Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 120 Ausgewählte LATEX-Kapitel \addlinespace helvet & ca & \addlinespace avant & de & \bottomrule \end{tabular} \end{table} 121 & Helveti\\ & AvantGar\\ Lösung zu Übung 22, S. 71 In der Präambel ist das Paket mit \usepackage{<Paketname>} zu laden. Ggf. müssen andere Ladebefehle für Schriftpakete auskommentiert werden (vgl. hierzu Übung 21). Lösung zu Übung 23, S. 75 Ich habe das \ding{204}, \ding{205}, \ding{206} mal gesagt und wir haben das Ding doch auf \ding{164} und Nieren geprüft. Allerdings \Pisymbol{psy}{36} kein Grund, das von \Pisymbol{psy}{97} bis \Pisymbol{psy}{119} noch mal durchzukauen. Es \Pisymbol{psy}{210}eicht! Lösung zu Übung 24, S. 76 \begin{center} \begin{tabular}{ccccc} \toprule \ding{161} & \ding{162} \addlinespace \ding{166} & \ding{167} \addlinespace \ding{171} & \ding{172} \addlinespace \ding{176} & \ding{177} & \ding{163} & \ding{164} & \ding{165}\\ & \ding{168} & \ding{169} & \ding{170}\\ & \ding{173} & \ding{174} & \ding{175}\\ & \ding{178} & \ding{179} & \ding{180}\\ Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 122 \bottomrule \end{tabular} \end{center} Lösung zu Übung 25, S. 76 \begin{dingautolist}{182} \item Denk’ ich an Deutschland in der Nacht \item so bin ich um den Schlaf gebracht. \item Ich kann nicht mehr die Augen schließen, \begin{dingautolist}{172} \item und meine heißen Tränen fließen. \item Nach Deutschland lechzst ich nicht so sehr, \item wenn nicht die Mutter dorten wär. \end{dingautolist} \item Der deutsche Geist wird nicht verderben, \item jedoch die alte Frau kann sterben! \end{dingautolist} Lösung zu Übung 26, S. 78 Da der Leser probieren soll, kann an dieser Stelle keine Lösung angegeben werden. Lösung zu Übung 27, S. 79 Das Paket hyperref läd man mit \usepackage{hyperref}. Die zugehörige Dokumentation findet man im Begleitmaterial in der Datei manual.pdf. Lösung zu Übung 28, S. 83 \begin{tabular}{*{4}{@{}V{3cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \cmidrule{3-4} Steak & Fleisch & Rind Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe & gut\\ \addlinespace & prima\\\addlinespace Ausgewählte LATEX-Kapitel \cmidrule{1-4} Brötchen & Getreide & Weizen & schmeckt\\ \addlinespace \cmidrule{3-4} Pop Corn & Getreide & Mais \bottomrule \end{tabular} 123 & lecker\\ Lösung zu Übung 29, S. 83 \newcolumntype{Z}[1]{% % Typ Z für >{\bfseries\footnotesize\PBS\centering\hspace{0pt}}% % fett, zentriert und % in Größe footnotesize p{#1}% % Argument ist eine Breitenangabe } \begin{tabular}{*{4}{@{}Z{3cm}@{}}} \toprule Schnitzel & Fleisch & Schwein \cmidrule{3-4} Steak & Fleisch & Rind \cmidrule{1-4} Brötchen & Getreide & Weizen & schmeckt\\ \addlinespace \cmidrule{3-4} Pop Corn & Getreide & Mais \bottomrule \end{tabular} Lösung zu Übung 30, S. 86 {\setlength{\extrarowheight}{4pt} \begin{tabular} {|*{3}{D{,}{\$}{-1}|}} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe & gut\\ \addlinespace & prima\\\addlinespace & lecker\\ Ausgewählte LATEX-Kapitel \hline 2,56 & 3,45 18,07 & 123,60 66,90 & 0,00 8,07 & 12,60 6,90 & 1,00 \hline \end{tabular} } & & & & & 26,00 23,70 0,02 23,70 0,02 124 \\\hline \\\hline \\\hline \\\hline \\ Lösung zu Übung 31, S. 86 {\setlength{\extrarowheight}{4pt} \begin{tabular} {|p{4cm}|*{3}{D{,}{\$}{-1}|}} \hline Name/Monat & $Mai$ & $Juni$ & $Juli$ Schulz & 2,56 & 3,45 & 26,00 Müller & 18,07 & 123,60 & 23,70 Meier & 66,90 & 0,00 & 0,02 Hund & 8,07 & 12,60 & 23,70 Katz & 6,90 & 1,00 & 0,02 \hline \end{tabular} } \\\hline \\\hline \\\hline \\\hline \\\hline \\ Lösung zu Übung 32, S. 90 {\setlength{\extrarowheight}{4pt} \begin{tabular} {|*{2}{D{.}{.}{-1}}| l |} \hline 2.00 & 2.00 & \armultirow{1}{V{3.5cm}|}{Nebenstehend sieht % man eine schöne Latte von Zahlen, die aber leider wenig Sinn macht, % da sie recht eintönig ist und hier nur der Illustration dient.\\ Man könnte meinen der Autor sei einfallslos.\\ Aber weit gefehlt!% Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel } \\\cline{1-2} 2.00 & 2.00 & 2.00 & 2.00 & 2.00 & 2.00 & 2.00 & 2.00 & 2.00 & 2.00 & \end{tabular} } \\\cline{1-2} \\\cline{1-2} \\\cline{1-2} \\\cline{1-2} \\\hline Lösung zu Übung 33, S. 90 {\setlength{\extrarowheight}{4pt} \begin{tabular} {|L|c|L|} \hline 2.00 & \armultirow{1}{v{4cm}|}{ \vspace{2ex} \centering $\int\limits_0^1 \sin(x^2)\,dx$\\ Wenn das mal stimmt!% } & 4.00 \\\cline{1-1}\cline{3-3} 2.00 & & -2.00 \\\cline{1-1}\cline{3-3} -2.00 & & 4.00 \\\cline{1-1}\cline{3-3} 0.00 & & 12.00 \\\cline{1-1}\cline{3-3} -2.00 & & -2.00 \\\cline{1-1}\cline{3-3} 2.00 & & 22.00 \\\hline \end{tabular} } Lösung zu Übung 34, S. 93 {\setlength{\extrarowheight}{4pt} \begin{tabular} {|l|l|l|l|} \hline Text & Zahl & eine Formel & Zeichen \\\hline Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 125 Ausgewählte LATEX-Kapitel xyz 126 & $125$ & \multicolumn{1}{Q{90}{2cm}|} {$\int\limits_0^1 \sin(x^2)\,dx$} & ? \\\hline \multicolumn{1}{|Q{90}{1cm}|}{abc} & $44$ & $x^2$ & * \\\hline \end{tabular} } Lösung zu Übung 35, S. 93 {\setlength{\extrarowheight}{4pt} \begin{tabular} {|l|l|l|l|} \hline \multicolumn{1}{|Q{-45}{1cm}|}{Text} & \multicolumn{1}{Q{-45}{1cm}|}{Zahl}% & \multicolumn{1}{Q{-45}{1cm}|}{eine Formel} & \multicolumn{1}{Q{-45}{1cm}|}{Zeichen} \\\hline xyz & $125$ & $\int\limits_0^1 \sin(x^2)\,dx$ & ? \\\hline abc & $44$ & $x^2$ & * \\\hline \end{tabular} } Lösung zu Übung 36, S. 97 Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text \begin{wrapfigure}{r}{4.5cm} \renewcommand{\captionfont}{\footnotesize} \captionstyle{hang} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=4cm]{abb/scharfaufLatex.png}} {\epsfig{figure=abb/scharfaufLatex.eps, width=4cm}} \caption{Scharf auf \LaTeX{}!}\label{schrfLatexwrapue1} \end{wrapfigure} Text Text Text Text Text Text Text Text Text Text Text Text Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Ausgewählte LATEX-Kapitel Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text 127 Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Lösung zu Übung 37, S. 98 Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel Text Text Text Text Text Text Text Text %Absatz!! Text Text Text Text Text Text Text Text Text Text Text Text 128 Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. \begin{floatingfigure}{4.5cm} \renewcommand{\captionfont}{\footnotesize} \captionstyle{hang} \ifthenelse{\boolean{ispdftex}}{ \includegraphics[width=4cm]{abb/scharfaufLatex.png}} {\epsfig{figure=abb/scharfaufLatex.eps, width=4cm}} \caption{Scharf auf \LaTeX{}!}\label{schrfLatexwrap} \end{floatingfigure} Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text. Lösung zu Übung 38, S. 105 \begin{table}[ht] \caption{\LaTeX{}-Pakete für die PostScript-Schrift-Familien} \begin{tabular}{v{2.5cm} v{5cm} v{3.5cm} >{\ttfamily}v{3cm} } \toprule Paket & Serifenschrift & Sans-Serif-Schrift & Typewriter- Schrift \\\addlinespace \hline \\ \totimes{\bfseries times} & \totimes{Times} Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel & \tohelvet{Helvetica} & Courier \\\addlinespace {\bfseries palatino} & Palatino & \tohelvet{Helvetica} & Courier \\\addlinespace \tonewcent{\textbf{newcent}} & NewCenturySchoolbook & \toavant{AvantGarde} & Courier \\\addlinespace \tobook{\bfseries bookman} & \tobook{Bookman} & \toavant{AvantGarde} & Courier \\\addlinespace \tohelvet{\bfseries Helvetica}& & \tohelvet{Helvetica} & \\\addlinespace \toavant{\bfseries avant} & & \toavant{AvantGarde} & \\ \bottomrule \end{tabular} \end{table} Lösung zu Übung 39, S. 105 \begin{figure} \begin{center} \fbox{% \parbox{12cm}{ \centering \vspace{1cm} {% \fontsize{5cm}{6cm} \usefont{T1}{ptm}{b}{n} "‘?!"’ }% Ende Zeichenbereich \vspace{1cm} }% Ende parbox }% Ende fbox \caption{Ein geschrieenes Fragezeichen}\label{Fragezeichen} \end{center} \end{figure} Lösung zu Übung 40, S. 107 Hier kann keine Lösung angegeben werden, da der Leser die mathematischen Fonts ausprobieren sollte. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 129 Anhang A Pi-Font-Tabellen A.1 Die Zapf-Dingbats-Tabelle Tabelle A.1: Zapf-Dingbats-Tabelle Code Zeichen Code Zeichen Code Zeichen Code Zeichen Code Zeichen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ✁ 34 ✂ 35 ✃ 36 ✄ 37 ☎ 38 ✆ 39 ✇ 40 ✈ 41 ✉ 42 ☛ 43 ☞ 44 ✌ 45 ✍ 46 ✎ 47 ✏ 48 ✐ 49 ✑ 50 ✒ 51 ✓ 52 ✔ 53 ✕ 54 ✖ 55 ✗ 56 ✘ 57 ✙ 58 ✚ 59 ✛ 60 ✜ 61 ✝ 62 ✞ 63 ✟ 64 ✠ 65 ✡ 66 ✢ 67 ✣ 68 ✤ 69 ✥ 70 ✦ 71 ✭ 72 ★ 73 ✩ 74 ✪ 75 ✫ 76 ✬ 77 ✭ 78 ✮ 79 ✯ 80 ✰ Fortsetzung auf der nächsten Seite Ausgewählte LATEX-Kapitel 131 81 ✸ 82 ✲ 83 ✳ 84 ✴ 85 ✵ 86 ✶ 87 ✷ 88 ✸ 89 ✹ 90 ✺ 91 ❃ 92 ✼ 93 ✽ 94 ✾ 95 ✿ 96 ❀ 97 ❁ 98 ❂ 99 ❃ 100 ❄ 101 ❅ 102 ❆ 103 ❇ 104 ❈ 105 ❉ 106 ❊ 107 ❋ 108 ● 109 ❍ 110 ■ 111 ❏ 112 ❐ 113 ❑ 114 ❒ 115 ▲ 116 ▼ 117 ◆ 118 ❖ 119 ◗ 120 ❘ 121 ❙ 122 ❚ 123 ❛ 124 ❜ 125 ❝ 126 ❞ 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 ❡ 162 ❢ 163 ❣ 164 ❤ 165 ❥ 166 ❦ 167 ❧ 168 ♣ 169 ♦ 170 ♥ 171 ⑥ 172 ① 173 ② 174 ③ 175 ④ 176 ⑤ 177 ⑥ 178 ⑦ 179 ⑧ 180 ⑨ 181 ❼ 182 ❶ 183 ❷ 184 ❸ 185 ❹ 186 ❺ 187 ❻ 188 ❼ 189 ❽ 190 ❾ 191 ❿ 192 ➀ 193 ➁ 194 ➂ 195 ➃ 196 ➄ 197 ➅ 198 ➆ 199 ➇ 200 ➈ 201 ➉ 202 ➊ 203 ➋ 204 ➌ 205 ➍ 206 ➎ 207 ➏ 208 ➐ 209 ➑ 220 ➜ 211 ➓ 212 ➔ 213 → 214 ↔ 215 ↕ 216 ➘ 217 ➙ 218 ➚ 219 ➛ 220 ➜ 221 ➝ 222 ➞ 223 ➟ 224 ➠ 225 ➡ 226 ➢ 227 ➣ 228 ➤ 229 ➥ 230 ➦ 232 ➧ 232 ➨ 233 ➩ 234 ➪ 235 ➫ Fortsetzung auf der nächsten Seite Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 132 236 ➬ 237 ➭ 238 ➮ 239 ➯ 240 241 ➱ 242 ➲ 243 ➳ 244 ➴ 245 ➵ 246 ➶ 247 ➷ 248 ➸ 249 ➹ 250 ➺ 251 ➻ 252 ➼ 253 ➽ 254 ➾ 255 A.2 Die Symbol-Font-Tabelle Tabelle A.2: Zapf-Dingbats-Tabelle Code Zeichen Code Zeichen Code Zeichen Code Zeichen Code Zeichen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ! 34 ∀ 35 # 36 ∃ 37 % 38 & 39 ∋ 40 ( 41 ) 42 ∗ 43 + 44 , 45 − 46 . 47 / 48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7 56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ? 64 ≅ 65 Α 66 Β 67 Χ 68 ∆ 69 Ε 70 Φ 71 Μ 72 Η 73 Ι 74 ϑ 75 Κ 76 Λ 77 Μ 78 Ν 79 Ο 80 Π 81 Ξ 82 Ρ 83 Σ 84 Τ 85 Υ 86 ς 87 Ω 88 Ξ 89 Ψ 90 Ζ 91 χ 92 ∴ 93 ] 94 ⊥ 95 _ 96 97 α 98 β 99 χ 100 δ 101 ε 102 φ 103 γ 104 η 105 ι Fortsetzung auf der nächsten Seite Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Ausgewählte LATEX-Kapitel 133 106 ϕ 107 κ 108 λ 109 µ 110 ν 111 ο 112 π 113 θ 114 ρ 115 σ 116 τ 117 υ 118 ϖ 119 ω 120 ξ 121 ψ 122 ζ 123 { 124 | 125 } 126 ∼ 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 ϒ 162 ′ 163 ≤ 164 ⁄ 165 ∞ 166 ƒ 167 ♣ 168 ♦ 169 ♥ 170 ♠ 171 ± 172 ← 173 ↑ 174 → 175 ↓ 176 ° 177 ± 178 ″ 179 ≥ 180 × 181 … 182 ∂ 183 • 184 ÷ 185 ≠ 186 ≡ 187 ≈ 188 … 189 190 191 ↵ 192 ℵ 193 ℑ 194 ℜ 195 ℘ 196 ⊗ 197 ⊕ 198 ∅ 199 ∩ 200 ∪ 201 ⊃ 202 ⊇ 203 ⊄ 204 ⊂ 205 ⊆ 206 ∈ 207 ∉ 208 ∠ 209 ∇ 220 ⇐ 211 212 213 ∏ 214 √ 215 ⋅ 216 ¬ 217 ∧ 218 ∨ 219 ⇔ 220 ⇐ 221 ⇑ 222 ⇒ 223 ⇓ 224 ◊ 225 〈 226 227 228 229 ∑ 230 232 232 233 234 235 236 237 238 239 240 241 〉 242 ∫ 243 ⌠ 244 245 ⌡ 246 247 248 249 250 251 252 253 254 255 Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe Literaturverzeichnis [1] C ARLISLE , D. Packages in the ’graphics’ bundle. ftp.dante.de/texarchive/macros/latex/required/graphics/grfguide.ps. [2] C ARLISLE , D. The dcolumn-package. ftp.dante.de/tex-archive/macros/latex/required/tools/dcolumn.dtx. [3] C ARLISLE , D. The longtable-package. ftp.dante.de/tex-archive/macros/latex/required/tools/longtable.dtx. [4] C ARLISLE , D. The tabularx-package. ftp.dante.de/tex-archive/macros/latex/required/tools/tabularx.dtx. [5] F. M ITTELBACH , D. C. A new implementation of LATEX’s tabular and array environement. ftp.dante.de/tex-archive/macros/latex/required/tools/array.dtx. [6] F EAR , S. Publication quality tables in LATEX. ftp.dante.de/tex-archive/macros/latex/contrib/supported/booktabs/booktabs.dtx. [7] G OOSSENS , M., ET AL . Der LATEX-Begleiter. Addison-Wesley, 1995. [8] J ÜRGENS , M. LATEX - Eine Einführung und ein bisschen mehr. ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a0260003.pdf. [9] K OPKA , H. LATEX, Band 1-3. Addison-Wesley, 1993 ff. [10] LATEX3-P ROJEKT-T EAM. LATEX2e Font Selection. ftp.dante.de/texarchive/macros/latex/doc/html/fntguide/fntguide.pdf. [11] M.G OOSSENS , S. R. Mit LATEX ins Web. Addison-Wesley, 2000. [12] R ECKDAHL , K. Using Imported Graphics in LATEX2e. ftp.dante.de/tex-archive/info/epslatex.ps. 134 Ausgewählte LATEX-Kapitel [13] R EICHERT, A. Gleitobjekte - die richtige Schmierung. ftp.dante.de/tex-archive/info/german/gleitobjekte/gleitobjekte.ps. [14] R EICHERT, A. Satz von Tabellen. ftp.dante.de/tex-archive/info/german/tabsatz/tabsatz.ps. [15] S CHMIDT, W. Using common PostScript fonts. ftp.dante.de/texarchive/macros/latex/required/psnfss/psnfss2e.pdf. Fachhochschule Karlsruhe, Fachbereich Mechatronik, Moltkestraße 30, 76133 Karlsruhe 135