Re: [NTG-context] [doifinset] how it works ?

2014-08-21 Thread Otared Kavian
Hi,

Here are a few examples of how to use \doifinset and \doifinsetelse (they were 
given by Wolfgang S. a few years ago…):

\starttext
\type{\doifinset{A}{A,B,C}{should go}:} \doifinset{A}{A,B,C}{should go}

\type{\doifinset{D}{A,B,C}{should go}:}  \doifinset{D}{A,B,C}{should 
participate}


\type{\doifnotinset{}{A,B,C}{not in the set}:} \doifnotinset{}{A,B,C}{not in 
the set}

\type{\doifnotinset{D}{A,B,C}{not in the set}:} \doifnotinset{D}{A,B,C}{not in 
the set}

\doifinsetelse{D}{A,B,C}{it is in the set}{it is not in the set}

\define\test{B}

\type{\doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the 
set}}

\doifinsetelse{\test}{A,B,C}{\test\ is in the set}{\test\ is not in the set}
\stoptext


Best regards: OK

On 21 Aug 2014, at 21:58, Pierre-François Bonnefoi bonne...@unilim.fr wrote:

 Hello,
 
 I'm currently prepping my teaching material for my back-to-university.
 
 I want to design some conditional slides based presentation where I can 
 select the slides that I want to show in my final presentation.
 
 My current attempt is to use :
 1 - MKIV as I use currently only MKII;
 2 - a counter is defined, that it is incremented at each slide definition;
 3 - a commalist to indicate the slides that I want. The number affected to 
 each slide is made according to its definition in the file and not the slide 
 number displayed;
 4 - a block is added to enclosed each slide in order to allow or not it to be 
 shown in the final presentation.
 
 \definenumber[slide][way=bytext,prefix=no]
 % firstly I generate a full commalist 
 \def\slidelist{}
 \dorecurse{8}{
   \doglobal\appendtocommalist{#1}\slidelist
 }
 
 % then I define my slide where I increment the counter
 \def\startSlide{\setupbackgrounds[page][background={fond,Auteur,backgraphics,foreground,foregraphics}]
 \directsetup{slide:start}} 
 \def\stopSlide{\directsetup{slide:stop}} 
 \startsetups slide:start 
 \page
 \incrementnumber[slide]
 \switchtobodyfont[14pt] 
 \setupinteractionbar[state=start] 
 \startnarrower[left]
 \stopsetups 
 
 \startsetups slide:stop
 \stopnarrower 
 \page 
 \stopsetups
 
 \starttext
 
 \doifinset{\getnumber[slide]}{\slidelist}
 {
 \startSlide
 \SlideTitleSub{Hello there}
 
 What is my number ? \getnumber[slide] !
 
 \stopSlide
 }
 \stoptext
 
 
 This doesn't work. the doifinset doesn't work. I've tried to put some 
 \expanded in order to expand the arguments with no success.
 
 The only way is to use direct argument as :
 \doifinset{1}{1,2,3,4,5}
 
 Let me know it it is possible.
 
 best regards,
 Pierre-François Bonnefoi.
 -- 
 Bonnefoi Pierre-Francois|E-mail : bonne...@unilim.fr 
 http://libpfb.so/
 Universite de Limoges, Laboratoire XLIM |   Tel : 06 28 18 03 38
 123 av Albert Thomas|  Mrs. Peel, we're needed...
 87060 Limoges CEDEX - FRANCE| The Avengers.
 
 ___
 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://tex.aanhet.net
 archive  : http://foundry.supelec.fr/projects/contextrev/
 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] [doifinset] how it works ?

2014-08-21 Thread Otared Kavian
And here a few more examples…

\starttext

\doifinset {knuth} {knuth,ward} {\input knuth.tex \blank[2*big]} 

\doifnotinset {ward} {knuth,Hans} {\input ward.tex\blank[2*big]} 

\doifinsetelse {Hans} {Hans,knuth} {then Hans is a genious...\blank[2*big]} 
{else ...} 

\doifcommon {string,...} {string,...} {it is common...} 

\doifnotcommon {string} {String,...} {nothing is common...} 

\doifcommonelse {string,...} {string,...} {then ...} {else ...} 

\blank
%\def\substring{substring}

%\doifincsnameelse {substring} {\string} {then ...} {else ...} 
\blank

\doifinstringelse {substring} {substringSUB} {then ...} {else ...}

\blank

\doifnumberelse {string} {then ...} {else string is not a number...}

\doifnumberelse {123} {then string is a number...} {else ...}
\stoptext

Best regards: OK

On 21 Aug 2014, at 21:58, Pierre-François Bonnefoi bonne...@unilim.fr wrote:

 Hello,
 
 I'm currently prepping my teaching material for my back-to-university.
 
 I want to design some conditional slides based presentation where I can 
 select the slides that I want to show in my final presentation.
 
 My current attempt is to use :
 1 - MKIV as I use currently only MKII;
 2 - a counter is defined, that it is incremented at each slide definition;
 3 - a commalist to indicate the slides that I want. The number affected to 
 each slide is made according to its definition in the file and not the slide 
 number displayed;
 4 - a block is added to enclosed each slide in order to allow or not it to be 
 shown in the final presentation.
 
 \definenumber[slide][way=bytext,prefix=no]
 % firstly I generate a full commalist 
 \def\slidelist{}
 \dorecurse{8}{
   \doglobal\appendtocommalist{#1}\slidelist
 }
 
 % then I define my slide where I increment the counter
 \def\startSlide{\setupbackgrounds[page][background={fond,Auteur,backgraphics,foreground,foregraphics}]
 \directsetup{slide:start}} 
 \def\stopSlide{\directsetup{slide:stop}} 
 \startsetups slide:start 
 \page
 \incrementnumber[slide]
 \switchtobodyfont[14pt] 
 \setupinteractionbar[state=start] 
 \startnarrower[left]
 \stopsetups 
 
 \startsetups slide:stop
 \stopnarrower 
 \page 
 \stopsetups
 
 \starttext
 
 \doifinset{\getnumber[slide]}{\slidelist}
 {
 \startSlide
 \SlideTitleSub{Hello there}
 
 What is my number ? \getnumber[slide] !
 
 \stopSlide
 }
 \stoptext
 
 
 This doesn't work. the doifinset doesn't work. I've tried to put some 
 \expanded in order to expand the arguments with no success.
 
 The only way is to use direct argument as :
 \doifinset{1}{1,2,3,4,5}
 
 Let me know it it is possible.
 
 best regards,
 Pierre-François Bonnefoi.
 -- 
 Bonnefoi Pierre-Francois|E-mail : bonne...@unilim.fr 
 http://libpfb.so/
 Universite de Limoges, Laboratoire XLIM |   Tel : 06 28 18 03 38
 123 av Albert Thomas|  Mrs. Peel, we're needed...
 87060 Limoges CEDEX - FRANCE| The Avengers.
 
 ___
 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://tex.aanhet.net
 archive  : http://foundry.supelec.fr/projects/contextrev/
 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] [doifinset] how it works ?

2014-08-21 Thread Wolfgang Schuster

Am 21.08.2014 um 21:58 schrieb Pierre-François Bonnefoi bonne...@unilim.fr:

 Hello,
 
 I'm currently prepping my teaching material for my back-to-university.
 
 I want to design some conditional slides based presentation where I can 
 select the slides that I want to show in my final presentation.
 
 My current attempt is to use :
 1 - MKIV as I use currently only MKII;
 2 - a counter is defined, that it is incremented at each slide definition;
 3 - a commalist to indicate the slides that I want. The number affected to 
 each slide is made according to its definition in the file and not the slide 
 number displayed;
 4 - a block is added to enclosed each slide in order to allow or not it to be 
 shown in the final presentation.
 
 \definenumber[slide][way=bytext,prefix=no]
 % firstly I generate a full commalist 
 \def\slidelist{}
 \dorecurse{8}{
   \doglobal\appendtocommalist{#1}\slidelist
 }
 
 % then I define my slide where I increment the counter
 \def\startSlide{\setupbackgrounds[page][background={fond,Auteur,backgraphics,foreground,foregraphics}]
 \directsetup{slide:start}} 
 \def\stopSlide{\directsetup{slide:stop}} 
 \startsetups slide:start 
 \page
 \incrementnumber[slide]
 \switchtobodyfont[14pt] 
 \setupinteractionbar[state=start] 
 \startnarrower[left]
 \stopsetups 
 
 \startsetups slide:stop
 \stopnarrower 
 \page 
 \stopsetups
 
 \starttext
 
 \doifinset{\getnumber[slide]}{\slidelist}
 {
 \startSlide
 \SlideTitleSub{Hello there}
 
 What is my number ? \getnumber[slide] !
 
 \stopSlide
 }
 \stoptext
 
 
 This doesn't work. the doifinset doesn't work. I've tried to put some 
 \expanded in order to expand the arguments with no success.
 
 The only way is to use direct argument as :
 \doifinset{1}{1,2,3,4,5}
 
 Let me know it it is possible.

You have to access the counter with \rawcountervalue[countername] but in your 
case you can use a different counter mechanism.

\setvariables[slide][list={1,2,3,6,7,8}]

% 
\setupbackgrounds[page][background={fond,Auteur,backgraphics,foreground,foregraphics}]

\def\startSlide
  {\increment\SlideCounter
   \doifinsetelse\SlideCounter{\getvariable{slide}{list}}
 {\directsetup{slide:start}}
 {\gobbleuntil\stopSlide}}

\def\stopSlide
  {\directsetup{slide:stop}} 

\startsetups slide:start 
  \page
\stopsetups 

\startsetups slide:stop
  \page
\stopsetups

\starttext

\dorecurse{10}
  {\startSlide
{\tfd\recurselevel}
   \stopSlide}

\stoptext

Wolfgang

___
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


Re: [NTG-context] \doifinset

2010-04-23 Thread Wolfgang Schuster

Am 23.04.10 17:57, schrieb Wolfgang Werners-Lucchini:

Hallo,

on the garden at

http://wiki.contextgarden.net/System_Macros/Branches_and_Decisions

one can read to the command \doifinset

'If the first string expands 'empty', it is considered to be always
in the set.'

But

\starttext
\doifinset{}{A,B,C}{should go}
\stoptext

seams to show that this is wrong.

Is my example wrong or my understanding of the above sentence?
   

The sentence is wrong, if the first argument is empty ConTeXt considers
the argument to be *not* in the set (verified in the source).

Wolfgang

___
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___