![TeXstudio 找不到 LuaLaTeX 的 shell 命令](https://linux22.com/image/457564/TeXstudio%20%E6%89%BE%E4%B8%8D%E5%88%B0%20LuaLaTeX%20%E7%9A%84%20shell%20%E5%91%BD%E4%BB%A4.png)
我依靠 shell 命令将 git 信息包含到我的文档中。这个命令运行良好,但最近停止了。我仍无法弄清楚原因。检查以下 MWE。当然,这不会包含实际的 git 信息,而是 git 帮助。但这样,它可以在实际的 git 存储库之外“工作”。运行此命令时,我希望文档中有三行:
- 你好世界
- 测试
- 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
一些更新似乎已经修复了这个问题。至少它又可以正常工作了。不幸的是,我没有跟踪我最近安装的更新,直到我再次尝试。