我創建的 API (PHP) 出現問題。API 應根據發送的資料創建一個 pdf 檔案。該腳本完美運行,直接在 Ubuntu 上運行,Plesk 正在運行。不作業的部分如下:
$cmd = sprintf("pdflatex -interaction nonstopmode %s", escapeshellarg(file));
exec($cmd, $foo, $ret);
tex 檔案似乎沒有被觸及......沒有日志檔案或任何東西。關于這個的任何想法?
謝謝
uj5u.com熱心網友回復:
Latex 通常由有經驗的用戶直接在命令列上運行或通過 IDE 與控制臺互動運行,因為通常需要從控制臺反饋中查看編譯可能失敗的原因。
最簡單的檢查檢查是否安裝了 PdfLaTex?在系統控制臺輸入pdflatex --version這應該確認至少在環境路徑中找到了最小的 pdflatex 并在 pi 級別的粗略值之后顯示變體。
所以在這種情況下回應 pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)
當試圖運行看不見時,很難得到反饋,因此使用小已知樣本的最小測驗再次在控制臺上以批處理模式在當前作業目錄中運行:-
pdflatex -interaction=nonstopmode sample.tex
這應該幾乎不需要檢查就可以運行,但是如果未配置 pdflatex 的路徑,您可能需要添加 pdflatex 可執行檔案的位置。因此你發現需要/usr/bin/pdflatex -interaction=nonstopmode file.tex
LaTeX 包和模塊中有許多不同的依賴項,需要根據相互關聯的路徑(例如支持檔案等)很好地定義“env”設定,因此值得從大量檔案中查看這些。
某些模塊可能需要提升以逃避 shell 限制,-shell-escape并且上述命令可能需要在一次運行中臨時提升(不應經常需要),因此僅當您從檔案中確切地知道模塊需要它的原因時才包含。
TeX 新手很容易認為在作業目錄中使用子檔案夾作為“章節和詩句”是有好處的,因為作業目錄可能“看起來”被潛在的數十個運行時檔案弄得亂七八糟,但是 LaTeX 的大部分依賴于具體的相對路徑和避免錯誤的最佳方法是不需要通過變數重新定義影像或其他組件,只需說它在同一檔案夾中即可。
同樣,對于包,它們也應該通過 env 變數設定到固定位置,即 bin 檔案夾和字體以及其他模塊化支持組件。值得查看https://tug.org/texlive/quickinstall.html并注意關于最小路徑定義的部分,但安裝后的組件所需的基本設定遠不止這些
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/384964.html
