Hi Carsten, On Fri, 11 Jan 2008, Carsten Fechtmann wrote: > first off: I am new to ConTeXt (even if not so new to LaTeX) > and would like to transfer some of my old macros to ConTeXt... > > I am well aware, that this means re-programming (most) of them. > So be it. Have you looked at enumerations? They provide a way to something very similar to what you want. > If one places \NewIssue[Some Time] somewhere in the text, it should > result in a new (issue / timestamp) to be generated, which can then > placed in a list of issues / changes. \defineenuemration[Issue][title=yes] \Issue[one]{January 9, 2008} blah blah blah \Issue[two]{January 10, 2008} more blah blah blah In issue \in[one] we wrote what we did on \about[one] > I also want to be able to make use of the last value Issue to be > placed in the header, same goes for the last timestamp Another option may to think of issue as a section (or subsection) \definehead[Issue][section] \Issue {Jan 9, 2008} What we did at that time. \Issue {Jan 10, 2008} something else \stoptext Then you can use \setupheadertexts[issue] to get the current issue in the header. > Now this is how I went out to do this in ConTeXt (maybe wrongly so?) > following the manual and some examples on contextwiki I haven't looked at your code below. First check if one the in-built stuctural environments of ConTeXt do what you want. Aditya > %--------------- code below ----------------------- > \definesynonyms[Issue][issues][\IssueText][\IssueDate] > \setupsynonyms[Issue][criterium=all] > > \newcounter\IssueCounter > > \definenumber[IssueNumber] > > \def\TempIssueText{% > %% This was the (seemingly) only way to get any value beside 0 > %% from \getnumber within doAddIssue > %% Original place for > \incrementnumber[IssueNumber] > Issue~\getnumber[IssueNumber]: > } > \def\NewIssue{\dosingleargument\doNewIssue} > \def\doNewIssue[#1]{% > \increment\IssueCounter % This one works correctly. > %% Alternative place for > %\incrementnumber[IssueNumber] > > %% if placed here instead of in \TempIssueText > %% a DIFFERENT, but still wrong result comes out > %% that is: Debug shows the right progression, > %% but ALL "Issue x" Numbers are set to the last one > Debug: \IssueCounter / \getnumber[IssueNumber]% > %% but alas I can't seem to make this work with the following lines :-( > \doifempty{#1}{\Issue[\IssueCounter]{\TempIssueText}{\currentdate}} > \doifnotempty{#1}{\Issue[\IssueCounter]{\TempIssueText}{#1}} > %% Note: Using \dofiemptyelse gives the same result, > %% I just wanted to make sure here that I am /really/ not calling it > twice, > %% somehow, by being able to disable each case, separately and > definitely. > -- \IssueCounter / \getnumber[IssueNumber] > \crlf > } > % -- -- -- -- -- -- > \starttext > \NewIssue[January 9, 2008] > \NewIssue[January 10, 2008] > \NewIssue % January 11, 2008 > > List of issue \# and dates: > > \placelistofissues \blank > > \IssueDate{\IssueCounter} % produces correct result in either case > > \stoptext > %--------------- code above ----------------------- > > Result as printed out by original version > ---------------------------------------------- > Debug: 1/ 0 – 1/ 0 > Debug: 2/ 0 – 2/ 0 > Debug: 3/ 0 – 3/ 0 > > List of issue # and dates: > Issue 2: January 9, 2008 > Issue 4: January 10, 2008 > Issue 6: January 11, 2008 > > January 11, 2008 > ------------------------------ > So while \IssueCounter is updated correctly and used with the right > values, > \getnumber[IssueNumber] always sees / reports the original value > However, the value in \placelistofissues are twice what they should be?! > > This is changed if one places \incrementnumber[IssueNumber] INSIDE of > \doAddIssue > Here, \getnumber[IssueNumber] does report the right value (same as > IssueCounter) > However, in that case the result looks like this: > > Result as printed out by alternative version > ---------------------------------------------- > Debug: 1/ 1 – 1/ 1 > Debug: 2/ 2 – 2/ 2 > Debug: 3/ 3 – 3/ 3 > > List of issue # and dates: > > Issue 3: January 9, 2008 > Issue 3: January 10, 2008 > Issue 3: January 11, 2008 > > January 11, 2008 > ------------------------ > In short, while now the value of \getnumber[IssueNumber] is correct > before and after, > its value in \placelistofissues is always the last value, i.e. equal > to the total number of issues. > > And this does NOT even change, when one replaces > Issue~\getnumber[IssueNumber]: > Issue~\IssueCounter: > in \TempIssueText > > So for some reason, \TempIssueText is called twice ? How? Where? > > Unfortunately, my ConTeXt.foo is not yet good enough to make it over > the TeX.bar here > as I haven't found a way to make this work (preferably with > \IssueCounter > as all this \XXXnumber stuff does not seem to work the way I think it > should, anyway...) > > And yes, ANY help with this is very welcome by now > > Sincerely > Carsten > P.S: Context version is 2007.01.12 15:56 / TeXlive / OS X > > ___________________________________________________________________________________ > 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 : https://foundry.supelec.fr/projects/contextrev/ > wiki : http://contextgarden.net > ___________________________________________________________________________________ > > >