使用bundledoc打包LaTeX宏包依赖


Comments


2025 年 4 月
 123456
78910111213
14151617181920
21222324252627
282930  

我遇到过由于宏包不够新导致的latex编译失败。那么有没有办法将我们编译当前文档需要的宏包打包呢?

办法就是使用bundledoc. 我用的texlive2017(脚本位置:E:\texlive\2016\texmf-dist\scripts\bundledoc\bundledoc), 看起来这个宏包有点旧了, 需要修复下。

脚本的修复

P.S. 最新版的bundledoc(2018/05/23, Version 3.3)一下两个问题都已经修复。请直接更新。

首先它是一个perl脚本, 其中有个新建临时目录的函数tmpnam已经弃用了, 这个好像不是非常影响。

其次, 它的正则表达式{([^\}]*)}不正确, 因为根据*.dep的结构, 我们需要将其改成\\{([^}]*)\\}.

如果我们只需要将2017年以后的宏包打包, 则可以将上述代码片段改为

脚本的使用

新建test.tex文档如下:

这里的关键是需要第一行的\RequirePackage{snapshot}产生宏包依赖列表test.dep. 例如上面的代码产生的宏包依赖列表为:

接着, 我们需要在test.tex同目录下创建bundledoc配置文件bundledoc.cfg

最后, 如果你使用修改后的脚本的话, 运行
bundledoc --config=bundledoc.cfg --verbose test.dep
则得到打包后的压缩文件test-all.tar.gz
需要注意的是, 我们需要压缩文件的软件tar与gzip.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据


Other news

  • 使用Chrome播放本地SWF文件

    两个版本, 一个是选择文件, 一个是直接拖拽。 当然也有合并到一起的办法, 参考这里。直接将下列文件放到和fl…

  • Chrome下载完成后显示病毒扫描失败的解决办法

    很蛋疼的一个提示, 一个pdf下载好后给提示病毒扫描失败。把下载的pdf直接删除了。 解决办法是运行如下的注册…

  • C1驾照学习经验

    历时4个月+15天, 我的C1驾照到手了. 下面分享下经验, 为广大学员解惑。 学驾照, 要趁早 为啥呢, 一…