Catchfilebetweentags no funciona

Catchfilebetweentags no funciona

De acuerdo con la descripción del catchfilebetweentagscomando del paquete, \ExecuteMetaData*[<file>]{tag}debería hacer el mismo trabajo \ExecuteMetaData[<file>]{tag}pero también "descomentar" las líneas de comentario con un solo %al principio. Archivo:

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

con el siguiente archivo ejemplo.tex:

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

debería producir resultados:

algo de texto algo más de texto

Desafortunadamente, en Texmaker da:

etiqueta [ejemplo.tex]

mientras que en el dorso se compila durante 30 segundos y aparece un error de tiempo de espera. ¿Cómo se puede arreglar esto?

Respuesta1

Lo sentimos, pero no hay solución. Considere el ejemplo

\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}

El primero \CatchFileBetweenTagscomienza con

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

mientras que el segundo tiene

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

y puedes ver claramente que algo anda mal.

Peor aún: la definición de \ExecuteMetaDataes

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

entonces alli estaninguna disposición en absolutopara distinguir entre \ExecuteMetaDatay \ExecuteMetaData*.

Al parecer, el autor documentó sus deseos sobre el paquete, pero olvidó implementarlos.

información relacionada