Dies ist eine Fortsetzung vondiese Frageüber Pfeile, die für die birationale Geometrie benötigt werden, mit der gleichen Grundannahme wiediese Frageüber xdashrightarrow
usw.
Ich brauche einen Pfeil wie xmapsto
, aber mit mapsto
gestricheltem Pfeil. Ich habe derzeit
\def\dashmapsto{\mapstochar\dashrightarrow}
das gibt den dashmapsto
Pfeil. Ich fände es toll, wenn ich eins xdashmapsto
dazu hätte.
Vielen Dank für Ihre Hilfe.
Antwort1
Ich habe einfach die beiden Antworten, die Sie zitieren, kombiniert, indem ich Davids Technik auf Heikos Code angewendet habe. Das Verdienst gebührt ihnen. Hier war meine Ergänzung zu Heikos Code:
\newcommand\xdashmapsto[2][]{\mathrel{\mapstochar\xdashrightarrow[#1]{#2}}}
Der einzige Kniff bestand darin, daran zu denken, Argumente auf die gleiche Weise zu verwenden, wie sie von verwendet wurden \xdashrightarrow
.
\documentclass{article}
\usepackage{amsfonts}
\usepackage{amsmath}
\newcommand\xdashmapsto[2][]{\mathrel{\mapstochar\xdashrightarrow[#1]{#2}}}
\makeatletter
\newcommand*{\da@rightarrow}{\mathchar"0\hexnumber@\symAMSa 4B }
\newcommand*{\da@leftarrow}{\mathchar"0\hexnumber@\symAMSa 4C }
\newcommand*{\xdashrightarrow}[2][]{%
\mathrel{%
\mathpalette{\da@xarrow{#1}{#2}{}\da@rightarrow{\,}{}}{}%
}%
}
\newcommand{\xdashleftarrow}[2][]{%
\mathrel{%
\mathpalette{\da@xarrow{#1}{#2}\da@leftarrow{}{}{\,}}{}%
}%
}
\newcommand*{\da@xarrow}[7]{%
% #1: below
% #2: above
% #3: arrow left
% #4: arrow right
% #5: space left
% #6: space right
% #7: math style
\sbox0{$\ifx#7\scriptstyle\scriptscriptstyle\else\scriptstyle\fi#5#1#6\m@th$}%
\sbox2{$\ifx#7\scriptstyle\scriptscriptstyle\else\scriptstyle\fi#5#2#6\m@th$}%
\sbox4{$#7\dabar@\m@th$}%
\dimen@=\wd0 %
\ifdim\wd2 >\dimen@
\dimen@=\wd2 %
\fi
\count@=2 %
\def\da@bars{\dabar@\dabar@}%
\@whiledim\count@\wd4<\dimen@\do{%
\advance\count@\@ne
\expandafter\def\expandafter\da@bars\expandafter{%
\da@bars
\dabar@
}%
}%
\mathrel{#3}%
\mathrel{%
\mathop{\da@bars}\limits
\ifx\\#1\\%
\else
_{\copy0}%
\fi
\ifx\\#2\\%
\else
^{\copy2}%
\fi
}%
\mathrel{#4}%
}
\makeatother
\begin{document}
\[ X \xdashmapsto{x} Y \xdashmapsto{\mathrm{longer}} Z
\xdashmapsto[\mathrm{underset}]{\mathrm{longer}} W
\]
\end{document}
Wenn man den Abstand nach dem Pfeil zu groß findet, kann man ihn mit einem kleinen negativen Abstand neu definieren als
\newcommand\xdashmapsto[2][]{\mathrel{\mapstochar\xdashrightarrow[#1]{#2}\!}}