Не удалось использовать локальный ограничивающий прямоугольник, созданный \foreach и \pic

Не удалось использовать локальный ограничивающий прямоугольник, созданный \foreach и \pic

Я столкнулся с проблемой \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} 

введите описание изображения здесь

Связанный контент