From: Hans Hagen <pragma@wxs.nl>
Subject: Re: store counter or variable and reread again
Date: Mon, 01 Jan 2007 23:28:47 +0100 [thread overview]
Message-ID: <45998B1F.8060000@wxs.nl> (raw)
In-Reply-To: <alpine.WNT.0.81.0612301825330.3880@nqvgln>
Aditya Mahajan wrote:
>
> Ahh, \lastpage uses \savecurrentvalue. I was pretty sure that I copied
> the twopass some time back from \lastpage. Maybe I was dreaming, maybe
> you are changing the internals too fast for me to keep up. Anyways, to
> make ammends, here is the solution using \savecurrentvalue
>
you probably have subpage numbers in the back of your mind since they
use two pass lists
> % It may be better to use \setcounter series of macros.
> % First let us define a general macro for adding arbitrary number to a counter
>
> \unprotect
> \def\addtocounter#1#2% #1 name #2 value
> {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname+#2\relax}}
> \protect
>
> % To Hans and Taco: Should the above macro be added to syst-ext?
>
i've added:
\def\incrementcounter#1#2% #1 name #2 value
{\setxvalue{#1}{\the\numexpr\csname#1\endcsname+#2\relax}}
\def\decrementcounter#1#2% #1 name #2 value
{\setxvalue{#1}{\the\numexpr\csname#1\endcsname-#2\relax}}
(increment is used elsewere too)
> % Now lets define everything in terms of ConTeXt's counter macros
>
> \makecounter{Points}
>
> % % show the points on the right side
> \def\showP[#1]{\inright{\hskip 10mm \framed{#1} }}
>
> \def\pkt[#1]%
> {\showP[#1]%
> \addtocounter{Points}{#1}}
> %
>
> \def\nofPoints{0} % Number of points from previous run
>
> \def\savenofPoints
> {\savecurrentvalue\nofPoints{\countervalue{Points}}}
>
> % It is a bit boring to type \savenofPoints everytime
>
> \appendtoks \savenofPoints \to \everystoptext
>
> % An example usage
>
> \starttext
>
> \title{This exam is of \nofPoints\ Points}
>
> % Lets set 10 problems with different points
> \dorecurse{10}
> {\pkt[\recurselevel] \input tufte \endgraf}
>
> \stoptext
>
> The whole things is much shorter :)
>
> Hans, I just noticed that \everystarttext is executed at the start of
> components and products, while \everystoptext is not. Does it make
> sense to define \stopcomponet and \stopproduct so that \everystoptext
> is executed?
>
everystoptext is more tricky and cannot be handled in the nested case; starttext is less tricky ; both are only expanded once
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
next prev parent reply other threads:[~2007-01-01 22:28 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <45941026$0$4168$ba624c82@nntp02.dk.telia.net>
2006-12-30 14:00 ` Week number Taco Hoekwater
2006-12-30 15:51 ` store counter or variable and reread again Thomas Engel
2006-12-30 16:56 ` Aditya Mahajan
2006-12-30 19:19 ` Peter Münster
2006-12-30 21:30 ` Aditya Mahajan
2006-12-30 22:35 ` Hans Hagen
2006-12-30 23:19 ` Aditya Mahajan
2006-12-30 23:51 ` Aditya Mahajan
2006-12-31 8:21 ` Thomas Engel
2006-12-31 17:52 ` Aditya Mahajan
2007-01-01 22:28 ` Hans Hagen [this message]
2007-01-01 8:11 ` Peter Münster
2007-01-01 11:17 ` Aditya Mahajan
2007-01-01 15:35 ` Peter Münster
2007-01-01 22:14 ` Hans Hagen
2007-01-02 18:38 ` Peter Münster
2007-01-04 16:43 ` Hans Hagen
2006-12-30 21:34 ` Week number Aditya Mahajan
2006-12-30 22:28 ` Hans Hagen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45998B1F.8060000@wxs.nl \
--to=pragma@wxs.nl \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).