我正在尝试从 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
是为了访问man
TeX 程序的页面而必需的。
答案2
Tobi 给出了答案Alfred v1 扩展;但是,扩展不再受支持v2 发布,现在使用“工作流”。我创建了一个工作流程texdoc
使用此页面上的信息。
工作流程的关键部分(非常简单)是 Bash 脚本,它使用 egreg 的答案来确定 TeX 路径:
export PATH=$PATH:`cat /etc/paths.d/TeX`
texdoc {query}
该脚本至少可与 TeX Live 2013 兼容。
编辑:已更新,表明 Tobi 删除了他的回答。