如果否则命令

如果否则命令

为什么下面的代码不起作用?我也尝试了renewcommand而不是def。 counter/\setcounter不提供宽度值,这就是我停止使用它的原因。 有什么想法可以解决这个问题吗? 我猜变量\mylen是字符串或类似的东西。

        \def\maxim{0}
        \pgfmathsetmacro\mylen{width("some te432xt")}
        \ifnum \maxim>\mylen {} \else \def\maxim{\mylen}
        \pgfmathsetmacro\mylen{width("Th2432")}
        \ifnum \maxim>\mylen {} \else \def\maxim{\mylen}

错误是(重复两次):

缺少 = 插入 \ifnum。 \ifnum \maxim`

答案1

上面的评论中给出了问题的原因。我建议继续使用 TeX 基元,因此不要使用 LaTeX 宏,\sbox而是使用基元\setbox。整个计算都可以用 dimens 完成,如果您希望在没有 dimens 的情况下获得结果,pt则可以通过\nopt以下代码中的定义将其删除:

\def\maxim{0pt}
\setbox0=\hbox{{some te432x}}
\ifdim \maxim<\wd0 \edef\maxim{\the\wd0}\fi
\setbox0=\hbox{{Th2432}}
\ifdim \maxim<\wd0 \edef\maxim{\the\wd0}\fi

\expandafter\def \expandafter\nopt \expandafter#\detokenize{1pt}{#1}
\edef\maxim {\expandafter\nopt\maxim}

result: \maxim

相关内容