有人能告诉我为什么使用该选项samples=10
会\addplot3
发出几个Missing character: There is no ... in font nullfont!
警告吗?
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3[samples=10] {sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}
编辑(daleif)完整的错误是
Missing character: There is no . in font nullfont!
Missing character: There is no 0 in font nullfont!
Missing character: There is no 1 in font nullfont!
Missing character: There is no p in font nullfont!
Missing character: There is no t in font nullfont!
答案1
这是一个错误。 pgfplots 使用\ifnum
而不是\ifdim
:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\makeatletter
\def\pgfplotsforeachtodomain@@.#1\relax{%
\pgf@xa=0.#1pt %
\ifdim\pgf@xa>0.01pt % % <----corrected \ifdim instead of ifnum
\def\pgfplotsretval{}%
\def\pgfplotsretvalb{}%
\else
\edef\pgfplotsretvalb{\the\c@pgf@counta}%
\fi
}%
\makeatletter
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3[samples=10] {sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}
警告:我并不完全确定 pgfplots 在这里测试的是什么,以及使用是否\ifdim
给出了预期的结果。\ifnum
使用单位将长度转换为数字sp
,因此测试始终为真,除非#1
非常小,这看起来毫无意义。