我想用箭头(来自 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}
获取:
您也可以为多个字母/表达式加下划线:
\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}
编辑:根据 Peter Grill 的建议,我添加了overlay
保持垂直大小与节点中的文本相等。
编辑2:我添加了一些盲文来显示垂直距离没问题。
编辑3:根据 Paul Gaborit 和 Earthliŋ 的建议,我用 替换了inner xsep=0
。inner sep=0
现在这个答案是一个社区维基。
编辑4:现在我们可以将箭头样式更改为可选参数。