ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* [doifinset] how it works ?
@ 2014-08-21 19:58 Pierre-François Bonnefoi
  2014-08-21 20:28 ` Otared Kavian
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Pierre-François Bonnefoi @ 2014-08-21 19:58 UTC (permalink / raw)
  To: ntg-context


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

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 : bonnefoi@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.


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

[-- Attachment #2: Type: text/plain, Size: 485 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: [doifinset] how it works ?
  2014-08-21 19:58 [doifinset] how it works ? Pierre-François Bonnefoi
@ 2014-08-21 20:28 ` Otared Kavian
  2014-08-21 20:30 ` Otared Kavian
  2014-08-22  4:47 ` Wolfgang Schuster
  2 siblings, 0 replies; 4+ messages in thread
From: Otared Kavian @ 2014-08-21 20:28 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

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 <bonnefoi@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 : bonnefoi@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
> ___________________________________________________________________________________


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

[-- Attachment #2: Type: text/plain, Size: 485 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: [doifinset] how it works ?
  2014-08-21 19:58 [doifinset] how it works ? Pierre-François Bonnefoi
  2014-08-21 20:28 ` Otared Kavian
@ 2014-08-21 20:30 ` Otared Kavian
  2014-08-22  4:47 ` Wolfgang Schuster
  2 siblings, 0 replies; 4+ messages in thread
From: Otared Kavian @ 2014-08-21 20:30 UTC (permalink / raw)
  To: mailing list for ConTeXt users


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

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 <bonnefoi@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 : bonnefoi@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
> ___________________________________________________________________________________


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

[-- Attachment #2: Type: text/plain, Size: 485 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: [doifinset] how it works ?
  2014-08-21 19:58 [doifinset] how it works ? Pierre-François Bonnefoi
  2014-08-21 20:28 ` Otared Kavian
  2014-08-21 20:30 ` Otared Kavian
@ 2014-08-22  4:47 ` Wolfgang Schuster
  2 siblings, 0 replies; 4+ messages in thread
From: Wolfgang Schuster @ 2014-08-22  4:47 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 21.08.2014 um 21:58 schrieb Pierre-François Bonnefoi <bonnefoi@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
___________________________________________________________________________________


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

end of thread, other threads:[~2014-08-22  4:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-21 19:58 [doifinset] how it works ? Pierre-François Bonnefoi
2014-08-21 20:28 ` Otared Kavian
2014-08-21 20:30 ` Otared Kavian
2014-08-22  4:47 ` Wolfgang Schuster

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).