使用 Jim Fowler 的 WEB/TeX Pascal 到 WebAssembly 編譯器產生的 e-TeX web2js應該轉儲 LaTeX 格式latex.ltx
並偶然發現babel-latex.cfg
,請參閱ShreevatsaR 取得與 web2js 一起使用的 LaTeX 格式的說明(帶有偽造的空 babe-latex.cfg。
有趣的是,該命令etex -ini *latex.ltx /dump
不會導致此問題。它switch.def
在 後加載hyphen.cfg
。為什麼這裡沒有問題?
巴別塔手冊說:
現在,鉤子已經定義了。出於效率原因,它們在這裡以特殊方式處理。除了 luatex 之外,還考慮了特定格式的設定檔。
整件事情發生在hyphen.cfg
第 121 行 \def\bbl@hook@everylanguage#1{}
,請參閱texdoc babel
第 134 頁。
Javier Bezos 的提示: \ifeof 原語的問題
我想透過配備錯誤訊息來證明\ifeof
哈維爾·貝佐斯的問題猜測。babel-latex.cfg
這就引出了這個文件到底該儲存在哪裡的問題。
我儲存babel-latex.cfg
在與 相同的目錄中hyphen.cfg
。kpsewhich
會找到最後一個,但找不到babel-latex.cfg
。
✔如何kpsewhich
教如何找到babel-latex.cfg
?
❓ 誰能舉例嗎babel-*.cfg
?
答案1
摘錄要控制的文件kpsewhich
:
3.4.6 整合本地宏和個人宏
這已經在第2.3 節中隱式提到:TEXMFLOCAL(預設情況下,Windows 上的/usr/local/texlive/texmf-local 或%SystemDrive%\texlive\texmf-local)用於系統範圍的本機字體和巨集; TEXMFHOME(預設情況下,$HOME/texmfor%USERPROFILE%\texmf)用於個人字體和巨集。這些目錄旨在從一個版本一直保留到另一個版本,並且新的 TEX Live 版本會自動看到它們的內容。因此,最好不要將 TEXMFLOCAL 的定義更改得離 TEX Live 主目錄太遠,否則您將需要手動更改將來的版本。對於這兩個樹,檔案應放置在其正確的 TEX 目錄結構中(總固體溶解度)子目錄;看http://tug.org/tdsor請參閱 texmf-dist/web2c/texmf.cnf。例如,LATEX 類別檔案或套件應放置在 TEXMFLOCAL/tex/latex 或 TEXMFHOME/tex/latex 或其子目錄中。 TEXMFLOCAL 需要最新的檔案名稱資料庫,否則將找不到檔案。您可以使用命令更新它mktexlsror
使用“重新初始化檔案資料庫”TEXLive Manager GUI 的配置標籤上的按鈕。
(texlive-en.pdf
或者C:\>texdoc texlive
)
結果:
C:\>kpsewhich -all babel-latex.cfg
c:/texlive/texmf-local/tex/latex/local/babel-latex.cfg
感謝 Javier Bezos 的\ifeof
猜測,沒有 web2jsbabel-language.cfg
就被簡單地跳過了。為了證明這種行為,我創建了一個越野車babel-latex.cfg
來測試它是否被詢問。
c:\texlive>etex -ini *latex.ltx /dump
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/W32TeX) (INITEX)
restricted \write18 enabled.
entering extended mode
...
===========================================
Local configuration file hyphen.cfg used
===========================================
(c:/texlive/2019/texmf-dist/tex/generic/babel/hyphen.cfg
(c:/texlive/texmf-local/tex/latex/local/babel-latex.cfg
! LaTeX Error: Missing \begin{document}.
結論:
web2js
或\openin
不\ifeof
以與標準原語相同的方式工作
根據哈維爾·貝佐斯的第二個暗示可能更多的\openin
是文件不存在和後續故障的問題。