ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Filling a page with \thinrules
@ 2019-12-06 22:50 Otared Kavian
  2019-12-07  2:49 ` Rik Kabel
  0 siblings, 1 reply; 6+ messages in thread
From: Otared Kavian @ 2019-12-06 22:50 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Hi all,

I am preparing a test for my students where I would like to have the statement of the problem on the top of a page and the remainder to the bottom of that page filled with \thinrules, for them to write the solution. And sometimes there might be an empty page filled with thinrules when the solution to the exercise is longer.

The following minimal example gives the idea of what I want to achieve, but since the statement of each exercise may be longer or shorter, I would like ConTeXt to compute how many \thinrules can be put in the remainder of the page.
That is, can one imagine a macro named (say) \fillpagewiththinrules which puts the exact number of thinrules before ejecting the page?
Is this possible or have I to do it by hand for each page?

\showframe
\starttext
\dorecurse{2}{\input knuth.tex\par}

\thinrules[n=20] % On the first page I can put 20 thinrules

\page

\thinrules[n=40] % On an empty page I can put 40 thinrules
\page

\input ward.tex

\thinrules[n=37] % On the third page there can be 37 thinrules

\stoptext

Thanks for any hint and help,
Best regards: Otared K.
___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Filling a page with \thinrules
  2019-12-06 22:50 Filling a page with \thinrules Otared Kavian
@ 2019-12-07  2:49 ` Rik Kabel
  2019-12-07  9:10   ` Otared Kavian
  0 siblings, 1 reply; 6+ messages in thread
From: Rik Kabel @ 2019-12-07  2:49 UTC (permalink / raw)
  To: ntg-context


[-- Attachment #1.1: Type: text/plain, Size: 1987 bytes --]

On 12/6/2019 17:50, Otared Kavian wrote:
> Hi all,
>
> I am preparing a test for my students where I would like to have the statement of the problem on the top of a page and the remainder to the bottom of that page filled with \thinrules, for them to write the solution. And sometimes there might be an empty page filled with thinrules when the solution to the exercise is longer.
>
> The following minimal example gives the idea of what I want to achieve, but since the statement of each exercise may be longer or shorter, I would like ConTeXt to compute how many \thinrules can be put in the remainder of the page.
> That is, can one imagine a macro named (say) \fillpagewiththinrules which puts the exact number of thinrules before ejecting the page?
> Is this possible or have I to do it by hand for each page?
>
> \showframe
> \starttext
> \dorecurse{2}{\input knuth.tex\par}
>
> \thinrules[n=20] % On the first page I can put 20 thinrules
>
> \page
>
> \thinrules[n=40] % On an empty page I can put 40 thinrules
> \page
>
> \input ward.tex
>
> \thinrules[n=37] % On the third page there can be 37 thinrules
>
> \stoptext
>
> Thanks for any hint and help,
> Best regards: Otared K.
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________

It looks like Wolfgang answered this a while back. See Re: [NTG-context] 
Room for comment on the backside of form 
<https://www.mail-archive.com/search?l=ntg-context@ntg.nl&q=subject:%22Re%5C%3A+%5C%5BNTG%5C-context%5C%5D+Room+for+comment+on+the+backside+of+form%22&o=newest>. 
.

-- 
Rik


[-- Attachment #1.2: Type: text/html, Size: 2868 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Filling a page with \thinrules
  2019-12-07  2:49 ` Rik Kabel
@ 2019-12-07  9:10   ` Otared Kavian
  2019-12-07 10:41     ` Hans Hagen
  2019-12-07 15:33     ` Rik Kabel
  0 siblings, 2 replies; 6+ messages in thread
From: Otared Kavian @ 2019-12-07  9:10 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Hi Rik,

Thanks a lot for the link to that message dating back to 2010…

I tried to put that solution on the wiki but I could not create a new page. I'll try later.

For the record, below is a transcript of what I adapted from Wolfgang's solution, but maybe nowadays one could also right a more readable lua code to achieve the same.

Best regards: Otared K.

\define\thinrulesfillpage%
	{
	\hphantom{Answer} % this is necessary, I don't know why...
	\blank	
	\scratchcounter\dimexpr(\pagegoal-\pagetotal-2\lineheight)/(\dimexpr\lineheight+2.2ex\relax)\relax
	\thinrules[n=\number\scratchcounter,inbetween={\blank[2.2ex]}]
	\page
	}
	
\showframe
\starttext
\dorecurse{2}{\input knuth.tex\par}

\thinrulesfillpage 

\thinrulesfillpage 

\input ward.tex
\thinrulesfillpage 

\stoptext

> On 7 Dec 2019, at 03:49, Rik Kabel <context@rik.users.panix.com> wrote:
> 
> On 12/6/2019 17:50, Otared Kavian wrote:
>> Hi all,
>> 
>> I am preparing a test for my students where I would like to have the statement of the problem on the top of a page and the remainder to the bottom of that page filled with \thinrules, for them to write the solution. And sometimes there might be an empty page filled with thinrules when the solution to the exercise is longer.
>> 
>> The following minimal example gives the idea of what I want to achieve, but since the statement of each exercise may be longer or shorter, I would like ConTeXt to compute how many \thinrules can be put in the remainder of the page.
>> That is, can one imagine a macro named (say) \fillpagewiththinrules which puts the exact number of thinrules before ejecting the page?
>> Is this possible or have I to do it by hand for each page?
>> 
>> \showframe
>> \starttext
>> \dorecurse{2}{\input knuth.tex\par}
>> 
>> \thinrules[n=20] % On the first page I can put 20 thinrules
>> 
>> \page
>> 
>> \thinrules[n=40] % On an empty page I can put 40 thinrules
>> \page
>> 
>> \input ward.tex
>> 
>> \thinrules[n=37] % On the third page there can be 37 thinrules
>> 
>> \stoptext
>> 
>> Thanks for any hint and help,
>> Best regards: Otared K.
>> ___________________________________________________________________________________
>> 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
>> 
>> ___________________________________________________________________________________
>> 
> It looks like Wolfgang answered this a while back. See Re: [NTG-context] Room for comment on the backside of form. .
> 
> -- 
> Rik
> 
> ___________________________________________________________________________________
> 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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Filling a page with \thinrules
  2019-12-07  9:10   ` Otared Kavian
@ 2019-12-07 10:41     ` Hans Hagen
  2019-12-07 15:33     ` Rik Kabel
  1 sibling, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2019-12-07 10:41 UTC (permalink / raw)
  To: mailing list for ConTeXt users, Otared Kavian

On 12/7/2019 10:10 AM, Otared Kavian wrote:
> Hi Rik,
> 
> Thanks a lot for the link to that message dating back to 2010…
> 
> I tried to put that solution on the wiki but I could not create a new page. I'll try later.

Think TeX (and a little ConTeXt):

\starttexdefinition thinrulesfillpage
     \par
     \verticalstrut
     \vskip-.5\lineheight
     \leaders
         \hbox to 
\hsize{\blackrule[width=\hsize,height=1pt,depth=1pt,color=red]\strut}
         \vfilll
     \verticalstrut
     \vskip-1.5\lineheight
     \page
\stoptexdefinition

\showframe

\starttext

     \dorecurse{2}{\input knuth.tex\par} \thinrulesfillpage

     \thinrulesfillpage

     \input ward.tex \thinrulesfillpage

\stoptext

Now Wolfgang can change the \leaders in the proper ConTeXt interface 
calls. Okay, we could as well make it into some feature or course, as 
occasionally we need to add something new anyway, just to show progress.


> For the record, below is a transcript of what I adapted from Wolfgang's solution, but maybe nowadays one could also right a more readable lua code to achieve the same.
> 
> Best regards: Otared K.
> 
> \define\thinrulesfillpage%
> 	{
> 	\hphantom{Answer} % this is necessary, I don't know why...
> 	\blank	
> 	\scratchcounter\dimexpr(\pagegoal-\pagetotal-2\lineheight)/(\dimexpr\lineheight+2.2ex\relax)\relax
> 	\thinrules[n=\number\scratchcounter,inbetween={\blank[2.2ex]}]
> 	\page
> 	}
> 	
> \showframe
> \starttext
> \dorecurse{2}{\input knuth.tex\par}
> 
> \thinrulesfillpage
> 
> \thinrulesfillpage
> 
> \input ward.tex
> \thinrulesfillpage
> 
> \stoptext
> 
>> On 7 Dec 2019, at 03:49, Rik Kabel <context@rik.users.panix.com> wrote:
>>
>> On 12/6/2019 17:50, Otared Kavian wrote:
>>> Hi all,
>>>
>>> I am preparing a test for my students where I would like to have the statement of the problem on the top of a page and the remainder to the bottom of that page filled with \thinrules, for them to write the solution. And sometimes there might be an empty page filled with thinrules when the solution to the exercise is longer.
>>>
>>> The following minimal example gives the idea of what I want to achieve, but since the statement of each exercise may be longer or shorter, I would like ConTeXt to compute how many \thinrules can be put in the remainder of the page.
>>> That is, can one imagine a macro named (say) \fillpagewiththinrules which puts the exact number of thinrules before ejecting the page?
>>> Is this possible or have I to do it by hand for each page?
>>>
>>> \showframe
>>> \starttext
>>> \dorecurse{2}{\input knuth.tex\par}
>>>
>>> \thinrules[n=20] % On the first page I can put 20 thinrules
>>>
>>> \page
>>>
>>> \thinrules[n=40] % On an empty page I can put 40 thinrules
>>> \page
>>>
>>> \input ward.tex
>>>
>>> \thinrules[n=37] % On the third page there can be 37 thinrules
>>>
>>> \stoptext
>>>
>>> Thanks for any hint and help,
>>> Best regards: Otared K.
>>> ___________________________________________________________________________________
>>> 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
>>>
>>> ___________________________________________________________________________________
>>>
>> It looks like Wolfgang answered this a while back. See Re: [NTG-context] Room for comment on the backside of form. .
>>
>> -- 
>> Rik
>>
>> ___________________________________________________________________________________
>> 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
> ___________________________________________________________________________________
> 


-- 

-----------------------------------------------------------------
                                           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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Filling a page with \thinrules
  2019-12-07  9:10   ` Otared Kavian
  2019-12-07 10:41     ` Hans Hagen
@ 2019-12-07 15:33     ` Rik Kabel
  2019-12-07 15:50       ` Otared Kavian
  1 sibling, 1 reply; 6+ messages in thread
From: Rik Kabel @ 2019-12-07 15:33 UTC (permalink / raw)
  To: ntg-context

On 12/7/2019 04:10, Otared Kavian wrote:
> Hi Rik,
>
> Thanks a lot for the link to that message dating back to 2010…
>
> I tried to put that solution on the wiki but I could not create a new page. I'll try later.
>
> For the record, below is a transcript of what I adapted from Wolfgang's solution, but maybe nowadays one could also right a more readable lua code to achieve the same.
>
> Best regards: Otared K.
>
> \define\thinrulesfillpage%
> 	{
> 	\hphantom{Answer} % this is necessary, I don't know why...
> 	\blank	
> 	\scratchcounter\dimexpr(\pagegoal-\pagetotal-2\lineheight)/(\dimexpr\lineheight+2.2ex\relax)\relax
> 	\thinrules[n=\number\scratchcounter,inbetween={\blank[2.2ex]}]
> 	\page
> 	}
> 	
> \showframe
> \starttext
> \dorecurse{2}{\input knuth.tex\par}
>
> \thinrulesfillpage
>
> \thinrulesfillpage
>
> \input ward.tex
> \thinrulesfillpage
>
> \stoptext
>
>> On 7 Dec 2019, at 03:49, Rik Kabel <context@rik.users.panix.com> wrote:
>>
>> On 12/6/2019 17:50, Otared Kavian wrote:
>>> Hi all,
>>>
>>> I am preparing a test for my students where I would like to have the statement of the problem on the top of a page and the remainder to the bottom of that page filled with \thinrules, for them to write the solution. And sometimes there might be an empty page filled with thinrules when the solution to the exercise is longer.
>>>
>>> The following minimal example gives the idea of what I want to achieve, but since the statement of each exercise may be longer or shorter, I would like ConTeXt to compute how many \thinrules can be put in the remainder of the page.
>>> That is, can one imagine a macro named (say) \fillpagewiththinrules which puts the exact number of thinrules before ejecting the page?
>>> Is this possible or have I to do it by hand for each page?
>>>
>>> \showframe
>>> \starttext
>>> \dorecurse{2}{\input knuth.tex\par}
>>>
>>> \thinrules[n=20] % On the first page I can put 20 thinrules
>>>
>>> \page
>>>
>>> \thinrules[n=40] % On an empty page I can put 40 thinrules
>>> \page
>>>
>>> \input ward.tex
>>>
>>> \thinrules[n=37] % On the third page there can be 37 thinrules
>>>
>>> \stoptext
>>>
>>> Thanks for any hint and help,
>>> Best regards: Otared K.
>>>
>> It looks like Wolfgang answered this a while back. See Re: [NTG-context] Room for comment on the backside of form. .
>>
>> -- 
>> Rik
>>
>>
Replace the \hphantom{...} with \dontleavehmode.

-- 
Rik

___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Filling a page with \thinrules
  2019-12-07 15:33     ` Rik Kabel
@ 2019-12-07 15:50       ` Otared Kavian
  0 siblings, 0 replies; 6+ messages in thread
From: Otared Kavian @ 2019-12-07 15:50 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 291 bytes --]

Thanks Rik! The \phantom stuff is following me since the good old Plain TeX days… :-)
Now I know how to get rid of it.

Best regards: OK

> On 7 Dec 2019, at 16:33, Rik Kabel <rik@panix.com> wrote:
> […]
> 
> Replace the \hphantom{...} with \dontleavehmode.
> 
> -- 
> Rik


[-- Attachment #1.2: Type: text/html, Size: 3357 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-12-07 15:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-06 22:50 Filling a page with \thinrules Otared Kavian
2019-12-07  2:49 ` Rik Kabel
2019-12-07  9:10   ` Otared Kavian
2019-12-07 10:41     ` Hans Hagen
2019-12-07 15:33     ` Rik Kabel
2019-12-07 15:50       ` Otared Kavian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).