我正在为 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{...}
代码。它们也可以自定义,例如X
tabularx
\newcolumntype{C}{>{\centering\arraybackslash}X}
用于单元格内容的水平居中。同样,你可以用raggedright
或raggedleft
let 和 来定义单元格内容的右对齐。