绘制\pgfmathdeclarefunction
ed 函数时,图形会向右偏移,该偏移量与公式中调用该函数的次数成比例。
我已将初始代码归结为以下示例,该示例表现出以下行为:
\documentclass[12pt]{scrbook}
\usepackage{tikz,pgfplots}
\begin{document}
\pgfmathdeclarefunction{f}{1}{ \pgfmathparse{#1 * #1} }
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot {x + 2 * x * x}; %no shift (clearly centered
%\addplot {x + 2 * f(x)}; %little shift to the right
%\addplot {x + f(x) + f(x)}; %shifted nearly off the sheet
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
在这个例子中,在命令中编写函数显然很容易\addplot
。但我有一个更复杂的函数,它在各处使用,并将我的图移出页面。
我对 LaTex 还很陌生,可能在某个地方犯了错误,但我找不到它。那么这到底是什么问题呢?
答案1
这是因为您的函数定义中存在虚假空格。删除它们即可解决问题:
\documentclass[12pt]{scrbook}
\usepackage{tikz,pgfplots}
\begin{document}
\pgfmathdeclarefunction{f}{1}{%
\pgfmathparse{#1*#1}%
}
% or \pgfmathdeclarefunction{f}{1}{\pgfmathparse{#1*#1}}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot {x + 2 * x * x}; %no shift (clearly centered
\addplot {x + 3 * f(x)}; %little shift to the right
\addplot {x + f(x) + f(x) + f(x) + f(x)}; %shifted nearly off the sheet
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}