L'esprit de l'escalier / 刚刚记得包/使用 \usepackage 不在序言中

L'esprit de l'escalier / 刚刚记得包/使用 \usepackage 不在序言中

这是用例:你编写了一个包含许多演示的示例文档:图表、tikz 图形、花式表格、列表、算法、框等。此图库显示使用了许多不相关的包;然而,它们都是\usepackaged一起在序言中。这使得剪切和粘贴示例文档变得很困难。

理想情况下,一个新的包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 第二步会注册一个请求。

编辑 为了更具体地说明这一点,我想:

  1. 能够\usepackage在需要的地方书写, 不是在序言中
  2. 我认为应该可以在两遍编译中实现这一点。在第一次编译中,所有使用的包都被移动并收集起来。它们的列表在第二次编译中使用。
  3. 我注意到您在第一次运行缺少包的命令时会遇到错误。
  4. 我提出了一个新的包,它提供了一个命令来静音命令。在第一次运行中,被静音的命令除了收集包之外什么也不做。在第二次运行中,这些静音命令被激活。
  5. filecontents我怀疑和中是否有任何东西standalone可以帮助解决这一挑战:我们想要一个文档,但可以自我调整\usepackage,而不是由不同文档创建的 PDF 文件集合

另一项编辑::幸运的是,一位意料之中的、无辜的 TeXinician 会抛弃所有约会,按照订单制作这个包裹。

问题是,就像这里通常的情况一样:解决问题的经济有效方法是什么,以及建议使用哪种用例。一个完整的包会很好,但也要有想法、方向等。例如,一位经验丰富的作家可以在一些描述包的 TeX 书中讲述如何做到这一点。

更具体地说,一个不错的答案应该是一个简单的、容易实现的解决方案,一个可以完成包中大部分工作的环境,但不是那么好的环境:

\begin{escalier}{\usepackage{tikz}\moreCommandsToPreabmle}
   \begin{tikzpicture} ... \end{tikzpicture}
\end{escalier}

(通过脚本解决问题可能是可行的,但根据我对此类脚本的经验,它们从来都不够强大,而且一般来说,它们本身更多的是一个问题而不是解决方案)。

相关内容