是否可以在 Windows 上使用 lmkclean arara 规则?

是否可以在 Windows 上使用 lmkclean arara 规则?

如果我arara在 Windows 10 上运行此文件:

% arara: pdflatex
% arara: lmkclean
\documentclass{book}
\begin{document}
    More \emph{ducks} into \LaTeX{}!
\end{document}

我收到此错误:

21 Jun 2017 08:24:45.123 INFO  CommandTrigger - Running 'LaTeXmKCleaner'.
21 Jun 2017 08:24:45.123 TRACE CommandTrigger - Command: latexmk -c "TeX_SE_arara_test.tex"
21 Jun 2017 08:24:45.780 TRACE CommandTrigger - Output logging:
21 Jun 2017 08:24:45.780 TRACE CommandTrigger - Can't locate Digest/MD5.pm in @INC (you may need to install the Digest::MD5 module) (@INC contains: C:/Program Files (x86)/LyX 2.2/Perl/lib .) at c:\texlive\2017\texmf-dist\scripts\latexmk\latexmk.pl line 137.
BEGIN failed--compilation aborted at c:\texlive\2017\texmf-dist\scripts\latexmk\latexmk.pl line 137.
C:\texlive\2017\bin\win32\runscript.tlu:708: command failed with exit code 2:
perl.exe c:\texlive\2017\texmf-dist\scripts\latexmk\latexmk.pl -c TeX_SE_arara_test.tex

21 Jun 2017 08:24:45.780 WARN  CommandTrigger - 'LaTeXmKCleaner' returned an error status.
21 Jun 2017 08:24:45.780 INFO  Arara - Done.

即使我latexmk在终端中运行,也会出现相同的错误:

C:\Users\carla\OneDrive\Documenti\TeX_StackExchange>latexmk TeX_SE_arara_test.tex
Can't locate Digest/MD5.pm in @INC (you may need to install the Digest::MD5 module) (@INC contains: C:/Program Files (x86)/LyX 2.2/Perl/lib .) at c:\texlive\2017\texmf-dist\scripts\latexmk\latexmk.pl line 137.
BEGIN failed--compilation aborted at c:\texlive\2017\texmf-dist\scripts\latexmk\latexmk.pl line 137.
C:\texlive\2017\bin\win32\runscript.tlu:708: command failed with exit code 2:
perl.exe c:\texlive\2017\texmf-dist\scripts\latexmk\latexmk.pl TeX_SE_arara_test.tex

答案1

在您的错误消息中,@INC路径提到了 lyx:

@INC contains: C:/Program Files (x86)/LyX 2.2/Perl/lib .

这表明 latexmk 正在使用缺少所需模块的外部 perl。

因此你的选择是:

  1. 安装此 perl 缺少的模块。
  2. 安装另一个具有所需模块的外部 perl(例如 active perl 或 strawberry perl),并确保在路径中首先找到它。
  3. 强制 texlive 忽略外部 perl 并使用其自己的 perl。您可以通过TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL = 0在本地进行设置texmf.cnf或找到将texmf.cnf变量设置为 1 然后将这个值更改为 0 来实现(在我的系统中,它是texmf.cnftexlive/2017 中的)。

相关内容