我正在使用endfloat
和pdflscape
在文档末尾创建侧边表。问题是我想要生成一个较长的侧边表,即超过 2 页。但是,表格的第二部分(在第二页)与第一部分有很大不同,即列数等。所以我制作了一个新的侧边表。这在普通文档中看起来完全没问题(看起来像一个超过 2 页的完整表格),但使用 endfloat 时,正如人们所期望的那样,将生成 2 个链接,而不是第一个表格只有一个链接。
有什么办法可以解决这个问题?即表格内应该只有一个链接:[表格 1 关于此处...],
而不是两个链接。因此,应删除链接 [表 2 关于此处...]。
举例说明该问题:
\documentclass{article}
\usepackage{caption}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{longtable} % for 'longtable' environment
\usepackage{pdflscape} % for 'landscape' environment
\usepackage{endfloat}
\DeclareDelayedFloatFlavor{sidewaystable}{table}
\begin{document}
\section{Start}
\begin{sidewaystable}
\noindent
\captionbox{This is the first table.\label{tab:one}}{%
\begin{tabular}{ccccc}\toprule
\textbf{a} & \textbf{b} & \textbf{c} & \textbf{d} & \textbf{e} \\ \midrule
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
\bottomrule
\end{tabular}
}
\end{sidewaystable}
\begin{sidewaystable}
\noindent
\captionbox{This is the second table.\label{tab:two}}{%
\begin{tabular}{ccccc}\toprule
\textbf{a} & \textbf{b} & \textbf{c} & \textbf{d} & \textbf{e} \\ \midrule
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
\bottomrule
\end{tabular}
}
\end{sidewaystable}
\section{End}
\end{document}
答案1
endfloat 的工作方式是检测特定环境的开始,并将从那里到环境结束的代码从文档中剪辑到另一个文件中。您几乎可以将任何内容放入环境中,包括几页的浮动或非浮动。
该解决方案使用包装器环境来精确地实现这一点。
\documentclass{article}
\usepackage{caption}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{longtable} % for 'longtable' environment
\usepackage{pdflscape} % for 'landscape' environment
\usepackage{endfloat}
\newenvironment{wrapper}{}{}
\DeclareDelayedFloatFlavor{wrapper}{table}
\DeclareDelayedFloatFlavor{sidewaystable}{table}% to check for conflicts
\begin{document}
\section{Start}
\begin{wrapper}
\begin{sidewaystable}
\noindent
\captionbox{This is the first table.\label{tab:one}}{%
\begin{tabular}{ccccc}\toprule
\textbf{a} & \textbf{b} & \textbf{c} & \textbf{d} & \textbf{e} \\ \midrule
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
\bottomrule
\end{tabular}
}
\end{sidewaystable}
\begin{sidewaystable}
\noindent
\captionbox{This is the second table.\label{tab:two}}{%
\begin{tabular}{ccccc}\toprule
\textbf{a} & \textbf{b} & \textbf{c} & \textbf{d} & \textbf{e} \\ \midrule
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
1 & 2 & 3 & 4 & 5\\
\bottomrule
\end{tabular}
}
\end{sidewaystable}
\end{wrapper}
\section{End}
\end{document}