[Tex/LaTex] Typesetting arrows above a pair of letters to indicate a line

accentsarrowsmath-mode

How do I typeset a line segment, with arrowheads at each end, above a pair of letters to indicate a line? I know that $\overline{AB}$ can be used to typeset a line segment between points A and B. How do I draw an arrow above a pair of letters to indicate a ray?

Best Answer

The comments have already mentioned \overleftrightarrow. Here is an alternative that tries to make the segment use the same heads as \vec, also shown for comparison.

Based on my answer at "Double headed" vector, except that I had to make it extensible to match segments of different sizes.

On the left are two \vecs, two \dvecs and on the right are two \overleftrightarrows. Below is a very wide \dvec.

EDITED, based on Leon's suggestion, to improve the height of the \dvec, so as to be compatible with \vec when using \left...\right syntax.

\documentclass{article}
\usepackage{scalerel}
\def\shrinkage{-2.4mu}
\def\vecsign#1{\rule[1.388\LMex]{\dimexpr#1-2.5pt}{.36\LMpt}%
  \kern-6.0\LMpt\mathchar"017E}
\def\dvecsign#1{\rule{0pt}{7\LMpt}\smash{\stackon[-1.989\LMpt]{%
  \SavedStyle\mkern-\shrinkage\vecsign{#1}}%
  {\rotatebox{180}{$\SavedStyle\mkern-\shrinkage\vecsign{#1}$}}}}
\def\dvec#1{\ThisStyle{\setbox0=\hbox{$\SavedStyle#1$}%
  \def\useanchorwidth{T}\stackon[-4.2\LMpt]{\SavedStyle#1}{\,\dvecsign{\wd0}}}}
\usepackage{stackengine,amsmath}
\stackMath
\usepackage{graphicx}
\begin{document}
$ \vec c ~\vec A  ~\dvec{ac} ~\dvec{AB} ~\textrm{vs.}
  ~\overleftrightarrow{ac} ~\overleftrightarrow{AB}$

$\dvec{ABCD} ~\scriptstyle \dvec A ~\dvec{AB}~\scriptscriptstyle \dvec A ~\dvec{AB}$

$
\left(\dvec{A}\right)\left(\vec{A}\right)
\scriptstyle\left(\dvec{A}\right)\left(\vec{A}\right)
\scriptscriptstyle\left(\dvec{A}\right)\left(\vec{A}\right)
$
\end{document}

enter image description here

ADDENDUM

Based on the OP's request, I provide \ray{} below:

\documentclass{article}
\usepackage{scalerel}
\def\shrinkage{-2.4mu}
\def\vecsign#1{\rule[1.388\LMex]{\dimexpr#1-2.5pt}{.36\LMpt}%
  \kern-6.0\LMpt\mathchar"017E}
\def\dvecsign#1{\rule{0pt}{7\LMpt}\smash{\stackon[-1.989\LMpt]{\SavedStyle\mkern-\shrinkage\vecsign{#1}}%
  {\rotatebox{180}{$\SavedStyle\mkern-\shrinkage\vecsign{#1}$}}}}
\def\dvec#1{\ThisStyle{\setbox0=\hbox{$\SavedStyle#1$}%
  \def\useanchorwidth{T}\stackon[-4.2\LMpt]{\SavedStyle#1}{\,\dvecsign{\wd0}}}}
\def\theraysign#1{\rule{0pt}{17\LMpt}\rule[1.384\LMex]{\dimexpr#1-2.5pt}{.40\LMpt}%
  \kern-6.0\LMpt\mathchar"017E}
\def\raysign#1{\rule{0pt}{7\LMpt}\smash{%
  \SavedStyle\mkern-\shrinkage\theraysign{#1}}}
\def\ray#1{\ThisStyle{\setbox0=\hbox{$\SavedStyle#1$}%
  \def\useanchorwidth{T}\stackon[-4.2\LMpt]{\SavedStyle#1}{\,\raysign{\wd0}}}}
\usepackage{stackengine,amsmath}
\stackMath
\usepackage{graphicx}
\begin{document}
$ \vec c ~\vec A  ~\ray{ac} ~\ray{AB} ~\textrm{vs.}
  ~\overleftrightarrow{ac} ~\overleftrightarrow{AB}$

$\ray{ABCD} ~\scriptstyle \ray A ~\ray{AB}~\scriptscriptstyle \ray A ~\ray{AB}$

$
\left(\ray{AB}\right)\left(\vec{AB}\right)
\scriptstyle\left(\ray{AB}\right)\left(\vec{AB}\right)
\scriptscriptstyle\left(\ray{AB}\right)\left(\vec{AB}\right)
$
\end{document}

enter image description here

Related Question