使用 mhchem 提升下标

使用 mhchem 提升下标

我尝试定义一个具有交错的下标和上标的宏,并在上标中添加了一个带有 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}

在此处输入图片描述

相关内容