为什么这些表之间的部分没有显示在所需的位置?

为什么这些表之间的部分没有显示在所需的位置?

我对 Latex 还很陌生,在使用表格时遇到了这个问题:

我有一定数量的表格,其结构完全相同,当我在它们之间定义子部分时,子部分不会出现在正确的位置。具体来说,在这种情况下,我得到的是一页顶部是子部分 A,然后是表格列表,但在第一页的末尾我看到写着子部分 B...但那不是表格的正确位置。

您认为为什么会发生这种情况?谢谢。

\newcolumntype{R}[1]{>{\raggedleft}p{#1}}

\subsection{A}
\begin{table}[ht!]
  \caption{Movie 01.01.F}
  \begin{tabular}{R{3cm} p{9cm}} 
    \toprule
    \textbf{ID} & 01.01.F \\
    \midrule
    \textbf{Title} & Movie2\\
    \textbf{Description} & Movie1\\
    \bottomrule
  \end{tabular}
\end{table}

.
.
.

\subsection{B}
\begin{table}[ht!]
  \caption{Movie 01.02.F}
  \begin{tabular}{R{3cm} p{9cm}} 
    \toprule
    \textbf{ID} & 01.02.F \\
    \midrule
    \textbf{Title} & Movie2\\
    \textbf{Description} & Movie2\\
    \bottomrule
  \end{tabular}
\end{table}

答案1

环境table定义了一个浮动。浮动就是浮动,也就是说,它们出现在最美观的位置。你可以想象,像表格或图片这样的大东西会占据很大的空间。通常,表格不会跨页拆分,而图形几乎从不拆分。因此,你可能会发现图形或表格必须移到下一页。在文字处理器中,上一页留下巨大的空白是很常见的,表格从下一页开始,然后是更多文本。这不是很好。

为了避免这种情况,您可能熟悉表格和图形有时会出现在章节末尾的专用页面上。或者,您可能会发现它们只出现在页面的顶部和/或底部,而不一定出现在文档中逻辑上应该出现的位置。因此,第一页将填满表格后面的文本,而不是在上一页留下巨大的空白,表格放在下一页,然后是其余的文本。这样更漂亮,更高效,但如果您编写类似as can be seen in the table below:

但是,由于表格通常是被单独引用的,因此这种浮动行为通常是更受欢迎的。

让我告诉你我在说什么。

而不是这样:

在此处输入图片描述

其中有红色文本、巨大的间隙、表格,然后是蓝色文本。

我们得到这个:

在此处输入图片描述

蓝色文本直接延伸到红色文本之后,第一页就填满了,然后表格出现在下一页的顶部,其余蓝色文本则延伸到其后。但第一页的所有内容都填满了。

该表格出现在代码中红色段落和蓝色段落之间。

如果您希望避免这种浮动行为,第一个方法是使用环境[ht!]选项table。可选参数用于告诉 LaTeX 将浮动放置在何处。[ht!]将使 LaTeX 尽其所能将表格放在输出中与输入中的准确位置。但是,由于印刷方面的考虑,诸如小节标题之类的内容可能会导致问题,我认为这就是您遇到的困难。

因此,如果您不想让表格浮动,那么接下来要做的就是不要浮动表格!:P 环境的目的之一table就是赋予这种浮动行为。您根本不把自己封闭tabulartable环境中。

然而,table环境非常重要且非常有用,并且还可以执行您可能想要的标题和表格列表等操作。

您还可以做的一件事就是简单地接受浮动行为,这通常是出于美观考虑。像我这样从文字处理器上学来的人不习惯浮动,并且倾向于避免使用浮动,但这是一种很好的习惯,它们的好处值得牢记。

但是,如果您希望文档保持完美的逻辑流程,每个表格都出现在您想要讨论的位置,那么您可能想尝试一下该placeins包。这定义了\FloatBarrier您可以在table环境之后发出的命令,它将确保table代码中出现在环境之后的任何内容都不会出现在输出中的表格之前。或者换句话说,表格将出现在您想要的任何位置。这可能会产生糟糕的结果,但请谨慎使用。

梅威瑟:

\documentclass{article}
\usepackage{placeins}
\usepackage{lipsum}

\begin{document}

\lipsum[1-4]

\begin{table}[!ht]
  \begin{tabular}{ll} 
    Column A & Column B \\
    1 & 2 \\
    3 & 4 \\
    5 & 6 \\
    7 & 8 \\
    9 & 10 \\
    11 & 12 \\
    13 & 14 \\
    15 & 16 \\
    17 & 18 \\
    19 & 20 \\
    21 & 22 \\
    23 & 24 \\
    25 & 26 \\
    27 & 28 \\
    29 & 30 \\
    31 & 32 \\
    33 & 34 \\
    35 & 36 \\
  \end{tabular}
\end{table}

\FloatBarrier

\lipsum[5-7]

\end{document}

上面的代码示例:

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{amsmath}

\usepackage{lipsum}
\usepackage{booktabs}

\usepackage{placeins}

\usepackage[usenames]{color}
\definecolor{red}{rgb}{1,0,0}
\definecolor{blue}{rgb}{0,0,1}

\newcommand{\red}[1]{\textcolor{red}{#1}}
\newcommand{\blue}[1]{\textcolor{blue}{#1}}

\begin{document}

\red{\lipsum[1-4]}

\begin{table}[!ht]
  \begin{tabular}{ll} 
    \toprule
    Column A & Column B \\
    \midrule
    1 & 2 \\
    3 & 4 \\
    5 & 6 \\
    7 & 8 \\
    9 & 10 \\
    11 & 12 \\
    13 & 14 \\
    15 & 16 \\
    17 & 18 \\
    19 & 20 \\
    21 & 22 \\
    23 & 24 \\
    25 & 26 \\
    27 & 28 \\
    29 & 30 \\
    31 & 32 \\
    33 & 34 \\
    35 & 36 \\
    \bottomrule
  \end{tabular}
\end{table}

\FloatBarrier

\blue{\lipsum[5-7]}

\end{document}

相关内容