使用tabu制作表格时段落中的水平盒子溢出

使用tabu制作表格时段落中的水平盒子溢出

我希望使用以下代码创建一个跨越整个可用列宽的表格(因为文本太多)。

\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}endpdflscape

在此处输入图片描述

答案1

我建议根据横向页面进行以下操作。我还使用了booktabs包中的命令来确定第一列的适当宽度。tabularx\widthofcalc

在此处输入图片描述

\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}


相关内容