Catchfilebetweentag가 작동하지 않습니다.

Catchfilebetweentag가 작동하지 않습니다.

catchfilebetweentags패키지 명령 의 설명에 따르면 명령 \ExecuteMetaData*[<file>]{tag}은 동일한 작업을 수행해야 하지만 시작 부분에 \ExecuteMetaData[<file>]{tag}'' 주석 처리를 해제해야 합니다 . %파일:

\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

반면 두 번째는

\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*.

분명히 작성자는 패키지에 대한 자신의 바람을 문서화했지만 이를 구현하는 것을 잊어버렸습니다.

관련 정보