![表格中方程式周围的彩色框](https://linux22.com/image/345362/%E8%A1%A8%E6%A0%BC%E4%B8%AD%E6%96%B9%E7%A8%8B%E5%BC%8F%E5%91%A8%E5%9B%B4%E7%9A%84%E5%BD%A9%E8%89%B2%E6%A1%86.png)
我一直在使用该empheq
包将一些方程式放在彩色框中。我尝试将其放在表格环境中,但它标记了以下错误:
Bad math environment delimiter. \end{empheq}}
\begin{equation*} on input line 25 ended by \end{AmSequation*}. \end{empheq}}
empheq
当环境位于表格环境之外时,文档可以正常编译且没有错误,但是当包含在多列中时,它会出现上述两个错误(尽管它确实打印了正确的结果)。
当框式方程式放在表格环境中时,是什么导致了这两个错误?
这是一个最小的工作示例:
\documentclass{article}
\usepackage{amsmath}
\usepackage[most]{tcolorbox}
\usepackage{empheq}
\usepackage{float}
\newtcbox{\mymath}[1][]{%
nobeforeafter, math upper, tcbox raise base,
enhanced, colframe=blue!30!black,
colback=blue!30, boxrule=1pt,
#1}
\begin{document}
\begin{tabular}{c|c}
\multicolumn{2}{c}{
\begin{empheq}[box=\mymath]{equation*}
\int_{-y}^{y} f(x) dx
\end{empheq}}\\ \\
\hline
\textbf{Lower limit} & \textbf{Upper limit} \\
\hline
-y & y \\
\end{tabular}
\end{document}
输出如下:
任何帮助是极大的赞赏。
· 雪人
答案1
我认为您的问题本质上源于将equation
环境放在表中。(尽管将非 empheq 方程环境放在表中会产生不同的错误,但它仍然不起作用)。
使用的目的empheq
是允许 AMS 方程式在强调的 tcolorbox 之外进行编号。如果您不需要 AMS 显示环境附带的编号和居中/间距,您可以直接使用您定义的 tcolorbox,而无需empheq
:
\documentclass{article}
\usepackage{amsmath}
\usepackage[most]{tcolorbox}
\usepackage{empheq}
\usepackage{float}
\newtcbox{\mymath}[1][]{%
nobeforeafter, math upper, tcbox raise base,
enhanced, colframe=blue!30!black,
colback=blue!30, boxrule=1pt,
#1}
\begin{document}
\begin{tabular}{c|c}
\multicolumn{2}{c}{
\mymath{\int_{-y}^{y} f(x) dx}
}\\ \\
\hline
\textbf{Lower limit} & \textbf{Upper limit} \\
\hline
-y & y \\
\end{tabular}
\end{document}
答案2
empheq
不能在单元格中使用tabular
,除非将其声明为p
,但您实际上并不需要;只需使用\mymath
。
但是,在这种情况下,tcbox raise base
应该取消该选项,以便我们更好地控制垂直间距。这可以用 来实现tcbox raise=0mm
。
我还用规则改善了表格的外观booktabs
,避免了毫无用处的垂直规则。
\documentclass{article}
\usepackage{amsmath}
\usepackage[most]{tcolorbox}
\usepackage{booktabs}
\newtcbox{\mymath}[1][]{%
on line, % does 'nobeforeafter' and 'tcbox raise base'
math upper,
enhanced,
colframe=blue!30!black,
colback=blue!30,
boxrule=1pt,
#1
}
\begin{document}
\begin{tabular}{cc}
\multicolumn{2}{c}{%
\mymath[tcbox raise=0mm]{% we don't want on line, in this case
\int_{-y}^{y} f(x) \,dx
}%
}
\\
\midrule[\heavyrulewidth]
Lower limit & Upper limit \\
\cmidrule(lr){1-1}\cmidrule(lr){2-2}
$-y$ & $y$ \\
\bottomrule
\end{tabular}
\end{document}