我有一个非常大的表格,我想把它放在章节末尾。我需要把它放在浮点数中,因为我想要一个标题。我可以简单地将代码放在章节末尾,并使用 [h] 甚至 [h!] 位置修饰符。但我希望将代码放在文本中的其他位置。我不想使用像 endfloat 这样的包,因为这是我希望放在章节末尾的唯一浮点数。
答案1
以下设置延迟放置单身的浮动到章节末尾。environ
包裹允许将环境的内容捕获到宏中(参见如何将 LaTeX 环境的内容传递给宏?)。确保所有储存的浮子都已冲洗干净\AtEndDocument
。
\documentclass{book}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{environ}% http://ctan.org/pkg/environ
\let\chapendfigure\relax
\let\oldchapter\chapter
\renewcommand{\chapter}{\chapendfigure\oldchapter}
\AtEndDocument{\chapendfigure}
\NewEnviron{chapendfig}{%
\global\let\chapendfigureBODY\BODY%
\gdef\chapendfigure{%
\begin{figure}\chapendfigureBODY\end{figure}%
\let\chapendfigure\relax%
}%
}
\begin{document}
\chapter{A chapter}
\begin{figure}
\centering\rule{.8\textwidth}{.2\textwidth}\caption{A figure}
\end{figure}
\begin{chapendfig}
\centering\rule{.8\textwidth}{.2\textwidth}\caption{Another figure}
\end{chapendfig}
%\show\chapendfigure
%\show\chapendfigureBODY
\lipsum[1-25]
\chapter{Another chapter}
\end{document}
最终图形的定位可以在宏内部改变\chapendfigure
(在环境内部定义)chapendfig
。虽然上面的例子延迟了,但它也figure
可以用于(或任何其他浮点数)。table
答案2
在章节正文中,将表格放在\savebox
\newsavebox{\abcd}
\savebox{\abcd}{%
\begin{tabular}{|c|c|}
\hline
a & b \\
c & d \\
\hline
\end{tabular}
}
table
在环境中使用章节末尾保存的框
\begin{table}
\centering
\usebox{\abcd}
\caption{a table}\label{t:abc}
\end{table}