TeXstudio 找不到 LuaLaTeX 的 shell 命令

TeXstudio 找不到 LuaLaTeX 的 shell 命令

我依靠 shell 命令将 git 信息包含到我的文档中。这个命令运行良好,但最近停止了。我仍无法弄清楚原因。检查以下 MWE。当然,这不会包含实际的 git 信息,而是 git 帮助。但这样,它可以在实际的 git 存储库之外“工作”。运行此命令时,我希望文档中有三行:

  1. 你好世界
  2. 测试
  3. git 输出

前两个有效,但最后一个无效。

% !TeX program = lualatex
\documentclass{article}

\begin{document}

    Hello World

    \input{|"echo Test"}

    \input{|"git"}

    \input{|"path"}   % will produce errors, but one can read the path from the error log

    \directlua{tex.sprint(os.getenv("path"):gsub("\\","\\textbackslash "))}

\end{document}

当我在 Windows 下从 TeXstudio(lualatex 的参数中启用了 --shell-escape)中编译文档时,我收到一个输出,指示未找到 git 命令。如果我尝试,\input{|"where git"}我也会收到未找到命令的信息where。因此,似乎命令是在 shell 中运行的,而 shell 尚未%PATH%正确设置。

当我在 cmd 或 Powershell 中编译文档时,lualatex --shell-escape filename.tex它可以按预期工作。

不幸的是,我没有弄清楚如何%PATH%在 latex 文档中打印以检查其内容。我尝试使用 来转义百分号\%,甚至使用\@percentchar,但最终得到错误“缺少 \endcsname 插入”。

在 TeXstudio 中运行的 pdflatex 工作正常。

xelatex 在 TeXstudio 中也能正常工作。

我遗漏了什么?为什么 TeXstudio 中运行的 lualatex 在 PATH 中找不到标准命令?

编辑:根据 Ulrikes 的评论,我找到了一种在文档中包含 PATH 的方法。这显然还包括 git 的路径。所以实际上它应该是可调用的。我还在第二台装有相同版本的 MiKTeX 和 TeXstudio 的机器上测试了这一点,它在那里运行良好。

EDIT2:打印 PATH 变量太容易了。而不是echo %PATH%简单的方法path就可以了。我把它添加到 MWE 中,即使它现在不再起作用了。路径中的反斜杠使 LaTeX 认为这些是命令并失败。但从错误日志中仍然可以看到包含了哪些路径。事实上,当使用 LuaLaTeX 进行编译时,只有 MikTeX 目录在 PATH 中。当使用 pdflatex 进行编译时,使用正常的 PATH 环境变量。

答案1

一些更新似乎已经修复了这个问题。至少它又可以正常工作了。不幸的是,我没有跟踪我最近安装的更新,直到我再次尝试。

相关内容