
在下面的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