LaTeX3 函数产生的非法测量单位

LaTeX3 函数产生的非法测量单位

我使用了该功能

\cs_new:Npn\宽度{168/(1+\thecnt)}

计算长度,其中cnt是一个计数器,168 实际上是 A4 纸的宽度(以毫米为单位)乘以 0.8。

现在

\setlength{\tabcolsep}{\宽度 mm}{\begin{tabular}...\end{tabular}

存在非法单位测量的错误。

经过一些“调试”后,我发现问题在于+/没有被解释为运算符。这意味着\宽度返回168/(1+2)而不是 56。

答案1

您需要在使用时解释其价值,因为其价值当然cnt会有所不同。

這與 沒有任何關係expl3

\newcommand{\宽度}{168/(1+\value{cnt})}

\setlength{\tabcolsep}{\fpeval{\宽度}mm}

会按照你的意愿完成。你需要一个较新的 LaTeX 版本(2021 年 10 月);对于较旧的版本,请执行\usepackage{xfp}

相关内容