Hallo zusammen,

ich versuche gerade mit TikZ Flowcharts für meine Lern-Zusammenfassung zu erstellen. Nun habe ich das folgende Problem:

Solange ich in den einzelnen nodes meines Flowcharts nur Platzhalter in Form von Zahlen habe funktioniert alles wunderbar. Ersetze ich aber die Platzhalter durch den eigentlichen Text, verschieben sich die paths des Flowcharts und laufen direkt oben an den nodes entlang.

Kann mir jemand sagen was ich falsch gemacht habe und wie ich das Problem lösen kann?

Ohne den Text funktioniert das Ganze:

Öffne in Overleaf
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage{tikz}
\usetikzlibrary{matrix,calc,shapes}
\tikzset{
env/.style      = {shape=rectangle,
                 draw, anchor=north,
                 text width=7em, align=left,
                 inner sep=1ex},
}
\begin{document}
\begin{center}

\begin{tikzpicture}[-latex]
\matrix (chart)
[
matrix of nodes,
column sep      = 1em,
row sep         = 1cm,
nodes = env,
]
{
&& 3 & & \\
1 & 2 & 3 & 4 & 5\\
};
\draw (chart-2-1) |- (0,0)-| (chart-1-3.south);
\draw (chart-2-2)  |- (0,0) -| (chart-1-3.south);
\draw (chart-2-3) |- (0,0) -|(chart-1-3.south);
\draw (chart-2-4) |- (0,0) -| (chart-1-3.south);
\draw (chart-2-5) |- (0,0) -| (chart-1-3.south);

\end{tikzpicture}
\end{center}
\end{document}

Hier das Ergebnis:

alt text

Mit dem Text funktioniert es dann nicht mehr:

Öffne in Overleaf
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage{tikz}
\usetikzlibrary{matrix,calc,shapes}
\tikzset{
env/.style      = {shape=rectangle,
                 draw, anchor=north,
                 text width=7em, align=left,
                 inner sep=1ex},
}
\begin{document}
\begin{center}

\begin{tikzpicture}[-latex]
\matrix (chart)
[
matrix of nodes,
column sep      = 1em,
row sep         = 1cm,
nodes = env,
]
{
&& 3 & & \\
Hier wird dann etwas stehen & Hier wird dann auch etwas stehen & Auch hier soll etwas stehen & Hier auch & Und sogar hier 
wird etwas stehen\\
};
\draw (chart-2-1) |- (0,0)-| (chart-1-3.south);
\draw (chart-2-2)  |- (0,0) -| (chart-1-3.south);
\draw (chart-2-3) |- (0,0) -|(chart-1-3.south);
\draw (chart-2-4) |- (0,0) -| (chart-1-3.south);
\draw (chart-2-5) |- (0,0) -| (chart-1-3.south);

\end{tikzpicture}
\end{center}
\end{document}

Das ist das Ergebnis:

alt text

gefragt 06 Okt, 08:30

Nahele's gravatar image

Nahele
463
Akzeptiert: 50%


Es funktioniert, wenn Du row sep anpasst, z.B. row sep = 3cm. Besser ist aber einfach minimum height=4em für die nodes zu ergänzen, dann kann der row sep bleiben wie er ist und die nodes sind alle gleich hoch.

alt text

Öffne in Overleaf
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}

\usepackage{tikz}
\usetikzlibrary{matrix,calc,shapes}
\tikzset{
env/.style      = {shape=rectangle,
                 draw, anchor=north,
                 text width=7em, align=left,
                 inner sep=1ex,
                 minimum height=4em,
                 },
}
\begin{document}
\begin{center}

\begin{tikzpicture}[-latex]
\matrix (chart)
[
matrix of nodes,
column sep      = 1em,
row sep         = 1cm,
nodes = env,
]
{
&& 3 & & \\
Hier wird dann etwas stehen & Hier wird dann auch etwas stehen & Auch hier soll etwas stehen & Hier auch & Und sogar hier 
wird etwas stehen\\
};
\draw (chart-2-1) |- (0,0)-| (chart-1-3.south);
\draw (chart-2-2)  |- (0,0) -| (chart-1-3.south);
\draw (chart-2-3) |- (0,0) -|(chart-1-3.south);
\draw (chart-2-4) |- (0,0) -| (chart-1-3.south);
\draw (chart-2-5) |- (0,0) -| (chart-1-3.south);

\end{tikzpicture}
\end{center}
\end{document}
Permanenter link

beantwortet 06 Okt, 08:50

cis's gravatar image

cis
8.2k15167264

Danke für die Antwort! Das hat hat mein Problem perfekt gelöst.

(06 Okt, 11:52) Nahele
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×617
×11
×3

Frage gestellt: 06 Okt, 08:30

Frage wurde angeschaut: 105 Mal

Zuletzt aktualisiert: 06 Okt, 11:52