!config # Arara, the cool TeX automation tool # Copyright (c) 2023, Island of TeX # All rights reserved. # # This rule is part of arara. identifier: latexmk name: LaTeXmk authors: - Island of TeX commands: - name: Tool LaTeXmk command: > @{ if (!clean.isEmpty()) { return getCommand('latexmk', clean, options); } else { return getCommand('latexmk', isTrue(program.isEmpty(), engine, program), options, reference.fileName); } } arguments: - identifier: options flag: > @{ if (isList(parameters.options)) { return parameters.options; } else { throwError('I was expecting a list of options.'); } } - identifier: clean flag: > @{ if ([ 'all', 'partial' ].contains(parameters.clean)) { return isTrue(parameters.clean == 'all' , '-C', '-c'); } else { throwError('The provided clean value is not valid.'); } } - identifier: engine flag: > @{ if ([ 'latex', 'pdflatex', 'xelatex', 'lualatex' ].contains(parameters.engine)) { flags = [ 'latex' : '-dvi', 'pdflatex' : '-pdf', 'xelatex' : '-xelatex', 'lualatex' : '-lualatex', 'latex-dev' : [ '-dvi', '-e', "$latex='latex-dev'" ], 'pdflatex-dev' : [ '-pdf', '-e', "$pdflatex='pdflatex-dev'" ], 'xelatex-dev' : [ '-xelatex', '-e', "$xelatex='xelatex-dev'" ], 'lualatex-dev' : [ '-lualatex', '-e', "$lualatex='lualatex-dev'" ] ]; return flags[parameters.engine]; } else { throwError('The provided engine value is not valid.'); } } - identifier: program flag: > @{ return '-latex='.concat(parameters.program) }