Catchfilebetweentags funktioniert nicht

Catchfilebetweentags funktioniert nicht

Laut der Paketbeschreibung sollte catchfilebetweentagsdas Kommando \ExecuteMetaData*[<file>]{tag}dasselbe bewirken wie \ExecuteMetaData[<file>]{tag}das Entfernen von Kommentarzeilen mit einem einzigen Kommentar %am Anfang. Datei:

\documentclass{article}
\usepackage{catchfilebetweentags}
\begin{document}
\ExecuteMetaData*[example.tex]{tag}
\end{document}

mit der folgenden Datei example.tex:

%<*tag>
some text 
%some more text
%</tag>

sollte die folgende Ausgabe erzeugen:

etwas Text etwas mehr Text

Leider gibt es in Texmaker:

[beispiel.tex]tag

während es in Overleaf 30 Sekunden lang kompiliert und ein Timeout-Fehler auftritt. Wie kann das behoben werden?

Antwort1

Leider gibt es keine Lösung. Betrachten Sie das Beispiel

\begin{filecontents*}{\jobname-example}
%<*tag>
some text 
%some more text
%</tag>

\end{filecontents*}

\documentclass{article}
\usepackage{catchfilebetweentags}

\begin{document}

\tracingmacros=1 % for debugging

\CatchFileBetweenTags{\foo}{\jobname-example.tex}{tag}\show\foo

\CatchFileBetweenTags*{\foo}{\jobname-example.tex}{tag}

%\ExecuteMetaData[\jobname-example.tex]{tag}

\end{document}

Die erste \CatchFileBetweenTagsbeginnt mit

\CatchFileBetweenTags #1#2#3->\CatchFileBetweenDelims \CatchFBT@tok {#2}{%<*#3>}{%</#3>}[\CatchFBT@sanitize ]\CatchFBT@Final {#1}
#1<-\foo 
#2<-\jobname -example.tex
#3<-tag

während der zweite

\CatchFileBetweenTags #1#2#3->\CatchFileBetweenDelims \CatchFBT@tok {#2}{%<*#3>}{%</#3>}[\CatchFBT@sanitize ]\CatchFBT@Final {#1}
#1<-*
#2<-\foo 
#3<-\jobname -example.tex

und man sieht deutlich, dass etwas nicht stimmt.

Schlimmer noch: die Definition von \ExecuteMetaDataist

% catchfilebetweentags.sty, line 53:
\newrobustcmd*\ExecuteMetaData[2][\jobname]{%
   \CatchFileBetweenTags\CatchFBT@tok{#1}{#2}%
   \global\expandafter\CatchFBT@tok\expandafter{%
            \expandafter}\the\CatchFBT@tok
}% \ExecuteMetaData

also da istüberhaupt keine Vorsorgezur Unterscheidung zwischen \ExecuteMetaDataund \ExecuteMetaData*.

Offenbar hat der Autor seine Wünsche zum Paket dokumentiert, aber vergessen, diese umzusetzen.

verwandte Informationen