2

The symbol \Rrightarrow produces an implication with three lines; the symbol \Mapsto produces an implication with two lines and a "stopper" (a vertical line which marks the beginning of the implication).

How can I add a stopper to \Rrightarrow to produce a three-line implication "with a beginning"? If any clarification is needed, I will gladly provide an example picture.

Thank you!

1
  • Where do you get \Rrightarrow from? Can you make a short example of code?
    – egreg
    Jan 18, 2023 at 21:09

2 Answers 2

2

You can build a symbol by adding a vertical line before a \Rrightarrow.

\documentclass{article}
\usepackage{amsmath, amssymb}
\makeatletter
\newlength{\arrowdepth}
\newlength{\arrowheight}
\newcommand*{\Mmapsto}{%
    \settodepth{\arrowdepth}{$\Rrightarrow$}
    \settoheight{\arrowheight}{$\Rrightarrow$}
    \addtolength{\arrowheight}{\arrowdepth}
    \mathrel{%
        \rule[-\arrowdepth]{\fontdimen8\textfont 3}{\arrowheight}%
        \mkern-1.5mu%
        {\Rrightarrow}%
    }%
}
\makeatother
\begin{document}
\(A \Rrightarrow B\)

\(A \Mmapsto B\)
\end{document}
1

You can fake it:

\documentclass{article}
\usepackage{amsmath,amssymb,pict2e}

\makeatletter
\NewDocumentCommand{\Mmapsto}{}{%
  \mathrel{\mathpalette\Mmapstochar@\Rrightarrow}%
  \Rrightarrow
}
\NewDocumentCommand{\Mapsto}{}{%
  \mathrel{\mathpalette\Mmapstochar@\Rightarrow}%
  \Rightarrow
}

\newcommand{\Mmapstochar@}[2]{%
  \vcenter{%
    \sbox\z@{$#1#2$}%
    \setlength{\unitlength}{1.8\dimexpr\Mmapstochar@ht{#1}+\dp\z@\relax}
    \hbox to \z@{%
      $\m@th#1\mkern1.3mu\nonscript\mkern-0.3mu$%
      \Mmapstochar@thickness{#1}%
      \begin{picture}(0,1)
      \roundcap
      \Line(0,0)(0,1)
      \end{picture}\hss
    }%
  }%
}

\newcommand{\Mmapstochar@ht}[1]{%
  \fontdimen22
    \ifx#1\displaystyle\textfont\else
    \ifx#1\textstyle\textfont\else
    \ifx#1\scriptstyle\scriptfont\else
    \scriptscriptfont\fi\fi\fi 2
}

\newcommand{\Mmapstochar@thickness}[1]{%
  \linethickness{%
    \fontdimen8
      \ifx#1\displaystyle\textfont\else
      \ifx#1\textstyle\textfont\else
      \ifx#1\scriptstyle\scriptfont\else
      \scriptscriptfont\fi\fi\fi 3
  }%
}
\makeatother

\begin{document}

$A\Rrightarrow B \Rightarrow C$

$A\Mmapsto B \Mapsto C$

$\scriptstyle A\Mmapsto B \Mapsto C$

$\scriptscriptstyle A\Mmapsto B \Mapsto C$

\end{document}

Not perfect in \scriptscriptstyle, but I guess you're not going that deep.

Remember to load fixcmex if you use lmodern. Other symbol fonts than ammsymb may need some tweaking.

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .