我编写了一个 perl 脚本 (teximporter),以方便在 LaTeX 中使用内联外来文本符号。通常,它会计算一组文件(图像、附件等)和一个 latex 替换字符串。示例:
\inline_abc[midi,width=\textwidth]{
X:1
T:Dó-Ré-Mi
K:Emaj
M:2/4
EF G2 | GG G2 | GA B2 | BB B2 | AG F2 | FF F2 | GF E>E|EE E2||
}
后
teximport ex.tex > _ti_ex.tex
pdflatex _ti_ex.tex
我们得到了预期的结果(一个 pdf 图像和一个 midi 附件), 为了隐藏命令行活动(对于 IDE),我决定尝试 arara。这是我的 teximporter.yaml
!config
identifier: teximporter
name: teximporter
commands:
- teximporter -o "_ti_@{file}" "@{file}"
- pdflatex "_ti_@{file}"
arguments: []
但最终的 pdf 文件的名称是错误的(_pi_ex.pdf
而不是ex.pdf
)。
如果可能的话,定义arara
预处理器的良好配置的最佳方法是什么,能够在 Linux、Windows 和 Mac 中运行。
答案1
这并不是我的真正答案:所有的智慧都来自@cmhughes 和其他人(请参阅评论中的参考资料)。
所提出的配置存在一些问题:
- 文件的 pdf 输出对 IDE 用户来说有问题:需要重
a.tex
命名_pi_a.pdf
- 它强制使用
pdflatex
:需要参数
以下是新版本的配置teximporter.yaml
:
!config
identifier: teximporter
name: teximporter
commands:
- <arara> teximporter -o _ti_@{file} @{file}
- <arara> @{engine} -jobname=@{getBasename(file)} _ti_@{file}
arguments:
- identifier: engine
flag: <arara> @{parameters.engine}
default: pdflatex
评论:
jobname=@{getBasename(file)}
:将输出和辅助文件重命名为初始基本名称(a.pdf
、a.aux
等)@{engine}
:定义一个参数(默认值:pdflatex)以便可以选择不同的 latex 引擎(lualatex 等)(从@cmhughes 复制)
要使用 teximporter 预处理器,请将以下内容添加到“tex”文件中:
% arara : teximporter
或者
% arara : teximporter: { engine : lualatex }
并且可以直接在TexWorks等IDE中使用arara作为处理器。