自动提取内容的命令

自动提取内容的命令

在我的手稿中,在某个部分/小节/小子部分中,我希望能够使用命令 foo 在另一个文件中生成某种内容表(看起来像相同的机制),如下所示:

\subsection{Stuff}
some text
\foo{Inside text}
some text again
\subsubsection{Another stuff}
blah blah
\foo{Another inside text}

在本地打印“内部文本”,并将以下条目添加到我的其他文件中:

**Stuff**
Inside text

** Another Stuff **
Another inside text

我怎样才能实现这一点?

答案1

完全改编自我在此处的回答:提取 LaTex 文档的结构,包括注释

您的文档在此mydoc.tex

\documentclass{article}
\newcommand\addxyzline[2]{\addtocontents {xyz}{\protect \xyzline {#1}{#2}}}
\makeatletter
\newcommand\writexyz{\newcommand\xyzline[2]{}\@starttoc{xyz}}
\makeatother
\newcommand\Subsection[1]{\subsection{#1}\addxyzline{Subsection}{#1}}
\newcommand\Subsubsection[1]{\subsubsection{#1}\addxyzline{Subsubsection}{#1}}
\newcommand\foo[1]{#1\addxyzline{par}{#1}}
\begin{document}
%\tableofcontents% CAN UNCOMMMENT TO SEE THAT toc WORKS FINE
\Subsection{Stuff}

some text.
\foo{Inside Text.}
Some text again. 

\Subsubsection{Another stuff}
blah blah.
\foo{Another inside text.}
blah-blah.
\writexyz
\end{document}

编译生成

在此处输入图片描述

通过\writexyz该文档的结尾,它还生成一个mydoc.xyz包含以下内容的文件:

\xyzline {Subsection}{Stuff}
\xyzline {par}{Inside Text.}
\xyzline {Subsubsection}{Another stuff}
\xyzline {par}{Another inside text.}

下列模板将会使用它。

第二个模板文件:

\documentclass{article}
\newcommand\xyzline[2]{\csname#1\endcsname {#2}\par}
\newcommand\Subsection[1]{\medskip**#1**}
\newcommand\Subsubsection[1]{\medskip** #1 **}
\begin{document}
\input{mydoc.xyz}% NAME OF .xyz FILE GOES HERE IN THE ARGUMENT
\end{document}

编译生成

在此处输入图片描述

相关内容