这是用例:你编写了一个包含许多演示的示例文档:图表、tikz 图形、花式表格、列表、算法、框等。此图库显示使用了许多不相关的包;然而,它们都是\usepackage
d一起在序言中。这使得剪切和粘贴示例文档变得很困难。
理想情况下,一个新的包escalier
可以做到这一点:
\documentclass{article}
\usepackage{escalier} % will be replaced by many `\usepackage`
\begin{document}
\ldots
\section{TikZ Demo}
\escalier{tikz}{environments=tikzpicture,commands=\tikz}
\begin{tikzpicture}...\end{tikzpicture}
\tikz
\section{xcolor}
\escalier[table]{xcolor}{commands=\rowcolor}
... \rowcolor{red}...
\end{document}
实施将分为两步:第一步,所有在 escalier 中声明的命令都会被忽略,但\usepackage
第二步会注册一个请求。
编辑 为了更具体地说明这一点,我想:
- 能够
\usepackage
在需要的地方书写, 不是在序言中 - 我认为应该可以在两遍编译中实现这一点。在第一次编译中,所有使用的包都被移动并收集起来。它们的列表在第二次编译中使用。
- 我注意到您在第一次运行缺少包的命令时会遇到错误。
- 我提出了一个新的包,它提供了一个命令来静音命令。在第一次运行中,被静音的命令除了收集包之外什么也不做。在第二次运行中,这些静音命令被激活。
filecontents
我怀疑和中是否有任何东西standalone
可以帮助解决这一挑战:我们想要一个文档,但可以自我调整\usepackage
,而不是由不同文档创建的 PDF 文件集合
另一项编辑::幸运的是,一位意料之中的、无辜的 TeXinician 会抛弃所有约会,按照订单制作这个包裹。
问题是,就像这里通常的情况一样:解决问题的经济有效方法是什么,以及建议使用哪种用例。一个完整的包会很好,但也要有想法、方向等。例如,一位经验丰富的作家可以在一些描述包的 TeX 书中讲述如何做到这一点。
更具体地说,一个不错的答案应该是一个简单的、容易实现的解决方案,一个可以完成包中大部分工作的环境,但不是那么好的环境:
\begin{escalier}{\usepackage{tikz}\moreCommandsToPreabmle}
\begin{tikzpicture} ... \end{tikzpicture}
\end{escalier}
(通过脚本解决问题可能是可行的,但根据我对此类脚本的经验,它们从来都不够强大,而且一般来说,它们本身更多的是一个问题而不是解决方案)。