避免在 pgfmathparse 条件赋值中使用零对数

避免在 pgfmathparse 条件赋值中使用零对数

如何避免! Package PGF Math Error: I cannot calculate the logarithm of '0' (in ' 0>1 ? ln(0) : 0').以下代码中的错误消息?如果可能的话,我想用一个来评估该语句\pgfmathparse{...}

\documentclass{article}
\usepackage{tikz}
\begin{document}
\def\var{0}
\pgfmathparse { \var>1 ?   ln(\var)  : \var}\pgfmathresult
\end{document}

答案1

您可以在 ln 中添加另一个保护并给出一个安全值(此处为 1),使用什么非错误值并不重要,因为它不会影响外部保护的结果

\documentclass{article}
\usepackage{tikz}
\begin{document}
\def\var{0}
\pgfmathparse { \var>1 ?   ln(\var>1 ? \var:1)  : \var}\pgfmathresult

\def\var{1}
\pgfmathparse { \var>1 ?   ln(\var>1 ? \var:1)  : \var}\pgfmathresult


\def\var{2}
\pgfmathparse { \var>1 ?   ln(\var>1 ? \var:1)  : \var}\pgfmathresult

\end{document}

相关内容