如何左移到上一个符号的开头?

如何左移到上一个符号的开头?

我正在尝试这样做(这只是一个实验,而不是真实的案例):

\documentclass{article}
\begin{document}
$\mapsto\hspace{-1em}\pi$
\end{document}

我想\pi水平方向从箭头左侧的确切位置开始。当然,我不知道箭头的确切宽度。-1em上面代码中的宽度肯定是错误的。

答案1

问题是,您是想在较短的后面\pi还是较长的后面跟随下一个对象\mapsto。以下示例显示了两种变体:

\def\overlap#1#2{\overlapA{#1}{#2}}
\def\overlapA#1#2{\mathrel{\rlap{$#1$}}\mathrel{#2}}

test1: $a \overlap\mapsto \pi 123$.

\def\overlap#1#2{\overlapA{#2}{#1}}

test2: $a \overlap\mapsto \pi 123$.

答案2

应该是这个意思。

\documentclass{article}
\usepackage{amsmath,mathtools}
%\usepackage{newtxtext,newtxmath}

\newcommand{\smapsto}[1]{\mathrel{\mathrlap{#1}}\mapsto}

\begin{document}

$X \smapsto{\pi} Y$

\end{document}

在此处输入图片描述

如果你取消注释\usepackage{newtxtext,newtxmath},你会得到

在此处输入图片描述

您会发现,不同的字体对于字形的边界框有不同的想法。无论哪种情况,符号\mapstochar左侧的边距都比 短\pi

我们可以用一个可选参数来修复它,将符号向右移动(正参数)或向左移动(负参数)。

\documentclass{article}
\usepackage{amsmath,mathtools}
%\usepackage{newtxtext,newtxmath}

\newcommand{\smapsto}[2][0]{\mathrel{\mathrlap{\mspace{#1mu}#2}}\mapsto}

\begin{document}

$X \smapsto[1]{\pi} Y$

\end{document}

在此处输入图片描述

使用 NewTX

在此处输入图片描述

并且您可能希望将符号进一步向右移动。使用

$X \smapsto[1.5]{\pi} Y$

你得到

在此处输入图片描述

既然您热衷于实验,为什么不尝试以下操作呢?

\documentclass{article}
\usepackage{amsmath,mathtools}
%\usepackage{newtxtext,newtxmath}

\newcommand{\smapsto}[2][0]{\mathrel{\mathrlap{\mspace{#1mu}\mathop{#2}}}\mapsto}

\begin{document}

$X \smapsto[1]{\pi} Y$

\end{document}

该符号将相对于箭头杆所在的数学轴垂直居中。

在此处输入图片描述

相关内容