这个问题与如何将图片放在pdf文件的末尾。正如从@cfr 和我的评论中可以看到的那样,我希望这是一个问题,如何提出数字代码,位于文本中间,文件末尾。
我有一些想法,关于如何实现它。一些命令\ifundefined...
在定义之前可能采用 形式,以防止出现错误。此外,文件末尾的命令可以写入外部文件并在 附近读取\begin{document}
。据我了解,图形文件位于 TikZ/PGF、PostScript、PSTricks 或其他一些工具中,这些工具在 TeX 编译期间生成图形。
没有 MWE,因为我更希望经验丰富的用户能提醒我使用外部文件解决问题的潜在陷阱。也有可能我的想法很幼稚,存在完全不同的解决方案。例如,问题名词和动词的排列组合,这对我来说似乎真的很难,但在三十分钟内就解决了。
我知道我可能会更加精确,但对我来说最重要的是我无法预测的一切,因此即使是我的想法的草图也只是一个起点的建议。
答案1
这是您似乎想要的实现。请注意,写入外部文件是不可避免的,除非您热衷于读取主文件两次,丢弃所有内容直到找到filecontents
。
可以重命名filecontents
该特定应用程序的环境。
\documentclass{article}
\usepackage{filecontents,environ,lipsum}
\newcommand\usefigure[2][htp]{%
\begin{figure}[#1]
\ifcsname figureatend@#2\endcsname
\csname figureatend@#2\endcsname
\else
\centering
The figure will be placed at the next run
\fi
\end{figure}
}
\NewEnviron{definefigure}[1]{%
\expandafter\xdef\csname figureatend@#1\endcsname{%
\unexpanded\expandafter{\BODY}%
}%
}
\AtBeginDocument{%
\InputIfFileExists{\jobname.fae}{}{}%
}
\begin{document}
\lipsum[2]
\usefigure[htp]{blurb}
\lipsum[3]
\usefigure[p]{foo}
\lipsum[4-5]
%%% NOW WE SPECIFY THE FIGURES
\begin{filecontents}{\jobname.fae}
\begin{definefigure}{foo}
\centering
\hrule
\vspace{5cm}
\fbox{THIS IS FIGURE foo}
\vspace{5cm}
\hrule
\caption{Foo}
\end{definefigure}
\begin{definefigure}{blurb}
\centering
\fbox{THIS IS FIGURE blurb}
\caption{Blurb}
\end{definefigure}
\end{filecontents}
\end{document}
您为图形命名;它们在环境中的指定顺序filecontents
完全无关紧要。您可以类似地扩展代码以允许使用表格。