将图表和表格合并在同一页上

将图表和表格合并在同一页上

我有一张图和一张表,我想确保它们都出现在同一页上。我希望两个对象都保留其自然编号和标题:图应带有标题Figure 1.2.3: Text,表应带有标题Table 1.2.3: Text 2。目前,我[pt]为两者指定了位置,但这(当然)不是我需要的。

我知道以下两种解决方案:

  1. 使用\subfloat
  2. 使用单个figure并放两者,表格和图在这个图中并使用\caption两次。

这两种解决方案都无法生成我需要的标题:第一种解决方案生成一个图形,第二种解决方案生成两个图形。我需要一个图形和一个表格来生成标题。

答案1

我认为应该figure位于页面的最顶部,紧接着是环境table。(此外,我理所当然地认为这两个环境实际上可以放在一页上,对吗?)

您可以通过加载包并将和环境afterpage“封装”在语句中来实现这些目标,如下面的代码片段所示:figuretable\afterpage{...}

\afterpage{%    % defer execution until the next page break occurs anyway
   \begin{figure}[t!] % not "pt"
      \centering
      % remaining contents of figure environment
   \end{figure}
   \begin{table}[h!] % not t or b or p
      \centering
      % remaining contents of table environment
   \end{table}
} % end of argument of `\afterpage` command

我进一步假设没有延迟的图形和/或表格环境等待排版。如果是这种情况,您应该将指令\clearpage作为命令参数中的第一个项目发出\afterpage。(即使没有累积的延迟浮点数需要处理,\clearpage在材料开始时发出指令也不会造成任何损害\afterpage;它只会被 TeX 忽略。)

此外,如果图形和表格环境合起来占据了大部分页面(例如,超过 75% 的页面),您可能还需要在环境\clearpage结束后发出第二条指令table。这将告诉 LaTeX 您希望在相关页面上只保留这两个浮动元素。

答案2

您可以使用捕获包用于为表格和图形添加单独的标题,无论是否使用通常的浮动环境:

\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage{capt-of}

\begin{document}
\listoffigures
\listoftables

A non-floating version works\dots
\begin{center}
  \captionof{table}{Caption of the first table}\label{tab:tableone}
  \begin{tabular}{ll}
  ... & ... \\
  \end{tabular}
  \\[\floatsep]
  \rule{4cm}{2cm} % \includegraphics{yourpicture}
  \captionof{figure}{Caption of the first figure}\label{fig:figureone}
\end{center}

\dots as well as a floating example.
\begin{figure}[bp]
  \centering
  \captionof{table}{Caption of the second table}\label{tab:tabletwo}
  \begin{tabular}{ll}
  ... & ... \\
  \end{tabular}
  \\[\floatsep]
  \rule{4cm}{2cm} % \includegraphics{yourpicture}
  \captionof{figure}{Caption of the second figure}\label{fig:figuretwo}
\end{figure}

\end{document}

编辑:扩展示例以显示浮动环境。

答案3

您可以使用subcaption借助底层caption包裹。

\documentclass{article}
\usepackage{subcaption}
\usepackage{mwe} %<- For dummy image
\DeclareCaptionLabelFormat{andtable}{#1˜#2 \& \tablename˜\thetable}

\begin{document}

\listoftables
\listoffigures


\begin{figure}
\begin{subfigure}{0.5\textwidth}\centering
\includegraphics[width=0.3\textwidth]{example-image-a}%
\label{fig:fig1}
\caption{important image}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\centering
\begin{tabular}[b]{cc}
a &b\\c&d
\end{tabular}
\label{tab:table1}
\caption{important result}
\end{subfigure}
\captionlistentry[table]{important result}
\captionsetup{labelformat=andtable}
\caption[important image]{typeset together}
\end{figure}


\end{document}

在此处输入图片描述

相关内容