这确实很奇怪,但 LaTeX 似乎不包含任何带有垂直笔划的箭头(Unicode 字符 21F8)的标签,该标签在数学中用于表示集合之间的偏函数(如本文来自 Wiki.en)。您知道有什么解决方法吗?我尝试了类似
\newcommand{\pto}{\to\hspace{-xyz cm}\shortmid \hspace{xyz cm}}
(针对不同的 xyz 值)但结果并不令人满意。提前感谢您的帮助。
PS:符号应该适合数学方程式。
答案1
答案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}}}