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 のバグでしょうか?? 試してみたい場合は、パッケージがarabiインストールされていないことを確認し、パッケージを tex ファイルに追加してくださいbabel。簡単な例は次のとおりです。

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

念のため言っておきますが、私の OS は Windows 7 SP1 Enterprise です...

答え1

arabi からのものbblopts.cfgは にありますtex\latex。あなたのバージョンは に置きますtex\generic。これで、latex は最初にローカルの texmf ツリーを検索し、次にメインツリーを検索するのではなく、ジグザグのパスをたどります (参照)。https://tex.stackexchange.com/a/79983/2388)。

つまり、 が\InputIfFileExists処理されるとき、 miktex はまずbblopts.cfgarabi から を見つけて、それをダウンロードしようとします。

これを回避するには、ローカル ファイルを などに配置することができますlocaltexmf\tex\latex\babel

補足: bblopts.cfgfrom arabi は、今日では不要であると私は考えており、削除するか、doc フォルダー (texlive にある場所) に移動する必要があります。

答え2

どうやらこれはMikTeXのバグのようです。回避策としては、

\usepackage[noconfigs,british]{babel} 

このオプションは、noconfigsその名前が示すとおりの機能を実行します。

答え3

bblopts.cfg私自身もこのバグに遭遇しました。Babelマニュアルで検索したところ、次の説明を見つけました。

babel の「既知の」オプションのリストを拡張する別の方法は、オプション宣言を追加できるファイルを作成することです。ただし、このメカニズムは非推奨です。言語に別の名前が必要な場合は、実際の名前をロードするbblopts.cfg新しいファイルを作成するだけです。.ldf

MikTeX のバグは、このオプションのファイル (非推奨のメソッドから) が必ず存在すると想定しているようです。パッケージは、arabiこの非推奨のメソッドを使用して、babel エコシステムに統合する必要があります。

MikTeX がこの長年のバグを修正していないことに驚いています。

関連情報