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 ___________________________________________________________________________________