vincent - wiki.das-labor.org · latexeinführung vincent labor bochum e.v. 29. juni2009 vincent...

126
L A T E X Einführung Vincent Labor Bochum e.V. 29. Juni 2009 Vincent (Labor Bochum e.V.) L A T E X Einführung 29. Juni 2009 1 / 116

Upload: others

Post on 14-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

LATEX Einführung

Vincent

Labor Bochum e.V.

29. Juni 2009

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 1 / 116

Page 2: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Übersicht

Teil 1: EinführungTeil 2: BasiswerkzeugTeil 3: MakroprogrammierungTeil 4: Präsentationen mit LATEX

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 2 / 116

Page 3: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Motivation

Einstieg erleichternEuch etwas Gutes tunDem Labor etwas Gutes tunSelber etwas dabei lernenVersuch: Häufige Probleme erkennen und lösen

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 3 / 116

Page 4: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Ablauf

VortragPause (inkl. Pizzabestellung)Praxis (freiwillig inkl. Aufgabenstellung)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 4 / 116

Page 5: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

1 Geschichte und Hello World

2 Zeichensätze und Dateikodierungen

3 Minimale Standardvorlage

4 Warum soll ich mir das antun?

5 Einsteigerliteratur und Probleme, Ausblick

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 5 / 116

Page 6: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Geschichte zu LATEX

𝜏 („tau“) 𝜖 („epsilon“) 𝜒 („chi“) = TEXTextsatzsystem mit eingebauter Makrosprache, basierend auf primitivesAb 1977 von Donald E. Knuth entwickelt; 1986 fertig gestelltBefehle werden durch einen Interpreten übersetztMakro = Folge von Befehlen, die automatisch bei Aufruf ablaufenLATEX = Makro-Sammlung zur einfacheren Benutzung von TEXEntwickelt von Leslie Lamport. La + TEX = LATEX (ab 1980)Aktuelle Versionen: TEX: 3.1415926, LATEX 2𝜀Ziel: „Schöne“ Bücher, Artikel, etc.

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 6 / 116

Page 7: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

„Hello World!“ in TEX und LATEX

1 Hello World!2 \bye

Listing 1: TEX

1 \documentclass{article}2 \begin{document}3 Hello World!4 \end{document}

Listing 2: LATEX

Quellcode wird in Textdatei geschrieben → HelloWorld.tex

Erklärung zu documentclass kommt noch!Logische Kennzeichnung von Textstellen nennt man „Markup“Eventuell bekannt aus anderen Sprachen, zum Beispiel: HTML

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 7 / 116

Page 8: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Theorie: Arbeitsschritte bei LATEX

Es gibt 2 Möglichkeiten ein LATEX-Dokument zu erstellen:I Früher: latex + dvips/(dvipdf) (.tex→.dvi→.ps/(.pdf))I Seit 2000: pdflatex (.tex→.pdf) ⋆ Empfehlung ⋆

Vereinfacht:I PS (1984)/PDF (1993) sind Seitenbeschreibungssprachen von AdobeI Ziel: Originalgetreue Wiedergabe von Dokumenten unabhängig von

Anwendung, Betriebssystem, Hardwareplattform, etc.I DVI (1979) ähnlich, jedoch werden Zeichensätze nicht in Datei abgelegt!

PostScript wird immer mehr von PDF verdrängtI PDF 1.7 seit 2008 ISO-Standard und damit ein offener Standard!

DVI außerhalb von LATEX eher unüblich . . .I dvips/dvipdf sind „Druckausgabetreiber“I xdvi für Bildschirmausgabe

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 8 / 116

Page 9: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Beispiel: Arbeitsschritte bei LATEX

VorführungHello World mit: TEX, LATEX (beide Varianten)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 9 / 116

Page 10: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Zusammenfassung 1: Hello World

Quellcode ist eine „einfache“ Textdatei mit der Endung .texBeim Übersetzen entstehen weitere Dateien, hier (vorerst nur):

I .log: Logdatei gibt Auskunft über den ÜbersetzungsprozessI .aux: Dient zur Zwischenspeicherung von Informationen

Struktur eines Befehls: \name[optional]{Pflicht} bzw. \befehl

Spezielle Zeichen: # $ & ˜ _ ˆ % { }, Darstellung z. B. durch \$

Neue Zeilen: \\ bzw. \newline

Neue Seiten (erzwingen): \newpage

Backslash durch \textbackslash

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 10 / 116

Page 11: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Zusammenfassung 1: Hello World

1 \documentclass[options]{class}2 %Further global commands and specifications, called preamble3 %(Präambel)4 \begin{document}5 %Text mixed with commands of local effect, called body6 %(Dokumentkörper)7 \end{document}

Listing 3: Dokumentstruktur von LATEX

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 11 / 116

Page 12: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Beispiel: Umlaute bei LATEX

VorführungHello World mit Umlauten, Einführung von Paketen

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 12 / 116

Page 13: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Zusammenfassung 2: Hello World

Probleme bei Eingabe und Speicherung von Sonderzeichen undUmlauten im QuelltextKeine Probleme damit beim fertigen (gedruckten) Dokument!LATEX kann durch Pakete erweitert werdenZusammenfassung/ Verteilung von Paketen nennt man Distribution

I TeXLive (Unix/Mac/Windows)I MikTeX (Windows)

Freie Editorwahl, jedoch bieten LATEX-Editoren sinnvolle Funktionen!I Windows: WinShell, TeXnicCenter.I Linux/Unix: Kile, Plugin für: Vim, gedit, Emacs.I Mac: TeXShop, iTeXMac.I Multi-Plattform: Eclipse + TeXlipse, TeXmaker, (LyX).

Einzelne Pakete: CTAN.org (Comprehensive TEX Archive Network)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 13 / 116

Page 14: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Vergleich von latex mit pdflatex

Annahme: latex → .ps, pdflatex → .pdf!I Unterschiede (auch) durch unterschiedliches Dateiformat begründet!

Vorteile latex:I PostScript basierte Pakete funktionieren

Nachteile latex:I Nur .eps Graphiken möglich (kein .jpg oder .png!)

PS: Keine dynamischen Inhalte, (keine Transparenzobjekte)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 14 / 116

Page 15: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Vergleich von latex mit pdflatex

Vorteile pdflatex:I Direkte Einbindung von Graphikformaten: .jpg, .png, .pdf . . .I Direkter Zugriff auf PDF-Features: Hyperlinks,

Dokumenteninformationen, FormulareNachteile pdflatex:

I Einbinden von .eps nicht direkt möglich (epstopdf)I Spezielle Pakete funktionieren nicht (bspw. pstricks)

PDF: Dynamische Inhalte, Transparenzobjekte

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 15 / 116

Page 16: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

1 Geschichte und Hello World

2 Zeichensätze und Dateikodierungen

3 Minimale Standardvorlage

4 Warum soll ich mir das antun?

5 Einsteigerliteratur und Probleme, Ausblick

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 16 / 116

Page 17: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Zeichensätze Teil 1Irgendwo muss festgelegt sein, wie Zeichen abgespeichert werden.Problem: Es existieren unterschiedliche Zeichensätze:

I ANSI X3.4-1986 (US-ASCII) – 128 ZeichenI ISO 8859-1 (Latin-1) und ISO 8859-9 (Latin-9) – 191 ZeichenI Windows-1252 Schnittmenge aus Latin-1 und -9I Codepage 437 (DOS-US) - 256 ZeichenI MacRoman – 223 ZeichenI Unicode 2.0 – 65536 Zeichen

Zusätzlich: Zeilenenden werden unterschiedlich kodiert – ist LATEX egal!I Windows: CR LFI Commodore, Apple Mac OS (bis Version 9): CRI Unix-Derivate: LFI CarriageReturn – Sprung der Schreibmarke an ZeilenanfangI LineFeed – beschreibt das Drehen der Walze

Beispiel ASCII: Keine Umlaute, daher auch keine direkteUmlauteingabe möglich! LATEX-Lösung: \"{a}=ä, \ss{}=ß

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 17 / 116

Page 18: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Zeichensätze Teil 2

Vorteil der LATEX-Lösung: Portabilität!Nachteil der LATEX-Lösung: Umständliche Eingabe, keineRechtschreibüberprüfung – was ist mit noch spezielleren Zeichen?!Lösung: LATEX-Interpret anderen Zeichensatz mitteilen:

I Windows: \usepackage[ansinew]{inputenc}I Unix/Linux: \usepackage[latin1]{inputenc} oder [latin9]I Mac OS X: \usepackage[applemac]{inputenc}I Multi-Plattform: \usepackage[utf8]{inputenc}

UTF-8 ist der Unicode Zeichensatz der auf allen (modernen)Plattformen verfügbar sein sollteSonst: Eingeschränkte Portabilität des Quellcodes!Empfehlung: Vorlagen mit \"{}, Text mit direkter Eingabe.

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 18 / 116

Page 19: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Dateikodierung

LATEX interpretiert nur Text, dieser muss von einem Editorentsprechend abgespeichert werden!Editoren verwenden zum Abspeichern einen bestimmten Zeichensatz,dieser kann nicht bei jedem Editor eingestellt werden!Abhilfe: Gute Editoren verwenden, die das können! ;-)Vom Editor verwendeter Zeichensatz muss mit dem im Quellcodeangegebenen Zeichensatz übereinstimmen!Editoren verwenden, die alle Zeilenenden interpretieren können!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 19 / 116

Page 20: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

1 Geschichte und Hello World

2 Zeichensätze und Dateikodierungen

3 Minimale Standardvorlage

4 Warum soll ich mir das antun?

5 Einsteigerliteratur und Probleme, Ausblick

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 20 / 116

Page 21: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Minimale Standardvorlage

Fehlt noch: Trennregeln für Wörter und unterschiedliche Sprachen!I \usepackage[ngerman]{babel}

Reihenfolge bei Einbindung kann wichtig sein!

1 \documentclass[a4paper]{article}%Papiergröße=A42 \usepackage[utf8]{inputenc}%Eingabekodierung, zuerst laden!3 \usepackage[T1]{fontenc}%Ausgabekodierung4 \usepackage[ngerman]{babel}%Trennregeln5 \usepackage{lmodern}%Verbesserter Standardfont6 \usepackage{microtype}%Verbesserter optischer Randausgleich7 \usepackage{hyperref}%Sprungmarken, immer zuletzt laden!8 \begin{document}9 Jetzt auch: Hällo Wörld ;-)

10 \end{document}

Listing 4: Standardvorlage

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 21 / 116

Page 22: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Anmerkung zu Fonts bzw. lmodern

LATEX verwendet normalerweise die Computer Modern-Schriften (cm)cm-Fonts sind Bitmaps! („verpixelt“)Latin Modern (lmodern) ist besser! (PostScript Level 1 Font)Alternativ: cm-super Fontpaket nutzen (PostScript Level 1 Font)

I Starker Unterschied beim ß im Vergleich zu lmodern

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 22 / 116

Page 23: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Weitere Fehlerursachen für (optisch) schlechte Ergebnisse

Standard: cm in Old-TeX-Kodierung (OT1)Keine Berücksichtigung von Umlauten!Daher unbedingt [T1]{fontenc} für korrekte Ausgabekodierung undkorrekte Trennung dieser Wörter verwenden!LATEX schaltet dazu zur „europäischen“ CM-Variante EC (ExtendedComputer)Qualität jedoch nicht so gut wie bei der CM-VarianteKeine Postscript Level 3 Fonts benutzen!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 23 / 116

Page 24: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Was passieren kann . . .. . .wenn man solche Dinge nicht beachtet:

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 24 / 116

Page 25: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Dokumentenklassen

LATEX für amerikanische Layoutvorstellungen ausgelegt.I Anpassung zum Beispiel an das Papierformat Letter (statt DIN A4).I Grundklassen sind: book, report, article, letter.I Unterschiede: Layout (Textanordnung, einseitig, zweiseitig),

Organisation und Unterteilungsmöglichkeiten, etc.Europa: KOMA-Script für (deutsches) Textlayout:

I Grundklassen sind: scrbook, scrreprt, scrartcl, scrlttr2

Mögliche Optionen zum Beispiel: [a4paper], [a5paper, twoside]I \documentclass{article} – Papierangabe fehlt!I \documentclass[a4paper]{article} – OK!I \documentclass[a4paper]{scrartcl} – Noch besser!

LATEX-Präsentationen nutzen als Dokumentenklasse: beamer

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 25 / 116

Page 26: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

1 Geschichte und Hello World

2 Zeichensätze und Dateikodierungen

3 Minimale Standardvorlage

4 Warum soll ich mir das antun?

5 Einsteigerliteratur und Probleme, Ausblick

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 26 / 116

Page 27: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Was bietet LATEX?

Viele gute Sachen:I Einmalig guter Formelsatz!I Kostenlos, lange Entwicklungszyklen, ausgereiftI Gute QuellenverwaltungI Fast beliebig erweiterbar – „lernt“I Im Code schreiben = schneller, effizienterI Autor bleibt Autor, Layout-Designer ist LATEX, Setzer ist TEX

Natürlich auch:I Kerning, Ligaturen, optischer RandausgleichI Regeln um Schusterjungen und Hurenkinder zu vermeiden

Vorsicht: \"{a}=ä ist nicht {\"a}=ä – kein Kerning!

Vergleiche: VÄTER und VÄTERVergleiche: häufig und häufig

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 27 / 116

Page 28: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Vergleich LATEX vs MS FormeleditorLATEX:

∞∑︁i∈𝒱

𝛼

𝛽

?≡∫︁

3√4 !≈ 33 + 4 · 7⏟ ⏞ 109

⋆̸=(︃

34

)︃∝ 𝜁 (mod n) (1)

limx→∞

⎛⎜⎜⎝ ∞+∑︁0≤i∈𝒱0<j<n

⎞⎟⎟⎠(1.12)=

∫︁E

P(x ,A)𝜋(x)𝜇(dx) (2)

(1.14)=

∫︁A

[︂∫︁E

p(y , x)𝜋(y)𝜇(dx)

]︂𝜇(dy) (3)

Office: Ich lasse mir gerne zeigen, wie es besser geht . . .. . .wird also nicht passieren! :-)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 28 / 116

Page 29: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Beispiel: LATEX vs MS Word

Vorführung

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 29 / 116

Page 30: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

LATEX hat aber auch Nachteile

Kein „What you see is what you get“ (WYSIWYG)Extrem hoher Lernaufwand am Anfang„Einfache“ Wünsche oft nur mit viel Wissen umsetzbarEtwas Inkonsistenz durch unterschiedliche PaketversionenKein Support durch einen HerstellerDefinitiv keine Tabellenkalkulation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 30 / 116

Page 31: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

1 Geschichte und Hello World

2 Zeichensätze und Dateikodierungen

3 Minimale Standardvorlage

4 Warum soll ich mir das antun?

5 Einsteigerliteratur und Probleme, Ausblick

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 31 / 116

Page 32: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Literaturhinweise für Einsteiger

Problem sehr vieler Bücher: Veraltete Befehle und/oder Pakete!I Spart euch das Geld!

Gute Einsteigerliteratur im Internet:I Manuela Jürgens: „LATEX – eine Einführung und ein bisschen mehr . . .“I Mark Trettin: „LATEX-Sündenregister“

Ansonsten:I Forum: www.mrunix.de (deutsch)I Newsgroup: comp.text.tex (englisch) und de.comp.text.tex (deutsch)I TEX-Usergroup: DANTE e.V.

Falls doch ein Buch gekauft wird:I Frank Mittelbach: „Der LATEX-Begleiter“I Mit Vorsicht: Helmut Kopka: „LaTeX Band 1“

Google: Hilft auch!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 32 / 116

Page 33: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

VorführungBeispiele zeigen, TeXShop vorstellen

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 33 / 116

Page 34: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

6 Wichtige Hinweise, Textformatierung, Aufzählungen

7 Anführungszeichen, Strukturieren, Titelseiten, Inhaltsverzeichnisse

8 Kopf-/Fußzeile, Bilder, Tabellen

9 Formelsatz

10 Fehlerbehandlung

11 Fragen vom letzten Termin

12 Aufgaben

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 34 / 116

Page 35: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Vorab: Trennung zwischen TEX und LATEX-Befehlen

Der LATEX-Interpret versteht auch TEX-BefehleI Eine Trennung zwischen den Befehlen ist daher schwierig!

Meistens funktioniert es trotzdem!

I Aber nicht immer!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 35 / 116

Page 36: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Vorab: Trennung zwischen TEX und LATEX-Befehlen

Der LATEX-Interpret versteht auch TEX-BefehleI Eine Trennung zwischen den Befehlen ist daher schwierig!

Meistens funktioniert es trotzdem!I Aber nicht immer!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 35 / 116

Page 37: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Schriftstil ändern

Schriftfamilie: roman, sans serif, typewriterSchriftstärke: bold font, mediumSchriftform: aufrecht, italic, slanted, small capitalsMehr Beispiele:betont, verschachtelt

1 Schriftfamilie: \textrm{roman}, \textsf{sans serif}, \texttt{typewriter}\\

2 Schriftstärke: \textbf{bold font}, \textmd{medium}\\3 Schriftform: \textup{aufrecht}, \textit{italic}, \textsl{

slanted}, \textsc{small capitals}\\4 Mehr Beispiele: \\5 \emph{betont}, \textbf{\textit{verschachtelt}}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 36 / 116

Page 38: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Schriftstil ändern, so jedoch nicht!

so sollte man es nicht machenso sollte man es eigentlich auch nicht machen

1 so sollte man es {\bf nicht} machen\\2 so sollte man es eigentlich auch {\bfseries nicht} machen

Warum nicht? → „LATEX-Sündenregister“

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 37 / 116

Page 39: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Schriftgröße

winzig, sehr kleinFußnote, kleinnormal, großgrößer, noch größerriesig, gigantischAls Umgebung: andere Möglichkeit

1 {\tiny winzig}, {\scriptsize sehr klein}\\2 {\footnotesize Fußnote}, {\small klein}\\3 {\normalsize normal}, {\large groß}\\4 {\Large größer}, {\LARGE noch größer}\\5 {\huge riesig}, {\Huge gigantisch}\\6 Als Umgebung: \begin{small} andere Möglichkeit \end{small}

Zusätzlich Basisgröße als class option angeben: 10pt, 11pt, 12pt

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 38 / 116

Page 40: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Aufzählungen mit Punkten

Normaler Text ohne Inhalt.Einekleine

! Aufzählung :-]Text wird hier fortgesetzt.

1 Normaler Text ohne Inhalt.2 \begin{itemize}3 \item Eine4 \item kleine5 \item[!] Aufzählung :-]6 \end{itemize}7 Text wird hier fortgesetzt.

Unterpunkte mit \subitem oder \subsubitem

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 39 / 116

Page 41: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Aufzählungen mit Nummern

Normaler Text ohne Inhalt.1 Eine2 kleine3 Aufzählung :-]

Text wird hier fortgesetzt.

1 Normaler Text ohne Inhalt.2 \begin{enumerate}3 \item Eine4 \item kleine5 \item Aufzählung :-]6 \end{enumerate}7 Text wird hier fortgesetzt.

Unterpunkte mit \subitem oder \subsubitem

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 40 / 116

Page 42: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

6 Wichtige Hinweise, Textformatierung, Aufzählungen

7 Anführungszeichen, Strukturieren, Titelseiten, Inhaltsverzeichnisse

8 Kopf-/Fußzeile, Bilder, Tabellen

9 Formelsatz

10 Fehlerbehandlung

11 Fragen vom letzten Termin

12 Aufgaben

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 41 / 116

Page 43: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Anführungszeichen

“Englisch” „Deutsch“ „anderes Deutsch“

1 ‘‘Englisch’’ "‘Deutsch"’ \glqq{}anderes Deutsch\grqq

Geht aber viel schöner:

„Hier ein ganzer Satz in Anführungszeichen“

1 %\usepackage[ngerman]{babel}2 %\usepackage[babel, german=quotes]{csquotes}3 \enquote{Hier ein ganzer Satz in Anführungszeichen}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 42 / 116

Page 44: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Anführungszeichen

„Deutsch“ “Englisch” « Französisch »

1 %\usepackage[english, french, ngerman]{babel}2 %\usepackage[babel,english=american, french=guillemets, german=

quotes]{csquotes}3 {\selectlanguage{ngerman} \enquote{Deutsch}}4 {\selectlanguage{english} \enquote{Englisch}}5 {\selectlanguage{french} \enquote{Französisch}}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 43 / 116

Page 45: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Was jetzt?

Feedback? → LaborWiki!Pizzabestellung?Mit Pizza: LATEX installieren und HelloWorld erstellen

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 44 / 116

Page 46: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Strukturieren im Text

1 \chapter{Kapitel} % nur mit der Klasse book2 \part{Teilstück} % selten benötigt3 \section{Abschnitt}4 Beispieltext \dots5 \subsection{Unterabschnitt}6 Beispieltext \dots7 \subsubsection{Unter-Unterabschnitt}8 Beispieltext \dots

Listing 5: Gliederungsmöglichkeiten

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 45 / 116

Page 47: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Strukturieren im Quellcode

1 \include{dateiname} % erzeugt \newpage, bindet Quellcode ein2 \input{dateiname} % ohne \newpage

Listing 6: Einbinden von Quellcode

Besonderheiten:Teildokumente ohne PräambelOhne \begin{document} bzw. \end{document}

\include erzeugt pro Teildokument eine .aux-Datei\includeonly erlaubt nur bestimmte Teile für Übersetzung→ Bearbeitung einzelner Kapitel und trotzdem passende Seitenzahlen

Aufpassen bei Pfadangaben (z. B. zu Bildern) in den Teildokumenten!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 46 / 116

Page 48: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Titelseite und Inhaltsverzeichnis

1 \documentclass{article}2 \author{Labor e.V.}3 \title{LaTeX-Workshop}4 \begin{document}5 \maketitle6 \tableofcontents7 \section{Einleitung}8 \section{Hauptteil}9 \section{Schluss}

Mehrfaches Übersetzen des Quellcodes nötig (2-3×!)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 47 / 116

Page 49: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

6 Wichtige Hinweise, Textformatierung, Aufzählungen

7 Anführungszeichen, Strukturieren, Titelseiten, Inhaltsverzeichnisse

8 Kopf-/Fußzeile, Bilder, Tabellen

9 Formelsatz

10 Fehlerbehandlung

11 Fragen vom letzten Termin

12 Aufgaben

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 48 / 116

Page 50: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Kopf-/Fußzeile

Dafür gibt es 2 Pakete:I fancyhdrI scrpage2

Welches Paket ist besser? – Falsche Frage!I fancyhdr an article angepasstI scrpage2 an scrartcl angepasst

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 49 / 116

Page 51: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Kopf-/Fußzeile1 \documentclass[a4paper]{scrartcl}2 \usepackage{scrpage2}3 \usepackage{lastpage}4 \ihead{oben links}5 \chead{oben mittig}6 \rohead{oben rechts}7 \ifoot{unten links}8 \cfoot{\thepage/\pageref{LastPage}} % Seite / Seitenanzahl9 \rofoot{unten rechts}

10

11 \setheadsepline{0.5pt} % Linie zur Begrenzung12 \setfootsepline{0.5pt} % Linie zur Begrenzung13

14 \pagestyle{scrheadings} % gemachte Einstellungen anwenden15 \begin{document}16 Hier geht es los!17 \end{document}

Listing 7: Beispiel scrpage2

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 50 / 116

Page 52: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Bilder einbinden

Abbildung: Mit passender Beschreibung

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 51 / 116

Page 53: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Bilder einbinden

1 %\usepackage{graphicx}2 %\usepackage{epstopdf}3 %Reihenfolge ist wichtig!4 \begin{figure}[htbp]5 \centering6 \includegraphics[scale=0.3]{panda2}7 \caption{Mit passender Beschreibung}8 \end{figure}

Listing 8: Bilder einbinden

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 52 / 116

Page 54: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

BilderpositionierungOder warum erscheint mein Bild nicht wo es soll?

Bild befindet sich in einer „gleitenden“ UmgebungI LATEX findet den optimalen Platz . . .I . . .meistens zumindestens!

Abhilfe:

1 %\usepackage{placeins} % Möglichkeit 22 \begin{figure}[!htb] % Möglichkeit 13 \centering4 \includegraphics[scale=0.3]{panda2}5 \caption{Mit passender Beschreibung}6 \end{figure}7 \FloatBarrier % Möglichkeit 2

Listing 9: Bilder fest positionieren

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 53 / 116

Page 55: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

BilderpositionierungOder warum erscheint mein Bild nicht wo es soll?

1 %\usepackage{float} % Möglichkeit 32 \begin{figure}[H] % Möglichkeit 33 \centering4 \includegraphics[scale=0.3]{panda2}5 \caption{Mit passender Beschreibung}6 \end{figure}

Listing 10: Bilder fest positionieren

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 54 / 116

Page 56: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Tabellensatz

t – Positionierungc – center text, | – senkrechte Linien& Spaltenbegrenzer, \\ Zeilenbegrenzer\hline horizontale Linie

1 23 4

1 \begin{tabular}[t]{|c|c|}\hline2 1 & 2 \\\hline3 3 & 4 \\\hline4 \end{tabular}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 55 / 116

Page 57: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

6 Wichtige Hinweise, Textformatierung, Aufzählungen

7 Anführungszeichen, Strukturieren, Titelseiten, Inhaltsverzeichnisse

8 Kopf-/Fußzeile, Bilder, Tabellen

9 Formelsatz

10 Fehlerbehandlung

11 Fragen vom letzten Termin

12 Aufgaben

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 56 / 116

Page 58: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Formelsatz

Es gibt inline Formeln 12 + 11−1 = 2 und auch abgesetzte Formeln

𝛼2i ...n + 𝛽2

1 = 𝜓

ebenso wie Brüche: 12 und Wurzeln: 3√27 und Summen:

∑︀∞+

∞−

1 \documentclass[a4paper]{article}2 \usepackage{amsmath}3 \begin{document}4 Es gibt inline Formeln $1^2 + 1^{1-1} = 2$ und auch abgesetzte

Formeln \[ \alpha_{i \ldots n}^2 + \beta_1^2 = \psi \] ebensowie Brüche: $\frac{1}{2}$ und Wurzeln: $\sqrt[3]{27}$ undSummen: $ \sum_{\infty^{-}}^{\infty^{+}} $

5 \end{document}

nicht mit $$ . . .$$ für abgesetzte Formeln arbeiten!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 57 / 116

Page 59: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Weitere Umgebungen

gather: zentrierte Formelnalign: Ausrichtung wie bei Tabellen mit &multiline und split: Aufteilungcases: Fallunterscheidung. . .und noch mehr!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 58 / 116

Page 60: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

komplexeres Beispiel

ℱ𝜔{x(t)} =

∫︁ ∞−∞

x(t) exp−j𝜔t dt (Fourier-Transformation)

1 \documentclass[a4paper]{article}2 \usepackage{amsmath}3 \begin{document}4 \begin{align}5 \mathcal{F}_{\omega}\{x(t)\} = \int^{\infty}_{-\infty} x(t) \

exp^{-\mathrm{j} \omega t} \mathrm{d}t6 \tag{Fourier-Transformation}7 \end{align}8 \end{document}

Für „wichtige“ Dokumente ISO-31 Norm beachten!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 59 / 116

Page 61: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

6 Wichtige Hinweise, Textformatierung, Aufzählungen

7 Anführungszeichen, Strukturieren, Titelseiten, Inhaltsverzeichnisse

8 Kopf-/Fußzeile, Bilder, Tabellen

9 Formelsatz

10 Fehlerbehandlung

11 Fragen vom letzten Termin

12 Aufgaben

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 60 / 116

Page 62: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Fehlerbehandlung

2 Fehlerarten: errors und warningserrors:

I Gravierender Fehler! Übersetzung stoppt!I Hinweistext oft unverständlich . . .

warnings:I LATEX benutzt Strafpunktesystem für „unschönen“ TextI badness gibt Schweregrad an (max. 10000)

„GoToError“-Funktion nutzen (falls verfügbar)Manchmal: .aux-Dateien löschen!Wissenschaft für sich! Deshalb erst gar keine Fehler machen :-)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 61 / 116

Page 63: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

6 Wichtige Hinweise, Textformatierung, Aufzählungen

7 Anführungszeichen, Strukturieren, Titelseiten, Inhaltsverzeichnisse

8 Kopf-/Fußzeile, Bilder, Tabellen

9 Formelsatz

10 Fehlerbehandlung

11 Fragen vom letzten Termin

12 Aufgaben

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 62 / 116

Page 64: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Vorgaben einhaltenRänder, Zeilenabstand, . . .?

Ränder:1 \documentclass[a4paper]{article}2 \usepackage[left=3cm, right=3cm, top=2.5in]{geometry}3 \begin{document}4 Ränder korrekt einstellen5 \end{document}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 63 / 116

Page 65: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Vorgaben einhaltenRänder, Zeilenabstand, . . .?

Zeilenabstand: (nicht empfehlenswert!)1 \documentclass[a4paper]{article}2 \usepackage{setspace}3 \onehalfspacing %1.5-facher Zeilenabstand4 % \doublespacing % 2-facher Zeilenabstand5 \begin{document}6 Zeilenabstand manipulieren.7 \begin{singlespace}1-fach\end{singlespace}8 \begin{onehalfspace}1.5-fach\end{onehalfspace}9 \begin{doublespace}2-fach\end{doublespace}

10 \end{document}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 64 / 116

Page 66: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

PDF/A-1a bzw. PDF/A-1b mit pdflatex?

PDF/A-1a: garantiert „textuelle“ ReproduzierbarkeitI Nur mit sehr viel Aufwand mit pdflatex möglich – „Handarbeit“

PDF/A-1b: garantiert „visuelle“ ReproduzierbarkeitI Passendes Paket: [a-1b]pdfxI Konformität muss dennoch überprüft werden!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 65 / 116

Page 67: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

6 Wichtige Hinweise, Textformatierung, Aufzählungen

7 Anführungszeichen, Strukturieren, Titelseiten, Inhaltsverzeichnisse

8 Kopf-/Fußzeile, Bilder, Tabellen

9 Formelsatz

10 Fehlerbehandlung

11 Fragen vom letzten Termin

12 Aufgaben

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 66 / 116

Page 68: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Was jetzt?

Feedback? → LaborWiki!Pizzabestellung?Aufgaben bearbeitenMaterial und Aufgaben im Wiki

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 67 / 116

Page 69: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

13 Grundbegriffe

14 Variablen

15 Kontrollstrukturen

16 Makros definieren

17 LATEX noch dynamischer

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 68 / 116

Page 70: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Interne Verarbeitung in TEX

4 TEX-Prozessoren:I input processor: Eingabezeilen → „token“I expansion processor: Makros/Primitive „auflösen“I execution processor: Kontrolliert nicht expandierbare Sequenzen, baut

Listen auf (für nächsten Schritt)I visual processor: horizontale Listen in Paragraphen, vertikale Listen in

Seiten (nur über Parameter beeinflussbar)token: „character token“ und „control sequence token“(Randnotiz: ^^+ ergibt k)Expandierung ist wichtig und kann beeinflusst werdenEs gibt sog. „zerbrechliche“ Befehle

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 69 / 116

Page 71: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

TEX vs. LATEX. . .oder was programmiere ich hier eigentlich?

Oft muss auf TEX-Strukturen zurückgegriffen werdenLATEX-Strukturen sind manchmal einfacherer/robusterManchmal wird auf „interne“-Makros zugegriffen (mit @ im Namen)

I Variante 1: Auslagerung der @-Makros in .sty-DateiI Variante 2: Davor: \makeatletter Danach: \makeatother

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 70 / 116

Page 72: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

13 Grundbegriffe

14 Variablen

15 Kontrollstrukturen

16 Makros definieren

17 LATEX noch dynamischer

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 71 / 116

Page 73: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Zählervariablen (integer) (LATEX)

1 \newcounter{cntr} % automatisch mit 0 initialisiert2 \newcounter{cntr}[cntr2] % Reset wenn cntr2 sich ändert3 \stepcounter{cntr} % um 1 inkrementieren4 \setcounter{cntr}{10} % Wert setzen5 \thecountername % Wert innerhalb vom Text ausgeben6 \value{cntr} % Wert innerhalb der Programmierung nutzen7 \addtocounter{eincounter}{\value{einanderercounter}}8

9 \arabic{cntr} % counter als Textstring in arabischen Ziffern10 \roman{cntr} % counter als Textstring in römischen Ziffern

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 72 / 116

Page 74: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Zählervariablen (integer) (TEX)

1 \newcount\WertA2 \newcount\WertB3 \WertA=204 \WertB=\WertA5

6 Ausgabe: \the\WertA % Vorsicht! Mit " \ " !

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 73 / 116

Page 75: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Längenvariablen (float)

1 \newlength{\lngth} % Deklaration2 \setlength{\lngth}{dimen} % Zuweisung, dimen=Länge3 \addtolength{\lngth}{dimen} % Addition4

5 % Beeinflusst den "glue" der Boxen (variable Längen):6 \setlength{\mylength}{festeLänge plus X minus Y}7 % X und Y sind der variable Anteil8

9 \the\mylength % Ausgabe im Text

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 74 / 116

Page 76: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Längenvariablen – Einheiten

1 % Textbreite ausmessen und der Variable zuordnen2 \settowidth{\mylength}{Wie lang bin ich?}

Mögliche Einheiten sind:pt (point), pc (pica)in (inch), cm (centimeter), mm (millimeter)em (m-Breite), ex (x-Höhe)mu (math. Einheit)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 75 / 116

Page 77: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Wahrheitswerte (boolean)

Benötigt das Paket ifthenelse

1 \newboolean{boolvar} %Deklaration2 \setboolean{boolvar}{false} %Zuweisung3

4 \boolean{boolvar} % Abfrage5

6 \ifthenelse{\boolean{boolvar}}{}{}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 76 / 116

Page 78: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Rechnen innerhalb von LATEX

1 \advance X by Y2 \divide X by Y3 \multiply X by Y

Für mehr Rechenmöglichkeiten mit Paket calc.

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 77 / 116

Page 79: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

13 Grundbegriffe

14 Variablen

15 Kontrollstrukturen

16 Makros definieren

17 LATEX noch dynamischer

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 78 / 116

Page 80: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

If-Abfragen

1 % Struktur einer If-Abfrage (TeX)2 \if3 wenn_text4 \else5 sonst_text6 \fi7

8 % Vordefinierte If-Abfragen (gibt noch mehr)9 \ifundefined

10 \ifnum zahl_a vergleich zahl_b % <, =, >11 \ifodd zahl12 \ifdim maß_a vergleich maß_b13 \iftrue14 \iffalse15 \ifx token_a token_b

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 79 / 116

Page 81: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

If-Abfragen Anwendungsbeispiel

1 % Test ob der Wert von \countA kleiner als 1002 \ifnum\countA<1003 ...4 \else5 ...6 \fi

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 80 / 116

Page 82: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Mehrfachverzweigung

1 \ifcase zahl null_zweig \or eins_zweig \or zwei_zweig \or ...\or n_zweig \else sonst_zweig \fi

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 81 / 116

Page 83: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Schleifen

1 % TeX2 \loop \ifnum\Zahl>0 % Abbruchbedingung (\if ohne \fi)3 ...4 \repeat5

6 % LaTeX - Paket ifthen: \whiledo7 % LaTeX - Paket forloop: \forloop

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 82 / 116

Page 84: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

13 Grundbegriffe

14 Variablen

15 Kontrollstrukturen

16 Makros definieren

17 LATEX noch dynamischer

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 83 / 116

Page 85: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Neue Befehle (LaTeX)

1 % Definiert einen neuen Befehl, prueft auf Existenz2 \newcommand{cmd}[narg]{command definition}3

4 % Argumente von 1-9, aufrufen ueber #1,...,#95

6 \renewcommand % bestehenden Befehl neu definieren7 \providecommand % definiert ohne Existenzpruefung8 \DeclareRobustCommand % robust

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 84 / 116

Page 86: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Neue Befehle (LaTeX)

1 % Definiert einen neuen Befehl mit optionalem Argument2 \newcommand{cmd}[narg][default]{command definition}3

4 % Beispiel:5 \newcommand{\Ausgabe}[1][2]{#1}6

7 % Aufruf:8 \Ausgabe gibt 2 aus9 \Ausgabe[3] gibt 3 aus

10

11 % Mehrfache optionale Argumente moeglich, nicht hier behandelt

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 85 / 116

Page 87: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Lange und kurze Befehle

1 \newcommand*2 \renewcommand*3 \providecommand*4

5 % Kurze Befehle, kein Paragraphenumbruch im Argument erlaubt!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 86 / 116

Page 88: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Neue Umgebungen (LaTeX)

1 \newenvironment{cmd}[narg]{begin definition}{end definition}2 \renewenvironment{cmd}[narg]{begin definition}{end definition}3

4 % Erste Argument optional5 \newenvironment{cmd}[narg][optional]{begin definition}{end

definition}6

7 % \newenvironment{myquote}[1]{\small\begin{quote}}{\end{quote}}% funktioniert nicht!

8 \newenvironment{myquote}[1]{\small\quote}{\endquote} %funktioniert

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 87 / 116

Page 89: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

13 Grundbegriffe

14 Variablen

15 Kontrollstrukturen

16 Makros definieren

17 LATEX noch dynamischer

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 88 / 116

Page 90: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Pakete: hyperref, insdljs (u.a.)

Oft reichen die Möglichkeiten von LATEX nicht aus!Mit hyperref kann man Formulare erstellenMit insdljs kann man JavaScript nutzen:1 \begin{insDLJS}{name}{titel}2 % ... JavaScript-Code3 \end{insDLJS}

Viele weitere nützliche Pakete: datatool (Zugriff auf CSV-Dateien),TikZ (Makrosprache zum „Zeichnen“)Dokument kann so sehr mächtig werden!Einfach zuviel für einen Vortrag :-(

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 89 / 116

Page 91: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Literaturhinweise für Fortgeschrittene

Bücher mit Thema Programmierung/ Makros:Ingo Klöckl: LATEX Tipps & TricksHelmut Kopka: LATEX Band 3: ErweiterungenTEXikon bzw. TEX-Primitive onlineVictor Eijkhout: TEX by TopicDiverse: TEX for the Impatient

Mehr eine Ideensammlung, trotzdem lehrreich:Anselm Lingnau: LATEX Hacks

Originalwerk:Donald Knuth: The TeXbook

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 90 / 116

Page 92: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

18 LATEX-Beamerclass

19 Eigenes Theme erstellen

20 Bestehende Themes abändern

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 91 / 116

Page 93: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Übersicht

Wir wollen Präsentationen erstellen!Es gibt verschiedene Pakete:

I prosper, powerdot, FoilTEX, Seminar, beamer, ...I Rest vergessen: beamer ist die beste und aktuellste Möglichkeit ;-)

Entwickelt von Till Tantau (Informatik Professor in Berlin)Beantwortet viele Fragen: beameruserguide.pdf

Funktioniert mit latex und pdflatex

Viele Pakete werden bereits durch beamer geladen

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 92 / 116

Page 94: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Abstrakte Beschreibung

Zeitlicher AblaufEine Präsentation besteht aus FramesEin Frame besteht aus SlidesMit Overlays mehrere Slides in einem FrameInhaltliche Gliederung mit part, section und subsection

Visueller AblaufLayout durch Stilvorlagen (kommt noch)Änderungen im Layout erfordern Anpassen der Vorlagen

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 93 / 116

Page 95: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Und los!

Minimalbeispiel1 \documentclass{beamer}2 \begin{document}3 \begin{frame}4 Hier ist Text ...5 \end{frame}6 \end{document}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 94 / 116

Page 96: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Ausführlicher

Minimalbeispiel1 \documentclass[classoption]{beamer} % draft, handout2 \usetheme{Boadilla} % Auswahl im Handbuch/Internet3 \begin{document}4 \begin{frame}[Ausrichtung]{Titel}{Untertitel}5 Hier ist Text ...6 \end{frame}7 \end{document}

Optionen für Ausrichtungc – centered, t – top, b – bottomplain – Kopf- und Fußzeile fehlenfragile – muss angegeben werden, wenn zerbrechliche Befehleauftauchen (bspw. listings, verbatim, ...)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 95 / 116

Page 97: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Titel, Autor, Titelseite, ...

1 \documentclass{beamer}2 \title{\LaTeX{} Einführung}3 \author{Vincent}4 \institute{Labor Bochum e.V.}5 \date{29. Juni 2009}6 \begin{document}7 \begin{frame}8 \maketitle9 \end{frame}

10 \end{document}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 96 / 116

Page 98: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhaltsverzeichnis

Vor jeder Section1 \AtBeginSection[]{2 \begin{frame}{Inhalt}3 \tableofcontents[currentsection]4 \end{frame}5 }

Vor jeder SubSection1 \AtBeginSubSection[]{2 \begin{frame}{Inhalt}3 \tableofcontents[currentsubsection]4 \end{frame}5 }

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 97 / 116

Page 99: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Hinweise zum Inhaltsverzeichnis

Ein Befehl tableofparts existiert leider nicht!Handarbeit nötig, Arbeitsaufwand jedoch überschaubarBefehl hypertarget nutzen (siehe Anleitung zu hyperref)

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 98 / 116

Page 100: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Aufzählungen

beamer dichtet viele Befehle um, so auch itemize

subitem und subsubitem existieren nicht mehr!So leider mehr Schreibaufwand! Grund?!

itemize1 \begin{itemize}2 \item Normale Ebene3 \begin{itemize}4 \item subitem Ebene5 \end{itemize}6 \item Wieder normale Ebene7 \end{itemize}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 99 / 116

Page 101: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Blockveranstaltung

Infoblock1 \begin{block}{Infoblock}2 ...3 \end{block}

Achtung!1 \begin{alertblock}{Achtung!}2 \end{alertblock}

Beispiel1 \begin{exampleblock}{Beispiel}2 \end{exampleblock}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 100 / 116

Page 102: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb

1 Two more to go2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 103: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go

2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 104: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go

3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 105: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go3 Last chance...

4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 106: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 107: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 108: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 109: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 110: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 111: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Overlays

Time bomb1 Two more to go2 One more to go3 Last chance...4 BOOM!

Animation

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 101 / 116

Page 112: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Effekte

Eine nette Spielerei, aber meistens unnötig!Geht auch automatisiert, farbig, usw. . . .Überblendeffekte gibt es auchWeitere sinnlose Effekte ;-)Bilder, Tabellen, Mathemodus ganz normalVideos, Musik, funktioniert auch

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 102 / 116

Page 113: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

18 LATEX-Beamerclass

19 Eigenes Theme erstellen

20 Bestehende Themes abändern

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 103 / 116

Page 114: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Der Auftrag

Aufgabe: LATEX-Präsentation an Powerpoint-Vorlage anpassenWARUM? LATEX kann doch viel mehr! Richtig ;-)→ Corporate IdentityZusätzlich: Vorlage soll zweisprachig sein!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 104 / 116

Page 115: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Die Idee

PPT-Vorlage „drucken“ (als PDF)Nachbearbeitung bspw. in Adobe IllustratorAls Hintergrundbilder für die LaTeX-Präsentation nutzenTheme erstellen und Text korrekt platzieren

I 2 Themes: DeutschTheme, EnglischThemeI Greifen intern auf ein HauptTheme zuI Benennung ist wichtig: beamerthemeNAME.sty

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 105 / 116

Page 116: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Die Umsetzung

beamerthemehgienglish.sty1 \mode<presentation>2 \pgfdeclareimage[height=\paperheight,interpolate=true]{

background}{gfx/hgi-wallpaper-EN}3 \pgfdeclareimage[height=\paperheight,interpolate=true]{

backgroundtitlepage}{gfx/hgi-titlepage-EN}4 \usetheme{hgi} % <-- Das wird unser HauptTheme5 \mode6 <all>

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 106 / 116

Page 117: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Die Umsetzung

beamerthemehgi.sty1 \ProvidesClass{beamerthemehgi}[2009/01/28]2 \mode<presentation>3

4 % Inhalt der folgenden Folien ...5

6 \mode7 <all>

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 107 / 116

Page 118: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Die Umsetzung

beamerthemehgi.sty1 % Define the wallpaper for our presentation2 \defbeamertemplate*{background canvas}{hgi theme}%3 {%4 \pgfuseimage{background}%5 }6 \defbeamertemplate{background canvas}{hgi theme titlepage}%7 {%8 \pgfuseimage{backgroundtitlepage}%9 }

10 \defbeamertemplate{background canvas}{hgi theme lastpage}%11 {%12 \pgfuseimage{backgroundtitlepage}%13 }

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 108 / 116

Page 119: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Die Umsetzung

beamerthemehgi.sty1 % Create our titlepage2 \newcommand{\hgititlepage}{%3 {%4 \setbeamertemplate{background canvas}[hgi theme titlepage]5 \begin{frame}%6 \titlepage%7 \end{frame}%8 }%9 }

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 109 / 116

Page 120: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Die Umsetzung

beamerthemehgi.sty1 % settings for titlepage2 \defbeamertemplate*{title page}{hgi}[1][]3 {%4 \vspace{0.225\paperheight}%5 \begin{beamercolorbox}[ht=3em,wd=0.785\textwidth,sep=5pt,

leftskip=-0.420cm,#1]{title}6 \usebeamerfont{title}\inserttitle\par%7 \end{beamercolorbox}8 \vfill9 }

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 110 / 116

Page 121: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Die Umsetzung

beamerthemehgi.sty1 % Create slides2 \defbeamertemplate*{frametitle}{hgi theme}[1][]3 {%4 \vspace{0.060\paperheight}5 \begin{beamercolorbox}[ht=2em,wd=0.9\textwidth,sep=5pt,

leftskip=-0.420cm,#1]{frametitle}6 {\usebeamerfont{frametitle}\insertframetitle\par}%7 \end{beamercolorbox}%8 }

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 111 / 116

Page 122: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Der Einsatz

deinePraesentation.tex1 %Wählen Sie eine Sprache!2 %\usetheme{hgideutsch}3 %\usetheme{hgienglish}

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 112 / 116

Page 123: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Fazit

Ein eigenes Theme zu erstellen kann sehr viel Arbeit bedeuten!Es kann viel schiefgehen ;-)Viele Dinge wurden hier noch nicht erledigt:

I Fusszeile, Standardfarben, Aufzählungszeichen, . . .

beamerthemehgi.sty1 % Set up footline with page numbers2 \defbeamertemplate*{footline}{hgi theme}{%3 \hspace*{2ex}\raisebox{1.5ex}[-1.5ex]{%4 \tiny\insertframenumber{}/\inserttotalframenumber}%5 }%

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 113 / 116

Page 124: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Inhalt

18 LATEX-Beamerclass

19 Eigenes Theme erstellen

20 Bestehende Themes abändern

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 114 / 116

Page 125: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Leider keine Zeit mehr :-)Inner Theme: Titelseite, Aufzählungen, Blöcke, Bilder und TabellenOuter Theme: Kopf- und Fußzeile, Sidebars, Logo und Folientitel

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 115 / 116

Page 126: Vincent - wiki.das-labor.org · LATEXEinführung Vincent Labor Bochum e.V. 29. Juni2009 Vincent (Labor Bochum e.V.) LATEX Einführung 29.Juni 2009 1 / 116

Danke!

Danke für die Aufmerksamkeit und vielleicht bis zur nächsten Vortragsreihe!

Vincent (Labor Bochum e.V.) LATEX Einführung 29. Juni 2009 116 / 116