Ein e-TeX, generiert mit Jim Fowlers WEB/TeX Pascal to WebAssembly Compiler web2jssollte ein LaTeX-Format aus latex.ltx
und stolpert über die babel-latex.cfg
, sieheShreevatsaRs Anleitung, um ein LaTeX-Format mit web2js zum Laufen zu bringen (mit vorgetäuschter leerer babe-latex.cfg.
Interessanterweise etex -ini *latex.ltx /dump
verursacht der Befehl dieses Problem nicht. Er wird switch.def
nach geladen hyphen.cfg
. Warum gibt es hier keine Probleme?
Im Babel-Handbuch heißt es:
Nun werden Hooks definiert. Aus Effizienzgründen werden sie hier gesondert behandelt. Neben luatex werden auch formatspezifische Konfigurationsdateien berücksichtigt.
Das Ganze geschieht drinnen hyphen.cfg
in Zeile 121 \def\bbl@hook@everylanguage#1{}
, siehe texdoc babel
Seite 134.
Hinweis von Javier Bezos: Problem mit dem \ifeof-Primitiv
\ifeof
Ich möchte die -Problem-Vermutung von Javier Bezos beweisen, indem ich die babel-latex.cfg
mit einer Fehlermeldung versorg. Dies führt zu der Frage, wo diese Datei überhaupt gespeichert werden soll.
Ich habe sie babel-latex.cfg
im selben Verzeichnis wie gespeichert hyphen.cfg
. kpsewhich
wird die letzte finden, aber nicht babel-latex.cfg
.
✔Wie kann kpsewhich
man lernen, ein zu finden babel-latex.cfg
?
❓ Kann jemand ein Beispiel geben babel-*.cfg
?
Antwort1
Auszug Dokumentation zur Kontrolle kpsewhich
:
3.4.6 Lokale und persönliche Makros integrieren
Dies wird bereits implizit in Abschnitt 2.3 erwähnt: TEXMFLOCAL (standardmäßig /usr/local/texlive/texmf-local oder %SystemDrive%\texlive\texmf-local unter Windows) ist für systemweite lokale Schriftarten und Makros vorgesehen; und TEXMFHOME (standardmäßig $HOME/texmfor%USERPROFILE%\texmf) ist für persönliche Schriftarten und Makros vorgesehen. Diese Verzeichnisse sollen von Version zu Version bestehen bleiben und ihr Inhalt wird automatisch von einer neuen TEX Live-Version erkannt. Daher ist es am besten, die Definition von TEXMFLOCAL nicht zu weit vom Hauptverzeichnis von TEX Live zu ändern, da Sie sonst zukünftige Versionen manuell ändern müssen. Für beide Bäume sollten Dateien in ihrer richtigen TEX-Verzeichnisstruktur abgelegt werden(TDS)Unterverzeichnisse; siehehttp://tug.org/tdsorsiehe texmf-dist/web2c/texmf.cnf. Eine LATEX-Klassendatei oder ein LATEX-Paket sollte beispielsweise in TEXMFLOCAL/tex/latex oder TEXMFHOME/tex/latex oder einem Unterverzeichnis davon abgelegt werden. TEXMFLOCAL erfordert eine aktuelle Dateinamendatenbank, sonst werden Dateien nicht gefunden. Sie können sie mit dem Befehl aktualisierenmktexlsror
verwenden Sie die'Dateidatenbank neu initialisieren'Schaltfläche auf der Konfigurationsregisterkarte der TEXLive Manager-GUI.
(texlive-de.pdf
oder C:\>texdoc texlive
)
Ergebnis:
C:\>kpsewhich -all babel-latex.cfg
c:/texlive/texmf-local/tex/latex/local/babel-latex.cfg
Dank Javier Bezos‘ \ifeof
Vermutung babel-language.cfg
wird es ohne web2js einfach übersprungen. Um dieses Verhalten zu beweisen, habe ich einen Buggy erstellt, babel-latex.cfg
um zu testen, ob es überhaupt gefragt wird.
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}.
Abschluss:
web2js
oder funktionieren nicht auf die gleiche Weise wie die Standardprimitive \openin
.\ifeof
zweiter Hinweis von Javier Bezoswahrscheinlich eher ein \openin
Problem nicht vorhandener Dateien und Folgefehler.