这个问题是上一个问题的延续...相似但不同的 Arara... 我根据我对 Arara 参考手册的理解创建了一个配置文件,并将其附加在下面。
配置文件本身(经过一些调整后...!)在运行时不会标记任何有关其自身的错误消息。Arara 似乎识别并接受了我新创建的文件扩展名*.mkiv
。
然而,在运行时,Arara 告诉我It looks like no directives were found in the provided file. Make sure to include at least one directive and try again.
这不是真的,该文件确实有一个指令。作为测试,我在配置文件中添加了一个默认前言defaultPreamble: onecontext
。这没有帮助,并且已经从配置文件中删除(因为它干扰了非 ConTeXt 执行)
实际上,如果我没有配置文件,或者我在文件名后附加了*.tex
,那么 Arara 就可以在这个文件(具有 arara 指令)上运行而不会出现错误,例如myfilename.mkiv.tex
arara 日志没有提供任何有用的信息。
那么,我在这里遗漏了什么?
1 !config
2 filetypes:
3 - extension: ins
4 - extension: drv
5 - extension: ltx
6 - extension: dtx
7 - extension: tex
8 - extension: mkiv
9 pattern: ^\s*//\s*
10 paths:
11 - '/usr/local/texlive/2023/texmf-dist/scripts/arara/rules'
12 loops: 5
13 verbose: true
14 logging: true
15 header: true
16 logname: my_arara_log
17 preambles:
18 onecontext: |
19 % arara: context
20 defaultPreamble: onecontext [<-- added for testing, then deleted]
答案1
如果您只提供一半的事实,我们就无法知道您遗漏了什么。在这种情况下,您没有提供 ConText 文件。当我阅读您的配置文件和文件模式时,我假设您的平均 ConTeXt 文件如下所示
// arara: context
\starttext
Hello world
\stoptext
好吧,假设您没有重新发明 ConTeXt 及其语法,那么这是一个语法错误。但请注意,^\s*//\s*
使用有效的 ConTeXt 语法您将一事无成。
显然,您从文档中复制并粘贴了模式,而没有理解正则表达式。而且您没有查找两行来尝试默认模式,该模式基本上适用于所有 TeX 文件(并且默认情况下使用)^\s*%\s*
:。
因此,假设你想提供一个有效的 ConTeXt 文档,例如
% arara: context
\starttext
Hello world
\stoptext
进入 arara,您可以使用具有适当模式的配置文件。如果您使用原始模式,那么 arara 无法在文档中找到指令,这是不言而喻的,因为// arara
该文件中没有任何一行。
!config
filetypes:
- extension: ins
- extension: drv
- extension: ltx
- extension: dtx
- extension: tex
- extension: mkiv
pattern: ^\s*%\s*