指定输出目录时 Latexmk 在 Windows 上失败

指定输出目录时 Latexmk 在 Windows 上失败

Latexmk 无法使用 XeLaTeX 和 biber 生成输出 PDF当指定输出目录时

-outdir我正在使用所指定的输出目录build来保持我的根目录整洁。

我在 Windows 7 x64 上运行 MikTeX。Latexmk 是版本 4.54c。

这是一个 MWE。

test.tex包含以下内容:

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{publications.bib}
\begin{document}
\fullcite{InterestingArticle}
\end{document}

publications.bib包含以下内容:

@article{InterestingArticle,
  author    = {Andrew Bate},
  title     = {Interesting Article Title},
  journal   = {Interesting Journal},
  volume    = {999},
  year      = {1984}
}

当我运行时,latexmk -xelatex -silent -outdir=build我得到以下输出,但build目录中没有 PDF:

Use of uninitialized value $separator in regexp compilation at C:\Program Files\MiKTeX 2.9\scripts\latexmk\latexmk.pl line 8553.
Use of uninitialized value $separator in regexp compilation at C:\Program Files\MiKTeX 2.9\scripts\latexmk\latexmk.pl line 8554.
Use of uninitialized value $search_path_separator in concatenation (.) or string at C:\Program Files\MiKTeX 2.9\scripts\latexmk\latexmk.pl line 1882.
Use of uninitialized value $search_path_separator in concatenation (.) or string at C:\Program Files\MiKTeX 2.9\scripts\latexmk\latexmk.pl line 2173.
Use of uninitialized value $print_cmd in string at C:\Program Files\MiKTeX 2.9\scripts\latexmk\latexmk.pl line 2713.
Latexmk: Run number 1 of rule 'xelatex'
This is XeTeX, Version 3.14159265-2.6-0.99998 (MiKTeX 2.9.6500 64-bit)
entering extended mode
Latexmk: fls file doesn't appear to have been made
Latexmk: Non-existent bbl file 'build/test.bbl'
 No file test.bbl.
Latexmk: ===For rule 'xelatex', actual output 'I:/bug-report/build/test.xdv'
       ======appears not to match expected output 'build/test.xdv'
Latexmk: Summary of warnings:
  Latex failed to resolve 1 citation(s)
Latexmk: Run number 1 of rule 'biber build/test'
Latexmk: Run number 2 of rule 'xelatex'
This is XeTeX, Version 3.14159265-2.6-0.99998 (MiKTeX 2.9.6500 64-bit)
entering extended mode
Latexmk: fls file doesn't appear to have been made
Latexmk: ===For rule 'xelatex', actual output 'I:/bug-report/build/test.xdv'
       ======appears not to match expected output 'build/test.xdv'
Latexmk: Run number 1 of rule 'bibtex I:/bug-report/build/test'
For rule 'bibtex I:/bug-report/build/test', running '&run_bibtex(  )' ...
Latexmk: Directory in file name 'I:/bug-report/build/test.aux' for bibtex
   but it is not the output directory 'build'
I found no \citation commands---while reading file I:/bug-report/build/test.aux
I found no \bibdata command---while reading file I:/bug-report/build/test.aux
I found no \bibstyle command---while reading file I:/bug-report/build/test.aux
(There were 3 error messages)
Collected error summary (may duplicate other messages):
  bibtex I:/bug-report/build/test: Bibtex errors: See file 'I:/bug-report/build/test.blg'
Latexmk: Use the -f option to force complete processing,
 unless error was exceeding maximum runs of latex/pdflatex.

删除-silent标志没有什么区别(但显然输出更长)。

如果-outdir删除该标志,则可以正确生成 PDF(但我想使用输出目录)。

上述示例在 Linux(Ubuntu 17.10)上使用 TeX Live 和 latexmk 版本 4.54c(与我在 Windows 上使用的 latexmk 版本相同)时可正常运行。在 Linux 上,无论是否-outdir指定,它都可以正常工作。

我没有使用.latexmkrc文件。

请注意“使用未初始化值”警告。这些警告不会出现在 Linux 上,但我不知道这是否相关。

非常感谢任何帮助使这项工作顺利完成。

更新2018-01-14:仅当源文件位于网络上另一台计算机的目录中(例如,Windows 映射的网络驱动器)时才会出现此问题。

当源文件位于本地文件系统的目录中时,PDF 即成功生成。

从版本 4.54c 升级到 4.54d(2018 年 1 月 10 日发布)会删除一些“使用未初始化值”警告,但当源文件位于网络目录中时,仍不会生成 PDF 文件。我已向 latexmk 的作者 John Collins 提交了一个错误。

答案1

此错误已在 v. 4.55 中得到修正latexmk。因此只需升级到最新版本即可。

相关内容