mathtools 中的 mu = 非法单位?

mathtools 中的 mu = 非法单位?

我正在尝试medmuskip使用时进行更改mathtools

\documentclass{article}
\usepackage{mathtools}
\setlength{\medmuskip}{0mu}
\begin{document}
\end{document}

但这会导致错误:

! Illegal unit of measure (pt inserted).
<to be read again>
                   m
l.3 \setlength{\medmuskip}{0mu}

即使没有数学工具,这个也可以工作。

为什么?我应该怎么做才能改变medmuskip

答案1

按照通常的定义,\setlength{<parameter>}{<value>}它只是

<parameter>=<value>\relax

所以

\setlength{\medmuskip}{0mu}

是合法的,因为它可以转化为

\medmuskip=0mu\relax

这是完全合法的,因为\medmuskip应该只以mu单位分配值(对于和部分也包括filfillfilll单位)。plusminus

然而,当calc加载时(这是所要求的mathtools),\setlength含义会发生变化,并且不再允许使用 mu 单位,因为calc仅面向标准长度。

除了自己定义一个包装器之外,你没有什么可以做的:

\newcommand{\setmuskip}[2]{#1=#2\relax}

并做

\setmuskip{\medmuskip}{0mu}

或者说

\setmuskip{\medmuskip}{4mu plus 2mu minus 4mu}

(这是默认值)。

相关内容