当我想将尺寸变量与当前线宽进行比较时,我使用以下 MWE 代码:
\documentclass{article}
\begin{document}
\ExplSyntaxOn
\dim_new:N \l_line_width_dim
\dim_set_eq:NN \l_line_width_dim \linewidth
\ExplSyntaxOff
\linewidth
\end{document}
但我发现使用后\dim_set_eq
,\linewidth
并\textwidth
失败,并且消息是
Missing number,treated as zero.
和
Illegal unit of measure (pt inserted).
我不知道它出了什么问题。
答案1
如果删除从\ExplSyntaxOn
到的代码\ExplSyntaxOff
,您会得到同样的错误。
这是因为\linewidth
是长度寄存器的名称;当 TeX 需要长度时,你可以单独使用它,例如
\setlength{\mylength}{0.5\linewidth}
或者
\parbox{\linewidth}{...}
当然也
\dim_set_eq:NN \l_line_width_dim \linewidth
因为需要一个长度寄存器。
如果脱离上下文使用,TeX 的语法规则会让它认为你想要分配一个值至\linewidth
,因此出现缺少数字的错误消息。
如果你想打印的当前值\linewidth
,你需要
\the\linewidth