colortbl
我对和有疑问amsmath
。有人知道这两个包之间存在冲突吗?
\documentclass[10pt]{article}
\usepackage{amsmath}
%\usepackage{colortbl}
\begin{document}
\begin{tabular}[b]{cc}
Correct & Incorrect\\
\parbox[b][]{0.4\linewidth}{
\begin{align*}
3(2x-5)^2&=3(4x^2-20x+25)\\
&=12x^2-60x+75
\end{align*}
} &
\parbox[b][]{0.5\linewidth}{
\begin{align*}
3(2x-5)^2&=(6x-15)^2\\
&=36x^2-180x+225
\end{align*}
}\\
\end{tabular}
\end{document}
编译正常,但是当我取消注释时,\usepackage{colortbl}
它会引发错误。
这是错误日志。
! Misplaced \omit.
\math@cr@@@ ...@ \@ne \add@amps \maxfields@ \omit
\kern -\alignsep@ \iftag@ ...
l.14 }
&
I expect to see \omit only after tab marks or the \cr of
an alignment. Proceed, and I'll ignore this case.
! Misplaced \omit.
\math@cr@@@ ...@ \@ne \add@amps \maxfields@ \omit
\kern -\alignsep@ \iftag@ ...
l.14 }
&
I expect to see \omit only after tab marks or the \cr of
an alignment. Proceed, and I'll ignore this case.
我必须提到,这个问题似乎只有当我在表align
内使用时才会出现。parbox
答案1
这有点像在黑暗中摸索,因为我无法通过追踪找到任何重要的东西,但这些对齐构造非常脆弱,我实在无法理解。
通过仔细研究colortbl
代码,我编写了以下补丁。请尝试修改后的 MWE:
\documentclass[10pt]{article}
\usepackage{amsmath}
\usepackage{colortbl}
%%%%%%%%%% HERE COMES THE PATCH %%%%%%%%%%
\usepackage{etoolbox}
\makeatletter
\pretocmd\start@align
{%
\let\everycr\CT@everycr
\CT@start
}{}{}
\apptocmd{\endalign}{\CT@end}{}{}
\makeatother
%%%%%%%%%% END PATCH %%%%%%%%%%
\begin{document}
\begin{tabular}[b]{cc}
Correct & Incorrect\\
\parbox[b][]{0.4\linewidth}{
\begin{align*}
3(2x-5)^2&=3(4x^2-20x+25)\\
&=12x^2-60x+75
\end{align*}
} &
\parbox[b][]{0.5\linewidth}{
\begin{align*}
3(2x-5)^2&=(6x-15)^2\\
&=36x^2-180x+225
\end{align*}
}\\
\end{tabular}
\end{document}
不过,我不知道这是否会对colortbl
外部表格产生不利影响。请测试。
答案2
我不确定问题的实际根源是什么,但解决此问题的一种方法是使用aligned
:
笔记:
- 正如 egreg 指出的那样,
\parbox
使用环境时不再需要使用 aaligned
。 =
当情况不相等时,我不建议使用,因为不正确的列就是这种情况。我在这里没有做那个更改,因为您需要决定如何处理以下相等。
代码:
\documentclass[10pt]{article}
\usepackage{colortbl}
\usepackage{amsmath}
\begin{document}
\begin{center}
\begin{tabular}[b]{cc}
Correct & Incorrect\\
$\begin{aligned}
3(2x-5)^2&=3(4x^2-20x+25)\\
&=12x^2-60x+75
\end{aligned}$
&
$\begin{aligned}
3(2x-5)^2&=(6x-15)^2\\
&=36x^2-180x+225
\end{aligned}$
\\
\end{tabular}
\end{center}
\end{document}