# Double sided arrow notation for second-order tensors

How may I define \mytensor to look just like double sided arrow from \vec?

I have tried \overset{\text{\tiny$\leftrightarrow$}}{#1} as described here but it isn't exactly what I want (at least with default amsmath). It would suffice in worst case scenario but it would be better to have uniform style in my bachelor thesis.

Also I have found that I can change font via package unicode-math and get what I want (with \leftrightarrow) but as I'm not using XeLaTeX nor LuaLaTex that doesn't work either. Would it be possible to use that font without using XeLaTeX and LuaLaTex?

You might use the old-arrows package that provides arrows with smaller tips. However, using the package would change all arrows in the document, which is possibly not desired, so we can fetch just the necessary bits:

\documentclass{article}
\usepackage{amsmath}

\DeclareFontFamily{OMS}{oasy}{\skewchar\font48 }
\DeclareFontShape{OMS}{oasy}{m}{n}{%
<-5.5> oasy5     <5.5-6.5> oasy6
<6.5-7.5> oasy7     <7.5-8.5> oasy8
<8.5-9.5> oasy9     <9.5->  oasy10
}{}
\DeclareFontShape{OMS}{oasy}{b}{n}{%
<-6> oabsy5
<6-8> oabsy7
<8->  oabsy10
}{}
\DeclareSymbolFont{oasy}{OMS}{oasy}{m}{n}
\SetSymbolFont{oasy}{bold}{OMS}{oasy}{b}{n}

\DeclareMathSymbol{\smallleftarrow}     {\mathrel}{oasy}{"20}
\DeclareMathSymbol{\smallrightarrow}    {\mathrel}{oasy}{"21}
\DeclareMathSymbol{\smallleftrightarrow}{\mathrel}{oasy}{"24}

\newcommand{\tensor}[1]{\overset{\scriptscriptstyle\smallleftrightarrow}{#1}}

\begin{document}
$\tensor{x}$
\end{document}


The definitions for \smallrightarrow and \smallleftarrow are not required, but they make no harm.

• Well that seems to work, a bit. In the output dvi \tensor{x} is exactly what I wanted it to be. But it affected the way some chars are printed, ž is printed as \vec z (setup is \usepackage{czech} and \usepackage[utf8]{inputenc}). Also I want to use hyperref (\usepackage[ps2pdf,unicode]{hyperref}) and convert dvi to ps and pdf but in this files \tensor{x} is printed as \$ over x. But thank you for getting me in right direction. – Kostrahb Nov 1 '15 at 17:49
• Ok, first problem is solved by right order. At first I have declared this part of old-arrows and only after that used other packages. And second problem was resolved by adding -u "+oasy.map" to dvips during conversion. Thanks. – Kostrahb Nov 1 '15 at 18:20