使用 LaTeX Workshop 编译时与 latexmk 相关的错误

使用 LaTeX Workshop 编译时与 latexmk 相关的错误

我在 VS Code 中使用 LaTeX Workshop,刚刚从 MikTex 切换到 TexLive。但是当我使用 LaTeX Workshop 进行编译时,似乎出现了以下问题:

输出如下:

File::Path version 2.08 required--this is only version 1.08 at c:\texlive\2019\texmf-dist\scripts\latexmk\latexmk.pl line 270.
BEGIN failed--compilation aborted at c:\texlive\2019\texmf-dist\scripts\latexmk\latexmk.pl line 270.
C:\texlive\2019\bin\win32\runscript.tlu:911: command failed with exit code 255:
perl.exe c:\texlive\2019\texmf-dist\scripts\latexmk\latexmk.pl -synctex=1 -interaction=nonstopmode -file-line-error -pdf "-outdir=c:/Users/sunha/OneDrive - HKUST Connect/workspace for VS Code/workspace for latex/COMP 2711H Homework 4" "c:/Users/sunha/OneDrive - HKUST Connect/workspace for VS Code/workspace for latex/COMP 2711H Homework 4/hw4"

看起来版本有问题,但是我可以使用如下命令行进行编译,没有任何问题

pdflatex filename.tex

那么问题是什么?我该如何解决?

答案1

参照其他用户的评论,错误消息来自latexmk而不是pdflatex。如果我们要使用命令行进行测试,我们将使用

latexmk -pdf filename.tex

反而。

在我的例子中,我检测到的 Perl 版本非常过时,因为latexmk需要 2.08 或更高版本。但是,检测到的版本,或者换句话说,我的系统环境变量中的版本,是嵌入在 Octave 中的版本,而不是嵌入在 TeXLive 中的版本。因此,如果我们遇到此类问题,我们应该检查我们的系统变量,看看它是否latexmk试图使用磁盘上的其他 Perl 副本,如果是这种情况,我们应该适当调整环境变量。

答案2

就我而言,VScode 一直尝试使用 EIDE 扩展附带的 Perl(该扩展严重过时)。强制 TexLive 使用其自己的 Perl 版本解决了此问题:

tlmgr conf texmf TEXLIVE_WINDOWS_TRY_EXTERNAL_PERL 0

相关内容