[NTG-context] MetaFun: how to check the number of arguments

Hans Hagen j.hagen at xs4all.nl
Tue Jan 15 18:04:19 CET 2019


On 1/14/2019 10:44 PM, Jeong Dal wrote:
> Dear all,
> 
> In the following sample, it draws squares with label which is given.
> 
> I’d like to know how to check the number of elements in the second argument?
> If it is 0, then I just draw grids only.
> 
> Thank you for reading.
> Best regards,
> 
> Dalyoung
> 
> ********
> \startbuffer[defs]
> def drawGridF (expr nb) (text s) =
> 	p := unitsquare scaled wu;
> 	n:= 0;
> 	for m = s:
> 		i:= n mod nb;
> 		j:= n div nb;
> 		pic := image (draw p; label(textext(m), center p); );
> 		draw pic shifted (i*wu, j*wu);
> 		n:= n+ 1;
> 	endfor;
> enddef;
> \stopbuffer
> 
> \startbuffer[3x3b]
> wu := \MPvar{width};
> drawGridF (3)  (1,2,3,0,1, 1,4,5,8);
> \stopbuffer
> 
> \starttext
> \setupMPvariables[width=30pt]
> \processMPbuffer[defs,3x3b]
> \stoptext


\startbuffer[defs]
def drawGridF (expr nb) (text s) =
     path p ;
     picture pic ;
     numeric n;
	p := unitsquare scaled wu;
	n:= 0;
	for m = s:
		i:= n mod nb;
		j:= n div nb;
		pic := image (draw p; label(textext(m), center p); );
		draw pic shifted (i*wu, j*wu);
		n:= n+ 1;
	endfor;
     if n == 0 :
         draw textext("A grid!");
     fi ;
enddef;
\stopbuffer

\startbuffer[3x3b]
wu := \MPvar{width};
drawGridF (3)  (1,2,3,0,1, 1,4,5,8);
currentpicture := currentpicture shifted (bbwidth(currentpicture),0);
drawGridF (3)  ();
\stopbuffer

\setupMPvariables[width=30pt]
\processMPbuffer[defs,3x3b]




>> 2019. 1. 14. 오후 8:00, ntg-context-request at ntg.nl 작성:
>>
>> Send ntg-context mailing list submissions to
>> 	ntg-context at ntg.nl
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> 	https://mailman.ntg.nl/mailman/listinfo/ntg-context
>> or, via email, send a message with subject or body 'help' to
>> 	ntg-context-request at ntg.nl
>>
>> You can reach the person managing the list at
>> 	ntg-context-owner at ntg.nl
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of ntg-context digest..."
>>
>>
>> Today's Topics:
>>
>>    1. Re: Manipulating the left blank page when chapter starts on
>>       the right page (Wolfgang Schuster)
>>    2. Re: Footnotes in float combinations missing in output
>>       (Wolfgang Schuster)
>>    3. Re: Manipulating the left blank page when chapter starts on
>>       the right page (Jan U. Hasecke)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Sun, 13 Jan 2019 16:56:40 +0100
>> From: Wolfgang Schuster <wolfgang.schuster.lists at gmail.com>
>> To: mailing list for ConTeXt users <ntg-context at ntg.nl>, "Jan U.
>> 	Hasecke" <juh+ntg-context at mailbox.org>
>> Subject: Re: [NTG-context] Manipulating the left blank page when
>> 	chapter starts on the right page
>> Message-ID: <cad2dcf9-ce2c-203a-88c2-41315bd5f825 at gmail.com>
>> Content-Type: text/plain; charset=utf-8; format=flowed
>>
>> Jan U. Hasecke schrieb am 12.01.19 um 22:08:
>>> Hi Aditya,
>>>
>>> Am 12.01.19 um 20:11 schrieb Aditya Mahajan:
>>>> On Sat, 12 Jan 2019, Jan U. Hasecke wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> in my document \startchapter and \starttitle starts a new chapter on the
>>>>> right (odd) page. So sometimes, there is a blank even page just before a
>>>>> new chapter.
>>>>>
>>>>> I would like to manipulate this blank even page.
>>>>>
>>>>> There are several things I would like to do, eg. having no headers and
>>>>> footers, setting the background color to a named color, placing an image
>>>>> or some graphics on the page.
>>>>>
>>>>> Is there a way to define such a page, name it and call it in
>>>>> \startchapter so that it is placed on the left side.
>>>> See https://tex.stackexchange.com/q/457428/323
>>> Thanks a lot, but I wasn't looking for a way to just delete page numbers
>>> but to style the empty page in arbitrary ways.
>>>
>>> Maybe it is better to do this manually.
>>>
>>> I would let chapter open on even pages too and just insert a styled page
>>> by hand.
>>
>> Here is a example which shows how you can change the background color
>> of a empty page before the chapter title.
>>
>> \setuppagenumbering
>>    [alternative=doublesided]
>>
>> \startsetups [chapter:before]
>>    \doifoddpageelse
>>      {}
>>      {\pushbackground[page]
>>       \setupbackgrounds[page][background=color,backgroundcolor=black]
>>       \page[empty,right]
>>       \popbackground}
>> \stopsetups
>>
>> \setuphead
>>    [chapter]
>>    [page=yes,
>>     before=\directsetup{chapter:before}]
>>
>> \starttext
>>
>> \startchapter[title={Knuth}]
>> \dorecurse{10}{\samplefile{knuth}}
>> \stopchapter
>>
>> \startchapter[title={Zapf}]
>> \dorecurse{10}{\samplefile{zapf}}
>> \stopchapter
>>
>> \startchapter[title={Ward}]
>> \dorecurse{10}{\samplefile{ward}}
>> \stopchapter
>>
>> \stoptext
>>
>> Wolfgang
>>
>>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Sun, 13 Jan 2019 21:06:42 +0100
>> From: Wolfgang Schuster <wolfgang.schuster.lists at gmail.com>
>> To: mailing list for ConTeXt users <ntg-context at ntg.nl>, Lars
>> 	<axteffekt at gmail.com>
>> Subject: Re: [NTG-context] Footnotes in float combinations missing in
>> 	output
>> Message-ID: <e14cd1c5-400e-14bf-d8bf-a47ef28b6550 at gmail.com>
>> Content-Type: text/plain; charset=utf-8; format=flowed
>>
>> Lars schrieb am 09.01.19 um 23:01:
>>> Hi there, hi Hans,
>>>
>>> I just want to let you know that footnotes insterted in
>>> float-combinations don't get rendered properly, i. e. only the last
>>> footnote is placed in the output. MWE:
>>>
>>> \starttext
>>>    \startplacefigure[title={OuterCap\footnote{Outer footnote}}]
>>>
>>>      \startfloatcombination[nx=3]
>>> \placefigure{Fnote1\footnote{Hello}}{\externalfigure[cow][width={.2\textwidth}]}
>>> \placefigure{Fnote2\footnote{small}}{\externalfigure[cow][width={.2\textwidth}]}
>>> \placefigure{Fnote3\footnote{world}}{\externalfigure[cow][width={.2\textwidth}]}
>>>      \stopfloatcombination
>>>
>>>    \stopplacefigure
>>> \stoptext
>>
>> Not very nice but the following works. You would have less problems with
>> local footnotes which are placed in the float block.
>>
>> \starttext
>>
>> \startpostponingnotes
>>    \startplacefigure[title={...}]
>>      ...
>>    \stopplacefigure
>> \stoppostponingnotes
>>
>> \stoptext
>>
>> Wolfgang
>>
>>
>> ------------------------------
>>
>> Message: 3
>> Date: Mon, 14 Jan 2019 08:39:45 +0100
>> From: "Jan U. Hasecke" <juh+ntg-context at mailbox.org>
>> To: Wolfgang Schuster <wolfgang.schuster.lists at gmail.com>, mailing
>> 	list for ConTeXt users <ntg-context at ntg.nl>
>> Subject: Re: [NTG-context] Manipulating the left blank page when
>> 	chapter starts on the right page
>> Message-ID: <d88401b5-1ada-6f97-ee9b-f0e8fe83cb45 at mailbox.org>
>> Content-Type: text/plain; charset=utf-8
>>
>>
>> Am 13.01.19 um 16:56 schrieb Wolfgang Schuster:
>>
>>> Here is a example which shows how you can change the background color
>>> of a empty page before the chapter title.
>>>
>>> \setuppagenumbering
>>>    [alternative=doublesided]
>>>
>>> \startsetups [chapter:before]
>>>    \doifoddpageelse
>>>      {}
>>>      {\pushbackground[page]
>>>       \setupbackgrounds[page][background=color,backgroundcolor=black]
>>>       \page[empty,right]
>>>       \popbackground}
>>> \stopsetups
>>>
>>> \setuphead
>>>    [chapter]
>>>    [page=yes,
>>>     before=\directsetup{chapter:before}]
>>>
>>> \starttext
>>>
>>> \startchapter[title={Knuth}]
>>> \dorecurse{10}{\samplefile{knuth}}
>>> \stopchapter
>>>
>>> \startchapter[title={Zapf}]
>>> \dorecurse{10}{\samplefile{zapf}}
>>> \stopchapter
>>>
>>> \startchapter[title={Ward}]
>>> \dorecurse{10}{\samplefile{ward}}
>>> \stopchapter
>>>
>>> \stoptext
>>
>> Thanks a lot Wolfgang!
>>
>> This was just the thing I was looking for. These setups seems to be the
>> golden bullet in ConTeXt but I often have difficulties to understand the
>> mechanism.
>>
>> I'll try to wikify this later this week.
>>
>> The push-pop-background pair is mentionend in x-setups-overview together
>> with some other push-pop-pairs or push single commands. Are they
>> documented somewhere?
>>
>> juh
>>
>>
>>
>> ------------------------------
>>
>> Subject: Digest Footer
>>
>> ___________________________________________________________________________________
>> If your question is of interest to others as well, please add an entry to the Wiki!
>>
>> maillist : ntg-context at ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
>> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
>> archive  : https://foundry.supelec.fr/projects/contextrev/
>> wiki     : http://contextgarden.net
>> ___________________________________________________________________________________
>>
>> ------------------------------
>>
>> End of ntg-context Digest, Vol 175, Issue 27
>> ********************************************
> 
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
> 
> maillist : ntg-context at 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
-----------------------------------------------------------------


More information about the ntg-context mailing list