
Mit dem folgenden Code aus der Antwort aufdiese Frage
\documentclass{beamer}
\beamertemplatenavigationsymbolsempty
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{positioning, chains}
\begin{document}
\begin{frame}[fragile, t]
\frametitle{}
\begin{tikzpicture}[scale=.8, transform shape,
node distance = 1mm and 60mm,
start chain = going below,
boxa/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=7.1mm,
inner sep=0pt, outer sep=0.96mm,
on chain},
boxb/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=7.1mm,
inner sep=0pt, outer sep=0.96mm,
on chain},
boxc/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=12.7mm,
inner sep=0pt, outer sep=0.6mm,
on chain},
]
\draw [line width=.4mm, black, dashed] (0,5.8) -- +(0:11) (0,0) -- +(0:11) node [pos=.28] (B) {\Large B} node [pos=.68] (A) {\Large A};
\node at ([shift={(90:5.4cm)}]A.center) (n1) [boxa=blue!60!white] {};
\node (n2) [boxa=blue!60!white] {};
\foreach \i in {3,...,6}
\node (n\i) [boxb=red!60!white] {};
\foreach \i in {0,...,3}
\node at ([shift={(90:5.4cm)}]B.center) (n\i) [boxc=green!60!white] {};
\end{tikzpicture}
\vskip -9.45cm
\hskip 2.22cm
\begin{tikzpicture}[scale=.8, transform shape,
node distance = 1mm and 60mm,
start chain = going below,
boxc/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=12.7mm,
inner sep=0pt, outer sep=0.6mm,
on chain},
]
\foreach \i in {0,...,3}
\node (n\i) [boxc=violet!60!white] {};
\end{tikzpicture}
\end{frame}
\end{document}
Ich möchte die grünen Kästchen an der Stelle des B-Knotens positionieren. Ich habe den Code verwendet
\foreach \i in {0,...,3}
\node at ([shift={(90:5.4cm)}]B.center) (n\i) [boxc=green!60!white] {};
Aber das hat nicht funktioniert. Wie kann das gemacht werden?
Ich konnte nicht herausfinden, wie ich sie richtig positionieren sollte. Ich musste es manuell machen, so wie ich es bei den violetten Kästchen in einem anderen Tikz-Bild getan habe.
Antwort1
Ich habe gerade Ihr Problem erkannt ... Ihr Problem besteht darin, dass Sie diesen Stil mit der Option on chain
... definiert haben. Ich habe diese bei einem dritten Stil mit demselben Namen entfernt boxd
und hier ist das Ergebnis:
\documentclass{article}
\usepackage{verbatim}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\usetikzlibrary{positioning, chains}
\begin{document}
\begin{tikzpicture}[scale=.8, transform shape,
node distance = 1mm and 60mm,
start chain = going below,
boxa/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=7.1mm,
inner sep=0pt, outer sep=0.96mm,
on chain},
boxb/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=7.1mm,
inner sep=0pt, outer sep=0.96mm,
on chain},
boxc/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=12.7mm,
inner sep=0pt, outer sep=0.6mm,
on chain},
boxd/.style = {draw, thick, fill=#1,
minimum width=6mm, minimum height=12.7mm,
inner sep=0pt, outer sep=0.6mm},
]
\draw [line width=.4mm, black, dashed] (0,5.8) -- +(0:11) (0,0) -- +(0:11) node [pos=.28] (B) {\Large B} node [pos=.68] (A) {\Large A};
\node at ([shift={(90:5.4cm)}]A.center) (n1) [boxa=blue!60!white] {};
\node (n2) [boxa=blue!60!white] {};
\foreach \i in {3,...,6}
\node (n\i) [boxb=red!60!white] {};
\foreach \i in {0,...,3}
\node at ([shift={(90:5.4cm)}]B.center) (n\i) [boxc=green!60!white] {};
\foreach \i in {0,...,3}
\node (l\i)at ($(0,-0.75)+({0.28*11},{-\i*1.5})$) [boxd=green!60!white] {};
\end{tikzpicture}
\end{document}