Bash
通過終端和應用程序啟動器啟動程序的區別
我正在嘗試使用 Vim LaTex-Suite 執行 GVim,以便能夠編譯 LaTeX 文件。我有兩種執行 GVim 的方法:
- 打開終端,然後輸入 gvim 並輸入
- 使用應用程序啟動器,例如 Xubuntu 上的 xfce4-appfinder 或 i3 上的 dmenu_run
當我使用方法 1 並通過終端啟動 GVim 時,我可以正常編譯,但是當我通過啟動器通過方法 2 啟動 GVim 時,
!pdflatex -interaction=nonstopmode main.tex
從 GVim 執行命令時無法編譯。它說:kpathsea:執行 mktexfmt pdflatex.fmt
mktexfmt:沒有這樣的文件或目錄
我找不到格式文件“pdflatex.fmt”!
我不確定這是 GVim 或 LaTeX-Suite 的問題,因為它可以正常工作,但僅取決於我啟動它的方式。
您對如何使其適用於方法 1 和 2 以及為什麼會發生這種情況有任何想法嗎?
謝謝!
此類錯誤的一個常見原因是 shell 環境的差異。很可能您的
PATH
變數和/或您目前的工作目錄不同並影響您的腳本。您可以通過一個程序進行檢查。
要檢查環境和工作目錄的差異,請執行以下操作:
gvim
從終端開始,然後在其中gvim
輸入::!env > /tmp/env.terminal
- 從啟動
gvim
器開始,然後gvim
輸入::!env > /tmp/env.launcher
- 在終端視窗的 shell 提示符下,輸入
diff /tmp/env.terminal /tmp/env.launcher
此
diff
命令將顯示兩個gvim
實例的環境差異。看看環境的差異。請務必檢查
PATH
和PWD
變數的值。