是否可以使用 arara 将“草稿”选项传递给 documentclass?

是否可以使用 arara 将“草稿”选项传递给 documentclass?

我有这个文件:

% arara: pdflatex
\documentclass[11pt, openright, 
%   draft
    ]{book}

\begin{document}
Something
\end{document}

如果我想要最终版本和草稿版本,我必须运行arara一次,重命名输出 pdf,取消注释draft,然后arara再次运行。

是否有可能做类似的事情:

% arara: pdflatex
% arara: pdflatex { pass-this-option-to-documentclass : draft , call-the-doc : _draft}
\documentclass[11pt, openright, 
    ]{book}

\begin{document}
Something
\end{document}

并且一次性获得 PDF 草稿和最终版本?

答案1

arara 可以更改作业名称。我复制了一份 pdflatex.yaml,命名为 pdflatexX.yaml,并在标识符处更改了两个地方:

identifier: pdflatexX

并在草案规则中(我不认为它有用,我从不使用--draftmode):

- identifier: draft
  flag: >
    @{
        joboption='--jobname=';
        jobname=getBasename(file).concat('-draft');
        return joboption.concat(jobname)
     }

可以通过一些命令行定义来传递草稿选项,但我更喜欢一些 expl3 代码并简单地测试作业名称:

% arara: pdflatexX
% arara: pdflatexX: {draft: yes}

\RequirePackage{expl3}
\ExplSyntaxOn\makeatletter
\str_if_in:NnT \jobname {draft} {\def\@classoptionslist{draft}}
\ExplSyntaxOff\makeatother

\documentclass[11pt, openright]{book}
\usepackage{graphicx}
\begin{document}
Something \includegraphics{example-image-duck}
\end{document}

这会生成两个 pdf 文件——一个-draft附加了使用草稿设置的名称。

在此处输入图片描述

相关内容