内联计算在 PGFplots 中给出“无法解析输入”错误

内联计算在 PGFplots 中给出“无法解析输入”错误

编译代码时, PGFplots 中的内联计算exp(\tick)出现错误Could not parse input

\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{loglogaxis}
        [   
            log number format code/.code={\pgfmathprintnumber[sci,sci zerofill,precision=3]{exp(\tick)}}, % GIVES A 'COULD NOT PARSE INPUT' ERROR!
            xtick={1,100}
        ]
            \addplot[no marks,domain=10^0:10^5] {x};
        \end{loglogaxis}
    \end{tikzpicture}
\end{document}

我该如何解决这个问题?

答案1

正如宏名所暗示的那样,它是一个漂亮的打印机,而不是数学解析器。您需要在外部进行数学运算并将结果提供给它。但是,如果您进行常规的 TikZ 解析,数字太大而无法处理。因此,您需要打开 TikZfpu进行数学运算并将其关闭。

log number format code/.code={%
    \pgfkeys{/pgf/fpu}%
    \pgfmathparse{exp(\tick)}%
    \pgfmathprintnumber[sci,sci zerofill,precision=3]{\pgfmathresult}%
    \pgfkeys{/pgf/fpu=false}%
}

相关内容