\ifnum 和 pgfmath:错误

\ifnum 和 pgfmath:错误

在以下示例中,我想使用 \ifnum 来比较由 pgfmath 计算的两个数字,为​​简单起见,我在以下示例中仅使用 1 和 2。编译此代码时出现错误:

    ERROR: Missing = inserted for \ifnum.

--- TeX said ---
<to be read again> 
                   .
l.11    \ifnum \one
                   <\two
--- HELP ---
From the .log file...

I was expecting to see `<', `=', or `>'. Didn't.

例如:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}


\begin{tikzpicture}
   \pgfmathsetmacro{\one}{1};
   \pgfmathsetmacro{\two}{2};
   \ifnum \one<\two
   \draw (0,0) -- (0,1);
   \fi
\end{tikzpicture}

知道如何解决这个问题吗?

答案1

\ifnum比较整数。 存储的结果始终包含小数部分,即使对于整数也是如此,因此在这种情况下\pgfmathsetmacro您必须使用:\pgfmathtruncatemacro

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
   \pgfmathtruncatemacro\one{1}
   \pgfmathtruncatemacro\two{2}
   \ifnum\one<\two
   \draw (0,0) -- (0,1);
   \fi
\end{tikzpicture}
\end{document}

相关内容