# Storing environment arguments

Consider this example:

\documentclass{article}

\newcommand{\baz}{}

\begin{document}

\begin{foo}{bar}
\end{foo}
\end{document}


The example does not work. What I am aiming to achieve is concatenating all parameters used with foo, so I can output them at the end of the document. What is the correct approach for that?

-
You cannot access the arguments from within the second body of \newenvironment. –  xport Jun 7 '11 at 0:08
Somewhat unrelated to this problem: you can't use \makeatletter etc. inside command arguments because they are parsed when they are read, not when they are executed. –  Philipp Jun 7 '11 at 5:08

It would be easier to store the parameters at the start of the environment, rather than at the end.

\documentclass{article}
\newcommand{\baz}{}
\makeatletter
\makeatother
\begin{document}
\begin{foo}{kidney}
\end{foo}
\begin{foo}{spleen}
\end{foo}
\begin{foo}{liver}
\end{foo}

\baz
\end{document}


If you need to do it at the end, you might find the solutions to this question useful.

-
I can make it work that way. The original problem required I add some information calculated at the end of the environment as well. I have now added the argument information at the beginning, and the calculated information at the end of the environment. Thanks. –  ipavlic Jun 7 '11 at 0:30