<html><head></head><body><div class="yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:10px;"><div dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false">I am creating a student workbook. There are ~30 chapters, each containing ~20 activities, called "Activity A", "Activity B", and so on.<br><br>The `workbook.tex` itself uses a recurse function, so it prints chapter 1-30. The reason I use this, is if I need to do a fast test of the code, I can compile a specific range of chapters, not the whole workbook.<br><br>\define\activityA{}<br>\define\activityB{}<br><br>\dostepwiserecurse{1}{30}{1}{<br><br>    \chapter{\recurselevel}<br>        \activityA<br>        \activityB<br>}<br><br>\activityA prints the workbook activity "Activity A".<br>\activityB prints the workbook activity "Activity B".<br><br>The problem comes in that some activities have varied versions. Just as an example, "Activity C might be a crossword puzzle in some chapters, but a word search in other chapters. My poor solution has been to use registercyclist:<br><br>\define\altCa{print a crossword}<br>\define[3]\altCb{print a word search}<br>\registercyclelist{activityClist}{\altCa, \altCb{}{}{}, \altCb{}{}{}}<br>\define\activityC{%<br>    \usecyclelist{activityClist}<br>}<br><br>This code works okay, but becomes broken if I try to change the page range in `dostepwiserecurse` when testing my code. The other problem is the syntax is super messy. Within this single line, tones of data is crammed in:<br><br><div>\registercyclelist{activityClist}{\altCa, \altCb{}{}{}, \altCb{}{}{}}</div><div><br></div><div dir="ltr" data-setdir="false">...not only is it not easy to read which chapter gets which activity, I also have to fill in the {}{}{} with data, making it more difficult to read.<br></div><br><div>How can I create a much cleaner, human-readable syntax for storing this? Is there some simpler way to tell ConTeXt Chapter 1 gets one variant, Chapter 2, 3, and 4 get another, etc.?<br></div></div><div><br></div></div></div></body></html>