
das ist meine erste Frage. Ich habe eine Weile gesucht, konnte aber noch keine ähnliche Frage finden, vielleicht fehlt mir der richtige Suchbegriff. Wie auch immer, hier kommt sie.
Beim Schreiben einer Abschlussarbeit habe ich ein Problem mit der Eingabe von Diagrammen: Ich habe Berechnungsergebnisse in TXT-Dateien aufgelistet und möchte vermeiden, für jedes Diagramm eine eigene Tex-Datei zu haben. Meine Idee ist also, alle Diagramme in einer Datei zu speichern und sie durch eine eigene „Tikzpicture“-Umgebung zu unterscheiden. Was mir jetzt fehlt, ist eine Möglichkeit, meinem Hauptdokument mitzuteilen, dass nur das dritte oder fünfte Diagramm aus dieser Tex-Datei eingegeben werden soll. Gibt es eine Möglichkeit, dies zu tun? Vielleicht indem man jedem Tikzpicture so etwas wie ein Tag gibt?
Mein Ziel ist es, a) weniger Dateien zu produzieren und b) ein Format für alle meine Diagramme zu definieren, sodass ich, falls ich es ändern möchte, dies nur einmal und nicht in allen Diagrammdateien tun muss.
Wenn es zu komplex ist, können Sie vielleicht eine andere Möglichkeit zur Realisierung vorschlagen?
Vielen Dank im Voraus.
Antwort1
Die einfachste, aber auch schlampige Lösung wäre die Definition eines \newcommand
, für jedes Tikz-Bild, das Sie in Ihrer .tex-Datei erstellen, und das anschließende Einfügen in Ihre Hauptdatei.
Sie könnten eine pictures.tex
Datei wie diese haben:
\newcommand{\tikzI}{
\begin{tikzpicture}
<insert tikz contents here>
\end{tikzpicture}
}
\newcommand{\tikzII}{
\begin{tikzpicture}
<another tikzpicture>
\end{tikzpicture}
}
Ihre Hauptdatei kann folgendermaßen aussehen:
<preamble>
\begin{document}
\input{pictures}
<some text here>
\tikzI
<more text>
\tikzII
\end{document}
Wie Alan Munn jedoch vorgeschlagen hat, ist es möglicherweise einfacher und komfortabler, jedem Bild eine eigene Datei zuzuweisen und diese Dateien für jedes Tikz-Bild einzeln aufzurufen. (Erstellen Sie ein Verzeichnis speziell für Tikz-Bilder, damit sie Ihr Hauptverzeichnis nicht überladen.)
Antwort2
Ich denke nicht, dass Sie alle Ihre Bilder in einer einzigen Datei speichern sollten. Auf lange Sicht ist es viel einfacher, mehrere Dateien zu verwalten.
Dies ist ein idealer Anwendungsfall für die standalone
Kombination aus Paket und Klasse. Jede einzelne Grafik kann als Dokument erstellt standalone
und einzeln getestet werden, sie kann dann aber mithilfe des Pakets in das Hauptdokument eingefügt werden standalone
. Sie können Ihre üblichen TikZ-Stile in ein kleines Paket packen. Hier ist ein Beispiel.
Packen Sie gängige TikZ-Stile in ein Paket
Zuerst erstellen wir ein Paket unserer TikZ-Stile. Ich habe nur einen Stil als Beispiel definiert.
\ProvidesPackage{mytikzstyles}[2017/04/30]
\tikzset{my line/.style={red,very thick}}
Speichern Sie dieses Dokument mytikzstyles.sty
im selben Ordner wie Ihr Dokument, oder, wenn Sie es für viele Dokumente verwenden, legen Sie es in Ihrem lokalen texmf
Ordner unter ab <path-to-local-texmf>/tex/latex/mytikzstyles/
.
Individuelle standalone
Bilddokumente erstellen
Als nächstes erstellen wir standalone
Klassendokumente für jedes Bild. Der Vorteil dabei ist, dass Sie sie einzeln testen und optimieren können, da es sich um vollständig kompilierbare Dokumente handelt. In jedem Dokument müssen Sie nur \usepackage{mytikzstyles}
die von Ihnen erstellten gemeinsamen Stile hinzufügen, um darauf zuzugreifen.
Image-1.tex
\documentclass[tikz=true,border=10pt]{standalone}
\usepackage{mytikzstyles}
\begin{document}
\begin{tikzpicture}
\draw[my line] (0,0) -- (0,3) -- (3,3) -- cycle;
\end{tikzpicture}
\end{document}
Image-2.tex
\documentclass[tikz=true,border=10pt]{standalone}
\usepackage{mytikzstyles}
\begin{document}
\begin{tikzpicture}
\draw[my line] (0,0) -- (0,3) -- (3,0) -- (3,3) -- cycle;
\end{tikzpicture}
\end{document}
Verwenden Sie die standalone
Klasse zum Eingeben der Dateien
Jetzt kann unser Hauptdokument die Dateien beliebig eingeben. Um Ihr Hauptdateiverzeichnis übersichtlicher zu halten, können Sie alle Bilddokumente in einem eigenen Ordner ablegen. (Stellen Sie sicher, dass der Ordner oder die Dateinamen keine Leerzeichen enthalten.)
Hier ist ein Beispiel:
\documentclass{article}
\usepackage{standalone}
\usepackage{tikz}
\usepackage{mytikzstyles}
\begin{document}
\begin{figure}
\centering
\input{Image-2}
\caption{This is image 2}
\end{figure}
\begin{figure}
\centering
\input{Image-1}
\caption{This is image 1}
\end{figure}
\end{document}