数学中的分组(用于保持局部变化)

数学中的分组(用于保持局部变化)

使用\text\ensuremath,我可以将更改(间距)保留在数学组中。但我希望有更好的方法。它应该可以在有和没有 的情况下工作unicode-math

\documentclass{minimal}
\usepackage{amsmath}
\begin{document}
  $x A - (x-1)B - (x-1)C$

  \newcommand\mgroup[1]{\text{\ensuremath{#1}}}  % <-- is there a nicer way to do this?
  \newcommand\tight[1]{\mgroup{\thinmuskip=0mu\medmuskip=0mu\thickmuskip=0mu #1}}
  $x A - (\tight{x-1})B - (\tight{x-1})C$
\end{document}

在此处输入图片描述

答案1

TeX 在开始将数学列表转换为框和胶水时,使用公式结束时有效的和的值。因此,无法在同一公式中将这些参数设置为不同的值。您的技巧使用了不同的公式,这就是它有效的原因\thinmuskip\medmuskip\thickmuskip

这是一个简单的 TeX 示例,显示\thinmuskip它自动插入到\log和之间x

$\thinmuskip=10mu \log x+
{\thinmuskip=20mu \log x}+
\log x\thinmuskip=3mu$

\bye

如您所见,使用的值是标准值,该值已在最后重新建立:

在此处输入图片描述

如果我删除最后一个设置,我们会得到

在此处输入图片描述

其中使用的值为 10mu,因为在组结束时忘记了 20mu 的设置。

请注意,您的技巧可以更简单,\text{<settings>$<formula>$}因为\textTeX 内部处于(受限)水平模式。

相关内容