可以裁剪字形吗?

可以裁剪字形吗?

我想进行裁剪\rightarrow,保留箭头头部,但尾部缩短。我想要一个短尾右箭头“ \shortrightarrow”的原因是我的最终目标:获得与原始箭头宽度相同的双头箭头。

在里面来源2e \rightarrow定义如下:

393 \DeclareMathSymbol{\rightarrow}{\mathrel}{symbols}{"21} 

有关的:\twoheadrightarrow 上的箭头

使用“ \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}

在此处输入图片描述

相关内容