在下面的代码中,我想定义一个新的环境来存储其内容,以便以后以不同的格式多次使用它
\documentclass{article}
\newtoks\environmentcontents
\newenvironment{myenv}{%
%\environmentcontents=\bgroup
}
{%
%\egroup
}
\begin{document}
\begin{myenv}
some tokens here
\end {myenv}
% {\tiny \environmentcontents}
Some text in between the same content
% {\Large \environmentcontents}
\end{document}
答案1
我不太清楚你为什么想要 token,而不是例如只是\long\def
输入所需的内容。但是,该tokcycle
包用于收集和操作 token。在这种情况下,操作只是传递未改变的 token。因此,只要你没有指示包以不同的方式处理 token,myenv
伪环境就会在 token 寄存器中收集你的 token \cytoks
。我在 MWE 中做的最后一件事是重新整理 detokenized \cytoks
,以便你可以验证它确实收集了原始(未扩展)的 token。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tokcycle}
\def\myenv{\begingroup\let\endmyenv\endtokcycraw
\aftertokcycle{\expandafter\endgroup\expandafter\tcenvscope
\expandafter{\the\cytoks}}\tokcycrawxpress}
\begin{document}
\myenv
some tokens \textit{here}, \today
\endmyenv
{\tiny \the\cytoks}
Some text in between the same content
{\Large \the\cytoks}
\detokenize\expandafter{\the\cytoks}
\end{document}