尽管钛钾Z 手册明确指出,不应期望 PGF 的数学库非常精确,绘制函数时存在不连续性,ln
我发现异常地很大(不连续性发生在参数值 0.125 附近,大约为 0.03,这在图上非常明显——即使不是专门为显示错误而制作的图!)。更奇怪的是,当绘图值的密度变得足够高时,错误就会消失!请参阅以下 MWE 及其结果:
\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[x=500cm, y=50cm, thick]
\foreach \x in {0.120, 0.122, 0.124, 0.126, 0.128, 0.130}
\draw (\x, -2.13) -- +(0, -4pt) node[below]{\x};
\foreach \y in {-2.12, -2.10, -2.08, -2.06, -2.04, -2.02}
\draw (0.119, \y) -- +(-4pt, 0) node[left]{\y};
\draw[green] plot[domain=0.12:0.13, samples=95] (\x, {ln(\x)});
\draw[red] plot[domain=0.12:0.13, samples=94] (\x, {ln(\x)});
\end{tikzpicture}
\end{document}
有人可以解释一下发生了什么吗……?
答案1
我不知道这话从何而来,但是,最近的(适用于 3.1.8b,不适用于 3.1.5b) Ti钾Z/PGF 您可以使用以下fpu
版本ln
:
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{fpu}
\begin{document}
\begin{tikzpicture}[x=500cm, y=50cm, thick, /pgf/fpu/install only={ln}]
\foreach \x in {0.120, 0.122, 0.124, 0.126, 0.128, 0.130}
\draw (\x, -2.13) -- +(0, -4pt) node[below]{\x};
\foreach \y in {-2.12, -2.10, -2.08, -2.06, -2.04, -2.02}
\draw (0.119, \y) -- +(-4pt, 0) node[left]{\y};
\draw[green] plot[ domain=0.12:0.13, samples=95] (\x, {ln(\x)});
\draw[red] plot[ domain=0.12:0.13, samples=94] (\x, {ln(\x)});
\end{tikzpicture}
\end{document}