数学表达式中的多余空格

数学表达式中的多余空格

有人知道为什么下面的代码在下面的数学表达式中添加了一个额外的空格吗?

这个例子

\documentclass{article}
\usepackage{mathtools}

\NewDocumentCommand\withouthspace{m m}{%
    \frac{d#1}{d#2}}
\NewDocumentCommand\withhspace{O{0pt} m m}{%
    \frac{d\hspace{#1}#2}{d\hspace{#1}#3}}   % <--- adds extra space


\begin{document}
\parindent=0pt

\begin{equation*}
    \begin{split}
        \withouthspace{f(x)}{x} \\
        \withhspace{f(x)}{x}
    \end{split}
\end{equation*}

aaa\hspace{0pt}bbb.          % <--- no extra space

\(aaa\hspace{0pt}bbb\).      % <--- no extra space
\end{document}

在此处输入图片描述

答案1

你可以将示例简化为

\documentclass{article}

\showoutput


\begin{document}


$df$ $d\hspace{0pt}f$
\end{document}

产生

....\mathon
....\OML/cmm/m/it/10 d
....\kern-1.66667
....\OML/cmm/m/it/10 f
....\kern1.0764
....\mathoff
....\glue 3.33333 plus 1.66666 minus 1.11111
....\mathon
....\OML/cmm/m/it/10 d
....\glue 0.0
....\OML/cmm/m/it/10 f
....\kern1.0764
....\mathoff

第二种情况下插入的 0pt 粘连会抑制 d 和 f 之间字体指定的负字距

您在示例中看不到它ab,但在文本模式下可以看到它,比如说,字体Va的字距也为负值cmr

相关内容