我定义了一个带有参数的新命令,例如\mycmd{some text here}
。
此命令在文档中多次使用,例如:
\documentclass{a-latex-class}
\begin{document}
\mycmd{text number 1}
\mycmd{text number 2}
\mycmd{text number 3}
\end{document}
这是我的问题。如何定义另一个命令,\whatiwant
打印作为参数给出的所有文本\mycmd
?
此外,我希望\whatiwant
在使用任何之前使用该命令\mycmd
,例如:
\documentclass{a-latex-class}
\begin{document}
\whatiwant
\mycmd{text number 1}
\mycmd{text number 2}
\mycmd{text number 3}
\end{document}
我尝试过使用临时/辅助文件来存储我想要的文本。但是,似乎我需要在使用临时文件之前排版文档,这种方式不太方便。
答案1
您可以使用类似 ToC 的界面,使得\whatiwant
操作类似于\tableofcontents
:
\documentclass{article}
\makeatletter
\newcommand{\whatiwant}{\@starttoc{wiw}}
\newcommand{\l@whatiwant}[2]{#1\par}
\newcommand{\mycmd}[1]{\addcontentsline{wiw}{whatiwant}{#1}}
\makeatother
\begin{document}
Lorem ipsum 1 \ldots
\whatiwant
Lorem ipsum 2 \ldots
\mycmd{text number 1}
\mycmd{text number 2}
\mycmd{text number 3}
Lorem ipsum 3 \ldots
\whatiwant% Doesn't print anything
\end{document}
请注意,类似 ToC 的界面通常只使用一次。因此,\whatiwant
只打印一次其内容,但这可以更改。
由于它是类似 ToC 的设置,因此您只有在第二次编译后才会看到变化。