\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)를 생성하면 오류 가 발생합니다. 하지만 을 사용 하지 않고 (3) 을 직접 생성하면 괜찮을 것입니다 . 도움을 주셔서 대단히 감사합니다!\foreach\pic\draw(1)circle(1);local bounding box\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} 

여기에 이미지 설명을 입력하세요

관련 정보