将部分放置在文档中定义的位置之后

将部分放置在文档中定义的位置之后

是否有可能让某个部分在文档中出现的位置比其定义的位置靠后?

\documentclass{article}

\begin{document}
\section{Intro}
This section appears first.

\section{Arcane details}
This section should not appear here, but later.

\section{Interesting bits}
That people want to see.

\appendix
% The Arcane details section should appear here.

\end{document}

在这个简单的例子中,我不希望我定义的第二部分(神秘的细节)作为第二部分出现,而是作为文档末尾的附录。

我知道我可以将该部分移动到我想要的位置,但我想要这样做的情况是针对自动生成的文档(特别是 R 中的 Sweave)并且我希望稍后出现的部分涉及需要在生成文档其余部分之前完成的计算。

答案1

如果你有这样一个部分(更具体地说,是一段连续的代码),你可以将该特定内容写入文件,并在稍后读取。文件写入支持filecontents包裹。这是一个最小的例子:

\documentclass{article}
\usepackage{filecontents}% http://ctan.org/pkg/filecontents
\begin{document}
\section{Intro}
This section appears first.

\begin{filecontents*}{arcane.tex}
\section{Arcane details}
This section should not appear here, but later.
\end{filecontents*}

\section{Interesting bits}
That people want to see.

\appendix
\input{arcane}% The Arcane details section appears here.

\end{document}

产生

在此处输入图片描述

filecontents(带星号或不带星号的)环境中,所有内容都会逐字转储到文件中,同时\input读取内容,就好像它被放置在该位置的原始源中一样。这种方法甚至适用于您部分中的大型复杂结构。您应该为每个“延迟使用”使用不同的文件名,否则文件将被覆盖(如果您正在使用filecontents*)。

如果您有兴趣实际上对该部分进行剪切和粘贴(保留部分编号并将其从文档主内容的序列中删除),当然还需要做更多的工作。

答案2

你想要这样的东西:

\documentclass{article}

\begin{document}
\section{Intro}
This section appears first.

\def\arcanesection{%
  \section{Arcane details}
  This section should not appear here, but later.
}

\section{Interesting bits}
That people want to see.

\appendix
% The Arcane details section should appear here.
\arcanesection
\end{document}

相关内容