Я столкнулся с проблемой \pic
и \foreach
в Tikz
. Ниже приведен MWE:
\documentclass[tikz]{standalone}
\tikzset{%
pics/abc/.style={%
code={
\node {this is some path};
}
}
}
\begin{document}
\begin{tikzpicture}
%local bounding box failed
\foreach \i in {1,2} \pic[local bounding box=\i] at (0,\i) {abc};
\draw(1)circle(1);
%local bounding box successful
\pic[local bounding box=3] at (10,4) {abc};
\draw(3)circle(1);
\end{tikzpicture}
\end{document}
Когда я произведу local bounding box
(1) и (2) с использованием \foreach
и \pic
, \draw(1)circle(1);
возникнет ошибка. Но когда я произведу local bounding box
(3) напрямую с использованием \pic
без \foreach
, \draw(3)circle(1);
все будет в порядке. Большое спасибо за любую помощь!
решение1
Вам нужны скобки и, возможно, вы захотите добавить /.expanded
ключ. Я сделал несколько дополнительных изменений, чтобы «модернизировать» ваш код.
\documentclass[tikz]{standalone}
\tikzset{%
pics/abc/.style={%
code={
\node {this is some path};
}
}
}
\begin{document}
\begin{tikzpicture}
%local bounding box failed
\path foreach \i in {1,2} {(0,\i) pic[local bounding box/.expanded=\i] {abc}};
\draw (1) circle [radius=1];
%local bounding box successful
\pic[local bounding box=3] at (10,4) {abc};
\draw(3)circle[radius=1];
\end{tikzpicture}
\end{document}