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 distance
funktioniert nicht und minimum size
erweitert 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:
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 tikzpicture
Umwelt 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 tikzpicture
mü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 distance
Einstellung wie erwartet funktioniert.
Trotzdem möchten Sie vielleicht dem Rat von TeXnician folgen, die positioning
Bibliothek zu verwenden und eg right=of
statt 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 positioning
Bibliothek 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 Xcm
hinzufügen . bedeutet, dass die Abstände vom Mittelpunkt der Knoten aus berechnet werden.on grid
on grid
Letzter Hinweis: Sie können einen Stil in einen anderen einfügen. Wenn also dangling node
derselbe 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.
\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}