我尝试定义一个具有交错的下标和上标的宏,并在上标中添加了一个带有 mhchem 的公式。排版似乎未对齐,尤其是下标似乎排版得太高了。有办法解决这个问题吗?MWE:
\documentclass[numbers=noenddot,plain,ngerman,a4paper,12pt]{scrbook}
\usepackage[version=3]{mhchem}
\usepackage{blindtext}
\DeclareRobustCommand{\va}[2]{$\nu_{\hspace{2px}\text{#2}}^\ce{\hspace{1px}#1}$}
\begin{document}
\blindtext
\va{CO2}{as} \va{CO}{as} \va{CO2}{as} \va{CO}{as}
\blindtext
\end{document}
mwe 输出:
答案1
打破指数的底部:
\documentclass[12pt]{scrbook}
\usepackage{amsmath}
\usepackage[version=3]{mhchem}
\usepackage{blindtext}
\DeclareRobustCommand{\va}[2]{%
\ensuremath{%
\nu_{\,\text{#2}}%
^{\smash[b]{\ce{\,#1}}}%
}%
}
\begin{document}
\blindtext
\va{CO2}{as} \va{CO}{as} \va{CO2}{as} \va{CO}{as}
\va{O2}{asas}
\blindtext
\end{document}
答案2
在基线下方添加自定义支柱。我还将\ce
宏括在括号中以确保安全(感谢 Karl)。
\documentclass[numbers=noenddot,plain,ngerman,a4paper,12pt]{scrbook}
\usepackage[version=3]{mhchem}
\usepackage{blindtext}
\def\mystrut{\rule[-.15\baselineskip]{0pt}{1pt}}
\DeclareRobustCommand{\va}[2]{$\nu_{\hspace{2px}\text{#2}}^{\ce{\hspace{1px}\mystrut#1}}$}
\begin{document}
\blindtext
\va{CO2}{as} \va{CO}{as} \va{CO2}{as} \va{CO}{as}
\blindtext
\end{document}