Sublinhar com ponta de seta usando tikz

Sublinhar com ponta de seta usando tikz

Eu gostaria de sublinhar um objeto matemático com uma ponta de seta (do tikz) sem adicionar espaço extra ao salto de linha, assim

The object C has an underline with an arrowhead
from tikz. The only problem  is the extra space
between the lines.

No momento, estou usando o seguinte código (MWE)

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,arrows,decorations.markings}
\newcommand{\subtodisplay}{%
  {\tikz[baseline=-2ex] \draw[-stealth,line width=.4pt] (.3ex,0ex) -- (1.7ex,0ex);}
}

\begin{document}
The object $\mathop{C}\limits_{\subtodisplay}$ has an underline with an 
arrowhead from tikz. The only problem is the extra space between the lines,
which becomes apparent when adding extra text to get at least three lines.
\end{document}

Espaço extra de subscritos/sobrescritos costuma ser um problema para mim. Existe uma maneira de forçar o espaçamento entre linhas? Claramente, neste caso, o espaço extra não é necessário:

sublinhar com ponta de seta

(Normalmente, só preciso sublinhar uma única letra, para que o tamanho possa ser corrigido, embora eu receba uma resposta que funcione com largura variável.)

Responder1

Por que você não usa o comando \underrightarrow? Por exemplo assim:

\underrightarrow{\mho}

Obtenção:

sublinhado seta mho

Você também pode sublinhar várias letras/expressões:

\underrightarrow{\mho+\sum^{n}_{i=1}K=0+\Psi}

expressão sublinhada

Mas você não usará isso com várias letras com muita frequência

Responder2

Aqui está uma solução possível:

\documentclass[varwidth,border=50]{standalone}
\usepackage{tikz}
\usepackage{blindtext}

\newcommand{\tikzunderarrow}[2][red]{\tikz[baseline={(N.base)}]{
  \node[inner sep=0, outer sep=0](N) {#2};
  \draw[overlay, -latex, line width=.04em, #1]
    ([yshift=-.14em]N.south west) -- ([yshift=-.14em]N.south east);}}

\begin{document}
  A test sentence : \tikzunderarrow{ypqj to ckeck if it is ok ;)}.
  \blindtext

  And we check with math formula \tikzunderarrow{$\left[ \sqrt{x^2+y^2} \right]$},
  and a {\Large \tikzunderarrow[purple,|-stealth]{Large}} underarrow.
\end{document}

insira a descrição da imagem aqui

EDITAR:Seguindo a sugestão de Peter Grill, adicionei overlaypara manter o tamanho vertical igual ao texto no nó.

EDITAR 2:Adicionei um texto cego para mostrar que a distância vertical está correta.

EDITAR 3:Conforme sugerido por Paul Gaborit e Earthliŋ, substituí inner xsep=0por inner sep=0. E agora esta resposta é um wiki da comunidade.

EDITAR 4:E agora podemos alterar o estilo da seta como argumento opcional.

informação relacionada