问题
当我\Cline
在公式中为符号加下划线时,该符号的字体大小会增加。编辑:我不希望发生这种情况,相反,我希望所有下标都具有相同的大小,无论它们是否加下划线。
最小工作示例
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{xcolor}
\newsavebox\MBox
\newcommand\Cline[2][red]{{\sbox\MBox{$#2$}%
\rlap{\usebox\MBox}\color{#1}\rule[-1.2\dp\MBox]{\wd\MBox}{0.85pt}}}
\begin{document}
\begin{equation}
\bar{\nabla}_{\!\mu}h_{\Cline{\rho\sigma}}
\end{equation}
\end{document}
编辑-后续问题:锦上添花
是否有可能实现下图右侧的效果?
目前,egreg 的代码(见下文)将给出代码的左侧输出
\begin{equation}
\bar{R}_{\tau\Cline{\sigma}\nu\Cline{\rho}}
\end{equation}
这比上面的 MWE 输出的外观有了显著的改进。不过,我认为如果所有线条Cline
都“在眼睛的同一水平”,看起来会更好。
答案1
您可以利用\text
该功能来选择正确的字体大小:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{xcolor}
\newsavebox\MBox
\newcommand\Cline[2][red]{%
\text{% We use \text so the size will be the right one
\sbox\MBox{$#2$}% We typeset the argument
\rlap{\color{#1}\rule[-\dimexpr\dp\MBox+1pt\relax]{\wd\MBox}{0.85pt}}% the rule
\usebox{\MBox}% the text
}% end of \text
}
\begin{document}
\begin{equation}
\bar{\nabla}_{\!\mu}h_{\Cline{\rho\sigma}}
\end{equation}
\end{document}
通过设置规则的深度,\dimexpr
我们可以确保文本不会被覆盖,因为文本和规则之间会有 0.15pt。
不进行任何测量的不同实现方式:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{xcolor}
\newcommand{\Cline}[2][red]{%
\text{%
\oalign{$#2$\cr\color{#1}\leaders\hrule height 0.85pt\hfil\cr}%
}%
}
\begin{document}
\begin{equation}
\bar{\nabla}_{\!\mu}h_{\Cline{\rho\sigma}}
\end{equation}
\end{document}
您可以通过添加合适的
\noalign{\vskip-??pt}
(其中??
是某个数字)就在第一个之后\cr
。
使用固定规则厚度可能被视为错误的;因此这里有一个不同的规范:
\newcommand{\Cline}[2][red]{%
\text{%
\oalign{$#2$\cr\color{#1}\leaders\hrule height 0.2ex\hfil\cr}%
}%
}
在 10pt 大小下,0.2ex 为 0.86pt,因此这与您的设置相同;但下标会略小;
\begin{equation}
\bar{\nabla}_{\!\mu}h_{\Cline{\sigma}}\Cline{aaa}
\end{equation}
我们将得到更好的输出1
1感谢 David Carlisle 坚持推荐这种可变厚度作为优选。