表格环境中的迷你页面溢出的水平盒子

表格环境中的迷你页面溢出的水平盒子

我有以下内容

\documentclass{article}

\begin{document}
\section{Test}
\begin{tabular}{r|l}
test text 1
    &   \begin{minipage}[t]{\linewidth}
        test text 2
        \end{minipage}
\end{tabular}
\end{document}

产生的结果看起来像

在此处输入图片描述

问题是,这会产生一个警告,提示“Overfull \hbox”。这是怎么回事?修复它的最佳方法是什么?

在旁边:我发现如果我使用tabularx如下环境

\documentclass{article}

\usepackage{tabularx}

\begin{document}
\section{Test}
\begin{tabularx}{\linewidth}{r|X}
test text 1
    &   \begin{minipage}[t]{\linewidth}
        test text 2
        \end{minipage}
\end{tabularx}
\end{document}

然后警告消失,但我不确定为什么,或者这是否是正确的解决方案。

答案1

的大小\linewidth不是预先规定的,而是始终自动适应使用的环境的宽度。例如,在文本主体中linewidth等于\textwidth,在多列文档的列中等于\columnwidth,在某些列表(例如 itemize)中等于项目的宽度。因此,在很多时候它的功能非常理想。

在您的示例中,这意味着,当用于X列中时,其宽度为列减二\tabcolsep,用于时,p{<column width>}宽度为<column width>,但是当用于列中时clr,其没有规定的宽度(它们的宽度等于其内容的宽度),表中最后已知的宽度为,\textwidth因此第一个示例中 minipage 的宽度等于\textwidth

您应该使用什么宽度来代替linewidth?这取决于您的需求,我们不知道。在大多数情况下,您不需要minipage表格,而只需要适当的列类型,例如p{<desired width>}您确定宽度的位置(例如 12em)或XLaTeX 根据表格宽度计算的宽度。

您可以在以下位置找到有关表格的更多信息维基百科:表格

答案2

也许你需要这样的东西: 在此处输入图片描述

使用以下代码:

\documentclass{article}
\usepackage{tabularx,lipsum}

\begin{document}
    \section{Test}
    \begin{tabularx}{\linewidth}{rX}
        test text 1     &       \lipsum[1][1-3]\\
        test text 2     &       \lipsum[2][1-3]\\
        test text 3     &       \lipsum[3][1-3]\\           
    \end{tabularx}
\end{document}

相关内容