Warum funktioniert die auskommentierte Zeile nicht? Ich möchte einen Knoten (eigentlich einen anonymen) platzieren, der in einem \draw-Befehl deklariert ist.
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}
\begin{document}
\title{arrow test}
\begin{tikzpicture}[>=latex,
font=\sffamily,
]
\node[draw, thin, black, fill=green, rectangle] (P1) at (0cm,0cm){};
\node[draw, thin, black, fill=red, rectangle, right=1cm of P1] (P2){};
\node[draw, thin, black, fill=green, rectangle] (P3) at (0cm,0.5cm){};
\draw[->] (P1) -- (P2);
%\draw[->] (P3) to node[draw, thin, black, fill=red, rectangle, right=1cm of P3](P4){};
\end{tikzpicture}
\end{document}
Antwort1
Versuchen Sie das folgende MWE:
\documentclass[tikz, border=3mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\title{arrow test}
\begin{tikzpicture}[%>=latex,
node distance = 10mm,
box/.style = {rectangle, draw, thin, fill=#1, font=\sffamily},
]
\node[box=green] (P1) at (0cm,0cm) {};
\node[box=red, right=of P1] (P2) {};
\node[box=green] (P3) at (0cm,1cm) {};
\draw[->] (P1) -- (P2);
\draw[->] (P3) node[box=red, right=of P3] (P4) {} -- (P4);
\end{tikzpicture}
\end{document}
Koordinaten können nicht „gebootet“ werden ... zuerst müssen Sie sie definieren und dann verwenden. Vergleichen Sie die letzte Zeile in Ihrem und meinem MWE.
Antwort2
Das ist fast das, was Sie wollen. Der Fehler besteht darin, dass der Abstand von 1 cm vom Mittelpunkt des ersten Knotens aus berechnet wird (so dass im Beispiel die beiden rechten Knoten nicht richtig ausgerichtet sind).
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}
\begin{document}
\title{arrow test}
\begin{tikzpicture}[>=latex,
font=\sffamily,
]
\node[draw, thin, black, fill=green, rectangle] (P1) at (0cm,0cm){};
\node[draw, thin, black, fill=red, rectangle, right=1cm of P1] (P2){};
\node[draw, thin, black, fill=green,opacity=0.5, rectangle] (P3) at (0cm,0.5cm){};
\draw[->] (P1) -- (P2);
\draw[->] (P3) -- +(1cm,0) node[draw, thin, black, fill=red, rectangle, right] (P4) {};
% \draw[->] (0,0.5cm) node[draw, thin, black, fill=green,opacity=0.5,
% rectangle,left] {} -- +(1cm,0) node[draw, thin, black, fill=red, rectangle,
% right] {};
\end{tikzpicture}
\end{document}
In gewissem Sinne ist es also möglich, anonyme Knoten zu zeichnen. Das Problem besteht darin, dass dies nur für zwei Knoten funktioniert, da Sie den Startpunkt für einen nachfolgenden Pfad ändern müssten, was nicht möglich ist, wenn der Knoten anonym ist.