我想在 chemmacros 提供的反应环境中使用类似 tabular 的东西。像这样:
\documentclass[12pt]{article}
\usepackage{chemmacros}
\usepackage{siunitx}
\newcommand{\li}[1]{\SI{#1}{\liter}}
\begin{document}
\begin{center}
\begin{tabular}{cccccccc}
& \ch{C3H8\gas} & $+$ & \ch{5 O2\gas} & \ch{->} & \ch{3 CO2\gas} & $+$ & \ch{4 H2O\gas} \\
Hasiera & V? & & & & -- & & -- \\
Bukaera & -- & & -- & & \li{2} & & \\
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{cccccccc}
& \ch{C3H8\gas} & $+$ & \ch{5 O2\gas} & \ch{->} & \ch{3 CO2\gas} & $+$ & \ch{4 H2O\gas} \\
Hasiera & V? & & \li{0.5} & & -- & & -- \\
Bukaera & -- & & -- & & & & \\
\end{tabular}
\end{center}
\end{document}
有没有办法用 chemmacros 来实现这个功能?谢谢
答案1
tabular
如果我理解正确的话,您是否希望使用与但使用chemmacros
'环境相同的布局reactions*
?这不完全可能,因为环境在后台reactions*
使用amsmath
's ,这意味着它具有相同的对齐行为。align*
但是添加一个可以做你想做的事情的新环境很容易。chemmacros
手册在有关环境的部分中说reactions
:
您可以使用以下命令创建新类型的反应:
\NewChemReaction{<name>}[<number of arguments>]{<math name>}
[…]
<math name>
是底层数学环境。[…]
它没有说的是,底层环境没有需要作为数学显示环境。完全可以使用以下方式tabular
代替:
\documentclass{article}
\usepackage{chemmacros}
\usechemmodule{reactions}
\NewChemReaction{chemtable}[1]{tabular}
\usepackage{siunitx}
\newcommand*{\vol}[1]{\SI{#1}{\liter}}
\begin{document}
\begin{chemtable}{cccccccc}
& C3H8\gas &+ & 5 O2\gas &-> & 3 CO2\gas &+ & 4 H2O\gas \\
Hasiera & V? & & & & "--" & & "--" \\
Bukaera & "--" & & "--" & & "\vol{2}" & &
\end{chemtable}
\end{document}
array
通过一些小的修改(需要加载包),可以获得更好的输出:
\begin{chemtable}{l*7{c@{}}}
& C3H8\gas &+ & 5 O2\gas &-> & 3 CO2\gas &+ & 4 H2O\gas \\
Hasiera & V? & & & & "--" & & "--" \\
Bukaera & "--" & & "--" & & "\vol{2}" & &
\end{chemtable}