我有一张表格,里面有一些multirow
单元格。有时单元格内容比单元格宽,就需要做一条换行线。读了一点资料,我发现指定宽度后multirow
,文本会自动换行,但是换行后,文本会留在单元格外面。我该如何解决?
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{rotating}
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
\begin{document}
\begin{table}
\centering
\begin{tabular}{c*2{>{\centering\arraybackslash}m{2cm}}}
\cmidrule{2-3}
& \textbf{Column 1} & \textbf{Column 2}\\
\midrule
\textbf{Row 1} & \multirow{2}{*}{A longer text for line break} & Text row 1\\
\cmidrule{1-1}\cmidrule{3-3}
\textbf{Row 2} & & Text row 2\\
\midrule
\textbf{Row 3} & Text row 3 & A longer text for line break\\
\midrule
\end{tabular}
\end{table}
%
\begin{table}
\centering
\begin{tabular}{c*2{>{\centering\arraybackslash}m{2cm}}}
\cmidrule{2-3}
& \textbf{Column 1} & \textbf{Column 2}\\
\midrule
\textbf{Row 1} & \multirow{2}{2cm}{\centering A longer text for line break} & Text row 1\\
\cmidrule{1-1}\cmidrule{3-3}
\textbf{Row 2} & & Text row 2\\
\midrule
\textbf{Row 3} & Text row 3 & A longer text for line break\\
\midrule
\end{tabular}
\end{table}
\end{document}
答案1
问题在于多行单元格有 3 行,而相应的表格行只有 2 行。
我认为您可以通过在它们末尾添加一些支柱和一些空格来增加这两行的高度来解决该问题。
顺便说一句,multicol
包中习惯有两列文本,没有必要使用\multicolumn
(从它在你的 MWE 中的位置我想你是这么认为的)。
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{rotating}
\usepackage{booktabs}
%\usepackage{multicol}
\usepackage{multirow}
\usepackage{array}
\newcommand{\myrule}{\rule{0pt}{\baselineskip}}
\begin{document}
\begin{table}
\centering
\begin{tabular}{c*2{>{\centering\arraybackslash}m{2cm}}}
\cmidrule{2-3}
& \textbf{Column 1} & \textbf{Column 2}\\
\midrule
\myrule\textbf{Row 1} & \multirow{2}{2cm}{\centering A longer text for line break} & \myrule Text row 1\\[4pt]
\cmidrule{1-1}\cmidrule{3-3}
\myrule\textbf{Row 2} & & \myrule Text row 2\\[4pt]
\midrule
\textbf{Row 3} & Text row 3 & A longer text for line break\\
\midrule
\end{tabular}
\end{table}
\end{document}