我想为 perl 脚本编写一个 arara 规则,特别是对于精美预览. (另一个测试脚本:latexcount。
编辑:
在命令行中
perl fancy-preview jobname.tex
工作!我已经安装
ActiveState Perl
这不起作用
!config
# perl rule for arara
# version: 0.1
# requires arara 3.0+
identifier: perl
name: Perl
command: <arara> @{program} @{script} @{getBasename(file)} @{options}
arguments:
- identifier: program
flag: <arara> @{parameters.program}
default: cmd /c perl
- identifier: script
flag: <arara> @{parameters.script}
default: fancy-preview
- identifier: options
flag: <arara> @{parameters.options}
default: --fancy_options="previewall,nosoap"
错误注释:
正在运行 Perl... 无法在 fancy-preview 第 227 行 @INC 中找到 Config/IniFiles.pm (@INC 包含:C:/texlive/2013/tlpkg/tlperl/lib c:/texlive/2013/tlpkg/tlperl/lib 。)。 BEGIN 失败——编译在 fancy-preview 行 227 处中止。 失败 C:\texlive\2013\bin\win32\runscript.tlu:650: 命令失败,退出代码为 1: java.exe -jar c:/texlive/2013/texmf-dist/scripts/arara/arara.jar interaktiv2.tex --verbose --log
我能做些什么?
编辑1:
上述“规则”是初稿。
对于结果,我想了一些inputpath: 'C:/MyPerlScripts/...'
东西 - 所以我不必为我的 perl 脚本构建耦合运动,并且可以将它们存储在一个中心位置。但对于这个和其他的,规则必须运行;)
...
编辑2:
如果我改变
- identifier: program
flag: <arara> @{parameters.program}
default: cmd /c start perl
没有错误消息,但 perls 脚本没有运行(好吧,这仅适用于 Windows,但它不起作用)——我不明白!:(
编辑3:
与Edit2效果相同:
- identifier: program
flag: <arara> @{parameters.program}
default: cmd /c start C:/Perl/bin/perl.exe
没有‘start’也一样:
Running Perl...
Perl lib version (5.16.2) doesn't match executable 'fancy-preview.pl' version (v5.16.3) at C:/texlive/2013/tlpkg/tlperl/lib/Config.pm line 60.
Compilation failed in require at C:/texlive/2013/tlpkg/tlperl/lib/DynaLoader.pm line 22 ....
部分成功的小消息
我认为问题一部分在于剧本fancy-preview
,一部分在于arara
。
因为:如果我使用脚本latexcountperl.yaml
如下文档中所示,使用“ ”
% arara: perl: { script: latexcount.pl }
\documentclass{article}
\begin{document}
Count these words!
\end{document}
我明白了
Can't open --fancy_options=previewall,nosoap: No such file or directory at latexcount.pl line 72, <> line 8.
3 words in the main text
in the footnotes
3 total
Status: SUCCESS
这是对的在每一行!
我认为(在fancy-preview
等)arara
停止,如果有警告或其他东西。在这种情况下,我不知道该怎么做 - 这可能是arara
内部的还是不是?作者团队是最后的希望 :()
答案1
所以,我认为就是这样:
·标识符program
:请在此处选择您自己的 perl 版本作为默认值。在大多数情况下,perl
此处写为 artless " "
·标识符inputfile
:选择
% arara: perl: {script: xyz.pl , inputfile: '' }
为空值,例如在这些情况下,当 perl 脚本未在 tex 文件上执行时。
· 布尔标识符onlylog
给出 perl-log 作为perl_log.txt
% arara: perl: {script: xyz.pl , onlylog: yes }
^> perl_log.txt
检查(对于 Linux)是否需要> perl_log.txt
·标识符inputpath
选择包含 perl 脚本的文件夹的路径;)
·标识符compile
和options
:
例子:
% HELP:
% Help-Info "fancy-preview":
% #arara: perl: { script: fancy-preview.pl , options: -h }
% Help-Info "perl":
% #arara: perl: { script: latexcount.pl , compile: -h }
perl.yaml
!config
# perl rule for arara
# version: 0.2a
# requires arara 3.0+, PERL
#
# ###
# Please check defaults at 'program', 'inputpath' (and 'onlylog') !
# ###
#
identifier: perl
name: Perl
command: <arara> @{program} @{compile} @{inputpath}@{script} @{inputfile} @{options} @{onlylog}
arguments:
- identifier: program
flag: <arara> @{parameters.program}
default: 'cmd /c c:\texlive\2013\tlpkg\tlperl\bin\perl.exe'
# default: <arara> @{ isWindows("cmd /c perl", "perl") }
# default: 'cmd /c c:\Perl\bin\perl.exe'
- identifier: compile
flag: <arara> @{parameters.compile}
- identifier: inputpath
flag: <arara> @{parameters.inputpath}
default: 'C:\Users\ccc\PerlScripts\'
- identifier: script
flag: <arara> @{parameters.script}
- identifier: inputfile
flag: <arara> @{parameters.inputfile}
default: <arara> @{getBasename(file)}.tex
- identifier: options
flag: <arara> @{parameters.options}
- identifier: onlylog
flag: <arara> @{ isTrue( parameters.onlylog , "> perl_log.txt" ) }
我测试成功: latexcount.pl和fancy-preview.pl(警告:fancy-preview.pl
您必须做一些准备工作 - pm-modules、acrotex-packages)。
例子
% arara: perl: { script: latexcount.pl }
\documentclass{article}
\begin{document}
Count these words, immediately!
\end{document}