使用align
环境我有两列,一列用于派生,另一列用于创建派生的规则。但是我很确定有更好的方法可以做到这一点?
以下是我的想法:
\documentclass[fleqn]{article}
\usepackage{amsmath}
\usepackage[fleqn]{mathtools}
\begin{document}
\begin{itemize}
\item \begin{align*}
D&erivation\; &&Rule\\
S&\implies aA& S&\rightarrow aA\\
&\xRightarrow{i-1} a^iA&A&\rightarrow aA\\
&\implies a^ibB&A&\rightarrow bB\\
&\xRightarrow{j-2} a^bb^{j-2}B&B&\rightarrow bB\\
&\implies a^ibb^{j-2}b&B&\rightarrow b\\
&=a^ib^j
\end{align*}
\end{itemize}
\end{document}
答案1
由于您的示例显示您正在将此表放入项目列表中,我猜您希望列表标题与项目项目符号位于同一行。您可以使用来执行此操作aligned
,但您必须明确指出数学。我还会强制双箭头的长度相同(使用幻影)并添加一些明确的间距以使其看起来更美观:
\documentclass[fleqn]{article}
\usepackage{amsmath}
\usepackage[fleqn]{mathtools}
\begin{document}
\begin{itemize}
\item $\quad\begin{aligned}[t]
&Derivation\; &&Rule\\
S&\xRightarrow{\hphantom{j-2}} aA& S&\rightarrow aA\\
&\xRightarrow{i-1} a^iA&A&\rightarrow aA\\
&\xRightarrow{\hphantom{j-2}} a^ibB&A&\rightarrow bB\\
&\xRightarrow{j-2} a^bb^{j-2}B&B&\rightarrow bB\\
&\xRightarrow{\hphantom{j-2}} a^ibb^{j-2}b&\qquad B&\rightarrow b\\
&=a^ib^j
\end{aligned} $
\end{itemize}
\end{document}
答案2
我认为最大的障碍是派生块中不同大小的关系符号。我会用表格来解决,这是此代码中的最后一个变体:
\documentclass[fleqn]{article}
\usepackage{amsmath}
\usepackage[fleqn]{mathtools}
\begin{document}
original
\begin{align*}
D&erivation\; &&Rule\\
S&\implies aA& S&\rightarrow aA\\
&\xRightarrow{i-1} a^iA&A&\rightarrow aA\\
&\implies a^ibB&A&\rightarrow bB\\
&\xRightarrow{j-2} a^bb^{j-2}B&B&\rightarrow bB\\
&\implies a^ibb^{j-2}b&B&\rightarrow b\\
&=a^ib^j
\end{align*}
slightly simplified
\begin{align*}
& \textrm{Derivation} & & \textrm{Rule}\\
S & \implies aA & S & \rightarrow aA\\
& \xRightarrow{i-1} a^iA & A & \rightarrow aA\\
& \implies a^ibB & A & \rightarrow bB\\
& \xRightarrow{j-2} a^bb^{j-2}B & B & \rightarrow bB\\
& \implies a^ibb^{j-2}b & B & \rightarrow b\\
& = a^ib^j
\end{align*}
with \textbackslash{}alignat
\begin{alignat*}{4}
& \rlap{\textrm{Derivation}} && &\qquad\qquad& & \clap{\textrm{Rule}}\\
S & \implies && aA & & S & \;\rightarrow\; & aA\\
& \xRightarrow{i-1} && a^iA & & A & \;\rightarrow\; & aA\\
& \implies && a^ibB & & A & \;\rightarrow\; & bB\\
& \xRightarrow{j-2} && a^bb^{j-2}B & & B & \;\rightarrow\; & bB\\
& \implies && a^ibb^{j-2}b & & B & \;\rightarrow\; & b\\
& = && a^ib^j & & & &
\end{alignat*}
with a tabular\\[5pt]
\begin{tabular}{r@{\extracolsep{.5em}}c@{}l@{\extracolsep{10em}}r@{\extracolsep{0.5em}}c@{}l}
\multicolumn{3}{c}{Derivation} & \multicolumn{3}{c}{Rule}\\
$S$ & $\implies$ & $aA$ & $S$ & $\rightarrow$ & $aA$\\
& $\xRightarrow{i-1}$ & $a^iA$ & $A$ & $\rightarrow$ & $aA$\\
& $\implies$ & $a^ibB$ & $A$ & $\rightarrow$ & $aA$\\
& $\xRightarrow{j-2}$ & $a^bb^{j-2}B$ & $B$ & $\rightarrow$ & $bB$\\
& $\implies$ & $a^ibb^{j-2}b$ & $B$ & $\rightarrow$ & $b$\\
& $=$ & $a^ib^j$ & & &
\end{tabular}
\end{document}