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
。因此只需升级到最新版本即可。