Subrayar con punta de flecha usando tikz

Subrayar con punta de flecha usando tikz

Me gustaría subrayar un objeto matemático con una punta de flecha (de tikz) sin agregar espacio adicional al salto de línea, así

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

Por el momento, estoy usando el siguiente 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}

El espacio adicional en los subíndices/superíndices suele ser un problema para mí. ¿Hay alguna manera de forzar el interlineado? Claramente, en este caso no se necesita espacio adicional:

subrayado con punta de flecha

(Por lo general, solo lo necesito para subrayar una sola letra, por lo que el tamaño podría fijarse, aunque agradezco una respuesta que funcione con un ancho variable).

Respuesta1

¿Por qué no utilizas el comando \underrightarrow en su lugar? Por ejemplo así:

\underrightarrow{\mho}

Obtención:

subrayado mho

También puedes subrayar varias letras/expresiones:

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

subrayar expresión

Pero no usarás esto con varias letras muy a menudo.

Respuesta2

Aquí hay una posible solución:

\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}

ingrese la descripción de la imagen aquí

EDITAR:Siguiendo la sugerencia de Peter Grill, agregué overlaypara mantener el tamaño vertical igual al texto en el nodo.

EDITAR 2:Agregué un texto ciego para mostrar que la distancia vertical está bien.

EDITAR 3:Según lo sugerido por Paul Gaborit y Earthliŋ, lo reemplacé inner xsep=0por inner sep=0. Y ahora esta respuesta es una wiki comunitaria.

EDITAR 4:Y ahora podemos cambiar el estilo de la flecha como argumento opcional.

información relacionada