タグ間のキャッチファイルが機能しない

タグ間のキャッチファイルが機能しない

catchfilebetweentagsパッケージの説明によると、コマンドは\ExecuteMetaData*[<file>]{tag}と同じ機能を実行する必要がありますが、先頭に\ExecuteMetaData[<file>]{tag}1 があるコメント行の「コメント解除」も実行する必要があります。ファイル:%

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

次のファイル example.tex を使用します。

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

出力は次のようになります:

いくつかのテキスト いくつかの追加のテキスト

残念ながら、Texmaker では次のようになります:

[example.tex]タグ

Overleaf では 30 秒間コンパイルされ、タイムアウト エラーが表示されます。これを修正するにはどうすればよいでしょうか?

答え1

申し訳ありませんが、解決策はありません。例を見てみましょう

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

最初\CatchFileBetweenTags

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

一方、2番目は

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

何かが間違っていることがはっきりとわかります。

\ExecuteMetaDataさらに悪いことに、の定義は

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

だから全く規定がない\ExecuteMetaDataとを区別するため\ExecuteMetaData*

どうやら作者はパッケージに関する要望を文書化していたものの、それを実装するのを忘れていたようです。

関連情報