Bash

通過終端和應用程序啟動器啟動程序的區別

  • September 5, 2017

我正在嘗試使用 Vim LaTex-Suite 執行 GVim,以便能夠編譯 LaTeX 文件。我有兩種執行 GVim 的方法:

  1. 打開終端,然後輸入 gvim 並輸入
  2. 使用應用程序啟動器,例如 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變數和/或您目前的工作目錄不同並影響您的腳本。

您可以通過一個程序進行檢查。

要檢查環境和工作目錄的差異,請執行以下操作:

  1. gvim從終端開始,然後在其中gvim輸入:
:!env > /tmp/env.terminal
  1. 從啟動gvim器開始,然後gvim輸入:
:!env > /tmp/env.launcher
  1. 在終端視窗的 shell 提示符下,輸入
diff /tmp/env.terminal /tmp/env.launcher

diff命令將顯示兩個gvim實例的環境差異。

看看環境的差異。請務必檢查PATHPWD變數的值。

引用自:https://unix.stackexchange.com/questions/390501