![实现特定输出格式的替代方案](https://linux22.com/image/396230/%E5%AE%9E%E7%8E%B0%E7%89%B9%E5%AE%9A%E8%BE%93%E5%87%BA%E6%A0%BC%E5%BC%8F%E7%9A%84%E6%9B%BF%E4%BB%A3%E6%96%B9%E6%A1%88.png)
考虑以下 MWE
\documentclass[border=10 pt]{standalone}
\usepackage{mathtools,setspace}
\begin{document}
$\displaystyle
{\setstretch{1.5}
\begin{array}{ccccccccccccccccccccccc}
^{12} \mathrm{C}&+&^{1} \mathrm{H} &\longrightarrow& ^{13}\mathrm{N}&+&\gamma\\
&&&&^{13} \mathrm{N}& \longrightarrow&^{13} \mathrm{C}&+&e^{+}&+&\nu\\
&&&&&&^{13} \mathrm{C}&+&^{\mathrm{l}} \mathrm{H}& \longrightarrow&^{14} \mathrm{N}&+&\gamma\\
&&&&&&&&&&^{14} \mathrm{N}&+&^{\mathrm{l}} \mathrm{H}& \longrightarrow&^{15} \mathrm{O}&+&\gamma\\
&&&&&&&&&&&&&&^{15} \mathrm{O}& \longrightarrow&^{15} \mathrm{N}&+&e^{+}&+&\nu\\
&&&&&&&&&&&&&&&&^{15} \mathrm{N}&+&^{1} \mathrm{H} &\longrightarrow&^{12} \mathrm{C}&+&^{4} \mathrm{He}
\end{array}}
$
\end{document}
输出
输出几乎就是我想要的,但我得到它的方式对我来说似乎相当笨拙...有没有更好的方法来获得相同的输出?这里唯一相关的部分是每个反应中的相同元素需要位于彼此下方...其他部分的间距不必与图片中相同。
答案1
这是否不那么笨重是一个见仁见智的问题...它消除了所有制&
表符,但需要多个\stackunder
s 和一些支撑。
外观略有不同,但正如 OP 所要求的,“每个反应的相同元素都位于彼此下方”。虽然没有其他适用的对齐方式,但可以观察到任何给定行上的间距都是“正确的”。
\documentclass[border=10 pt]{standalone}
\usepackage{mathtools,setspace,stackengine}
\begin{document}
\renewcommand\stackalignment{l}
\renewcommand\stacktype{L}
\setstackgap{L}{1.4\baselineskip}
\stackMath
$\displaystyle
^{12}\mathrm{C}+^{1}\mathrm{H}\longrightarrow \stackunder{^{13}\mathrm{N}+\gamma}{
^{13}\mathrm{N}\longrightarrow \stackunder{^{13}\mathrm{C}+e^{+}+\nu}{
^{13}\mathrm{C}+^{\mathrm{l}}\mathrm{H}\longrightarrow \stackunder{^{14}\mathrm{N}+\gamma}{
^{14}\mathrm{N}+^{\mathrm{l}}\mathrm{H}\longrightarrow \stackunder{^{15}\mathrm{O}+\gamma}{
^{15}\mathrm{O}\longrightarrow \stackunder{^{15}\mathrm{N}+e^{+}+\nu}{
^{15}\mathrm{N}+^{1}\mathrm{H}\longrightarrow ^{12}\mathrm{C}+^{4}\mathrm{He}
}}}}}
$
\end{document}
答案2
答案3
我建议像我一样对齐您的条目(使用Tab),以便于阅读和修改(如果需要)。我曾经\newcommand
创建过一种方法让您输入一行的数据,并且数组中的每个单元格都被封装在内\mathrm{...}
。此外,我将c
数组中的 23 更改为 *{23}{c}
。
\documentclass[border=10 pt]{standalone}
\usepackage{mathtools,setspace}
% Usage:
% \data{operand-1}{operator-1}{operand-2}{operator-2}{operand-3}{operator-3}{operand-4}
% Simple example:
% \data{a}{+}{b}{-}{c}{*}{d}
\newcommand{\data}[7]{%
\ensuremath{%
\mathrm{#1} & \mathrm{#2} & \mathrm{#3} & \mathrm{#4} & \mathrm{#5} & \mathrm{#6} & \mathrm{#7}
}%
}%
\begin{document}
$\displaystyle
{\setstretch{1.5}
\begin{array}{*{23}{c}}
\data{^{12} C}{+} {^{1} H} {\longrightarrow} {^{13} N} {+}{\gamma} \\
&&&& \data{^{13} N}{\longrightarrow} {^{13} C} {+} {e^{+}} {+}{\nu} \\
&&&&&& \data{^{13} C}{+} {^{1} H} {\longrightarrow} {^{14} N} {+}{\gamma} \\
&&&&&&&&&& \data{^{14} N}{+} {^{1} H} {\longrightarrow} {^{15} O} {+}{\gamma} \\
&&&&&&&&&&&&&& \data{^{15} O}{\longrightarrow} {^{15} N} {+} {e^{+}} {+}{\nu} \\
&&&&&&&&&&&&&&&& \data{^{15} N}{+} {^{1} H} {\longrightarrow} {^{12} C} {+}{^{4} He}\\
\end{array}}
$
\end{document}