![MiKTeX und Babel: Fehlende Datei und nutzlose Paketinstallation erforderlich](https://rvso.com/image/335478/MiKTeX%20und%20Babel%3A%20Fehlende%20Datei%20und%20nutzlose%20Paketinstallation%20erforderlich.png)
Nachdem ich mein MiKTeX 2.9 sehr lange nicht aktualisiert hatte, habe ich es vor ein paar Tagen getan. Ich hatte
pdfTeX 3.14159265-2.6-1.40.16, LaTeX2e <2014/05/01>, babel <3.8m>,
und jetzt habe ich
pdfTeX 3.14159265-2.6-1.40.17, LaTeX2e <2016/03/31>, babel <3.9r>.
Irgendetwas (Schlechtes) ist zwischendurch passiert: Wenn ich jetzt das babel
Paket verwende (mitjede Sprache), MiKTeX sagt mir, dass bblopts.cfg
es fehlt und die Installation des arabi
Pakets erfordert – das diese Datei tatsächlich enthält.
Beachten Sie, dass ich in der Formatdatei nicht einmal arabische Silbentrennung habe und dass die Tex-Datei nach Ignorieren dieser Anforderung ohne Fehler kompiliert wird. Tatsächlich ist die ziemlich seltsame Tatsache, dass es bblopts.cfg
sich um eineoptionale Datei: es erscheint nur in dieser Codezeile babel.sty
:
\InputIfFileExists{bblopts.cfg}
...
Wie auch immer... Um die Sackgasse zu überwinden, da ich das Paket nicht brauche arabi
, habe ich einfach eine leere bblopts.cfg
Datei erstellt. DiesehrEs folgt ein seltsames Verhalten von MiKTeX:
Wenn
bblopts.cfg
es sich im Tex-Pfad befindet, z. B.C:\localtexmf\tex\generic\babel
,findtexmf
gibt den richtigen Pfad zurückC:\localtexmf\tex\generic\babel
,MiKTeX enthält
bblopts.cfg
, wie die Protokolldatei zeigt,* Local config file bblopts.cfg used
*
(C:\localtexmf\tex\generic\babel\bblopts.cfg).
aber esTrotzdemsagt, dass das
bblopts.cfg
fehlt und dass ich das Paket installieren mussarabi
!
Wenn
bblopts.cfg
es sich im aktuellen Ordner befindet,findtexmf
gibt den richtigen Pfad zurück.\bblopts.cfg
MiKTeX enthält
bblopts.cfg
, wie die Protokolldatei zeigt,* Local config file bblopts.cfg used
*
(bblopts.cfg).
UndNEINWarnungen oder Paketinstallationsanforderungen werden angezeigt!
Hat jemand eine Ahnung? Bin ich der Einzige oder ist es ein MiKTeX-Fehler?? Wenn Sie es versuchen möchten, stellen Sie sicher, dass das arabi
Paket nicht installiert ist, und fügen Sie das babel
Paket zu Ihrer Tex-Datei hinzu. Ein Spielzeugbeispiel könnte sein:
\documentclass{article}\usepackage[british]{babel}\begin{document}.\end{document}
Nur für den Fall, dass es wichtig ist: Mein Betriebssystem ist Windows 7 SP1 Enterprise …
Antwort1
Das bblopts.cfg
von arabi ist in tex\latex
. Sie setzen Ihre Version in tex\generic
. Jetzt durchsucht Latex nicht zuerst den lokalen Texmf-Baum und dann den Hauptbaum, sondern folgt einer Art Zickzack-Pfad (siehehttps://tex.stackexchange.com/a/79983/2388).
Dies bedeutet, dass \InputIfFileExists
Miktex bei der Verarbeitung zuerst die Datei bblopts.cfg
von Arabi findet und versucht, sie herunterzuladen.
Sie können dies vermeiden, indem Sie Ihre lokale Datei beispielsweise in . ablegen localtexmf\tex\latex\babel
.
Randbemerkung: Das bblopts.cfg
von Arabi ist meiner Meinung nach heute unnötig und sollte entfernt oder in den Doc-Ordner verschoben werden (wo es sich in Texlive befindet).
Antwort2
Offenbar handelt es sich um einen MikTeX-Fehler. Als Workaround versuchen Sie
\usepackage[noconfigs,british]{babel}
Die Option noconfigs
macht, was ihr Name vermuten lässt.
Antwort3
Ich bin gerade selbst auf diesen Fehler gestoßen. Bei einer Suche bblopts.cfg
im Babel-Handbuch bin ich auf die folgende Erklärung gestoßen:
Eine andere Möglichkeit, die Liste der „bekannten“ Optionen für Babel zu erweitern, bestand darin, eine Datei zu erstellen,
bblopts.cfg
in der man Optionsdeklarationen hinzufügen kann. Dieser Mechanismus ist jedoch veraltet – wenn Sie einen alternativen Namen für eine Sprache wünschen, erstellen Sie einfach eine neue.ldf
Datei, die den aktuellen Namen lädt.
Es sieht so aus, als ob der MikTeX-Fehler darin besteht, anzunehmen, dass diese optionale Datei – aus einer veralteten Methode – unbedingt vorhanden sein muss. Das arabi
Paket muss diese veraltete Methode verwenden, um sich in das Babel-Ökosystem zu integrieren.
Ich bin überrascht, dass MikTeX diesen seit langem bestehenden Fehler nicht behoben hat.