Thanks Hans! This is great. I made a slight change to add an additional feature. By moving the “mysolution” definition out of \startmode[solution], I can now use mysolution in either mode. I’d use this if I want to give my solution to one of the problems, as an example, on the handout.
-Gavin % \enablemode[solution] % Define "mysolution” for use independent of solution mode. \definenarrower[mysolution] [before=\blank\it, after=\blank] % If in solution mode, define "solution" to use "mysolution" \startmode[solution] \tolerant\protected\def\startsolution[#1]% {\startmysolution} \protected\def\stopsolution {\stopmysolution} \stopmode % If NOT in solution mode, define "solution" to produce a blank space \startnotmode[solution] \tolerant\protected\def\startsolution[#1]% {\doifelsenothing{#1}{\blank[1in]}{\blank[#1]} \gobbleuntil\stopsolution} \protected\def\stopsolution {} \stopnotmode \starttext How many roads? \startsolution 42 roads. \stopsolution How much wood? \startsolution[1.5in] Alotta wood! \stopsolution No more questions. \stoptext > On Jan 11, 2022, at 1:13 PM, Hans Hagen <j.ha...@xs4all.nl> wrote: > > On 1/11/2022 8:50 PM, 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. >> In the example below, the first solution has the desired behavior. The >> second solution has the syntax I’d like, but it doesn’t make the space >> without a solution. >> Any ideas would be welcome! I am still pretty new to ConTeXt, so I struggle >> mixing things like the plain tex \vbox and ConTeXt \start…\stop concepts. >> Thanks, >> Gavin >> \definemode[solution][yes] % yes to enable solutions, no to disable >> \definebuffer [solution] % Captures solution in a buffer that isn't used >> \startmode[solution] % If in solution mode, redefine >> \startsolution...\stopsolution >> \definedelimitedtext[solution][ % Solution italic and indented >> spacebefore=medium, >> spaceafter=medium, >> style=\rm\it, >> leftmargin=standard, % Indents block on the left >> rightmargin=yes, % Indents block on the right >> indentnext=no, >> before=\vbox to 1in\bgroup, >> after=\egroup, >> ] >> \stopmode >> \starttext >> How many roads? (The 1-inch space below appears whether or not it contains a >> solution.) >> \vbox to 1in{% >> \startsolution >> 42 roads. >> \stopsolution >> } >> How much wood? (I would like to define solution so this to behaves like the >> previous question.) >> \startsolution[1in] >> Alotta wood! >> \stopsolution >> No more questions. >> \stoptext > a mix between big and low level > > % \enablemode[solution] > > \startmode[solution] % If in solution mode, redefine > \startsolution...\stopsolution > > \definenarrower > [mysolution] > [before=\blank, > after=\blank] > > \tolerant\protected\def\startsolution[#1]% > {\startmysolution > \it} > > \protected\def\stopsolution > {\stopmysolution} > > \stopmode > > \startnotmode[solution] % If in solution mode, redefine > \startsolution...\stopsolution > > \tolerant\protected\def\startsolution[#1]% > {\doifelsenothing{#1}{\blank[2.5cm]}{\blank[#1]} > \gobbleuntil\stopsolution} > > \protected\def\stopsolution > {} > > \stopnotmode > > \starttext > > How many roads? (The 1-inch space below appears whether or not it contains a > solution.) > > \startsolution > 42 roads. > \stopsolution > > How much wood? (I would like to define solution so this to behaves like the > previous question.) > > \startsolution[1in] > Alotta wood! > \stopsolution > > No more questions. > \stoptext > > much nicer is to use the blocks mechanism (but i need to check if we can do > the 2in there) > > Hans > > ----------------------------------------------------------------- > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands > tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl > ----------------------------------------------------------------- ___________________________________________________________________________________ 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 ___________________________________________________________________________________