将用户提供的 \hfuzz 值转换为 sp 有什么好处吗?

将用户提供的 \hfuzz 值转换为 sp 有什么好处吗?

我查看了fancyvrb代码。其中某一处定义了一个键,hfuzz 如下所示:

\define@key{FV}{hfuzz}{%
  \@tempdima=#1\relax
  \edef\fv_hfuzz{\number\@tempdima sp}}} 

\fvset{hfuzz=2pt}

将其转换为sp的原因是什么?

答案1

假设你这样做

\fvset{1em}

在序言中。

如果代码刚刚执行,那么使用点\def\fv_hfuzz{#1}的当前值em将被使用(可能受到某些\footnotesize或类似声明的影响)。

相反,中的代码fancyvrb.sty在定义点冻结了值。

如果输入如下内容,也会收到错误\fvset{hfuzz=2}

另一方面,

\edef\fv_hfuzz{\the\@tempdima}

就一样好了。

相关内容