![루프(\foreach)로 정의된 함수는 tikz 그림을 멀리 만듭니다.](https://rvso.com/image/449623/%EB%A3%A8%ED%94%84(%5Cforeach)%EB%A1%9C%20%EC%A0%95%EC%9D%98%EB%90%9C%20%ED%95%A8%EC%88%98%EB%8A%94%20tikz%20%EA%B7%B8%EB%A6%BC%EC%9D%84%20%EB%A9%80%EB%A6%AC%20%EB%A7%8C%EB%93%AD%EB%8B%88%EB%8B%A4..png)
다음 MWE에서 tikz 그림은 종이 외부에 있습니다. 10을 더 큰 숫자로 바꾸면 그림이 더 오른쪽으로 이동합니다. 어떤 아이디어?
\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}
답변1
주석에서 언급한 대로 백분율 기호를 추가합니다. (이 경우 TeX 규칙으로 인해 퍼센트 기호 중 하나를 생략할 수 있지만 이 특별한 경우에는 모두 포함해도 괜찮습니다.)
\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}
또는 expl3 구문을 사용하지만 이는 무시됩니다.모든 공간그리고 몇 가지 다른 변경 사항을 수행하므로 수행할 작업을 알고 있는지 확인하세요.
\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