免责声明:由于 arara 5.1 现已在 TeX Live 上线,并且我们在规则格式上进行了一些重大更改,因此我预见到了不可避免的事情并亲自提出了这个问题。希望它能有所帮助!:)
所以我最近更新了我的 TeX 发行版,发现arara
它已经从版本 4 更新到了 5。在我写这篇文章的时候,上述软件的版本是5.1
CTAN。
foo
我有一个名为以下内容的自定义规则:
!config
identifier: foo
name: Foo
commands:
- name: The Foo program
command: >
@{
return getCommand('foo', file);
}
arguments: []
非常简单,它只是foo
在我当前的文件上运行。此规则在 4.0 中有效arara
,但现在新版本引发了以下错误:
DETAILS ---------------------------------------------------------
[Error: unresolvable property or identifier: file]
[Near : {...
return getCommand('foo', file); ....}]
^
[Line: 2, Column: 30]
我知道它之前是可以工作的!发生了什么事?你能帮我吗?
答案1
正如项目所述,这种行为是可以预料到的变更日志以及当前用户手册(尝试texdoc arara
在您的终端中打开相应的 PDF 文件)。根据后者:
arara
以前规则上下文中的变量是文件名字符串file
。从版本 5.0 开始,不再支持此变量。用户应该改用变量reference
,因为它将文件名的绝对、规范表示作为正确File
对象。
所以,file
不再是了。只需将file
规则中的出现内容替换为reference
,就可以了:
!config
identifier: foo
name: Foo
commands:
- name: The Foo program
command: >
@{
return getCommand('foo', reference);
}
arguments: []
一个简单的测试:
Processing 'mydoc.tex' (size: 23 B, last modified: 04/11/2020
12:44:24), please wait.
[DR] (Foo) The Foo program
-----------------------------------------------------------------
Authors: No authors provided
About to run: [ foo, /home/paulo/mydoc.tex ] @
Total: 0.25 seconds
就是这样!希望它能有所帮助!:)