将表格放在章节末尾

将表格放在章节末尾

我有一个非常大的表格,我想把它放在章节末尾。我需要把它放在浮点数中,因为我想要一个标题。我可以简单地将代码放在章节末尾,并使用 [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}

相关内容