I need to insert a harpoon arrow up with a dash, that can be both at the beginning or at the end of the arrow.
I've found this method but it only allows me to insert normal arrows.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\makeatletter
\newcommand@erelb@r[1]{%
\mathrel{\tikz[baseline=-.5ex]\draw[#1] (0,0)--(0.3,0);}
}
% 0 is for nothing
% 1 is for arrowhead
% 2 is for bar
% 3 is for both
\newcommand{\erelbar}[1]{@erelbar#1}
\def@erelbar#1#2{%
\ifcase\numexpr#1*4+#2\relax
@erelb@r{-}\or % 00
@erelb@r{->}\or % 01
@erelb@r{-|}\or % 02
@erelb@r{->|}\or % 03
@erelb@r{<-}\or % 10
@erelb@r{<->}\or % 11
@erelb@r{<-|}\or % 12
@erelb@r{<->}\or % 13
@erelb@r{|-}\or % 20
@erelb@r{|->}\or % 21
@erelb@r{|-|}\or % 22
@erelb@r{|<->|}\or % 23
@erelb@r{|<-}\or % 30
@erelb@r{|<->}\or % 31
@erelb@r{|<-|}\or % 32
@erelb@r{|<->|} % 33
\else
@wrong
\fi
}
\makeatother
\begin{document}
$a\erelbar{11}b$
$\begin{array}{cccc}
\erelbar{00} & \erelbar{10} & \erelbar{20} & \erelbar{30} \
\erelbar{01} & \erelbar{11} & \erelbar{21} & \erelbar{31} \
\erelbar{02} & \erelbar{12} & \erelbar{22} & \erelbar{32} \
\erelbar{03} & \erelbar{13} & \erelbar{23} & \erelbar{33} \
\end{array}$
\end{document}
I've tried to use
\@erelb@r{|\righthaproonup} % 33
but the output is just this: -

\@erelb@rsupposed to do? By the way, it's “harpoon”, not “haproon”. – egreg Oct 20 '22 at 08:20