!config # Arara, the cool TeX automation tool # Copyright (c) 2023, Island of TeX # All rights reserved. # # This rule is part of arara. identifier: perltex name: PerlTeX authors: - Island of TeX commands: - name: PerlTeX wrapper command: > @{ return getCommand('perltex', engine, safe, permit, standalone, interaction, shell, synctex, options, reference.fileName); } arguments: - identifier: engine flag: > @{ if ([ 'latex', 'pdflatex' , 'xelatex', 'lualatex', 'tex', 'pdftex', 'luatex', 'context' ].contains(parameters.engine)) { return '--latex='.concat(parameters.engine); } else { throwError('The provided TeX engine is invalid.'); } } - identifier: safe flag: > @{ return isTrue(parameters.safe, '--safe', '--nosafe'); } - identifier: permit flag: > @{ if (isList(parameters.permit)) { p = []; foreach(entry: parameters.permit) { p.add('--permit='.concat(entry)); } return p; } else { throwError('I was expecting a list.'); } } - identifier: standalone flag: > @{ return isTrue(parameters.standalone, '--makesty'); } - identifier: interaction flag: > @{ if ([ 'batchmode', 'nonstopmode', 'scrollmode', 'errorstopmode' ].contains(parameters.interaction)) { return '--interaction='.concat(parameters.interaction); } else { throwError('The provided interaction value is not valid.'); } } - identifier: shell flag: > @{ isTrue(parameters.shell, '--shell-escape', '--no-shell-escape') } - identifier: synctex flag: > @{ isTrue(parameters.synctex, '--synctex=1', '--synctex=0') } - identifier: options flag: > @{ if (isList(parameters.options)) { return parameters.options; } else { throwError('I was expecting a list of options.'); } }