背景
我的电脑操作系统最近必须重新安装,因此我的 LaTeX 安装被清除了。在此之前,我的文档使用 Latexmk 编译成功。我有一个正在尝试编译的复杂文档(词汇表、目录、参考资料、代码列表等),但在我新设置的环境中编译它时遇到了麻烦。
故障排除步骤
我创建了一个新的、最小的文档,以便我可以一次添加一个包来查看导致中断的原因,但是,Latexmk 甚至无法编译这个:
\documentclass{article}
\begin{document}
test
\end{document}
pdfLaTeX、LuaLaTeX 和 XeLaTeX 三个都可以毫无问题地编译文档,但是 Latexmk 给出了此错误:
Latexmk: Log file says output to 'out/test.pdf'
Latexmk: ===For rule 'latex', the extensions differ between the
actual output file 'out/test.pdf',
and the expected output 'out/test.dvi'.
I could not accommodate the changed output extension
(either because the configuration does not allow it
or because there is a conflict with requested filetypes).
Failure to make 'out/test.dvi'
Collected error summary (may duplicate other messages):
latex: failed to create output file
----------------------
This message may duplicate earlier message.
Latexmk: Failure in processing file 'test.tex':
Could not handle change of output extension
----------------------
Latexmk: Examining 'out/test.log'
=== TeX engine is 'pdfTeX'
Latexmk: Errors, in force_mode: so I tried finishing targets
Process finished with exit code 12
采取进一步措施
- 我此时假设这可能是文件所有权问题,但我已经确认我的用户帐户拥有该
out
目录的所有权,因此应该可由 Latexmk 写入;并且如果目录不存在,它确实会创建并填充目录 - 我尝试使用以下命令从命令行而不是从 IDE 运行 Latexmk:
这适用于前面提到的最小文件。latexmk -f --shell-escape --MSWinBackSlash --interaction=nonstopmode --output-directory=out
- 我确认在 TeXiFy IDEA 运行配置中将“PDF”设置为输出格式选项
我的平台
我利用以下内容编写 LaTeX 文档:
- 微软 Windows 10
- JetBrains IntelliJ IDEA(LaTeX 文档与 Java 源代码共存)
- TeXiFy IDEA(用于处理 LaTeX 源文件的 IntelliJ IDEA 插件)
- MikTeX
答案1
问题可能出在 TeXiFy IDEA 插件上
在测试了“默认”、“PDF”和“DVI”这几个“输出格式”选项,并测试了带有和不带有-pdf
自定义编译器参数的选项后,我确定 TeXiFy IDEA 插件-output-format=pdf
在设置 PDF 选项时插入命令行选项,-output-format=dvi
在设置 DVI 选项时插入命令行选项,并-output-format
在设置默认选项时完全删除自定义编译器参数。但是,手动添加-pdf
无论输出格式字段的设置如何,手动添加自定义编译器参数都可以解决问题。
阅读 Latexmk 的文档后,我发现没有-output-format
该程序没有选项;相反,这是 pdfLaTeX 的一个选项。因此,问题要么出在 TeXiFy IDEA 插件的当前版本,要么出在 Latexmk 的当前版本。我怀疑是前者,因为 Latexmk 应该将参数传递给底层编译器。我已经在 TeXiFy IDEA 插件的 Github 存储库中创建了一个错误报告,希望这个问题能在未来版本中得到解决。在此之前,解决方法是手动添加-pdf
到自定义编译器参数字段。