MiKTeX 和 babel:缺少檔案且需要安裝無用的套件

MiKTeX 和 babel:缺少檔案且需要安裝無用的套件

在很長一段時間沒有更新 MiKTeX 2.9 後,我幾天前更新了。我有

pdfTeX 3.14159265-2.6-1.40.16, LaTeX2e <2014/05/01>, babel <3.8m>,

現在我有

pdfTeX 3.14159265-2.6-1.40.17, LaTeX2e <2016/03/31>, babel <3.9r>.

中間發生了一些(壞的)事情:現在,每當我使用這個babel包(與任何語言),MiKTeX 告訴我bblopts.cfg缺少該文件,需要安裝該arabi包 - 該包實際上包含該文件。

請注意,我什至在格式文件中沒有阿拉伯語連字符,並且在忽略該請求後,tex 文件的編譯沒有錯誤。事實上,相當奇怪的事實是,這bblopts.cfg是一個可選文件:它只出現在這行程式碼中babel.sty

\InputIfFileExists{bblopts.cfg}

不管怎麼說......為了克服僵局,因為我不需要這個arabi包,所以我只是創建了一個空檔bblopts.cfg。這非常MiKTeX 的奇怪行為如下:

  1. 如果bblopts.cfg是在 tex 路徑中,例如C:\localtexmf\tex\generic\babel

    • findtexmf返回正確的路徑C:\localtexmf\tex\generic\babel
    • MiKTeX 包括bblopts.cfg,如日誌檔案所示

      * Local config file bblopts.cfg used
      *
      (C:\localtexmf\tex\generic\babel\bblopts.cfg).

    • 但它仍然bblopts.cfg缺少這個包,我必須安裝這個arabi包!

  2. 如果bblopts.cfg在目前資料夾中,

    • findtexmf返回正確的路徑.\bblopts.cfg
    • MiKTeX 包括bblopts.cfg,如日誌檔案所示

      * Local config file bblopts.cfg used
      *
      (bblopts.cfg).

    • 出現警告或軟體包安裝要求!

有人有線索嗎?是我一個人的問題還是 MiKTeX 的 bug?如果您想嘗試,請確保尚未arabi安裝該軟體包並將該babel軟體包添加到您的 tex 檔案中。一個玩具範例可以是:

\documentclass{article}\usepackage[british]{babel}\begin{document}.\end{document}

以防萬一:我的作業系統是 Windows 7 SP1 Enterprise...

答案1

來自bblopts.cfgarabi 的位於tex\latex.您將您的版本放入tex\generic.現在 Latex 不會先搜尋本地 texmf 樹,然後搜尋主樹,而是遵循某種鋸齒形路徑(請參閱https://tex.stackexchange.com/a/79983/2388)。

這意味著當\InputIfFileExists處理 miktex 時,它首先找到bblopts.cfg來自 arabi 的文件,然後嘗試下載它。

您可以將本機檔案(例如)放入 來避免這種情況localtexmf\tex\latex\babel

附註:恕我直言,bblopts.cfg今天的 from arabi 是不必要的,應該刪除或移動到 doc 資料夾(它位於 texlive 中)。

答案2

顯然這是 MikTeX 的錯誤。作為解決方法,請嘗試

\usepackage[noconfigs,british]{babel} 

該選項的noconfigs作用正如其名稱所示。

答案3

我自己剛剛遇到了這個錯誤。在 babel 手冊中搜索bblopts.cfg,我發現了以下解釋:

擴展 babel 的「已知」選項清單的另一種方法是建立bblopts.cfg一個可以在其中新增選項聲明的檔案。但是,這種機制已被棄用 - 如果您想要一種語言的替代名稱,只需建立一個.ldf載入實際名稱的新檔案即可。

看起來 MikTeX 錯誤是假設這個可選檔案(來自已棄用的方法)必須絕對存在。該arabi套件必須使用這個已棄用的方法來整合到 babel 生態系統中。

我很驚訝 MikTeX 沒有修復這個長期存在的錯誤。

相關內容