!config # Arara, the cool TeX automation tool # Copyright (c) 2023, Island of TeX # All rights reserved. # # This rule is part of arara. identifier: xetex name: XeTeX authors: - Island of TeX commands: - name: XeTeX engine command: > @{ return getCommand(branch, interaction, shell, synctex, options, reference.fileName); } arguments: - identifier: branch flag: > @{ engines = [ 'stable' : 'xetex', 'unsafe' : 'xetex-unsafe' ]; if (engines.keySet().contains(parameters.branch)) { return engines.get(parameters.branch); } else { throwError('The valid branch values are: ' + engines.keySet()); } } default: 'stable' - 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.'); } }