这看起来很奇怪,但我确实需要这个。是否有内置宏来加载文档环境中指定的附加包?
% main.tex
\documentclass{article}
\begin{document}
\input{subfile}
\end{document}
% subfile.tex
\LoadPackage{pstricks}
\LoadPackage{multido}
\pspicture(1,1)
\psframe(1,1)
\endpspicture
我接受了 mbork 的回答,因为它确实允许我们在之后加载一些包\begin{document}
。我已经测试了以下内容,并成功编译了 PDF 输出。
% main.tex
\documentclass{article}
\usepackage{pkgindoc}
\begin{document}
\input{subfile}
\end{document}
% subfile.tex
\usepackage{xcolor}
I can find a tool to convert PDF to EPS in my neither bathroom nor kitchen.
不幸的是,使用 pstricks、geometry、hyperref(以及其他工具)不起作用。:-(
答案1
现在显然没有多少人知道下面的技巧。
创建一个pkgindoc.ins
包含以下内容的文件:
\input docstrip
\generate{\file{pkgindoc.sty}{\from{ltclass.dtx}{afterpreamble}}}
\endbatchfile
在某些临时目录/文件夹中。将文件复制ltclass.dtx
到同一目录并运行latex pkgindoc.ins
。您将获得一个文件pkgindoc.sty
;将其复制到需要的任何位置。当您\usepackage{pkgindoc}
在中声明的命令(ltclass.dtx
如\@onlypreamble
\usepackage
将可用后 \begin{document}
。
注意:这似乎不会有帮助,如果一些包裹包含其他声明为的命令\@onlypreamble
,例如由其他一些包声明的命令;但是我仅从实验中知道这一点,我还没有研究过pkgindoc.sty
(还没有;))。
答案2
选项subpreambles
standalone
包裹将收集所包含子文件的前导码,并在下次编译器运行时将它们读入主前导码中。但是,为此,您需要document
子文件中的完整前导码和环境。
答案3
软件包只能在文档的前言部分加载。但是,对于 PSTricks 来说,这是一种特殊情况,您可以这样做:
% subfile.tex
\input{pstricks}
\input{multido}
\pspicture(1,1)
\psframe(1,1)
\endpspicture