更新:John 在 TeXstudio 论坛上报告了此错误,他们已修复。当您将 Latexmk 命令更改为“latexmk -pdf -silent -synctex=1 %”时,开发版 TeXstudio 2.10.9 (hg 5929:7315f2e5eed3) 可以正常工作
我最近从 Texmaker 切换到 TeXstudio(版本 2.10.8)。在 Texmaker 中,我曾经使用 Latexmk 编译我的文档。然而,在 TeXstudio 中,默认的 Latexmk 命令会返回错误消息。我使用 OS X Yosemite(版本 10.10.5)和 TeX Live。以下是示例:
\documentclass[10pt, a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{hyperref}
\begin{document}
Some text.
\end{document}
我在 TeXstudio 中的构建设置(默认编译器 = Latexmk):
当我选择 PdfLaTeX 而不是 Latexmk 时,文档可以正常编译。我在 stackoverflow 上看到过相关帖子,但没有一个包含 Latexmk 的解决方案。有人知道这个问题的解决方案吗?
编辑:按照 ig0774 的建议,我将路径更改为/usr/texbin/latexmk -dvi -silent %
并按“确定”。重新打开 TeXstudio 的设置时,路径被重新设置为latexmk -dvi -silent %
。这是错误还是我遗漏了什么?
答案1
您需要将latexmk
命令更改为以 开头/usr/texbin/latexmk
。默认情况下,/usr/texbin
不是 GUI 应用程序 PATH 的一部分。
编辑
好吧,一个更好的建议:
- 完全退出 TeXStudio
- 在文本编辑器中打开文件“~/.config/texstudio/texstudio.ini”(您可以
open -a TextEdit ~/.config/texstudio/texstudio.ini
从终端或任何其他您喜欢的文本编辑器中使用)。 - 找到以“ ”开头的行
Tools\Commands\latexmk=
,将等号右侧的所有内容替换为/usr/texbin/latexmk -dvi %
- 启动 TeXStudio
这应该会做出必要的改变,并在重启后持久保留(希望......至少对我有用......)
答案2
该问题实际上是 OS-X 下的 TeXStudio 2.10.8 设置用于查找可执行文件的 PATH 环境变量的方式中的一个错误。
解决方法
在您的~/.profile
文件末尾添加以下行
export PATH=DUMMY1:$PATH:DUMMY2
(如果您没有文件~/.profile
,请创建一个包含上述行的文件。)
然后重新启动 TeXStudio,您会发现它将使用 TeXStudio 的默认设置正确运行 latexmk。
Bug 及其诊断
该错误是 TeXStudio(在 OS-X 下的 v. 2.10.8 中)将其 PATH 变量设置为以下内容的串联:
- 您的文件产生的任何输出
~/.profile
。 - 实际预期的 PATH 变量。
- 一条新线。
- TeXStudio 完成的任何定制。
换行符才是罪魁祸首。如果像我的系统一样,TeXLive 可执行文件的位置/Library/TeX/texbin
是 PATH 中的最后一项,那么该元素将被相同的字符串替换,后跟换行符。结果是 TeXLive 可执行文件不再可用。我上面建议的解决方法可以让你避免这个问题。
诊断这些问题的一个有用方法是将以下行放入的latexmk
配置文件之一中,例如latexmkrc
在文档目录中:
warn "PATH = '$ENV{PATH}'\n";
然后,从 TeXStudio 运行后latexmk
,消息窗口将显示 PATH 变量的值。