负数 `\widthof` 不起作用?

负数 `\widthof` 不起作用?

我基本上是在重复同样的问题这里,至今仍未得到任何明确的答案。

我重述这个问题。MWE

\documentclass{book}

\usepackage{calc}

\begin{document}
    \hspace{-\widthof{abc}}
\end{document}

产生以下错误:

6: Missing number, treated as zero. \hspace{-\widthof{abc}}
6: Illegal unit of measure (pt inserted). \hspace{-\widthof{abc}}
6: Package calc Error: `\widthof ' invalid at this point. \hspace{-\widthof{abc}}

问题:

  1. \hspace确实会取负值并\widthof产生长度,那么为什么它不起作用呢?
  2. 有没有一种方法可以实现预期目标,而不必诉诸繁琐\newlength和繁琐setlength

答案1

答案包含在引用的重复中,但有些隐藏,因为在提出该问题时根本\hspace不支持calc,所以甚至\hspace{1pt+2pt}会失败。

一元减法尚未实现,\widthof但是中缀减法已实现,因此您可以从 0pt 中减去:

在此处输入图片描述

\documentclass{book}

\usepackage{calc}

\begin{document}

abc\hspace{0pt-\widthof{abc}}xyz

\end{document}

相关内容