在 shell 脚本(在 Alfred.app 中)中使用 texdoc 不起作用

在 shell 脚本(在 Alfred.app 中)中使用 texdoc 不起作用

我正在尝试从 OS X 应用程序调用 textoc阿尔弗雷德作为 Shell 脚本。

阿尔弗雷德窗

使用 Alfred 一切似乎都很好——我已经问过开发人员,但他们说脚本应该可以工作。调试时我收到消息

21.9.11 17:14:12
[0x0-0x40040].com.alfredapp.Alfred[977]
env: texlua: No such file or directory

因此我猜这是 Alfred 的问题texdoc,而不是 Alfred 的问题。如果我texdoc使用 Apple 脚本调用,也会得到同样的错误

do shell script "texdoc file"

但是,当直接在我的终端中或在 Alfred 的非静音模式下调用时texdoc file(这意味着打开一个终端窗口并执行命令),一切正常。一个 shell 脚本 (td.sh)

#!/bin/bash
texdoc $1

也被称为sh td.sh file作品。

希望有人知道如何解决这个问题,或者至少指出我可以从哪里获得帮助……

答案1

很奇怪的是,使用 MacTeX 时,通过 AppleScript 执行 shell 脚本时调用的默认 shell 却不/opt/texbin/在 PATH 变量中。

这取决于你运行的 Mac OS X 版本。在 Mac OS X 10.5 和 10.6 上,应该有一个名为的文件TeX/etc/paths.d/其中只包含以下行

/usr/texbin

如果不存在,则说明你的 MacTeX 安装出了问题。纠正此行为非常简单:在终端窗口中执行以下操作

echo /usr/texbin > TeX
sudo mv TeX /etc/paths.d

注销-登录循环应该会使系统恢复正常。但是我没有 10.7 的机器,所以如果你的系统版本是这个,请等待评论。

还请检查 TeX 文件是否存在于 中/etc/manpaths.d/;若不存在,

echo /Library/TeX/Distributions/.DefaultTeX/Contents/Man > TeX
sudo mv TeX /etc/manpaths.d

是为了访问manTeX 程序的页面而必需的。

答案2

Tobi 给出了答案Alfred v1 扩展;但是,扩展不再受支持v2 发布,现在使用“工作流”。我创建了一个工作流程texdoc使用此页面上的信息。

工作流程的关键部分(非常简单)是 Bash 脚本,它使用 egreg 的答案来确定 TeX 路径:

export PATH=$PATH:`cat /etc/paths.d/TeX`
texdoc {query}

该脚本至少可与 TeX Live 2013 兼容。

编辑:已更新,表明 Tobi 删除了他的回答。

相关内容