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

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tikz Node überlappt, horizonal Abstände vergrößern/verkleine

von Gast » Fr 16. Dez 2016, 15:17

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

von Nadezda » Fr 16. Dez 2016, 14:56

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

von Gast » Fr 16. Dez 2016, 14:48

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.

von esdd » Fr 16. Dez 2016, 14:47

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}}};

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

von Nadezda » Fr 16. Dez 2016, 14:17

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}

Nach oben