如何在不明确说明尺寸的情况下将内容放在一起?

如何在不明确说明尺寸的情况下将内容放在一起?

我有一个表格环境和一些相关文本。现在,出于各种原因,我不想将此文本用作标题,我想确保它们始终在同一页上,或者文本至少与表格的开头位于同一页上。

有什么方法可以强制发生这种情况,而无需指定表(或可能尝试关联的相关类型的内容)的具体大小?

答案1

由于您不确定是否指定宽度,您可以将tabular内容框起来,然后让 LaTeX 提取宽度。以下是这种方法:

tabular使用以下环境进行装箱lrbox

\begin{lrbox}{<box cmd>}
  ...
\end{lrbox}

其中<box cmd>使用 定义\newsavebox{<box cmd>}。在我的 MWE(见下文)中,我使用了\mytabular。然后,您可以将“将内容放在一起”的全部内容装箱在minipage宽度为 的内\linewidth。这样,它将拉伸整个文本块宽度,即使您可能只使用其中的一部分。

\mytabular可以使用 来访问方框表格的宽度\wd\mytabular(同样,\ht\mytabular是高度,\dp\mytabular是深度)。tabular保存后,\usebox{\mytabular}对其进行排版。

在此处输入图片描述

\documentclass{article}
%\usepackage{varwidth}% http://ctan.org/pkg/varwidth
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\newsavebox{\mytabular}% Capture a tabular in a box
\begin{document}
\lipsum[1-4]% dummy text
\noindent\begin{minipage}​​​​​​​​​{\linewidth}
  \centering
  \begin{lrbox}{\mytabular}% Store tabular in \mytabular
    \begin{tabular}{llcrr}
      \hline
      Heading 1 & Heading 2 & Title & Heading 3 & Heading 4 \\ \hline
      stuff & stuff & some more stuff & stuff & stuff \\
      stuff & stuff & some more stuff & stuff & stuff \\
      stuff & stuff & some more stuff & stuff & stuff \\ \hline
    \end{tabular}
  \end{lrbox}

  \begin{minipage}{\wd\mytabular}
    \usebox{\mytabular}% Print tabular

    \lipsum[1]% dummy text/"caption"
  \end{minipage} \par
  \kern\textfloatsep% Make this seem like a "float"
​\end{minipage}
\lipsum[5-9]% dummy text
\end{document}

可以修改“标题”的宽度和“标题”下方的垂直间隙。

我已经注释掉了varwidth包裹因为这里似乎不需要使用它。但是,如果您的请求被修改,则可能会需要。

答案2

我认为“相关文本”材料本质上是解释性的,因此它们应该放在环境之下tabular(x,y)。如果你将它们放在声明之下\end{tabular}但在\end{table}声明之前,你就会得到你想要的东西。

相关内容