Подчеркните стрелкой с помощью tikz

Подчеркните стрелкой с помощью tikz

Я хотел бы подчеркнуть математический объект стрелкой (из tikz), не добавляя дополнительного пробела к пробелу, вот так

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

На данный момент я использую следующий код (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}

Для меня часто проблема в дополнительных пробелах от надстрочных/подстрочных индексов. Есть ли способ принудительно установить межстрочный интервал? Очевидно, что в этом случае дополнительный пробел не нужен:

подчеркивание стрелкой

(Обычно мне нужно просто подчеркнуть одну букву, поэтому размер можно зафиксировать, хотя я приветствую ответ, который работал бы и с переменной шириной.)

решение1

Почему бы вам не использовать команду \underrightarrow вместо этого? Например, так:

\underrightarrow{\mho}

Получение:

подчеркиваниестрелка mho

Вы также можете подчеркнуть несколько букв/выражений:

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

подчеркнуть выражение

Но вы не будете использовать это с несколькими буквами очень часто.

решение2

Вот одно из возможных решений:

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

введите описание изображения здесь

РЕДАКТИРОВАТЬ:Следуя предложению Питера Грилла, я добавил, overlayчтобы сохранить вертикальный размер равным тексту в узле.

ПРАВКА 2:Я добавил немного скрытого текста, чтобы показать, что вертикальное расстояние в порядке.

ПРАВКА 3:Как предложили Пол Габорит и Эртлинь, я заменил inner xsep=0на inner sep=0. И теперь этот ответ — вики-сообщество.

ПРАВКА 4:И теперь мы можем изменить стиль стрелки в качестве необязательного аргумента.

Связанный контент