我希望使用以下代码创建一个跨越整个可用列宽的表格(因为文本太多)。
\documentclass[letterpaper, % Use US letter-size paper
oneside, % No verso and recto differences
\pointsize] % Uses the font size defined above
{memoir}
\usepackage{calc}
\settrimmedsize{\stockheight}% % Specifies \paperheight and \paperwidth
{\stockwidth}{*}
\settrims{0pt}{0pt} % Set location of page in relation to the stock.
\begin{document}
\begin{table}[h] % Table float
\caption{Layers of Evidence-Centered Design}
\label{table\arabic{tablecounter}}
\begin{tabu}{@{}p{0.14\columnwidth}p{0.26\columnwidth}p{0.25\columnwidth}p{0.29\columnwidth}@{}} \\ \hline
a & b & c & d\\ \hline
a & b & c & d\\
a & b & c & d\\ \hline
\end{tabu}
\legend{\emph{Source}: \textcite{mislevy2012design}}
\end{table}
\refstepcounter{tablecounter}
\end{document}
表格有四列,每列宽度不同。表格总宽度为0.14 + 0.26 + 0.25+ 0.29
,即 0.94
因此表格宽度小于可用列宽度,即使这样 latex 也会抱怨水平盒子过满。如果总宽度不是 1*columnwidth(或 textwidth; none 按照预期工作),我该如何确保它使用了可用宽度,不多不少。
另外,我该如何让表格看起来更好看呢?它看起来很丑,因为一列中的某些条目没有空间。因此,它们似乎部分重叠,如下面的屏幕截图所示。
更新:我使用并封闭了包中的子句中\begin{tabu} {X[1,l]X[3.1,l]X[3.1,l]X[4,l]}
的表。现在表看起来好多了。但是,我仍然收到溢出错误。我如何确保不溢出水平框。我知道有很多关于水平框溢出的帖子,但仍然无法摆脱它。\begin{landscape}
end
pdflscape
答案1
我建议根据横向页面进行以下操作。我还使用了booktabs
包中的命令来确定第一列的适当宽度。tabularx
\widthof
calc
\documentclass[letterpaper,oneside]{memoir}
\usepackage{calc}
\usepackage{tabularx}
\usepackage{pdflscape}
\usepackage{lipsum}
\usepackage{booktabs}
\begin{document}
\begin{landscape}
\begin{table}[h] % Table float
\caption{Layers of Evidence-Centered Design}
\label{table}
\begin{tabularx}{\linewidth}{@{}>{\raggedright\arraybackslash}p{\widthof{Conceptual}}XXX@{}}
\toprule
a & b & c & d\\
\midrule
Domain Analysis & \lipsum[1][1-2] & \lipsum[1][2-4] & \lipsum[1][1-3]\\ \addlinespace
Conceptual assessment framework & \lipsum[1][1-2] & \lipsum[1][2-5] & \lipsum[1][1-3]\\
\bottomrule
\end{tabularx}
\legend{\emph{Source}: }
\end{table}
\end{landscape}
\end{document}
在示例代码中,第 2 列至第 4 列的宽度相等。如果您希望这些列的宽度不同,也可以使用类似
\begin{tabularx}{\linewidth}{@{}>{\raggedright\arraybackslash}p{\widthof{Conceptual}}p{5cm} X p{4cm}@{}}
答案2
\documentclass[letterpaper, oneside]{memoir}
\usepackage{calc}
\settrimmedsize{\stockheight}{\stockwidth}{*}
\settrims{0pt}{0pt}
\usepackage{tabularx,ragged2e,booktabs,caption,lipsum}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}
\begin{document}
\begin{table}[ht!]
\captionsetup{font=bf,skip=0.5\baselineskip}
\caption{Layers of Evidence-Centered Design}
\setlength\extrarowheight{5pt}
\begin{tabularx}{\textwidth}{@{}llLL@{}}
\toprule
a & b & c & d\\ \midrule
a & b & \lipsum[7] & \lipsum[7]\\
a & b & \lipsum[7] & \lipsum[7]\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}