缺少字符:使用 \addplot3 中的样本选项时,字体 nullfont! 中没有 . (U+002E)

缺少字符:使用 \addplot3 中的样本选项时,字体 nullfont! 中没有 . (U+002E)

有人能告诉我为什么使用该选项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非常小,这看起来毫无意义。

相关内容