Mikael P. Sundqvist
6. November 2016 um 12:51
Dear list, and in particular Hans,

I asked the same question on stackexchange before today
(http://tex.stackexchange.com/q/337738/52406), and got the answer that
what I want to do might not be possible.

In my large document I have exercises (typeset with \startexercise
\stopexercise, defined as an enumeration). Is it possible to use modes
(or any other trick) to be able to compile the same file and get only
the exercises. For example,

context file.tex

should give the full document, while

context --mode=exercises file.tex

should give only all the exercises (or just everything "in one mode")?
You can put each exercise in a block and ask Hans to add a \saveblocks commands
which writes the content of all exercise blocks to a external file (like \savebuffer lets
you save the content of a buffer in a external file).


\defineblock[exercise]
\keepblocks [exercise]

\defineenumeration[exercise][text=Exercise]

%\doifmode{exercises}{\saveblocks[exercise][exercises.tex]}

\starttext

\beginexercise
    \startexercise
        This is the first exercise.
    \stopexercise
\endexercise

\beginexercise
    \startexercise
        This is the second exercise.
    \stopexercise
\endexercise

\stoptext


The content of this saved file can then be read by another file
to get a document which contains only the exercises.


\defineenumeration[exercise][text=Exercise]

\starttext

\doiffileelse{exercise}
  {\input{exercises}}
  {{\tttf Exercise file doesn’t exist.}}

\stoptext


Wolfgang