请问如何才能让下面的代码正确编译。
\documentclass[12pt]{amsart}
\usepackage{mathtools}
\begin{document}
\begin{align}
\phantom{$\implies$}
&\begin{aligned}
\mathllap{ } &= $\vdash \Box_{N} (\forall k \phi(k))$\\
\end{aligned}\\
&\begin{aligned}
\mathllap{$\implies$} &= $\vdash \forall k \Box_{C+2N+\mathrm{log}_{2} \hspace{0.1 cm} k} \phi(k)$\\
\mathllap{$\implies$) &= $\vdash \forall k \Box_{\mathcal{O}\mathrm{log}_{2} \hspace{0.1 cm} k} \phi(k)$\\
\end{aligned}
\end{align}
\end{document}
答案1
align
是在数学模式下排版的,因此$
在其中使用是错误的(并且也是在 的参数中)\mathllap
。
有一些奇怪的等号,我猜是因为误解。在 中align
,&
表示对齐点(实际上是列的分隔点),它后面通常跟着=
,但不一定。
我提出了三种实现,每种都没有\implies
。在第三个中,主块由于 而居中\mathllap
,但这似乎并不重要(只需比较输出)。我推荐\Rightarrow
,它不太突出。
最后说明:\log
是正确的命令,而不是\mathrm{log}
;我还在参数周围添加了括号\mathcal{O}
;使用\,
后\forall <variable>
可能会更好。
\documentclass[12pt]{amsart}
\usepackage{mathtools}
\begin{document}
\begin{align}
&\vdash \Box_{N} (\forall k \, \phi(k)) \\
\Longrightarrow{}
&\vdash \forall k \, \Box_{C+2N+\log_{2}k} \phi(k) \\
\Longrightarrow{}
&\vdash \forall k \, \Box_{\mathcal{O}(\log_{2} k)} \phi(k)
\end{align}
\begin{align}
&\vdash \Box_{N} (\forall k \, \phi(k)) \\
\Rightarrow{}
&\vdash \forall k \, \Box_{C+2N+\log_{2}k} \phi(k) \\
\Rightarrow{}
&\vdash \forall k \, \Box_{\mathcal{O}(\log_{2} k)} \phi(k)
\end{align}
\begin{align}
&\vdash \Box_{N} (\forall k \, \phi(k)) \\
\mathllap{\Rightarrow{}}
&\vdash \forall k \, \Box_{C+2N+\log_{2}k} \phi(k) \\
\mathllap{\Rightarrow{}}
&\vdash \forall k \, \Box_{\mathcal{O}(\log_{2} k)} \phi(k)
\end{align}
\end{document}
答案2
我只是清除了错误,没有检查输出,因此输出应该如您所愿:
\documentclass[12pt]{amsart}
\usepackage{mathtools}
\begin{document}
\begin{align}
\phantom{\implies}
&\begin{aligned}
\mathllap{ } &= \vdash \Box_{N} (\forall k \phi(k))
\end{aligned}\\
&\begin{aligned}
\mathllap{\implies} &= \vdash \forall k \Box_{C+2N+\log_{2} k} \phi(k)\\
\mathllap{\implies} &= \vdash \forall k \Box_{\mathcal{O}\log_{2} k} \phi(k)
\end{aligned}
\end{align}
\end{document}