Open main menu

Changes

some restructuring and cleanup
< [[Main Page]] | [[Inside ConTeXt]] >
Countext ConTeXt provides a higher layer of API to access various counters. For example, to set the page number to a certain value use
<texcode>
\setnumbersetcounter[pageuserpage]{[1}]
</texcode>
<texcode>
\resetnumber resetcounter [page] \incrementnumberincrementcounter[page] \decrementnumberdecrementcounter[page] \savenumber savecounter [page] \restorenumber restorecounter [page] %\getnumber getcounter [page] \rawcountervalue [page]
</texcode>
 
== Names of Commonly Used Counters ==
 
* <code>userpage</code> for visible pagenumbers
* <code>page</code> for internal pagenumbers
* <code>formula</code> for formula numbers
* <code>table</code> for table numbers
* <code>figure</code> for figure numbers
 
 
== Testing the Value of a Counter ==
 
If you need to test the value of a counter, use \rawcountervalue, not \getcounter:
 
<context source="yes" text="results in:">
\definecounter[mynumber][]
\setcounter[mynumber][42]
\doifelse{\getcounter[mynumber]}{42}{
Strange, \type{\getcounter} worked.
}{
Using \type{\getcounter} does not work.
}
 
\doifelse{\rawcountervalue[mynumber]}{42}{
Ok, the test with \type{\rawcountervalue} worked.
}{
Strange, \type{\rawcountervalue} failed.
}
</context>
 
In LMTX, {{cmd|getcounter}} seems to be generally defunct.
== Coupling Counters ==
<texcode>
\definenumberdefinecounter[one] \definenumberdefinecounter[two][one]
</texcode>
<context source="yes">
\definenumberdefinecounter[one]\definenumberdefinecounter[two][one]
Default value of counter one: \getnumberrawcountervalue[one]
We increment counter two
\incrementnumberincrementcounter[two]
New value of counter one: \getnumberrawcountervalue[one]
</context>
By default counters are reset with each new chapter. To have a counter which isn’t reset one needs “wayyou need `way=bytext" `, and to remove the chapter number from the \getnumber getcounter result one has you have to add “prefix`prefix=no”no`.
An example Example definition is:
<texcode>
\definenumberdefinecounter[examplecounter][way=bytext,prefix=no]
</texcode>
== Names Outdated information == === Forcing the Reset of Commonly Used Counters a Counter === In [http://www.mail-archive.com/ntg-context%40ntg.nl/msg78847.html 2015], there was a bug that counters were reset (by chapter, page, etc.) only when they were incremented. To force the reset, you can increment and then decrement a counter before using it.<texcode>\definecounter[mycounter][way=bypage]\setcounter[mycounter][10]\rawcountervalue[mycounter]\page % new page, mycounter should be reset\rawcountervalue[mycounter] % no, it's not reset: you still get '10' \incrementcounter[mycounter]\decrementcounter[mycounter]\rawcountervalue[mycounter] % now you should get '0' because it has been reset</texcode> === \definenumber or \definecounter ? ==={{cmd|definenumber}} etc. are obsolete aliases for {{cmd|definecounter}} etc.
* <code>page</code> for pagenumbers
* <code>formula</code> for formulanumbers
* <code>table</code> for tables
* <code>figure</code> for figures
[[Category:Inside ConTeXtProgramming and Databases]][[Category:ConTeXt programmingTools]]