Difference between revisions of "Counters"

From Wiki
Jump to navigation Jump to search
m (corrected misspelt ConTeXt name)
Line 48: Line 48:
 
<texcode>
 
<texcode>
 
\definenumber[examplecounter][way=bytext,prefix=no]
 
\definenumber[examplecounter][way=bytext,prefix=no]
 +
</texcode>
 +
 +
== Testing the Value of a Counter ==
 +
If you need to test the value of a counter, use \rawcountervalue, not \getnumber:
 +
<texcode>
 +
\definenumber[mynumber][]
 +
\setnumber[mynumber][42]
 +
\doifelse{\getnumber[mynumber]}{42}{
 +
Strange, {\tt getnumber} worked.
 +
}{
 +
Using {\tt getnumber} does not work.
 +
}
 +
 +
\doifelse{\rawcountervalue[mynumber]}{42}{
 +
Ok, the test with {\tt rawcountervalue} worked.
 +
}{
 +
Strange, {\tt rawcountervalue} failed.
 +
}
 
</texcode>
 
</texcode>
  

Revision as of 12:27, 27 June 2015

< Main Page | Inside ConTeXt >

ConTeXt provides a higher layer of API to access various counters. For example, to set the page number to a certain value use

 \setnumber[page]{1}

Other useful commands for working with counters are

    \resetnumber    [page]
    \incrementnumber[page]
    \decrementnumber[page]
    \savenumber     [page]
    \restorenumber  [page]
    \getnumber      [page]

Coupling Counters

Two counters can be coupled by

 \definenumber[one]
 \definenumber[two][one]

For example

\definenumber[one]
\definenumber[two][one]


Default value of counter one: \getnumber[one]

We increment counter two
\incrementnumber[two]

New value of counter one: \getnumber[one]

By default counters are reset with each new chapter. To have a counter which isn’t reset one needs “way=bytext" and to remove the chapter number from the \getnumber result one has to add “prefix=no”.

An example definition is

\definenumber[examplecounter][way=bytext,prefix=no]

Testing the Value of a Counter

If you need to test the value of a counter, use \rawcountervalue, not \getnumber:

\definenumber[mynumber][]
\setnumber[mynumber][42]
\doifelse{\getnumber[mynumber]}{42}{
 Strange, {\tt getnumber} worked.
}{
 Using {\tt getnumber} does not work.
}

\doifelse{\rawcountervalue[mynumber]}{42}{
 Ok, the test with {\tt rawcountervalue} worked.
}{
 Strange, {\tt rawcountervalue} failed.
}

Names of Commonly Used Counters

  • page for pagenumbers
  • formula for formulanumbers
  • table for tables
  • figure for figures