强制 LaTeX 仅使用 + 号右侧的二进制运算间距

强制 LaTeX 仅使用 + 号右侧的二进制运算间距

我想要排版‘+1’,就像我们在 TeX-LaTeX Stack Exchange 上写的那样。

现在,在我看来,这里的“+”是一个二元运算符。我实际上是在某个东西上加 1。我并不是用它来表示 1 的正性,而是用它来表示加法运算。但是,我没有说明我在什么地方加了 1。(这是对帖子的点赞,但我们不写“帖子 + 1”,我们只写“+1”)。

如果我输入,+1我会得到

在此处输入图片描述

这是一元运算间距。我试过了$\mathbin{+} 1$,但什么也没做:

在此处输入图片描述

接下来我尝试{} + 1使用正确的二进制运算间距,但在“+”号前添加了间距,给我一个很小的前导空格。我实际上并不想要这个,因为我没有说明我要将 1 添加到什么。我想要“+”号后的空格,而不是之前的空格,我认为这是正确的。我可以添加手动、视觉校正,但我不确定要使用什么值,并且会更喜欢如果存在的话,一个不那么快速和肮脏的解决方案。

在此处输入图片描述

上图代码:

${} +1$ \\
$+1$

答案1

您有以下几种选择:

在此处输入图片描述

\documentclass{article}
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
${} +1$

${}\mkern-\medmuskip+1$

$+\:1$

$+1$
\end{document}

答案2

这就是它,用纯 TeX 实现(对于 LaTeX,只需使用\newcommand代替,如果您还加载 ,则使用 代替)。\def\mspace{-\medmuskip}\mskip-\medmuskipamsmath

\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和收缩组件不会取消,因此它们可以起作用:并且它们确实起作用了。

在此处输入图片描述

相关内容