为什么下面的代码不起作用?我也尝试了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