要排版积分/微分 d,通常将其定义为\mathop{}\!d
。这是一个巧妙的技巧,如果前面是“常规的东西”,就像您在被积函数中所期望的那样,它会添加一个细空格,但如果它在开头,例如在 + 或 ( 之后,则不会添加。
现在我想要同样的条件空间行为,但具有不同的(稍大一些的)、理想情况下可配置的大小。
我尝试使用 mathbin 和 mathrel,但它们表现出不同的不良行为。
如何做呢?
编辑:MWE:
\documentclass{article}
\usepackage{amsmath}
\parindent 0pt
\begin{document}
\renewcommand*{\sp}{\mathop{}\!} %\, works
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathbin{}\negmedspace} %\: doesn't
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathrel{}\negthickspace} %\; doesn't
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathbin{}} %\:\: works, too big
Test: $a \sp a(\sp a + \sp a$. \newline
\end{document}
答案1
amsmath 命令\mspace
可以更广泛地用于在数学环境中更好地控制水平空间。请注意,该命令取决于数学字体大小。相反,\hspace
无论数学字体大小如何,该命令都会产生相同数量的空间。
回想一下,一个数学单位 (mu) 是 em 的 1/18。例如,在下面的代码块示例中的第一个示例(参考)中,负空间\!
等于 3 mu。当然,两个命令的方括号内的值\mspace
都\hspace
可以随意微调。
\documentclass{article}
\usepackage{amsmath}
\parindent 0pt
\begin{document}
\renewcommand*{\sp}{\mathop{}\!} %\ The Reference
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathop{}\hspace{-0.05em}} %\ 0.9 mu
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathop{}\hspace{-0.15em}} %\ 2.7 mu
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathop{}\hspace{-0.2em}} %\ 3.6 mu, slightly larger than the Reference
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathop{}\hspace{-0.3em}} %\ 5.4 mu
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathop{}\mspace{-3mu}} %\
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathop{}\mspace{-3.5mu}} %\ Slightly larger than the Reference
Test: $a \sp a(\sp a + \sp a$. \newline
\renewcommand*{\sp}{\mathop{}\mspace{-4mu}} %\
Test: $a \sp a(\sp a + \sp a$. \newline
\end{document}