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

ここに画像の説明を入力してください

関連情報