이 TikZ 계산에 괄호가 필요한 이유는 무엇입니까?

이 TikZ 계산에 괄호가 필요한 이유는 무엇입니까?

애니메이션에 사용될 TikZ를 사용하여 여러 페이지로 구성된 PDF를 만들고 있습니다. 그렇게 하는 동안 다음 오류가 발생합니다.

! Missing number, treated as zero.
<to be read again> 

다음은 문제를 보여주는 최소 작업 예제(MWE)입니다.

\documentclass[tikz]{standalone}

\begin{document}

\def\timesteps{10}                                                                                                                        
\foreach \timestep in {0,1,...,\timesteps} {
  \begin{tikzpicture}

    \path[draw] (0, 0) circle (1);

    \def\initialx{-1};
    \def\initialy{0};
    \def\finalx{0.9};
    \def\finaly{0};
    \def\length{0.1};

    \def\xi{{\initialx+(\finalx-\initialx)*(\timestep/\timesteps)}};
    \def\yi{{\initialy+(\finaly-\initialy)*(\timestep/\timesteps)}};

    \def\xf{{\initialx+(\finalx-\initialx)*(\timestep/\timesteps)+\length}}; % This line works ...                                        
    %\def\xf{{\xi+\length}}; % ... but this line does not ...                                                                             
    %\def\xf{{(\xi)+\length}}; % ... unless there are parentheses                                                                         
    \def\yf{{\yi}};

    \path[draw, ->] (\xi, \yi) -- (\xf, \yf);

  \end{tikzpicture}
}

\end{document}

MWE를 실행하면 원하는 출력이 생성됩니다. 즉, 화면을 가로질러 움직이는 화살표가 포함된 간단한 11페이지 PDF입니다. 이제 해당 줄을 주석 처리합니다.

\def\xf{{\initialx+(\finalx-\initialx)*(\timestep/\timesteps)+\length}};

그리고 그 줄의 주석을 해제하세요

\def\xf{{\xi+\length}};

수학적으로 동일하기 때문입니다. 이전에 언급한 오류가 발생합니다.

! Missing number, treated as zero.
<to be read again> 

나는 TikZ와 관련하여 이것을 검색했는데 모든 답변에 따르면 계산 주위에 중괄호가 필요하다고 나와 있습니다. 그러나 위의 줄에는 중괄호가 있으므로 그것이 문제라고 생각하지 않습니다. 여러 가지 시도를 한 후에 괄호를 사용하면 \xi문제가 해결된다는 것을 알았습니다 .

\def\xf{{(\xi)+\length}};

그러므로 제 질문은 왜 여기에 괄호가 필요한가요? 앞서 언급했듯이 중괄호 안에 계산이 포함되어 있으면 다른 특별한 것은 필요하지 않다고 생각했습니다. 이에 대해 논의하는 "공식" 문서가 있습니까? 마지막으로 저는 TikZ를 처음 사용하므로 자유롭게 코드를 개선해 보세요.

관련 정보