遵循 MWE 不起作用:
\documentclass{article}
\usepackage{calc}
\newlength{\charwidth}
\setlength{\charwidth}{\widthof{$-$}}
\begin{document}
\centering $\infty$
\centering \hspace{-\charwidth}$-\infty$
\centering \hspace{-\widthof{$-$}}$-\infty$
\end{document}
\hspace{-\widthof{$-$}}
引发以下错误
! Missing number, treated as zero. <to be read again> \widthof l.10 \centering \hspace{-\widthof{$-$}} $-\infty$ ?
是否有可能在不定义新长度的情况\widthof
下插入负数?\hspace
答案1
此答案在 TexLive 2019 和 2013 中有效,但在 2016 中无效。使用时请自负风险。
我只是调整了@DavidCarlisle 的答案。-widthof{$-$}
我没有直接定义,而是从零中减去它0pt-widthof{$-$}
(结果应该相同;))
\width_
以下是从命令 中获取负长度的方法\setlength{\dimen0}{0pt-\widthof{$-$}}\hspace{\dimen0}
所以你的代码看起来像这样
\documentclass{article}
\usepackage{calc}
\newlength{\charwidth}
\setlength{\charwidth}{\widthof{$-$}}
\begin{document}
\centering $\infty$
\centering \hspace{-\charwidth}$-\infty$
\centering \setlength{\dimen0}{0pt-\widthof{$-$}}\hspace{\dimen0}$-\infty$
\end{document}
从技术上来说,正如 David 指出的那样,虽然使用了临时寄存器,但并没有定义新的长度。
上帝保佑你们。
版本:添加了结果图像