![Funções definidas com um loop (\foreach) fazem com que a imagem do tikz vá longe](https://rvso.com/image/449623/Fun%C3%A7%C3%B5es%20definidas%20com%20um%20loop%20(%5Cforeach)%20fazem%20com%20que%20a%20imagem%20do%20tikz%20v%C3%A1%20longe.png)
No MWE a seguir, a imagem do tikz está fora do papel. Quando substituo 10 por um número maior, as imagens vão ainda mais para a direita. Qualquer ideia ?
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfmathdeclarefunction{myfunction}{1}{
\let\x\pgfmathresult
\pgfmathsetmacro\ret{0}
\foreach \i in {1,...,10}{
\pgfmathsetmacro\ret{\ret + \x^\i}
\xdef\ret{\ret}
}
\pgfmathparse{\ret}
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=middle, domain=-1:1]
\addplot[domain=-1:1, blue, samples=10] {myfunction(x)};
\end{axis}
\end{tikzpicture}
\end{document}
Responder1
Conforme mencionado no comentário, adicione sinais de porcentagem. (um dos sinais de porcentagem pode ser omitido neste caso sem nenhum dano por causa das regras do TeX, mas neste caso específico não há problema em ter todos eles também.)
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfmathdeclarefunction{myfunction}{1}{%
\let\x\pgfmathresult
\pgfmathsetmacro\ret{0}%
\foreach \i in {1,...,10}{%
\pgfmathsetmacro\ret{\ret + \x^\i}%
\xdef\ret{\ret}%
}%
\pgfmathparse{\ret}%
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=middle, domain=-1:1]
\addplot[domain=-1:1, blue, samples=10] {myfunction(x)};
\end{axis}
\end{tikzpicture}
\end{document}
Como alternativa, use a sintaxe expl3, mas isso ignoratodos os espaçose faz algumas outras alterações, portanto, saiba o que fazer.
\ExplSyntaxOn
\pgfmathdeclarefunction{myfunction}{1}{
\let\x\pgfmathresult
\pgfmathsetmacro\ret{0}
\foreach \i in {1,...,10}{
\pgfmathsetmacro\ret{\ret + \x^\i}
\xdef\ret{\ret}
}
\pgfmathparse{\ret}
}
\ExplSyntaxOff