如何导入带有图形的文件的所有标记部分?

如何导入带有图形的文件的所有标记部分?

这个问题是一个后续问题,基于这个答案经过图哈米



情况

我想从我已 TeX 处理的脚本中创建一个摘录,作为最重要的陈述(定理和定义)的概要。

有一个主文件导入带有内容的章节文件。此外,摘要文件应该导入一些重要部分。这是通过 touhamis 的回答实现的。但它应该允许包含一些并排除一些其他图,这导致了我的问题...

问题

如何导入带有图形的文件的所有标记部分?

(保留编号)

这意味着有些数字很重要,应该包括在内,而其他数字不重要,必须排除(参见 MWE)。

平均能量损失

文件.tex

\documentclass{amsart}
\usepackage{lipsum}

\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\newtheorem{example}{Example}
\newenvironment{mtexclude}{}{}
\begin{document}
First bla bla
%<*tag>
\section{Foo}
\subsection{Foo bar}
I need this

\begin{mtexclude}% begin of part to skiped
    \section{Baz}
    \subsection{Baz bar}
    no need for this

    \begin{figure}[h] %this figure is the problem
        \fbox{\parbox{\textwidth}{\center some picture...}}
    \end{figure}
\end{mtexclude}%   end

\section{End}
\subsection{End bar}
and need this \dots 

\begin{figure}[h] %this figure is ok
    \fbox{\parbox{\textwidth}{\center some other picture...}}
\end{figure}

\begin{mtexclude}% begin of part to skiped
    %no problems here
    \section{Baz 2}
    \subsection{Baz bar 2}
    another part to be skiped
\end{mtexclude}%   end

The end
%</tag>
Last bla bla
\end{document}

新文件.tex

\documentclass{amsart}
\usepackage{lipsum}

\usepackage{catchfilebetweentags}
\newtoks\temptoken
\newbox\mtbox
\newenvironment{mtexclude}{\setbox\mtbox\vbox\bgroup}{\egroup}

\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\theoremstyle{definition}
\newtheorem{definition}{Definition}
\newtheorem{example}{Example}

\begin{document}
\lipsum[1]
\CatchFileBetweenTags\temptoken{file}{tag}
\the\temptoken

\end{document}

答案1

解决方案是替换mtexclude定义

\newenvironment{mtexclude}{\setbox\mtbox\vbox\bgroup}{\egroup}

\makeatletter
\newenvironment{mtexclude}{%
\setbox\mtbox\vbox\bgroup%
\def\@float##1{\def\@captype{##1}}%
\let\end@float\relax%
}{\egroup}
\makeatother

相关内容