From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/16962 Path: main.gmane.org!not-for-mail From: David Munger Newsgroups: gmane.comp.tex.context Subject: Re: \presentationstep Date: Sat, 06 Nov 2004 03:07:20 -0500 Message-ID: <1099728440.7428.19.camel@tempete.lac.qc.ca> References: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1099728421 26779 80.91.229.6 (6 Nov 2004 08:07:01 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 6 Nov 2004 08:07:01 +0000 (UTC) Original-X-From: ntg-context-bounces@ntg.nl Sat Nov 06 09:06:44 2004 Return-path: Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CQLau-0005An-00 for ; Sat, 06 Nov 2004 09:06:44 +0100 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 518D012780; Sat, 6 Nov 2004 09:06:43 +0100 (CET) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (ronja.vet.uu.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 20196-06; Sat, 6 Nov 2004 09:06:42 +0100 (CET) Original-Received: from ronja.vet.uu.nl (localhost.localdomain [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 330CA12777; Sat, 6 Nov 2004 09:06:42 +0100 (CET) Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id CA49B12777 for ; Sat, 6 Nov 2004 09:06:41 +0100 (CET) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (ronja.vet.uu.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 20213-07-3 for ; Sat, 6 Nov 2004 09:06:41 +0100 (CET) Original-Received: from tomts36-srv.bellnexxia.net (unknown [209.226.175.93]) by ronja.ntg.nl (Postfix) with ESMTP id A81101276C for ; Sat, 6 Nov 2004 09:06:40 +0100 (CET) Original-Received: from tempete.lac.qc.ca ([69.156.167.116]) by tomts36-srv.bellnexxia.net (InterMail vM.5.01.06.10 201-253-122-130-110-20040306) with ESMTP id <20041106080639.GJEK7954.tomts36-srv.bellnexxia.net@tempete.lac.qc.ca> for ; Sat, 6 Nov 2004 03:06:39 -0500 Original-Received: from tempete.lac.qc.ca ([192.168.1.1] ident=david) by tempete.lac.qc.ca with esmtp (Exim 4.34) id 1CQLbU-0003p6-Fu for ntg-context@ntg.nl; Sat, 06 Nov 2004 03:07:20 -0500 Original-To: mailing list for ConTeXt users In-Reply-To: X-Mailer: Evolution 2.0.2 X-Virus-Scanned: by amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.5 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl X-Virus-Scanned: by amavisd-new at ntg.nl Xref: main.gmane.org gmane.comp.tex.context:16962 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:16962 Hi all, Inspiring from Otared Kavian's code and Han's presentation styles with support for steps, I cooked the following in order to solve the non JavaScript version issue. I post it in case it could be useful to other people. This implementation supports an \{Only|From|Until}Step[n] syntax as well as the simple \NextStep-style one. Otared: Any comments or suggestions? And here is an example of usage: ------------------------------------------- \StartSteps[Slide Title] % the title is passed to % the \Subject macro \startitemize \item Item 1 \OnlyStep[2] {\item (oops!)} \UntilStep[4] {\item Item 2*} \FromStep[4] {\item Item 2} \stopitemize \StopSteps ------------------------------------------- And here is a mixed example: ------------------------------------------- \StartSteps[Navier||Stokes equation] \[ \frac{D\vec u}{Dt} = \FromStep[2][reserve]{-{\red \frac1\rho \vec\nabla p}} \FromStep[3][reserve]{+\;{\green \vec g}} \FromStep[4][reserve]{+\;{\blue \frac1\rho \div S}} \] Momentum transport: \NextStep \item {\red Pressure gradient} \par\NextStep \item {\green Gravity} \par\NextStep \item {\blue Stress (viscous, turbulent, Maxwell)} \StopSteps ------------------------------------------- And here's the code: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % steps for slides %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \unprotect \newif\ifUseSteps \UseStepstrue % \UseStepsfalse \long\def\StartSteps[#1]#2\StopSteps{% \let\steps@number\plusone% \let\steps@counter\plusone% \ifUseSteps% \loop% \let\steps@autocounter\zerocount% \Subject{#1}\par\steps@startstep#2\steps@stopstep% \steps@updatenumber\steps@autocounter% \ifnum\steps@counter<\steps@number% \increment\steps@counter% \repeat% \else% \Subject{#1}\par\steps@startstep#2\steps@stopstep% \fi} \def\NextStep{\steps@stopstep\steps@startstep} \def\OnlyStep[#1]{% \steps@updatenumber#1% \def\steps@cond{\steps@counter=#1}% \dosingleempty\steps@dostep} \def\FromStep[#1]{% \steps@updatenumber#1% \let\steps@tmpcounter\zerocount% \increment(\steps@tmpcounter,#1-1)% \def\steps@cond{\steps@counter>\steps@tmpcounter}% \dosingleempty\steps@dostep} \def\UntilStep[#1]{% \steps@updatenumber#1% \def\steps@cond{\steps@counter<#1}% \dosingleempty\steps@dostep} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % internal macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcounter\steps@counter \newcounter\steps@autocounter \newcounter\steps@number \newcounter\steps@tmpcounter \def\steps@startstep{% \increment\steps@autocounter% \def\steps@hide{no}% \ifUseSteps% \ifnum\steps@autocounter>\steps@counter% \def\steps@hide{yes}% \fi% \fi% \starthidden} \def\steps@stopstep{\stophidden} \def\steps@updatenumber#1{\ifnum\steps@number<#1% \doglobal\let\steps@number\zerocount% \doglobal\increment(\steps@number,#1)\fi} \defineframedtext [step@frame] [offset=overlay,width=broad,height=fit,frame=off] \def\starthidden{\startstep@frame[empty=\steps@hide]} \def\stophidden{\stopstep@frame} \long\def\steps@dostep[#1]#2{% \processallactionsinset [#1] [ reserve=>\let\steps@next=\steps@dostepreserve, \s!default=>\let\steps@next=\steps@dostepnoreserve] \steps@next{#2}} \long\def\steps@dostepreserve#1{% \def\steps@hide{no}% \ifUseSteps% \ifnum\steps@cond\else% \def\steps@hide{yes}% \fi% \fi% \ifmmode\expandafter\mframed\else\expandafter\framed\fi% [empty=\steps@hide,frame=off,offset=overlay]{#1}% \ifmmode\;\fi} \long\def\steps@dostepnoreserve#1{% \def\steps@next{#1\ifmmode\;\fi}% \ifUseSteps% \ifnum\steps@cond\else\def\steps@next{\relax}\fi% \fi\steps@next} \protect