我想要排版‘+1’,就像我们在 TeX-LaTeX Stack Exchange 上写的那样。
现在,在我看来,这里的“+”是一个二元运算符。我实际上是在某个东西上加 1。我并不是用它来表示 1 的正性,而是用它来表示加法运算。但是,我没有说明我在什么地方加了 1。(这是对帖子的点赞,但我们不写“帖子 + 1”,我们只写“+1”)。
如果我输入,+1
我会得到
这是一元运算间距。我试过了$\mathbin{+} 1$
,但什么也没做:
接下来我尝试{} + 1
使用正确的二进制运算间距,但在“+”号前添加了间距,给我一个很小的前导空格。我实际上并不想要这个,因为我没有说明我要将 1 添加到什么。我想要“+”号后的空格,而不是之前的空格,我认为这是正确的。我可以添加手动、视觉校正,但我不确定要使用什么值,并且会更喜欢如果存在的话,一个不那么快速和肮脏的解决方案。
上图代码:
${} +1$ \\
$+1$
答案1
答案2
这就是它,用纯 TeX 实现(对于 LaTeX,只需使用\newcommand
代替,如果您还加载 ,则使用 代替)。\def
\mspace{-\medmuskip}
\mskip-\medmuskip
amsmath
\overfullrule=0pt % don't print the overfull rule
\def\addone{\mathord{}\mskip-\medmuskip+1}
%%% LaTeX+amsmath version
%%\newcommand{\addone}{\mathord{}\mspace{-\medmuskip}+1}
``$\addone$''
X\hbox to 0pt{$\addone$}\qquad X\hbox to 50pt{$\addone$}
\def\badaddone{{}\mkern-\medmuskip+1}
``$\badaddone$''
X\hbox to 0pt{$\badaddone$}\qquad X\hbox to 50pt{$\badaddone$}
\bye
在第一部分中,我定义了命令:它插入一个普通符号,然后是一个数学跳过,以抵消二进制原子自动插入的跳过,然后+
是最后1
。这三个示例展示了自然尺寸、最大收缩和夸张拉伸下的行为。
\mskip
第二部分讨论了和之间的区别\mkern
。由于\medmuskip
通常包含可拉伸和可收缩的粘合,因此区分这两者很重要,示例说明了原因。拉伸\mkern-\medmuskip
和收缩组件不会取消,因此它们可以起作用:并且它们确实起作用了。