为什么我的`latexmk -cd-`报告错误?

为什么我的`latexmk -cd-`报告错误?

英语不是我的母语,请原谅我下面的一些错误表达。

我的 32 位 Windows 7 上有 TeXLive 2019,所有软件包都已更新到最新版本。我的目录树是test/new/main.tex,我在test目录中。当我使用

latexmk -cd- -xelatex new/main

在cmd中,报错。

在此处输入图片描述

但是当我使用-cd选项时,

latexmk -cd -xelatex new/main

我编译成功了。

我测试了目录分隔符/\\\,但它们都不起作用。

答案1

出现此问题的原因是,默认情况下,latexmk 在调用 MSWin 下的程序时会将反斜杠替换为正斜杠作为目录分隔符。这对应于 MSWin 的文件名标准格式。但进行替换会导致 TeXLive 发行版中的 xelatex 版本(而不是 MiKTeX 版本!)出现问题。这是因为 TeXLive 版本将反斜杠视为引入 TeX 宏名称。

您可以通过以下设置解决问题

$MSWin_back_slash = 0;

在初始化文件(即 latexmkrc)中。

在 latexmk 4.69a 或更高版本中,您还可以-MSWinBackSlash-在命令行中使用该选项。例如:

latexmk -cd- -MSWinBackSlash- -xelatex new/main

然后xelatex将使用/目录分隔符而不是来调用\。有关发生了什么以及为什么发生的进一步解释,请$MSWin_back_slash在 latexmk v. 4.69a 及更高版本的文档中查找有关变量的详细信息。

相关内容