我有一张图和一张表,我想确保它们都出现在同一页上。我希望两个对象都保留其自然编号和标题:图应带有标题Figure 1.2.3: Text
,表应带有标题Table 1.2.3: Text 2
。目前,我[pt]
为两者指定了位置,但这(当然)不是我需要的。
我知道以下两种解决方案:
- 使用
\subfloat
- 使用单个
figure
并放两者,表格和图在这个图中并使用\caption
两次。
这两种解决方案都无法生成我需要的标题:第一种解决方案生成一个图形,第二种解决方案生成两个图形。我需要一个图形和一个表格来生成标题。
答案1
我认为应该figure
位于页面的最顶部,紧接着是环境table
。(此外,我理所当然地认为这两个环境实际上可以放在一页上,对吗?)
您可以通过加载包并将和环境afterpage
“封装”在语句中来实现这些目标,如下面的代码片段所示:figure
table
\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}