以下longtable
(或longtabu
)太宽。我虽然很天真,但还是把表格放入了adjustbox
,但它无法编译。
\documentclass{article}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{graphicx}
\usepackage{adjustbox}
\usepackage{showframe}
\begin{document}
\begin{adjustbox}{max width=\textwidth}
\begin{longtable}{*{6}{c}}
&
Homer J. Simpson &
Marge Simpson &
Bart Simpson &
Lisa Simpson &
Maggie Simpson
\\
\hline
\endhead
Age &
38 &
34 &
10 &
8 &
1
\\
\end{longtable}
\end{adjustbox}
\end{document}
是否可以自动调整表格宽度\textwidth
?
更新:
longtable
如果我将 替换为tabular
并删除 ,则可以获得预期结果\endhead
。但我需要一个可以跨页面拆分的表格。并且我不希望在单元格内换行 - 我想缩放整个表格的宽度。
答案1
\documentclass{article}
\usepackage{ltablex,array}
\usepackage[textheight=1in]{geometry}
\usepackage{showframe}
\begin{document}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\begin{tabularx}{\textwidth}{*{6}{L}}
& Homer J. Simpson & Marge Simpson & Bart Simpson & Lisa Simpson & Maggie Simpson \\
\hline \endhead
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
\end{tabularx}
\end{document}
您需要两个功能:1) 表格应为\textwidth
,2) 表格应跨页,那么您需要同时使用tabularx
和longtable
。解决方案是使用ltablex
包,它提供了tabularx
在页面边界处分页的功能,就像longtable
一样。我定义了newcolumntype
左对齐{L}
,但如果您愿意,可以忽略它。另外,我设置了一个非常短的页面高度,仅供参考。在您的文档中,您不需要这样做。
如果表格仍然太宽,您可以设置\small
字体大小或缩小列间距(例如\setlength{\tabcolsep}{4pt}
)。关于这一点,网站上也有太多问题。
更新
\documentclass{article}
\usepackage{ltablex,array}
\usepackage{showframe}
\begin{document}
\footnotesize
\setlength{\tabcolsep}{3pt}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{tabularx}{\textwidth}{C*{5}{c}}
& Homer J. Simpson & Marge Simpson & Bart Simpson & Lisa Simpson & Maggie Simpson \\
\hline \endhead
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
Age & 38 & 34 & 10 & 8 & 1 \\
\end{tabularx}
\end{document}