add more blank space when using \starteffect[hidden]
Hi, Sometimes, I need to hide the solution of a problem. So I use \doifmode{} and \starteffect[hidden] as in the following sample file. Since I want to set more blank space if it is hidden, I add \blank[5cm] when it is in the \enablemode[hideSolution]. It works well except the figures and bars are not hidden. Only texts, even in the mp part, are hidden. It is OK for me. However, it would be much better to set the height of blank space depends on the height of hidden texts. Is there a way to set the variable height using “overlay” stuff instead of \blank[5cm]? Thank for reading. Best regards, Dalyoung \startbuffer[circles] draw fullcircle scaled 1cm; draw fullcircle scaled 1cm shifted (2cm,0); dotlabel.top(“O”,origin); \stopbuffer \def\StartHide{\doifmode{hideSolution}{\starteffect[hidden]}} \def\StopHide{\doifmode{hideSolution}{\stopeffect\blank[5cm]}} %\enablemode[hideSolution] \starttext \framed[]{This is what I want:} \framedtext[]{ \StartHide \samplefile{knuth} Overbar is not \overbar{hidden}. {\processMPbuffer[circles]} \StopHide } \stoptext
On 3/12/2021 10:08 PM, Jeong Dal wrote:
Hi,
Sometimes, I need to hide the solution of a problem. So I use \doifmode{} and \starteffect[hidden] as in the following sample file. Since I want to set more blank space if it is hidden, I add \blank[5cm] when it is in the \enablemode[hideSolution]. It works well except the figures and bars are not hidden. Only texts, even in the mp part, are hidden. It is OK for me.
However, it would be much better to set the height of blank space depends on the height of hidden texts. Is there a way to set the variable height using “overlay” stuff instead of \blank[5cm]?
Thank for reading.
Best regards,
Dalyoung
\startbuffer[circles] draw fullcircle scaled 1cm; draw fullcircle scaled 1cm shifted (2cm,0); dotlabel.top(“O”,origin); \stopbuffer
\def\StartHide{\doifmode{hideSolution}{\starteffect[hidden]}} \def\StopHide{\doifmode{hideSolution}{\stopeffect\blank[5cm]}}
%\enablemode[hideSolution]
\starttext \framed[]{This is what I want:} \framedtext[]{ \StartHide \samplefile{knuth} Overbar is not \overbar{hidden}. {\processMPbuffer[circles]} \StopHide } \stoptext In your case it's easier than you mightt think:
\framedtext[empty=yes] ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Dear Hans, Thank you for your answer.
\framedtext[empty=yes]
Yes, it clears everything in the frame. But the frame is also clean when I disable \hideSolution. In that case, texts should be appeared. What I want is the following: If \hideSolution then hide text and add more blank spaces else show full text and no more space. endif The full text for the students another for the lecture. Is there a way not using \framedtext? Thank you again. Best regards, Dalyoung
Dear Hans, I found a command \determinenoflines by googling. I made a MWE as following. It is working well. But I have to write the paragraph twice for couning. Is there a better way? Thank you again. Best regards, Dalyoung %%%%%%% \def\StartHide{\doifmode{hideSolution}{\starteffect[hidden]}} \def\StopHide{\doifmode{hideSolution}{\stopeffect\blank[\the\noflines*line + \the\noflines*halfline]}} \enablemode[hideSolution] \starttext The first line. \hrule \StartHide \samplefile{knuth} \determinenoflines{\samplefile{knuth}} \StopHide \hrule The second line. \hrule \StartHide \samplefile{ward} \determinenoflines{\samplefile{ward}} \StopHide \hrule The last line. \stoptext
On 3/16/2021 8:08 PM, Jeong Dal wrote:
Dear Hans,
I found a command \determinenoflines by googling. I made a MWE as following. It is working well.
But I have to write the paragraph twice for couning. Is there a better way?
Thank you again. Best regards,
Dalyoung
%%%%%%% \def\StartHide{\doifmode{hideSolution}{\starteffect[hidden]}} \def\StopHide{\doifmode{hideSolution}{\stopeffect\blank[\the\noflines*line + \the\noflines*halfline]}}
\enablemode[hideSolution]
\starttext
The first line.
\hrule \StartHide \samplefile{knuth} \determinenoflines{\samplefile{knuth}} \StopHide \hrule
The second line.
\hrule
\StartHide \samplefile{ward} \determinenoflines{\samplefile{ward}} \StopHide
\hrule
The last line. \stoptext Let me show you some magic ...
\def\determinednoflines#1% {\localcontrolled{\determinenoflines{#1}}\noflines} \startbuffer \input tufte \stopbuffer \fillinrules[n=\determinednoflines{\getbuffer}, width=fit]{first} \fillinrules[n=\determinednoflines{\getbuffer}, width=broad]{first} \fillinrules[n=\determinednoflines{\getbuffer}, width=3cm]{first} \fillinrules[n=\determinednoflines{\getbuffer}, width=3cm,distance=.5em,separator=:]{first} \fillinrules[n=\determinednoflines{\getbuffer}]{first}{last} i'll make a better hider later ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Dear Hans, It is very interesting example. Thank you for a new method. Best regards, Dalyoung
\def\determinednoflines#1% {\localcontrolled{\determinenoflines{#1}}\noflines}
\startbuffer \input tufte \stopbuffer
\fillinrules[n=\determinednoflines{\getbuffer}, width=fit]{first} \fillinrules[n=\determinednoflines{\getbuffer}, width=broad]{first} \fillinrules[n=\determinednoflines{\getbuffer}, width=3cm]{first} \fillinrules[n=\determinednoflines{\getbuffer}, width=3cm,distance=.5em,separator=:]{first} \fillinrules[n=\determinednoflines{\getbuffer}]{first}{last}
i'll make a better hider later
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (2)
-
Hans Hagen
-
Jeong Dal