tabularx 和 multirow

tabularx 和 multirow

我正在尝试使用 tabularx 创建一个非常简单的表格,它看起来应该像这样:

A1 A2 A3 MULTIROW
B1 B2 B3
C1 C2 C3

我的问题是,我无法让多行单元格中的文本适合页边距(文本打印在一行中,不考虑单元格宽度)。另外,我希望文本顶部对齐,而不是居中。这是我的代码:

\begin{flushleft}
\begingroup
\def\arraystretch{1.5}
\begin{tabularx}{\textwidth}{c l l X}
A1 & A2 & A3 & \multirow{3}{*}{multirow text}\\
B1 & B2 & B3 \\
C1 & C2 & C3 \\
\end{tabularx}
\endgroup
\end{flushleft}

答案1

根据您的描述,我猜您感兴趣的是

  • t将内容顶部对齐的选项\multirow\multirow[t]{3}...

结合

  • =如果多行单元格适应其内部使用的列的宽度,而不是*确保其宽度适应其内容的宽度:\multirow[t]{3}{=}...

组合成 MWE 后,可能如下所示:

\documentclass{article}
\usepackage{tabularx}
\usepackage{multirow}
\begin{document}

\noindent
{\def\arraystretch{1.5}%
\begin{tabularx}{\textwidth}{c l l X}
A1 & A2 & A3 & \multirow[t]{3}{=}{multirow text multirow text multirow text multirow text multirow text multirow text multirow text}\\
B1 & B2 & B3 &\\
C1 & C2 & C3 &\\
\end{tabularx}
}

\end{document}

在此处输入图片描述


使用嵌套的tabular代替\multirow

\documentclass{article}
\usepackage{tabularx}
\usepackage{lipsum}
\begin{document}

\noindent
{\def\arraystretch{1.5}%
\begin{tabularx}{\textwidth}{l X}
\begin{tabular}[t]{@{}c l l@{}} A1 & A2 & A3 \\
                           B1 & B2 & B3 \\
                           C1 & C2 & C3 \\
\end{tabular} & \lipsum[1][1-4]
\end{tabularx}
}


\end{document}

在此处输入图片描述

答案2

目前尚不清楚您的问题是什么,可能您正在寻找类似这样的问题:

\documentclass{article}

\usepackage{lipsum}    % for text filler

\usepackage{multirow, 
            tabularx}

\begin{document}
\begingroup
    \flushleft
    \renewcommand\multirowsetup{}
    \def\arraystretch{1.5}
\begin{tabularx}{\textwidth}{c l l X}
A1 & A2 & A3 & \multirow[t]{3}{=}{\lipsum[1][1-3]}\\
B1 & B2 & B3 \\
C1 & C2 & C3 \\
\end{tabularx}
\endgroup
\end{document}

笔记:

  • 由于最后一列的文本较短,因此您看不到表格被拉伸到右文本边框
  • 如果您的列规范包含垂直线,则这将是可见的:\begin{tabularx}{\textwidth}{|c | l | l | X|}
  • 如果\multirow单元格包含较长的文本,则可以自动将其拆分成更多行,如果您使用(相对较新的)规范,\multirow[t]{3}{=}{...}因为它已经在他的评论中提到了@leandriis。

编辑:

  • 多行单元格的默认设置是\raggedright
  • 如果您想更改此设置,则需要更新命令\multirowsetup,请参阅下面编辑的 MWE

在此处输入图片描述

(红线表示文字边框)

相关内容