Hallo zusammen, ich erstelle mir für jedes Bild eine tex datei in der ich das tikz Bild erstelle (siehe Code unten). Diesen binde ich dann über den Befehl input im Hauptfile in einer figure Umgebung ein. Dies funktioniert soweit ganz gut. Jetzt habe ich das Problem sobald ich zwei Ablaufdiagramme einbinde bekomme ich die Fehlermeldung im zweiten Bild undefinied control sequenz. Das Problem taucht auch auf wen ich beides mal das gleiche Bild laden möchte. Wenn ich dies nur einmal mache klappt es. Öffne in Overleaf
\usepackage{tikz} \usetikzlibrary{positioning,calc,shapes,arrows,shapes.multipart} % Define block styles \tikzset{ pap/.style={ draw, minimum height=7mm, font=\ttfamily\footnotesize, align=flush center, on grid }, papDecision/.style = { diamond, draw, text width = 20 mm, align = center, text badly centered, inner sep = 1 pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papStart/.style = { rectangle, draw, align = center, text width = 3cm, text badly centered, inner sep = 4 pt, rounded corners=10pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papEnd/.style = { rectangle, draw, align = center, text width = 3cm, text badly centered, inner sep = 4 pt, rounded corners=10pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papData/.style = { trapezium, draw, align = center, text width = 20 mm, text badly centered, inner sep = 4 pt, trapezium left angle=70, trapezium right angle=110, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papPredProc/.style = { draw, rectangle split, rectangle split horizontal, rectangle split parts = 3, rectangle split empty part width=-8pt, align = center, % text width = 4.5 em, text badly centered, % inner sep = 4 pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papProcess/.style = { rectangle, draw, align = center, text width = 3cm, text badly centered, %inner sep = 2 pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papLine/.style = { draw, -stealth, font=\ttfamily\footnotesize, %line width = 1, }, } \newcommand{\papYes}{ja} \newcommand{\papNo}{nein} \begin{tikzpicture}[node distance = 2cm, auto] % Place nodes \node [papStart] (Start1){Start}; \node [papProcess, below of = Start1,yshift= 2mm] (pro4){funktion6}; \node [papDecision, below of = pro4, yshift= -20mm] (dec2){test}; \node [papPredProc, right of = dec2,xshift=25mm] (predproc2){\nodepart{two}\shortstack{funktion5}}; \node [papPredProc, below of = dec2,yshift= -10mm] (predproc3){\nodepart{two}\shortstack{funktion4}}; \node [papDecision, below of = predproc3, yshift= -20mm](dec3){Anzahl m?}; \node [papPredProc, below of = dec3, xshift=-25mm, yshift= -20mm](predproc4){\nodepart{two}\shortstack{funktion1}}; \node [papPredProc, below of = dec3, yshift= -20mm](predproc5){\nodepart{two}\shortstack{funktion2}}; \node [papPredProc, below of = dec3, xshift=26mm, yshift= -20mm](predproc6){\nodepart{two}\shortstack{funktion3}}; \node [papEnd, below of = predproc5, yshift= -20mm] (End) {Ende}; % Draw edges \path [papLine] (Start1) -- (pro4); \path [papLine] (pro4) -- (dec2); \path [papLine] (dec2) -- node [above] {\papYes} (predproc2); \path [papLine] (dec2) -- node [right] {\papNo} (predproc3); \path [papLine] (predproc3) -- (dec3); \path [papLine] (dec3) -- node [right] {m = 1} (predproc4); \path [papLine] (dec3) -- node [right] {m = 2} (predproc5); \path [papLine] (dec3) -- node [right] {m < 2} (predproc6); \path [papLine] (predproc4) -- (End); \path [papLine] (predproc5) -- (End); \path [papLine] (predproc6) -- (End); \end{tikzpicture} gefragt 08 Feb '19, 16:05 Strompädagoge |
Davon abgesehen, dass ich mit deinem Codeschnipsel das Problem selbst leider nicht nachvollziehen kann, sei ein etwas anderes Vorgehen vorgeschlagen: Das Paket Beispiel (abgeleitet von deinem leider unvollständigen und trotzdem sehr großen Codeschnipsel): Wir erstellen zunächst das Hauptdokument mit dem Dateinamen Öffne in Overleaf
\documentclass[DIV=12]{scrartcl} \usepackage{subfiles} \usepackage{tikz} \usetikzlibrary{positioning,calc,shapes,arrows,shapes.multipart} % Define block styles \tikzset{ pap/.style={ draw, minimum height=7mm, font=\ttfamily\footnotesize, align=flush center, on grid }, papDecision/.style = { diamond, draw, text width = 20 mm, align = center, text badly centered, inner sep = 1 pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papStart/.style = { rectangle, draw, align = center, text width = 3cm, text badly centered, inner sep = 4 pt, rounded corners=10pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papEnd/.style = { rectangle, draw, align = center, text width = 3cm, text badly centered, inner sep = 4 pt, rounded corners=10pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papData/.style = { trapezium, draw, align = center, text width = 20 mm, text badly centered, inner sep = 4 pt, trapezium left angle=70, trapezium right angle=110, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papPredProc/.style = { draw, rectangle split, rectangle split horizontal, rectangle split parts = 3, rectangle split empty part width=-8pt, align = center, % text width = 4.5 em, text badly centered, % inner sep = 4 pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papProcess/.style = { rectangle, draw, align = center, text width = 3cm, text badly centered, %inner sep = 2 pt, font=\ttfamily\footnotesize, %line width = 1, minimum width = 30mm, minimum height = 7mm, }, papLine/.style = { draw, -stealth, font=\ttfamily\footnotesize, %line width = 1, }, } \newcommand{\papYes}{ja} \newcommand{\papNo}{nein} \begin{document} \begin{figure} \centering \subfile{test-subfiles-sub.tex} \caption{Die Abbildung zum ersten Mal} \end{figure} \begin{figure} \centering \subfile{test-subfiles-sub.tex} \caption{Die Abbildung zum zweiten Mal} \end{figure} \end{document} Wie zu sehen ist, habe ich das Laden von TikZ, dessen Bibliotheken, dessen Einstellungen, sowie alle Definitionen in die Dokumentpräambel dieses Hauptdokuments gesteckt. (Der unschöne Wert für Option Als nächstes folgt das Unterdokument Öffne in Overleaf
\documentclass[test-subfiles.tex]{subfiles} \begin{document} \begin{tikzpicture}[node distance = 2cm, auto] % Place nodes \node [papStart] (Start1){Start}; \node [papProcess, below of = Start1,yshift= 2mm] (pro4){funktion6}; \node [papDecision, below of = pro4, yshift= -20mm] (dec2){test}; \node [papPredProc, right of = dec2,xshift=25mm] (predproc2){\nodepart{two}\shortstack{funktion5}}; \node [papPredProc, below of = dec2,yshift= -10mm] (predproc3){\nodepart{two}\shortstack{funktion4}}; \node [papDecision, below of = predproc3, yshift= -20mm](dec3){Anzahl m?}; \node [papPredProc, below of = dec3, xshift=-25mm, yshift= -20mm](predproc4){\nodepart{two}\shortstack{funktion1}}; \node [papPredProc, below of = dec3, yshift= -20mm](predproc5){\nodepart{two}\shortstack{funktion2}}; \node [papPredProc, below of = dec3, xshift=26mm, yshift= -20mm](predproc6){\nodepart{two}\shortstack{funktion3}}; \node [papEnd, below of = predproc5, yshift= -20mm] (End) {Ende}; % Draw edges \path [papLine] (Start1) -- (pro4); \path [papLine] (pro4) -- (dec2); \path [papLine] (dec2) -- node [above] {\papYes} (predproc2); \path [papLine] (dec2) -- node [right] {\papNo} (predproc3); \path [papLine] (predproc3) -- (dec3); \path [papLine] (dec3) -- node [right] {m = 1} (predproc4); \path [papLine] (dec3) -- node [right] {m = 2} (predproc5); \path [papLine] (dec3) -- node [right] {m < 2} (predproc6); \path [papLine] (predproc4) -- (End); \path [papLine] (predproc5) -- (End); \path [papLine] (predproc6) -- (End); \end{tikzpicture} \end{document} Führe ich nun für das Unterdokument Führe ich hingegen für das Hauptdokument Fehlermeldungen treten in beiden Fällen nicht auf. Trotzdem sei darauf hingewiesen, dass das Paket Als alternatives Vorgehen wäre außerdem denkbar, dass man die Abbildungen generell mit Hilfe von Wie gesagt: Ich kann das angedeutete Problem mit deinem Code nicht nachvollziehen. Daher sei auch für den Fall, dass diese Antwort das Problem löst, darum gebeten, die Frage trotzdem für andere Hilfesuchende nachvollziehbar zu machen. beantwortet 10 Feb '19, 14:51 gast3 Danke. Das hat ja schon geholfen. Es lag am usetikzlibrary. Das hat bei erneutem aufrufen zur Fehlermeldung geführt. Die Idee über usepackage{subfiles} istnatürlich elegant und wurde dementsprechend angepasst. Herzlichen Dank!!
(11 Feb '19, 10:42)
Strompädagoge
1
Bitte nicht das Antwortfeld für einen Danke-Kommentar missbrauchen! Wichtige Informationen (wie ein echtes Minimalbeispiel) bitte in die Frage einfügen!
(11 Feb '19, 11:19)
saputello
@Strompädagoge Ich habe Deine "Antwort" in einen Kommentar umgewandelt. Du kannst gern stets direkt die Frage editieren und Zusätze einfügen. Hier sind Antworten stets "echte" Antworten, keine Gespräche oder Rückfragen oder Zusatzinfos, sondern Lösungen. Editieren der Frage ist jederzeit möglich und erwünscht. Das verbessert die Übersicht erheblich für die Archivierung der Lösungen. Ungewohnt und anders als in Webforen, doch innovativ und nutzbarer. Bemerkungen gern wie hier als Kommentare.
(12 Feb '19, 07:53)
gast3
|
\usepackage
und\usetikzlibrary
funktionieren nicht in einerfigure
-Umgebung, sondern gehören einmalig in die Dokumentpräambel. Dieselbe\newcommand
-Anweisung kann man zwar ggf. tatsächlich mehrfach in unterschiedlichenfigure
-Umgebungen verwenden, aber natürlich nur, wenn die dadurch definierten Anweisungen nicht bereits außerhalb derfigure
-Umgebung definiert sind. Die unvollständig angegebene Fehlermeldung kann ich dagegen nicht nachvollziehen, daher …Könntest Du bitte ein Minimalbeispiel einfügen? Also ein möglichst kurzes, aber komplettes Dokument, von
\documentclass{...}
bis zu\end{document}
, was das Problem zeigt. Würdest Du bitte außerdem Fehlermeldungen wörtlich als Code-Block aus derlog
-Datei zitieren? Das vereinfacht die Bearbeitung erheblich und ist meist eine Garantie für eine Lösung.Mir scheint, hier sollen irgendwelche Unterdateien mit Graphiken in ein Hauptdokument eingebunden werden. Das hätte ich vermutlich komplett mit
\uspackage{standalone}
gemacht. So wie hier: https://texwelt.de/wissen/fragen/23094/standalonesty-wie-kann-ich-von-einem-hauptdokument-auf-ein-unterdokument-einwirken/23104Das hat den Vorteil, dass man Inhalte separat als Unterdokumente erstellen und bearbeiten kann und die dann (ohne großartige Änderungen am Dokumentrahmen) mit
\includestandalone
einfügen kann. Aber mangels eines Minimalbeispiels habe ich mich jetzt nicht weiter damit beschäftigt...Allerdings kannte ich
subfiles.sty
(aus der Antwort) nicht; und weiß nicht, ob das Paket nochmal anderes kann oder macht.