Falha ao usar a caixa delimitadora local produzida por \foreach e \pic

Falha ao usar a caixa delimitadora local produzida por \foreach e \pic

Fui confrontado com um problema de \pice \foreachem Tikz. Abaixo está um 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} 

Quando eu produzo local bounding box(1) e (2) usando \foreache \pic, \draw(1)circle(1);causará erro. Mas quando eu produzir o local bounding box(3) diretamente usando \picsem \foreach, \draw(3)circle(1);ficará tudo bem. Muito obrigado por qualquer ajuda!

Responder1

Você precisa de colchetes e pode querer adicionar a /.expandedchave. Fiz diversas alterações adicionais para "modernizar" seu código.

\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} 

insira a descrição da imagem aqui

informação relacionada