采用 Etex 封装的橡胶

采用 Etex 封装的橡胶

我用它rubber来编译我的文档。在一些文档中(通常是 Beamer 演示文稿),我使用这个etex包。在这种情况下,rubber我打算使用它作为命令elatex来调用e-TeX编译引擎。但是没有这样的elatex命令,所以它不起作用!

正如在Launchpad 上的错误报告,解决方案是rubber使用选项-d(对于 PDF)调用并-e 'set program pdflatex'强制使用命令pdflatex而不是elatex.¹ 那么问题是什么?好吧,我想rubber简单地使用rubber -d foo.tex例如来调用。

避免使用命令行选项的一个解决方案是使用指令,在源代码中添加如下行:

% rubber: set program pdftex

但这些指令似乎与选项相对应-c,即在分析源代码之前给出它们rubber。因此,在我的情况下它不起作用,因为在我告诉它使用之后pdftex,它会读取行

\usepackage{etex}

并切换到e-TeX。(至少,这是我对这种行为的解释——我也可能错了!)

我的问题:是否有可能真的强制rubber使用某个特定引擎,并在源代码中指定某个指令?或者(或多或少等同于)是否可以在源代码中给出与-e选项相对应的指令而不是-c选项?

一条评论:我知道正确的解决方案是删除rubber,但由于它似乎不再被维护,我对纯的rubber溶液如果它存在的话!

¹-e选项允许设置所谓的变量经过对源代码的分析,这样即使rubber注意到了该etex包,我们也可以强制它使用pdftex

答案1

在最近(我想说是 2007 年以后)的 TeX 发行版中,不再有单独的pdfelatex程序,因为pdflatex默认使用 e-TeX 扩展。

的旧版本rubber可能有不同的编译器模块pdfelatex,但最新版本(1.2)没有。

如果你rubber坚持调用pdfelatexelatex,只需为它们创建 shell 别名,分别指向pdflatexlatex

升级您的rubber,这个问题就会解决。另请注意,使用 2015/01/01 的 LaTeX 内核,etex不再需要调用该包。

相关内容