You can also consider using viewerlayer:

\setupinteraction[state=start]

\defineviewerlayer[solution]

\setupcolors[state=start]
\usecolors[xwi]
\definecolor[keyColor][1.0(maroon)]

\starttext

\startitemize[n]
  \but[ToggleLayer{solution}]
  \samplefile{tufte}
  \blank[big]
  \startviewerlayer[solution]
    \keyColor
    \samplefile{knuth}
  \stopviewerlayer
\stopitemize

\stoptext

I print the file with the solution layer off to a 'clean' file for students.

Gavin via ntg-context <ntg-context@ntg.nl> 於 2022年1月12日 週三 下午11:30寫道:

> Thanks Fabrice and Aditya!
>
> With three completely different approaches, I learned three times more
> than I was expecting. This has been a great help. I will probably use the
> framedtext method, but I learned something from each.
>
> Gavin
>
>
> > On Jan 11, 2022, at 4:44 PM, Aditya Mahajan <adit...@umich.edu> wrote:
> >
> > On Tue, 11 Jan 2022, Gavin via ntg-context wrote:
> >
> >> Hello List,
> >>
> >> I am making problem sets for a physics class. Solutions use the style
> defined in the example below, and only appear if the “solution” mode is
> enabled. I am struggling to get a vertical space for the solution which is
> the same whether or not the solution is printed. Different problems require
> different amounts of space, so this should be an argument or key-value.
> >
> > This is how I would do it: piggyback on framedtext. Note that framedtext
> doesn't break across pages. So, if you have long answers, a different
> mechanism is needed.
> >
> > \definemode[solution][no]
> >
> > \doifmodeelse{solution}
> >  {\defineframedtext[solution][empty=no]}
> >  {\defineframedtext[solution][empty=yes]}
> >
> > % Doesn't work. Why?
> > %
> \expanded{\defineframedtext[solution][empty=\doifmodeelse{solution}{no}{yes}]}
> >
> > \setupframedtext
> >  [solution]
> >  [
> >    spacebefore=medium,
> >    spaceafter=medium,
> >    width=broad,
> >    foregroundstyle=\rm\it,
> >    loffset=2em,
> >    roffset=2em,
> >    indentnext=no,
> >  ]
> >
> >
> > \starttext
> >
> > Sample question. Always show answer.
> >
> > \startsolution[height=1in, empty=no]
> >  Alotta wood!
> > \stopsolution
> >
> >
> > How much wood?
> >
> > \startsolution[height=1in]
> >  Alotta wood!
> > \stopsolution
> >
> > You don't need to specify the height:
> >
> > \startsolution
> >  \input ward
> > \stopsolution
> >
> > No more questions.
> > \stoptext
>
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : ntg-context@ntg.nl /
> http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
>
> ___________________________________________________________________________________
>
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to