Por que os parênteses são necessários neste cálculo do TikZ?

Por que os parênteses são necessários neste cálculo do TikZ?

Estou criando um PDF de várias páginas com TikZ que será usado para uma animação. Ao fazer isso, recebo este erro:

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

Aqui está um exemplo de trabalho mínimo (MWE) que mostra o problema:

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

A execução do MWE produz o resultado desejado: um PDF simples de 11 páginas com uma seta se movendo pela tela. Agora, eu comento a linha

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

e descomente a linha

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

porque são matematicamente equivalentes. Recebo o erro mencionado anteriormente:

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

Pesquisei isso no Google em relação ao TikZ e todas as respostas dizem que são necessários colchetes em torno de um cálculo. No entanto, essa linha acima tem chaves, então não acho que esse seja o problema. Depois de tentar coisas diferentes, percebi que os parênteses \xiresolviam o problema:

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

Portanto, minha pergunta é por que os parênteses são necessários aqui? Como mencionei antes, pensei que se um cálculo estivesse entre chaves, nada mais especial seria necessário. Existe alguma documentação "oficial" que discuta isso? Por fim, sou novo no TikZ, então fique à vontade para melhorar meu código.

informação relacionada