有没有办法用非标准包创建一个独立的文件夹/文档?

有没有办法用非标准包创建一个独立的文件夹/文档?

我正在撰写一篇文章,将在另一台机器(其他人的机器)上编译。我不想依赖其他人来安装缺少的软件包。有没有办法将它们包含在我要发送给他的文件夹中?

答案1

我之前回答过类似的问题(见这里),但也许你只想给他们一个文件,而不是包含所有文件的整个档案。如果是这样,这是一种可能性,假设这个“projectfile.tex”:

% projectfile.tex
\RequirePackage{snapshot}% <-- this *must* be used! 
\documentclass{article} 
\usepackage{parskip}%      <-- pretend this is a file your partner doesn't have
\begin{document}
Some words.
\end{document}

现在,您在 上运行latex(或pdflatex等)projectfile.tex。创建的文件包括projectfile.dep(通过包)。现在,我们希望结合和snapshot的功能,通过包创建一个具有的文件arlatexbundledocfilecontents全部成功处理所需的文件projecttile.tex(即从article.clsparskip.sty)。如果包含许多软件包,此文件将变得非常大,这就是为什么将其输出到存档文件可能更有意义。但是,也许大小不是问题……

接下来我们需要一个.cfgfor bundledoc。对于 Windows,变量会略有不同,但这是我使用的(我们称之为arlatex+bundledoc.cfg):

# config file 'arlatex+bundledoc.cfg'
bundle: (arlatex --document=$BDBASE.tex $BDINPUTS > $BDBASE-all.tex)
sink:   > /dev/null 2>&1 
find:   kpsewhich -progname=latex $BDINPUTS

现在我们运行bundledoc命令(--verbose这可能是一个好主意,至少在你刚开始时):

bundledoc --config=arlatex+bundledoc.cfg --verbose projectfile.dep

这应该会创建一个名为 的文件。通过在其上projectfile-all.tex运行(等)并将结果输出与 的输出进行 -ing 来测试它。latexdiffprojectfile.tex

正如我所说,这个过程可能会创建怪物文件,因此输出到某种压缩文件(参见其他答案)可能更有意义,或者简单地用来arlatex包含具体的可移植性所需的文件。

编辑:

换句话说,基本程序包括以下步骤:

  1. 按照通常方式创建文件(例如通过pdflatex);
  2. 当您准备使用时,在文件顶部或附近bundledoc添加该行(必须位于该行上方);\RequirePackage{snapshot}.tex\documentclass
  3. .tex再次编译main函数,创建该.dep文件;
  4. 确保您有一个可行的配置(.cfg)文件bundledoc(最简单的方法是将其保存在工作目录中);
  5. bundledoc使用文件.cfg上的文件运行.dep

如果一切顺利,并且您使用与本例中类似的文件名,那么您最终会得到一个名为 的文件-all.tex

答案2

组合捆绑文档快照可能满足您的要求。虽然我自己没有用过这些,但据我所知,快照可以列出编译文档所需的所有文件和包。然后,bundledoc 可以将这些文件和包收集在一起,以便可以轻松地将它们与您的文档捆绑在一起,以便与其他人共享。

相关内容