L A T E X, beamer, tikz und Co. L A T E X, beamer, tikz und Co. 18. Dokumente auf mehrere Dateien verteilt Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2017/2018 1 / 25
LATEX, beamer, tikz und Co.
LATEX, beamer, tikz und Co.18. Dokumente auf mehrere Dateien verteilt
Thomas Worsch
Fakultät für InformatikKarlsruher Institut für Technologie
Wintersemester 2017/2018
1 / 25
Dokumente auf mehrere Dateien verteilt
Wozu Dokument auf mehrere Dateien verteilen?
2 / 25
Dokumente auf mehrere Dateien verteilt
Wozu Dokument auf mehrere Dateien verteilen?
I Wiederverwendung von TeilenI mehr Übersicht (?)I separate Übersetzung einzelner Teile (?)
I Teile als eigenständige Dokumente
I Übersetzung von Teilen nur bei Bedarf (?)
2 / 25
Dokumente auf mehrere Dateien verteilt
Kommando \input
Der include-Mechanismus
Pakete graphics und graphicx
TikZ library external
Bündel standalone
3 / 25
Dokumente auf mehrere Dateien verteilt
Kommando \input
Überblick
Kommando \input
Der include-Mechanismus
Pakete graphics und graphicx
TikZ library external
Bündel standalone
4 / 25
Dokumente auf mehrere Dateien verteilt
Kommando \input
Einfache Methode
I Syntax \input{〈Dateiname〉}I geschweifte Klammern wichtig
I 〈Dateiname〉I mit Endung .tex:
I wird so genommenI ohne Endung .tex:
I erst wird 〈Dateiname〉 gesucht, falls nicht zu finden,I wird anschließend nach 〈Dateiname〉.tex gesucht
I Bedeutung:I LATEX verhält sich ungefähr so, also stände an Stelle von
\input{〈Dateiname〉} der Inhalt der DateiI aber nicht ganz: siehe t-input-2
I Tipp: siehe nächste Folie
5 / 25
Dokumente auf mehrere Dateien verteilt
Kommando \input
Kommando \endinput
I kann an jeder Stelle in einer Datei stehenI Wirkung: beendet das Einlesen der Datei durch LATEX
I Text danach wird „ignoriert“
I Tipp: Am Ende jeder Datei einfügenI hat auch den gleichen Effekt wie ein % am Dateiende
6 / 25
Dokumente auf mehrere Dateien verteilt
Kommando \input
Pfade für Dateinamen bei \input
I funktionierenI aber Vorsicht in folgender Sitation:
. /
V1 /main.tex: \input{../V2/sub.tex}
subsub.tex: ich bin in V1
V2 /sub.tex: \input{subsub.tex}
subsub.tex: ich bin in V2I bei pdflatex main.tex in V1
wird auch subsub.tex aus V1 gelesen!I \input{../V2/subsub.tex} würde das aus V2 lesen
I Alternative: Paket import7 / 25
Dokumente auf mehrere Dateien verteilt
Der include-Mechanismus
Überblick
Kommando \input
Der include-Mechanismus
Pakete graphics und graphicx
TikZ library external
Bündel standalone
8 / 25
Dokumente auf mehrere Dateien verteilt
Der include-Mechanismus
Kommando \include
I Syntax: \include{〈Dateiname〉}I im Dokumentenrumpf
I Bedeutung ähnlich wie \input{〈Dateiname〉}I sofern keine \includeonly Kommandos vorhanden
sonst: siehe nächste FolieI aber es wird davor und danach eine neue Seite begonnen
I es wird auch eine separate .aux-Datei erzeugtI \include können nicht „geschachtelt“ werden
I wenn 〈Dateiname〉 nicht existiertI erzeugt \include{〈Dateiname〉} nur eine WarnungI erzeugt \input{〈Dateiname〉} einen Fehler
9 / 25
Dokumente auf mehrere Dateien verteilt
Der include-Mechanismus
Kommando \includeonly
I Syntax: \includeonly{〈Dateinamen〉}I in der PräambelI oder vor \documentclass (funktioniert jedenfalls zur Zeit)
I 〈Dateinamen〉I falls mehrere, durch Kommata getrenntI für jeden Dateinamen ein \include-Kommando im Rumpf
I Bedeutung: Wenn \includeonly in der Präambel benutztI dann nur entsprechende \include Kommandos „aktiv“I die anderen Inhalte werden ignoriert
I aber Seitenzahlen, Labels, usw. bleiben erhalten!
; kürzere Verarbeitungszeit
10 / 25
Dokumente auf mehrere Dateien verteilt
Der include-Mechanismus
Beispielanwendung (1)
\documentclass{article}\includeonly{part-2}\begin{document}\include{part-1}\include{part-2}\include{part-3}\end{document}
11 / 25
Dokumente auf mehrere Dateien verteilt
Der include-Mechanismus
Beispielanwendung (1)
\includeonly{part-2}\documentclass{article}\begin{document}\include{part-1}\include{part-2}\include{part-3}\end{document}
Beobachtung: es funktioniert auch, wenn die ersten beiden Zeilenvertauscht sind . . .
12 / 25
Dokumente auf mehrere Dateien verteilt
Der include-Mechanismus
Beispielanwendung (2)
I Datei all.tex\documentclass{article}\begin{document}\include{part-1}\include{part-2}\include{part-3}\end{document}
I Datei part-2-alone.tex\includeonly{part-2}\input{all}
I Vorteil: all.tex muss nicht geändert werden
13 / 25
Dokumente auf mehrere Dateien verteilt
Pakete graphics und graphicx
Überblick
Kommando \input
Der include-Mechanismus
Pakete graphics und graphicx
TikZ library external
Bündel standalone
14 / 25
Dokumente auf mehrere Dateien verteilt
Pakete graphics und graphicx
Einbinden von Bildern in „Fremdformaten“
I benutzbare Bildformate:I hängt vom benutzten LATEX abI für pdflatex: Pdf-, Jpeg-, PNG-Bilder
I Unterschied zwischen graphics und graphicxI funktional: keinerI Benutzerschni�stelle: ich bevorzuge graphicxI alles Weitere bezieht sich auf graphicx
I wesentliches Kommando\includegraphics[〈opt. key/value pairs〉]{〈filename〉}
15 / 25
Dokumente auf mehrere Dateien verteilt
Pakete graphics und graphicx
Kommando \includegraphicsmögliche OptionenI scale=〈Faktor〉I width=〈Breite〉I height=〈Höhe〉I keepaspectratioI bb=〈llx, lly, urx, ury〉 , viewport=〈llx, lly, urx, ury〉I clip
16 / 25
Dokumente auf mehrere Dateien verteilt
Pakete graphics und graphicx
\includegraphics: Beispiele
Optionen angegeben
I keine: xxx xxxI [width=20mm,height=2mm] xxx xxxI [width=20mm,height=2mm,keepaspectratio] xxx xxx
I [angle=30] xxx xxx
nachfolgend \framebox{\includegraphics. . .}}
I [bb=5 0 10 20] xxx xxx
I [bb=5 0 10 20,clip] xxx xxxI bb-Angaben sind in bp Einheiten, 1 bp= 1/72 in
17 / 25
Dokumente auf mehrere Dateien verteilt
Pakete graphics und graphicx
(Große) Bilder
I große Bilder kosten Zeit:I beim Entwickeln („Programmieren“)I beim Verarbeiten („Ausführen“)
I Wie kann man Zeit sparen?1. Datei 〈bild〉.tex, die nur das Bild enthält
I reduziert Verarbeitungszeit während der EntwicklungI Ergebnis: Pdf-Datei 〈bild〉.pdf
2a. im Hauptdokument \includegraphics{〈bild〉.pdf}I reduziert Verarbeitungszeit während der DokumentenerstellungI WiederverwendbarkeitI evtl. Konsistenzprobleme (Fontänderungen, . . . )
oder 2b. wesentlichen Teil aus 〈bild〉.tex in Hauptdokument einfügenI Vorteil: Wiederverwendbarkeit in verschiedenene Dokumenten
z. B. auch bei verschiedenen Schriften, etc.I evtl. Konsistenzprobleme (nachträgliche Änderungen wo? . . . )
18 / 25
Dokumente auf mehrere Dateien verteilt
TikZ library external
Überblick
Kommando \input
Der include-Mechanismus
Pakete graphics und graphicx
TikZ library external
Bündel standalone
19 / 25
Dokumente auf mehrere Dateien verteilt
TikZ library external
TikZ library external: Benutzung
Benutzung im günstigen Fall ganz einfach:I in der Präambel:
I \usetikzlibrary{external}I \tikzexternalize
I schaltet den Mechanismus einI wenn auskommentiert, Dokument „ganz normal“ verarbeitet
I im Dokumentenrumpf:I tikzpicture Umgebungen wie üblich
I nur für tikzpicture Umgebungen, nichts anderes
I Tipp: für Erzeugung des finalen Dokuments \tikzexternalizeausschaltenI zur Vermeidung unerwünschter Spaces
20 / 25
Dokumente auf mehrere Dateien verteilt
TikZ library external
TikZ library external: Benutzung
Benutzung im günstigen Fall ganz einfach:I in der Präambel:
I \usetikzlibrary{external}I \tikzexternalize
I schaltet den Mechanismus einI wenn auskommentiert, Dokument „ganz normal“ verarbeitet
I im Dokumentenrumpf:I tikzpicture Umgebungen wie üblich
I nur für tikzpicture Umgebungen, nichts anderes
I Tipp: für Erzeugung des finalen Dokuments \tikzexternalizeausschaltenI zur Vermeidung unerwünschter Spaces
20 / 25
Dokumente auf mehrere Dateien verteilt
TikZ library external
TikZ library external: Mechanismus
für jedes tikzpicture defaultmäßig folgende AktionenI Berechnung einer 〈md5 sum〉
I falls 〈md5 sum〉 unverändert:I nehme das Pdf-Erzeugnis des letzten Laufes
I falls 〈md5 sum〉 geändert (oder erstmals berechnet):I erzeuge aus tikzpicture neue Pdf-Datei
I füge Pdf-Datei sta� des tikzpicture in Hauptdokument ein
21 / 25
Dokumente auf mehrere Dateien verteilt
Bündel standalone
Überblick
Kommando \input
Der include-Mechanismus
Pakete graphics und graphicx
TikZ library external
Bündel standalone
22 / 25
Dokumente auf mehrere Dateien verteilt
Bündel standalone
Bündel standalonedie einfache Variante:I reduziert „nur“ Verarbeitungszeit während der Entwicklung von
TeilenI weniger als tikz externalI nicht eingeschränkt auf tikzpicture
I für die Benutzung werden zwei „Zutaten“ benötigtnicht verwechseln:I die Dokumentenklasse standaloneI das LATEX-Paket standalone
23 / 25
Dokumente auf mehrere Dateien verteilt
Bündel standalone
Bündel standalone: einfache Benutzung
I erzeuge zwei eigenständige Dokumente (oder mehr . . . )I Hauptdokument main.texI Teildokument sub.tex
I Inhalt sollte auf eine Seite passenI in main.tex:
I Präambel: \usepackage{standalone}I „early in the document“I lade alle Pakete, die sub.tex brauchtI oder \usepackage[subpreambles]{standalone}
I Rumpf: z. B. \input{sub.tex}I in sub.tex:
I Präambel: \documentclass{standalone}danach Beliebiges
I Rumpf: beliebiger Inhalt„Avoid empty lines at the begin or end of the document body.“
24 / 25
Dokumente auf mehrere Dateien verteilt
Bündel standalone
Bündel standalone: fortgeschri�ene Benutzung
im Rumpf von main.tex:I \includestandalone[mode=〈mode〉]{sub.tex}I für 〈mode〉 sind unter anderem möglich:
I tex: benutze die LATEX-�elldateiI image: benutze die erzeugte „Image“-DateiI image|tex: benutze Image, falls vorhanden, sonst �elleI build: erzeuge Image und nutze esI buildmissing: erzeuge Image, falls nicht vorhandenI buildnew: erzeuge Image, falls �elle neuer als Image
I sta� bei jedem \includestandalone den 〈mode〉 anzugebenI in Präambel: \standaloneconfig{mode=〈mode〉}I für finales Dokument: mode=tex
25 / 25