我想进行裁剪\rightarrow
,保留箭头头部,但尾部缩短。我想要一个短尾右箭头“ \shortrightarrow
”的原因是我的最终目标:获得与原始箭头宽度相同的双头箭头。
在里面来源2e \rightarrow
定义如下:
393 \DeclareMathSymbol{\rightarrow}{\mathrel}{symbols}{"21}
使用“ \shortrightarrow
”,我可以轻松构建与原始箭头宽度相同的所需双头右箭头。(nb\twoheadrightarrow
箭头太小;上面相关链接中提供的答案与原始箭头的宽度不一样\rightarrow
)
我试图调查\xrightarrow
是如何定义的,希望能够修改代码,以便获得短尾的\rightarrow
。不幸的是,我发现代码使用\cleaders
来渲染 的多个副本\relbar
,所以我的调查结束了。
现在我向 TeX 社区寻求建议。是否可以裁剪字形?
编辑:我想提供一个示例,说明我如何设法创建自定义\hookrightarrow
,以便宽度与 相同\rightarrow
。我的最终目标是受我最近定义 的能力的激励\inj
。(inj 是 injection 的缩写;双头箭头将用于 surjection 'surj')
\newcommand{\inj}{\mathrel{\mathpalette\inj@{}}}
\newcommand{\inj@}[2]{\sbox0{$\m@th#1\lhook$}\ooalign{%
$\m@th#1\rightarrow$\cr
\smash{\fboxrule=0pt\fboxsep=0pt\fcolorbox{red}{white}{$\m@th#1\lhook\kern-.333\wd0$}}}}
答案1
使用trimclip
:
\documentclass{article}
\usepackage{amsmath,trimclip}
\makeatletter
\newcommand{\tworightarrow}{\mathrel{\text{\two@rightarrow}}}
\newcommand{\two@rightarrow}{%
\sbox0{$\m@th\rightarrow$}%
\smash{\rlap{\kern0.1\wd0 \clipbox{{.3\width} {-\height} 0pt {-\height}}{$\m@th\rightarrow$}}}%
$\m@th\rightarrow$%
}
\setlength{\fboxsep}{0pt}\setlength{\fboxrule}{0.1pt}% just for the example
\begin{document}
\fbox{$\rightarrow$}
\fbox{$\tworightarrow$}
$a\rightarrow b$
$a\tworightarrow b$
$\tworightarrow \quad \scriptstyle \tworightarrow \quad \scriptscriptstyle \tworightarrow$
\end{document}