Seite 1 von 1

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

Verfasst: Fr 16. Dez 2016, 14:17
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}

Verfasst: Fr 16. Dez 2016, 14:47
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}}};

Verfasst: Fr 16. Dez 2016, 14:48
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.

Verfasst: Fr 16. Dez 2016, 14:56
von Nadezda
Vielen Vielen Dank, darauf bin ich nicht gekommen, freut mich, dass es so einfach ist.

Verfasst: Fr 16. Dez 2016, 15:17
von Gast
Falls die Frage damit beantwortet ist, bitte den Status anpassen.