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}