我试图将第一个方程分成两条线,第一条线左对齐,第二条线右对齐,方程编号位于这两行的中心,然后第二个(编号)方程在某一特定点与第二行的符号对齐。
我搜索了一下,但没有找到针对这种情况的非手动间距解决方案。
代码如下
\documentclass{article}
\usepackage{mathtools}
\usepackage{mhchem}
\begin{document}
\begin{align}
\begin{multlined}[.88\linewidth]
\ce{2CaCO3 + 5C + 2CaC2 + 4H2O + 2Ca(OH)2 + 2CO2} \\
\ce{&-> 2CaC2 + 3CO2 + 2Ca(OH)2 + 2C2H2 + 2CaCO3 + 2H2O}
\end{multlined}\\
\ce{5C + 2H2O &-> CO2 + 2C2H2}.
\end{align}
\end{document}
当然,这不起作用。如果起作用,它应该看起来像这样:
2 CaCO₃ + 5 C + 2 CaC₂ + 4 H₂O + 2 Ca(OH)₂ + 2 CO₂
——⟶ 2 CaC₂ + 3 CO₂ + 2 Ca(OH)₂ + 2 C₂H₂ + 2 CaCO₃ + 2 H₂O
5 C + 2 H₂O ——⟶ CO₂ + 2 C₂H₂
前两行有一个方程编号,垂直居中,最后一行有一个方程编号。
该代码还提供了手动解决方案,大致给出了我期望的结果
\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{mathtools}
\usepackage{mhchem}
\begin{document}
\begin{align}
\begin{split}
\ce{2CaCO3 + 5C + 2CaC2 + 4H2O& + 2Ca(OH)2 + 2CO2} \\
\ce{&-> 2CaC2 + 3CO2 + 2Ca(OH)2 + 2C2H2 + 2CaCO3 + 2H2O}
\end{split}\\
\ce{5C + 2H2O &-> CO2 + 2C2H2}.
\end{align}
\end{document}
但它需要手动找到放置第一个的位置,&
所以我正在寻找一个更通用的解决方案。
只要它们符合我在第一段中提出的要求(例如,在使用分割时左/右对齐第一个方程式),我就会接受使用其他环境的解决方案。
答案1
我会用 来做split
。第一行被人为地做成与最后一行箭头前的部分相同的大小。
\documentclass{article}
\usepackage{geometry}
\usepackage{mathtools}
\usepackage[version=4]{mhchem}
\begin{document}
\begin{align}
\begin{split}
\sbox0{\ce{5C + 2H2O}}
\makebox[\wd0][l]{\ce{2CaCO3 + 5C + 2CaC2 + 4H2O + 2Ca(OH)2 + 2CO2}} \\
\ce{&-> 2CaC2 + 3CO2 + 2Ca(OH)2 + 2C2H2 + 2CaCO3 + 2H2O}
\end{split}\\
\ce{5C + 2H2O &-> CO2 + 2C2H2}.
\end{align}
\end{document}
我加载是geometry
因为反应不适合标准文本宽度article
。
以下是将第一行移动到左边距的方法。
\documentclass{article}
\usepackage[margin=2cm,showframe]{geometry}
\usepackage{mathtools}
\usepackage[version=4]{mhchem}
\makeatletter
\def\column@width#1{\ifcase\@xp#1\maxcolumn@widths\fi}
\def\shift@{%
\ifmeasuring@
0pt
\else
\dimexpr(\displaywidth+\column@width{1}-\column@width{2})/2\relax
\fi
}
\def\movetoleft#1{%
&\makebox[0pt][l]{\hspace{-\shift@}#1}%
}
\makeatother
\begin{document}
\begin{align}
\begin{split}
\movetoleft{\ce{2CaCO3 + 5C + 2CaC2 + 4H2O + 2Ca(OH)2 + 2CO2}} \\
\ce{&-> 2CaC2 + 3CO2 + 2Ca(OH)2 + 2C2H2 + 2CaCO3 + 2H2O}
\end{split}\\
\ce{5C + 2H2O &-> CO2 + 2C2H2}.
\end{align}
\end{document}