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.
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
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 ___________________________________________________________________________________
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
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 ___________________________________________________________________________________
Am 21.08.2014 um 21:58 schrieb Pierre-François Bonnefoi
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
participants (3)
-
Otared Kavian
-
Pierre-François Bonnefoi
-
Wolfgang Schuster