使用 latexmk 进行编译;提示“请输入另一个输出文件名”

使用 latexmk 进行编译;提示“请输入另一个输出文件名”

我目前正在尝试使用 latexmk 编译我的论文。我在 Windows 10 计算机上运行 WSL(Ubuntu 18.04)。我的文件结构如下:

+-- build/
+-- src/
|   +-- 01_intro.tex
|   +-- 02_dynamics.tex
|   +--- ....... (several of these *.tex files)
|   +-- references.bib
|   +-- aiaa.bst
|   +-- thesis.cls
+-- main.tex

我正在奔跑latexmk -output-directory="build" -pdf main.tex

它开始编译,然后在编译过程中似乎抛出一个错误,内容如下:

No file main.toc.
[4]
No file main.lof.
[5]
No file main.lot.
[6] [7]
! I can't write on file `src/01_intro.aux'.
\@include ...\immediate \openout \@partaux #1.aux 
                                                  \immediate \write \@partau...
l.74 \include{\chapterPath/01_intro}
                                    
(Press Enter to retry, or Control-D to exit; default file extension is `.tex')
Please type another output file name: 

奇怪的是,如果我直接输入Ctrl-D,它似乎就完成了编译。目录中的所有文件build/(或者build/src/它们对应的 .tex 文件在 中src/)。最终的 PDF 看起来是正确的,但也很难确定编译是否完美运行,因为这只是目前的一个模板(我目前正在设置我的论文)。如果我修改任何章节并重新编译,只要我不删除 中的任何文件,就不会出现.aux问题build/

有谁知道我做错了什么,以及为什么我会收到这个提示?

答案1

如果您检查 latexmk 的输出,在 pdflatex 第一次中止运行之后,您应该会看到来自 latexmk 的一条消息:

Latexmk: Directory 'build/src' created
Error in *LaTeX, but needed subdirectories in output directory
    were missing and successfully created, so try again.

问题是,build/src/在第一次运行 pdflatex 之前,该目录并不存在,而 pdflatex 本身不会创建该目录。因此它会给出错误。如果您build/src在启动 latexmk 之前创建了该目录,则不会出现错误。

但是 latexmk 被编程为检测这种情况(从 pdflatex 的日志文件中)并纠正它。之后一切都正常,正如您所发现的。

相关内容