![使用 LaTeX Workshop 编译时与 latexmk 相关的错误](https://linux22.com/image/405826/%E4%BD%BF%E7%94%A8%20LaTeX%20Workshop%20%E7%BC%96%E8%AF%91%E6%97%B6%E4%B8%8E%20latexmk%20%E7%9B%B8%E5%85%B3%E7%9A%84%E9%94%99%E8%AF%AF.png)
我在 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