mhchem - 在化学方程式中的反应箭头中添加两个以上的条件/步骤

mhchem - 在化学方程式中的反应箭头中添加两个以上的条件/步骤

mhchem支持使用以下格式在反应箭头上方和下方表示反应条件/步骤:

\ce{A + B ->[text above][text below] C}

有没有一种好的方法可以在箭头上方和下方添加多行条件,且不会超出界限、左对齐并支持\ce其内部?

答案1

解决此问题的一种方法是使用stackengine包。我认为在这种情况下您不需要枚举环境提供的自动编号,因此手动编号就足够了。

在这里我使用\stackon{anchor}{text}\stackunder{anchor}{text}作为示例和概念证明:

\documentclass{article}
\usepackage[version=4]{mhchem}
\usepackage{stackengine}

\begin{document}
    The first reaction is \ce{A + B -> C + D}.

    % Adding multiline conditions
    A sample reaction:
    \ce{A + B ->[\stackon{2.~Add \ce{NaOH}.}{1.~Add \ce{HCl}.}][\stackunder{1.~Add \ce{HCl}.}{2.~Apply heat.}] C}

    The next reaction would then go here. \ce{A + B -> C + D}.
\end{document}

在此处输入图片描述

请注意,\ce仍然可以在堆栈中使用。要使用的具体设置和命令stackengine在很大程度上取决于您实际要排版的内容。


据我所知,没有简单的方法将两个(顶部 + 底部)堆栈对齐在一起。(\mhchem默认将箭头文本的对齐方式设置为居中。)现在,您只需通过手动添加空格即可\hspace

\documentclass{article}
\usepackage[version=4]{mhchem}
\usepackage{stackengine}

\renewcommand\stackalignment{l}
\savestack{\topcondition}{%
    \scriptstyle\stackunder{1.~Add \ce{HCl}.}{2.~Add \ce{NaOH}.}%
}
\savestack{\botcondition}{%
    \scriptstyle\stackunder{3.~Step3}{4.~Step 4}%
    \hspace{20pt}%
}

\begin{document}
    The first reaction is \ce{A + B -> C + D}.

    % Adding multiline conditions
    A sample reaction:
    \ce{A + B ->[\topcondition][\botcondition] C}

    The next reaction would then go here. \ce{A + B -> C + D}.
\end{document}

在此处输入图片描述

相关内容