该问题类似于这里有一个正是基于引用的帖子,我才知道了 arara。
我正在尝试做的也是自动执行从文件生成 pdf 的多步骤过程music.lytex
。
lilypond-book --output=out --pdf music.lytex
cd out/
pdflatex music.tex
pdflatex music.tex
我已经lilypond
根据引用的帖子(指向araraconfig.yml
)创建了规则:
!config
# Mainfile rule for arara
# author: Marco Daniel
# requires arara 3.0+
identifier: lilypond
name: Lilypond
command: <arara> lilypond-book @{format} @{options} @{output} "@{file}"
arguments:
- identifier: format
flag: <arara> --format=@{parameters.latex-programm}
default: <arara> --format=latex
- identifier: options
flag: <arara> @{parameters.options}
- identifier: output
flag: <arara> --output=@{parameters.output}
我希望了解规则是否正确配置以满足任务要求,以及应如何arara
在 lytex 文件中准确配置指令。目前,我尝试了以下变体:
% arara: lilypond {options: --output=out --pdf music.tex}
% arara: pdflatex: { files: [ out/music.tex ] }
但我的结论是:
__ _ _ __ __ _ _ __ __ _
/ _` | '__/ _` | '__/ _` |
| (_| | | | (_| | | | (_| |
\__,_|_| \__,_|_| \__,_|
Apparently, there's an invalid directive at line 1. Please take a
look and fix it.
似乎该词lilypond-book
需要出现在 arara 指令中,除非它来自。我尝试从文件中rule
删除一些参数,但到目前为止,我的无知赢得了争论。command
rule.yaml
答案1
好消息。一位 arara 开发人员帮助我解决了这个问题。
解决方案其实很简单。唯一的限制是我们没有按照原计划将 lilypond-book 内容输出到子目录中。
在文件顶部music.lytex
(按照参考文章中的指示配置 arara 后),添加以下两个指令:
% arara: lilypond: {options: "--pdf"}
% arara: pdflatex: { files: [ 'hymnal.tex' ] }
现在创建一个名为的文件,render.sh
其中包含以下内容:
arara music.lytex
pdflatex music.tex
find . -maxdepth 1 -type d -name '??' -exec rm -rf {} \;
rm *.aux *.bcf *.dep *.out *.run.xml *.tex *.toc tmpx*
open music.pdf
并渲染和通过使用 bash 调用来查看生成的 pdf 文件:
bash render.sh
Bash 脚本中间的三行:
pdflatex music.tex
这是因为 pdflatex 需要运行第二时间来生成目录。
find . -maxdepth 1 -type d -name '??' -exec rm -rf {} \;
此行的作用是删除 lilypond-book 命令创建的所有临时目录,如果生成到子目录(使用--output=out
)标志,则这些临时目录将整齐地包含在其中。
rm *.aux *.bcf *.dep *.out *.run.xml *.tex *.toc tmpx*
所有其他可能干扰后续渲染的临时文件。注意:我可能最终决定(意识到).tex 文件需要能不受干扰。
谢谢,arara 团队。arara 鸟万岁,巴西人的热情好客万岁!