Tikz Node überlappt, horizonal Abstände vergrößern/verkleine

Tabellen und Grafiken erstellen und anordnen


Nadezda
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 16. Dez 2016, 13:36

Tikz Node überlappt, horizonal Abstände vergrößern/verkleine

Beitrag von Nadezda »

Wie kann ich bei meinem Mindmap die Abstände einzeln anpassen, dass, dass die Felder nicht überlappen?
\documentclass{scrbook}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning}
\usetikzlibrary{matrix}
\usetikzlibrary{mindmap}

\begin{document}
\begin{figure}[!hbtp]
\centering
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=40mm,thick,main node/.style={chamfered rectangle,fill=gray!20,draw,font=\sffamily\Large\bfseries}]
  \node[main node] (1) {{\scriptsize {\normalsize Computer Running an Interpreter}}};
  \node[main node] (2) [above of=1] {{\scriptsize {\normalsize Source Code (Program)}}};
  \node[main node] (3) [left of=1] {{\scriptsize {\normalsize Inputs}}};
  \node[main node] (4) [right of=1] {{\scriptsize {\normalsize Outputs}}};
  \path[every node/.style={font=\sffamily\small}]
  (2) edge [->] (1);
  \path[every node/.style={font=\sffamily\small}]
  (3) edge [->] (1);
  \path[every node/.style={font=\sffamily\small}]
  (1) edge [->] (4);
\end{tikzpicture}
\caption{Interpreting a High--Level Language}
\label{Inter}
\end{figure}

\end{document}
Vielen Dank für eure Hilfe,
Nadezda.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Du kannst sowohl den vertikalen als auch den horizontalen Abstand von nodes global einstellen:
node distance=2cm and 1cm
.

Damit das als Abstand zwischen den Rändern der Nodes und nicht zwischen deren Zentren verwendet wird, muss das of hinter das =
\documentclass{scrbook}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning}
\usetikzlibrary{matrix}
\usetikzlibrary{mindmap}

\begin{document}
\begin{figure}[!hbtp]
\centering
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2cm and 1cm,thick,main node/.style={chamfered rectangle,fill=gray!20,draw,font=\sffamily\Large\bfseries}]
  \node[main node] (1) {{\scriptsize {\normalsize Computer Running an Interpreter}}};
  \node[main node] (2) [above = of 1] {{\scriptsize {\normalsize Source Code (Program)}}};
  \node[main node] (3) [left = of 1] {{\scriptsize {\normalsize Inputs}}};
  \node[main node] (4) [right = of 1] {{\scriptsize {\normalsize Outputs}}};
  \path[every node/.style={font=\sffamily\small}]
  (2) edge [->] (1);
  \path[every node/.style={font=\sffamily\small}]
  (3) edge [->] (1);
  \path[every node/.style={font=\sffamily\small}]
  (1) edge [->] (4);
\end{tikzpicture}
\caption{Interpreting a High--Level Language}
\label{Inter}
\end{figure}

\end{document}
Zwischen = und of kannst Du dann außerdem den Abstand lokal anpassen. Beispielsweise
\node[main node] (4) [right = 3cm of 1] {{\scriptsize {\normalsize Outputs}}};

Gast

Beitrag von Gast »

Du kannst beispielsweise die Breite der Felder beeinflussen und so auch einen Zeilenumbruch in einem Feld erlauben:
\documentclass{scrbook}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning}
\usetikzlibrary{matrix}
\usetikzlibrary{mindmap}
\begin{document}
\begin{figure}[!hbtp]
\centering
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=40mm,thick,main node/.style={chamfered rectangle,fill=gray!20,draw,font=\sffamily\Large\bfseries}]
  \node[main node,text width=8em] (1) {{\scriptsize {\normalsize Computer Running an Interpreter}}};
  \node[main node] (2) [above of=1] {{\scriptsize {\normalsize Source Code (Program)}}};
  \node[main node] (3) [left of=1] {{\scriptsize {\normalsize Inputs}}};
  \node[main node] (4) [right of=1] {{\scriptsize {\normalsize Outputs}}};
  \path[every node/.style={font=\sffamily\small}]
  (2) edge [->] (1);
  \path[every node/.style={font=\sffamily\small}]
  (3) edge [->] (1);
  \path[every node/.style={font=\sffamily\small}]
  (1) edge [->] (4);
\end{tikzpicture}
\caption{Interpreting a High--Level Language}
\label{Inter}
\end{figure}

\end{document}
BTW: Für Mindmaps gibt es tolle Bespiele unter http://www.texample.net/tikz/examples/feature/mindmaps/. Dagegen sieht das, was du da machst, eher nach einem verkümmerten Flussdiagramms aus. Dafür zeigt http://www.texample.net/tikz/examples/c ... flowchart/ ganz gut, wie das mit der Definition unterschiedlicher Kästen mit unterschiedlicher Breite und Höhe in einem komplexen Beispiel funktioniert.

Nadezda
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 16. Dez 2016, 13:36

Beitrag von Nadezda »

Vielen Vielen Dank, darauf bin ich nicht gekommen, freut mich, dass es so einfach ist.

Gast

Beitrag von Gast »

Falls die Frage damit beantwortet ist, bitte den Status anpassen.

Antworten