\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}