如何用 TeX 制作带有垂直笔划的箭头?

如何用 TeX 制作带有垂直笔划的箭头?

这确实很奇怪,但 LaTeX 似乎不包含任何带有垂直笔划的箭头(Unicode 字符 21F8)的标签,该标签在数学中用于表示集合之间的偏函数(如本文来自 Wiki.en)。您知道有什么解决方法吗?我尝试了类似

\newcommand{\pto}{\to\hspace{-xyz cm}\shortmid \hspace{xyz cm}}

(针对不同的 xyz 值)但结果并不令人满意。提前感谢您的帮助。

PS:符号应该适合数学方程式。

答案1

您可能希望\pfun在包中使用oz如概述中所述这里

答案2

这是一个可能的方法

\newcommand\pto{\mathrel{\ooalign{\hfil$\mapstochar$\hfil\cr$\to$\cr}}}

请注意,的定义oz.sty等同于

\newcommand\pfun{\mathrel{\ooalign{\hfil$\mapstochar\mkern5mu$\hfil\cr$\to$\cr}}}

因此它与前者的区别仅在于条形图左侧略微移动。


一个完整且更好的实现,也使用移位oz.sty;这个也适用于下标和上标。

\documentclass{article}

\makeatletter
\newcommand{\pto}{}% just for safety
\newcommand{\pgets}{}% just for safety

\DeclareRobustCommand{\pto}{\mathrel{\mathpalette\p@to@gets\to}}
\DeclareRobustCommand{\pgets}{\mathrel{\mathpalette\p@to@gets\gets}}

\newcommand{\p@to@gets}[2]{%
  \ooalign{\hidewidth$\m@th#1\mapstochar\mkern5mu$\hidewidth\cr$\m@th#1\to$\cr}%
}
\makeatother

\begin{document}

$A\pto B\pgets C$

$\scriptstyle A\pto B\pgets C$

\end{document}

在此处输入图片描述

答案3

使用unicode-math包(需要 XeTeX 或 LuaTeX)和适当的 Unicode 数学字体,您可以访问该 Unicode 箭头(以及大量其他 Unicode 数学符号):

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{XITS Math}

\begin{document}
$\nvrightarrow$
\end{document}

答案4

您可以使用Unicode:\char"21F8

在此处输入图片描述

另一个解决方案(我现在使用的)

% 来自 Z 符号的部分函数字符 \newcommand\pfun{\mathrel{\ooalign{\hfil$\mapstochar$\hfil\cr$\to$\cr}}}

相关内容