使用Multirow,tabularx形成表格

使用Multirow,tabularx形成表格

在此处输入图片描述我正在为 Springer 期刊准备一篇包含表格的文章。我使用的是 tabularx,多行。我的表格代码已附上。我无法将行“xxxxxxxx xxxxxxxxxxx xxxxxxxxxxxx”和“yyyyyyy yyyyyyyyyyyyy yyyyyyyyyyyy”合并为两行,这样这些行就不会跨越页面边界。该怎么做?

%\documentclass{svjour3}                     % onecolumn (standard format)
\documentclass[smallcondensed]{svjour3}     % onecolumn (ditto)
%\documentclass[smallextended]{svjour3}       % onecolumn (second format)
%\documentclass[twocolumn]{svjour3}          % twocolumn
%\documentclass[12pt]{report}
%\linespread{1.5}
\huge
%
%\smartqed  % flush right qed marks, e.g. at end of proof
%
%\usepackage[12pt]{extsizes}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{setspace}
\usepackage{spreadtab}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

%\usepackage{mathtools}
\title{}
\author{}

\begin{document}
\begin{table}
\caption{vvvv vvvv vvv hjgksjd ldkfjlsad}
\label{tab:2} 

\begin{tabularx}{\textwidth}{ll p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm} }
\toprule
size & Type & \multicolumn{2}{c}{xxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxxx} & \multicolumn{2}{c}{yyyyyyy yyyyyyyyyyyyy yyyyyyyy yyyyyyyyy} \\
\cmidrule(lr){3-4} \cmidrule(ll){5-6}
& & XYZ & P-XYZ & XYZ & P-XYZ \\
\midrule
100 & A &  \\
    & B &  \\
    & C &  \\
    & Ds &  \\\addlinespace
200 & A &  \\
    & B & \\
    & C & \\
    & Ds & \\\addlinespace
300 & A & \\
    & B &\\
    & C &\\
    & Ds &  \\\addlinespace
400 & A & \\
    & B &\\
    & C \\
    & Ds\\
\bottomrule
\end{tabularx}
\end{table}

\maketitle
\tableofcontents

\begin{abstract}
\end{abstract}

\section{}

\end{document}

答案1

看看以下 MWE 是否能帮助您:

\documentclass[12pt]{report}

\usepackage{graphicx}
\usepackage{setspace}
\usepackage{spreadtab}
\usepackage{booktabs,makecell,multirow,tabularx}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\begin{document}
    \begin{table}
\caption{vvvv vvvv vvv hjgksjd ldkfjlsad}
\label{tab:2}

\begin{tabularx}{\textwidth}{ll *{4}{X} }
\toprule
size & Type & \multicolumn{2}{c}{\thead{xxxxxxxxxx\\ xxxxxxxxxxx xxxxxxxxxxxx}} & \multicolumn{2}{c}{\thead{yyyyyyy yyyyyyyyyyyyy\\ yyyyyyyy yyyyyyyyy}} \\
\cmidrule(lr){3-4} \cmidrule(ll){5-6}
& & XYZ & P-XYZ & XYZ & P-XYZ \\
\midrule
100 & A &  \\
    & B &  \\
    & C &  \\
    & Ds &  \\\addlinespace
200 & A &  \\
    & B & \\
    & C & \\
    & Ds & \\\addlinespace
300 & A & \\
    & B &\\
    & C &\\
    & Ds &  \\\addlinespace
400 & A & \\
    & B &\\
    & C \\
    & Ds\\
\bottomrule
\end{tabularx}
\end{table}
    \end{document}

这个 MWE 给出

在此处输入图片描述

对于多行单元格,使用包thead中的宏makecells。可以通过\renewcommand\theadfont{...} 垂直对齐和\thead[t]{...}顶部对齐或\thead[b]{...}底部对齐选项来自定义字体。其中的行必须手动断开。

在代码中,我用来自包的代码替换了您的p{...}代码。它们也可以自定义,例如Xtabularx

\newcolumntype{C}{>{\centering\arraybackslash}X}

用于单元格内容的水平居中。同样,你可以用raggedrightraggedleftlet 和 来定义单元格内容的右对齐。

相关内容