我目前正在创建一个里面figure
填充的内容longtable
,我这样做是因为我需要标题数字,而另一方面,我需要环境table
。
问题是,我这样做的原因longtable
是我将创建一个大表,但将其放在里面figure
会使它无法分离。实际上有办法做到这一点吗?
所以我已经拥有的是:1.
\begin{longtable}{ccccc}
% Long content
\end{longtable}
没问题,但是我没有标题Figure
(如果可以把这个标题放在某处,也许这将是一个更简单的解决方案)
2.
\begin{figure}
\begin{longtable}{ccccc}
% Long content
\end{longtable}
\end{figure}
这样,我就有了标题,但表格将始终位于一页中(它们不想分开)。
答案1
不要使用浮点数longtable
,而要使用capt-of
或caption
包,然后\captionof{figure}{...}
创建Figure
标题。因为计数器longtable
确实会增加table
一,所以您需要再次减少它以确保后续table
s 的正确编号。
\documentclass{article}
\usepackage{longtable}
\usepackage{capt-of}
\begin{document}
% Document
\begin{center}
\begin{longtable}{ccccc}
a \\
% Long content
\end{longtable}%
\captionof{figure}{Caption text}%
\addtocounter{table}{-1}%
\end{center}
\end{document}
答案2
一个简单的方法是使用ltcaption
包重新定义浮点类型longtable
,如所建议的这个答案。
\documentclass{article}
\usepackage{longtable}
\usepackage{ltcaption}
\renewcommand\LTcaptype{figure} % redefine the float type used by longtable
\begin{document}
\begin{longtable}{ccccc}
\caption{My long table as a Figure} \\
Test & test 2 & test 3 & test 4 & test 5\\
Test & test 2 & test 3 & test 4 & test 5\\
\end{longtable}
\end{document}
笔记:有不需要用 来更新表计数器\addtocounter{table}{-1}
。
奖金
我是不是确信以下过程会导致文档不稳定,但我能够滥用这种重新定义:
\documentclass{article}
\usepackage{longtable}
\usepackage{ltcaption}
\begin{document}
\listoffigures
\listoftables
\renewcommand\LTcaptype{figure}
\begin{longtable}{ccccc}
\caption{My first long table as a Figure} \\
Test & test 2 & test 3 & test 4 & test 5\\
Test & test 2 & test 3 & test 4 & test 5\\
\end{longtable}
\renewcommand\LTcaptype{table}
\begin{longtable}{ccccc}
\caption{My second long table as a Table} \\
Test & test 2 & test 3 & test 4 & test 5\\
Test & test 2 & test 3 & test 4 & test 5\\
\end{longtable}
\renewcommand\LTcaptype{figure}
\begin{longtable}{ccccc}
\caption{My third long table as a Figure} \\
Test & test 2 & test 3 & test 4 & test 5\\
Test & test 2 & test 3 & test 4 & test 5\\
\end{longtable}
\end{document}