在乳胶中连接字符,字符之间没有可见的空格

在乳胶中连接字符,字符之间没有可见的空格

我想插入一个字符,使其具有宽度。

作为一个玩具示例,考虑\rightarrow\leftarrow 在中间我想插入一个(比如说)\bullet,但是水平空间。

我知道这\rightarrow\!\!\!\bullet\!\!\!\leftarrow大致能完成工作,但只针对这个特定的角色。

在一般情况下,如何进行这种构造?

答案1

一般的解决方案是使用可选的宽度参数makebox

\makebox[0pt]{\textbullet}

但是如果你这样做

\(\leftarrow\makebox[0pt]{\textbullet}\rightarrow\)

你仍然会在箭头末端得到一些小空间(因为这是你通常想要的)。所以你可能仍然需要一些负空间,除非你想调整数学原子本身的类型,就像这样

\(\mathord{\leftarrow}\makebox[0pt]{\textbullet}\mathord{\rightarrow}\)

如果你想把整个事情变成一个二元运算符,你可以这样做

\newcommand\spaceship{\ensuremath
   \mathbin{\mathord{\leftarrow}\makebox[0pt]{\textbullet}\mathord{\rightarrow}}}

\(a\spaceship b\)

在此处输入图片描述

请注意,这些符号实际上重叠,而不是相邻。如果您像示例中最初那样旋转箭头,这一点会更加明显。

\newcommand\spider{\ensuremath
    \mathbin{{\rightarrow}\makebox[0pt]{\textbullet}{\leftarrow}}}

\( a\spaceship b\) and  \( c\spider d\)

在此处输入图片描述

正如评论中指出的那样,该\mathord命令也不是严格必要的;您只需用括号括住子公式即可达到相同的效果,如第二个示例所示。

makebox还要注意,即使 a 的内容位于数学公式的中间,它的内容也是以水平模式设置的,因此使用\textbullet而不是\bullet

答案2

这主要取决于它应该放在哪里。如果需要像你给出的例子那样的数学符号,那么

\[
\leftarrow\joinrel\mathrel{\bullet}\joinrel\rightarrow
\]

就足够了。我利用了 TeX 在连续的相对原子;\joinrel是一个小的退格被认为是相对原子(用于构建长箭头,用减号连接箭头)。整个构造(可能您想将其打包在宏中)就其周围的间距而言被视为关系符号。如果您需要它作为垃圾桶原子,然后使用它作为的参数\mathbin

在此处输入图片描述

指向相反方向的箭头也是一样的:

\[
\rightarrow\joinrel\mathrel{\bullet}\joinrel\leftarrow
\]

在此处输入图片描述

在某些情况下,需要判断备份量。 的定义\joinrel

\mathrel{\mkern -3mu}

并且很容易根据此调整金额。例如

\[
\rightarrow\mathrel{\mkern -2mu}\mathrel{\bullet}\mathrel{\mkern -2mu}\leftarrow
\]

会给

在此处输入图片描述

必须考虑相对形状,因此无法给出一般规则。

相关内容