以下示例mc.tex
(在网上找到)pdflatex
在 Linux/Debian/unstable 上有效,Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian
并且LaTeX2e <2018-04-01> patch level 5) (preloaded format=pdflatex)
:
\documentclass[11pt]{article}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\caption{Partial horizontal line}
\begin{tabular}{ccc}
\hline
\multicolumn{2}{c}{\multirow{2}{*}{multi-col-row}}&\\
\cline{1-2}
X1&X2&X3\\
Y1&Y2&Y3\\
\hline
\end{tabular}
\label{tab:multicol}
\end{table}
\end{document}
但下面类似的例子mc1.tex
却不起作用:
\documentclass[11pt]{article}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\caption{Partial horizontal line}
\begin{tabular}{ccc}
\hline
\multicolumn{2}{c}{\multirow{2}{*}{\begin{minipage}[t]{0.2\textwidth}
\smallskip
\textbf{\Large XX}
here is yyyyy text
\end{minipage}
}}&\\
\cline{1-2}
X1&X2&X3\\
Y1&Y2&Y3\\
\hline
\end{tabular}
\label{tab:multicol}
\end{table}
\end{document}
我收到以下错误:
% pdflatex mc1.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./mc1.tex
LaTeX2e <2018-04-01> patch level 5
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo))
(/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty) (./mc1.aux)
Runaway argument?
{\begin {minipage}[t]{0.2\textwidth } \smallskip
! Paragraph ended before \@xmultirow was complete.
<to be read again>
\par
l.15 }}
&\\
如何在表格中的多行内创建一个小页面?
答案1
问题是,虽然\multirow
它本身可能是一个长宏,但它将其参数传递给\@multirow
未定义的宏\long
,因此它不能\par
在其参数中接受任何或空行。因此,有问题的部分不是你的minipage
,而是其中包含的两个\par
标记(空行)。可以通过使用\endgraf
而不是\par
(\endgraf
然后扩展为\par
)来欺骗此解析规则。因此,以下内容可以正常工作:
\documentclass[11pt]{article}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\caption{Partial horizontal line}
\begin{tabular}{ccc}
\hline
\multicolumn{2}{c}{\multirow{2}{*}{\begin{minipage}[t]{0.2\textwidth}
\smallskip
\endgraf
\textbf{\Large XX}
\endgraf
here is yyyyy text
\end{minipage}
}}&\\
&\\
&\\
&\\
\cline{1-2}
X1&X2&X3\\
Y1&Y2&Y3\\
\hline
\end{tabular}
\label{tab:multicol}
\end{table}
\end{document}
如果这两列的唯一内容是minipage
,那么使用p
类型单元格可能是一个更好的主意\multicolumn
(\multicolumn
已定义\long
,因此可以\par
直接获取标记):
\documentclass[11pt]{article}
\usepackage{multirow}
\begin{document}
\begin{table}[ht]
\caption{Partial horizontal line}
\begin{tabular}{ccc}
\hline
\multicolumn{2}{p{.2\textwidth}}{
\smallskip
\textbf{\Large XX}
here is yyyyy text
}&\\
\cline{1-2}
X1&X2&X3\\
Y1&Y2&Y3\\
\hline
\end{tabular}
\label{tab:multicol}
\end{table}
\end{document}