我想创建一个命令:当给出一个参数时,它会将其保存在“某处”,而当没有给出参数时,它会打印所有已保存的参数。类似这样:
\example{text1}
\example{text2}
\example{text3}
(不输出)
\example
输出:text1,text2,text3
如果使用同一个命令无法实现这一点,则可能是有 2 个不同的命令。我猜这是可能的,因为有些模板在调用 \maketitle 时会打印“\author”的信息。
答案1
我不会将同一个命令用于两个不同的目的。
\documentclass{article}
%\usepackage{xparse} % uncomment for LaTeX prior to 2020-10-01
\ExplSyntaxOn
\seq_new:N \g_kuonb_example_seq
\NewDocumentCommand{\example}{m}
{
\seq_gput_right:Nn \g_kuonb_example_seq { #1 }
}
\NewDocumentCommand{\printexample}{+O{,~}}
{
\seq_use:Nn \g_kuonb_example_seq { #1 }
}
\ExplSyntaxOff
\example{text1}
\example{text2}
\example{text3}
\begin{document}
\printexample
\printexample[\par]
\end{document}
可选参数\printexample
是任意两个项目之间的设置内容。
如果您提供有关预期工作的更多详细信息,则可以扩展此范围。