
我使用openin_any = p
(在自訂中設定TEXMFCNF
)作為在(部分)用戶提供的 LaTeX 程式碼上運行的應用程式中的附加防線。這曾經工作正常,但更新到最新的 texlive 2020 後,現在建置幾乎任何文件都會失敗:
/opt/texlive/bin/x86_64-linux/xelatex: Not reading from /opt/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse-generic.tex (openin_any = p).
! LaTeX3 Error: File 'xparse-generic.tex' not found.
據我了解,即使有openin_any = p
文件也TEXMFDIST
應該沒問題。這是一個錯誤,還是一個有意的更改。無論如何,我正在尋找一種解決方案,除了TEXMFDIST
包含我的 tex 檔案的目錄之外,還允許存取任何內容。
答案1
這確實是 texlive 的一個 bug;在郵件列表上詢問後,他們修復。
詳細資訊(也來自郵件清單)關於為什麼會發生這種情況:
這樣
openin_any=p
你就可以正常載入大多數 LaTeX 套件了。 xparse(-generic.tex) 的特定問題是它使用\pdffilesize
基於 (可擴展) 的測試來檢查文件是否存在,正如我在上一封郵件中所說, \pdffilesize 失敗並顯示openin_any=p
:export openin_any=p && pdftex '\pdffilesize{sample2e.tex}\bye'
這就是 Akira-san 的補丁所解決的問題。
您提到的這種「舊行為」是,直到幾個月前,xparse 都像大多數套件一樣一次性加載到xparse.sty 中(並且像往常一樣工作),但現在它被分成「載入器」(和遺留---不要使用---介面)和
xparse-generic.tex
.由於後者使用了\pdffilesize
,所以它失敗了openin_any=p
。