
Desejo definir uma macro LaTeX que funcione mais ou menos exatamente como, \overrightarrow
exceto com um arpão no lugar de uma flecha. Pesquisei muitas soluções e nenhuma delas funciona bem.
- Solução Tikz: parece bom, mas não tem largura variável.
- Solução exagerada: funciona se você mover o arpão para baixo, mas também não com largura variável.
- Solução de pacote Harpoon: tem largura variável, mas o arpão tem o dobro da altura que deveria. O formato do arpão também varia com sua largura, ao invés de manter a mesma cabeça do arpão e variar o comprimento da cauda.
- Solução de conjunto de acentos: largura não variável.
- Solução XeTeX: parece exatamente o que eu quero, mas estou compondo meu documento em LaTeX.
Existe uma maneira de reproduzir a solução XeTeX em LaTeX ou alterar uma das outras soluções para se adequar às propriedades desejadas?
Responder1
Uma solução bastante grosseira é copiar a definição de \overrightarrow
from amsmath
:
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\overrightharpoon}{%
\mathpalette{\overarrow@\rightharpoonfill@}}
\def\rightharpoonfill@{\arrowfill@\relbar\relbar\rightharpoonup}
\makeatother
\begin{document}
$\overrightharpoon{aaaaaaa}+\overrightharpoon{a}$
\end{document}
Você pode obter arpões menores usando um código modificado emhttps://tex.stackexchange.com/a/248297/4427
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\overrightsmallharpoon}{\mathpalette{\overarrowsmall@\rightharpoonfill@}}
\def\rightharpoonfill@{\arrowfill@\relbar\relbar\rightharpoonup}
\newcommand{\overarrowsmall@}[3]{%
\vbox{%
\ialign{%
##\crcr
#1{\smaller@style{#2}}\crcr
\noalign{\nointerlineskip}%
$\m@th\hfil#2#3\hfil$\crcr
}%
}%
}
\def\smaller@style#1{%
\ifx#1\displaystyle\scriptstyle\else
\ifx#1\textstyle\scriptstyle\else
\scriptscriptstyle
\fi
\fi
}
\makeatother
\begin{document}
$\overrightsmallharpoon{aaaaaaa}+\overrightsmallharpoon{a}$
\end{document}