TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have an environment that I've defined as follows:


The problem is that I need to expand #2 before passing it to listSkeleton. It's okay if #1 is expanded (I think). I know I have to use \expandafter in some way, but not exactly how.

share|improve this question
Do you need to expand it only once or completely? – Martin Scharrer Aug 18 '11 at 9:54
@Martin Scharrer: I'm not familiar enough with LaTeX to comment on that. If expanding it completely is easier and doesn't break anything, then that will suffice. – gablin Aug 18 '11 at 11:35
up vote 9 down vote accepted

If it is OK to expand it completely, not just once you can use \edef with a temporary macro:


If you really only want to expand it once you can do:


Often the macro \@tempa is used for such temparary assignments, but in user documents it requires \makeatletter ... \makatother around the code. So for simplicity I just used \temp. It is anyway just used inside a group.

share|improve this answer
In the first code there is a \noexpand missing, right before \begin. Otherwise the \edef will not work. – Axel Sommerfeldt Aug 18 '11 at 10:33
@Axel: Yes, indeed. I overlooked that. Fixed now. – Martin Scharrer Aug 18 '11 at 10:42

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.