So legen Sie den Abstand zwischen Knoten in TikZ fest

So legen Sie den Abstand zwischen Knoten in TikZ fest

Ich versuche, ein Webdiagramm für eine Arbeit zu zeichnen, wobei ich TikZ verwende, um die einzelnen Seiten als Knoten zu zeichnen. Beim Setzen befindet sich das Diagramm jedoch in einer kleinen Ecke der Linie und die Knoten liegen zu nahe beieinander. node distancefunktioniert nicht und minimum sizeerweitert die Knoten nur so, dass sie sich überlappen. Wie kann ich den Mindestabstand zwischen den Knoten festlegen? Danke.

Das unfertige Diagramm (noch ohne Linien) sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

Idealerweise sollte es die Breite der Seite haben und die Knoten sollten weiter voneinander entfernt verteilt sein.

Mein Code sieht folgendermaßen aus:

 \documentclass[12pt, oneside]{amsart}      
\usepackage{geometry}                       
\geometry{a4paper}

\usepackage{tikz}

\begin{document}

\tikzstyle{node}=[circle, draw=black!100, thick]
\tikzstyle{dangling node}=[circle, draw=black!100, fill=black!30, thick]
\begin{tikzpicture}[minimum size=5mm][node distance=5.3cm,>=stealth?,bend angle=45,auto]
  \node[node](page 1){1};
  \node[node](page 2)[right of=page 1]{2};
  \node[node](page 3)[below of=page 1]{3};
  \node[node](page 4)[below of=page 2]{4};
  \node[dangling node](page 5)[below of=page 3, xshift=5mm]{5};
\end{tikzpicture}

\end{document}

Antwort1

Die tikzpictureUmwelt braucht nureinsoptionales Argument. D. h., wenn LaTeX ein [nach sieht \begin{tikzpicture}, erfasst es alles bis zum ersten, ]das es sieht, und das sind die Optionen für die Umgebung. Wenn Sie haben \begin{tikzpicture}[..][..], wird das zweite Klammerpaar eigentlich einfach als normaler Text gelesen, glaube ich, und TiKZ versucht im Allgemeinen, alles zu unterdrücken, was kein pgf/TikZ-Befehl ist, also wird es grundsätzlich ignoriert.

Zusammenfassend tikzpicturemüssen also alle Optionen für a in dasselbe Klammerpaar gesetzt werden.

Wenn Sie Ihren Code entsprechend ändern (und das falsch platzierte ?nach entfernen stealth), werden Sie feststellen, dass Ihre node distanceEinstellung wie erwartet funktioniert.

Trotzdem möchten Sie vielleicht dem Rat von TeXnician folgen, die positioningBibliothek zu verwenden und eg right=ofstatt zu sagen right of=. Einige Diskussionen dazu finden Sie inUnterschied zwischen „right of=“ und „right=of“ in PGF/TikZ. Ein weiterer Grund für die Verwendung der positioningBibliothek ist, dass Sie die horizontalen und vertikalen Knotenabstände separat festlegen können, indem Sie schreiben. Ein Beispiel finden Sie im folgenden Code. Wie gernot in einem Kommentar erwähnt, möchte man in diesem Fall wahrscheinlich auch den Knotenstil node distance=Ycm and Xcmhinzufügen . bedeutet, dass die Abstände vom Mittelpunkt der Knoten aus berechnet werden.on gridon grid

Letzter Hinweis: Sie können einen Stil in einen anderen einfügen. Wenn also dangling nodederselbe Stil wie hat node, mit dem Zusatz von fill, dann können Sie sagen dangling node/.style={node,fill=black!30}. Dies reduziert die Code-Duplikation und erleichtert die Änderung.

Bildbeschreibung hier eingeben

\documentclass[12pt, oneside]{amsart}
\usepackage{geometry}                       
\geometry{a4paper}

\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{
  node/.style={circle, draw=black!100, thick, on grid}, % on grid added
  dangling node/.style={node, fill=black!30}
}
\begin{document}
\begin{center}
\begin{tikzpicture}[
  minimum size=5mm,
  node distance=4cm and 7cm,
  >=stealth,
  bend angle=45,
  auto
]
  % grid to easier see that the node centers line up  
  \draw [help lines] (-1,-9) grid (9,1);

  \node[node](page 1){1};
  \node[node](page 2)[right=of page 1]{22};
  \node[node](page 3)[below=of page 1]{3333};
  \node[node](page 4)[below=of page 2]{4555555};
  \node[dangling node](page 5)[below=of page 3, xshift=5mm]{5};
\end{tikzpicture}
\end{center}
\end{document}

verwandte Informationen