化学大分子反应环境对齐

化学大分子反应环境对齐

以下面的例子为例

\documentclass{article}
\usepackage{chemmacros}
\begin{document}
\begin{reactions*}
NH3 + H2O &<=> NH4+ + OH-\\
Fe^3+ + 3 OH- &-> Fe(OH)3\\
2 Fe(OH)3   &->[heat] Fe2O3 + 3 H2O
\end{reactions*}
\begin{reactions*}
G &-> H + I \\
J + K &-> L
\end{reactions*}
\end{document}

箭头未对齐

第一个反应方案有两种不同的箭头类型,并且仅在箭头的起始处对齐。理想情况下,我希望 LHS (r) 对齐(原样),箭头 (c) 对齐,RHS (l) 对齐,就像前两行和第二个反应方案中那样。

我尝试&在箭头后放置一个来对齐产品侧面,但无济于事。除了将其放置在aligntabular环境中并将每个段封装在内之外,\ch{ }还有其他选择吗?

附言:我曾经使用过\documentclass{article}minimal课程standalone,但有问题chemmacros,但那是另一天的事了……

答案1

我可以提出其他建议吗?

我不会对对齐方式进行调整,而是尝试让所有箭头的长度都相同。两个极端版本看起来就像我的 MWE 中的那样。当然,您可以尝试在它们之间找到一个令人满意的中间值。

% arara: pdflatex

\documentclass{article}
\usepackage{chemmacros}

\begin{document}
    \begin{reactions*}
        NH3 + H2O &<=> NH4+ + OH-\\
        Fe^3+ + 3 OH- &-> Fe(OH)3\\
        2 Fe(OH)3   &->[\makebox[0pt]{heat}] Fe2O3 + 3 H2O
    \end{reactions*}
    \begin{reactions*}
        NH3 + H2O &<=>[\phantom{heat}] NH4+ + OH-\\
        Fe^3+ + 3 OH- &->[\phantom{heat}] Fe(OH)3\\
        2 Fe(OH)3   &->[heat] Fe2O3 + 3 H2O
    \end{reactions*}
\end{document}

在此处输入图片描述


如果您想要按照帖子中所写的方式对齐术语,您可以在环境中执行此操作array。您可以定义自定义列类型,也可以直接将它们写入\begin{array}{...}声明中:

% arara: pdflatex

\documentclass{article}
\usepackage{chemmacros}
\usepackage{collcell}
\newcolumntype{R}{>{\collectcell\ch}r<{\endcollectcell}}
\newcolumntype{C}{@{}>{\collectcell\ch}c<{\endcollectcell}@{}}
\newcolumntype{L}{>{\collectcell\ch}l<{\endcollectcell}}

\begin{document}    
\[
\begin{array}{R C L}
    NH3 + H2O &<=> &NH4+ + OH-\\[\jot] % or any other measure. The screen shot below is showing [0pt]
    Fe^3+ + 3 OH- &-> &Fe(OH)3\\[\jot]
    2 Fe(OH)3   &->[heat] &Fe2O3 + 3 H2O
\end{array}
\]
\end{document}

在此处输入图片描述

相关内容