多列多行的数学错误

多列多行的数学错误

\mathcal allowed only in math mode当我尝试编译此 MWE 时出现错误:

\documentclass[12pt]{article}
\usepackage{multirow}
\begin{document}
\[
\left(
\begin{array}{c c c c}
  \multicolumn{2}{c}{\multirow{2}{*}{\mathcal{J}}} & a & b\\
  \multicolumn{2}{c}{} & a & b\\
\end{array}
\right)
\]
\end{document}

\multicolumn{2}{c}{\multirow{2}{*}{\mathcal{J}}}当被替换为\multicolumn{2}{c}{\mathcal{J}}(删除多行部分)或\multicolumn{2}{c}{\multirow{2}{*}{J}}(删除数学)时,它可以很好地编译。

答案1

根据multirow的文档,当您明确指定多行单元格的宽度时,它会将内容设置为\parbox所要求的宽度。这显然会切换到文本模式,因此您需要在单元格内明确重新进入数学模式。

当您将宽度指定为 时*,内容将以 LR 模式设置。因此,您再次退出数学模式进入文本模式,并需要在单元格内明确重新进入数学模式。

文档也指出,它不是为array环境设计的,而只是tabular。但是,它确实包含了许多在array环境中使用它的技巧和解决方法,因此,如果您要这样做,我建议您阅读以获取一些提示。

例如,下面的代码编译时不会出现错误:

\documentclass[12pt]{article}
\usepackage{multirow}
\begin{document}
\[
\left(
\begin{array}{c c c c}
  \multicolumn{2}{c}{\multirow{2}{*}{$\mathcal{J}$}} & a & b\\
  \multicolumn{2}{c}{} & a & b\\
\end{array}
\right)
\]
\end{document}

重新进入数学模式

答案2

使用\multirow类似于使用\multicolumn,当p在后者中指定时,也必须在中的参数中恢复数学模式array

但是,您正在寻找的安排无需以下方式即可获得\multirow

\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{pmatrix}
\;\mathcal{J}
&
\begin{matrix}
 a & b\\
 a & b\\
\end{matrix}
\end{pmatrix}
\]
\end{document}

在此处输入图片描述

相关内容