# Paragraph Enumeration

## Standard Paragraph Numbering

ConTeXt has a built-in mechanism for paragraph numbering, which places numbers in the margin. This is accessed with \setupparagraphnumbering.

The mechanism numbers ‘TeX paragraphs’, so a formula or an itemization item will get its own number. For ‘block of thought’ paragraphs that can contain multiple TeX paragraphs, see the t-pararef module described at Paragraph Referencing.

\setuppapersize[A5]
\starttext
Some text in an unnumbered paragraph before the paragraph numbering starts.

\setupparagraphnumbering[state=start,style=italic,distance=0pt]
This is the first numbered paragraph; it's short.

This is another numbered paragraph.  It's long enough to wrap around onto
more than one line, so as to show that these are paragraph numbers and not
line numbers.

\startitemize[packed]
\item an
\item itemization
\stopitemize

A third numbered paragraph.
\setupparagraphnumbering[state=stop]

And, finally, an unnumbered paragraph after the paragraph numbering.
\stoptext


## Paragraph Numbering in the Text

An alternate way of numbering paragraphs is to place the numbers in the running text, rather than in the margin. ConTeXt doesn't have a built-in way to do this, but it's not difficult to add a method using the \everypar macro. The following code was proposed by Taco on the mailing list.

\setuppapersize[A6]
\newcounter\Paracount
\setcounter\Paracount1
\def\Paragraphnumber%
{\increment\Paracount
\Paracount.~}
\def\startParagraphNumbers%
{\par \begingroup \appendtoks \Paragraphnumber \to \everypar}
\def\stopParagraphNumbers%
{\par \endgroup}

\starttext
Some text in an unnumbered paragraph before the paragraph numbering starts.

\startParagraphNumbers
This is the first numbered paragraph; it's short.

This is another numbered paragraph.  It's long enough to wrap around onto
more than one line, so as to show that these are paragraph numbers and not
line numbers.

A third numbered paragraph.
\stopParagraphNumbers

And, finally, an unnumbered paragraph after the paragraph numbering.
\stoptext


This produces the following result:

## Using Section Numbering to Improve Paragraph Numbering

Idris provided a modified version of sample from Wolfgang to use section numbering to get some paragraphs numbered:

\defineseparatorset [ParagraphNumber][.,] % no second decimal for susubparagraphs
% \defineseparatorset [ParagraphNumber][.,.] % second decimal for susubparagraphs

\definecounter[ParagraphNumber][numberseparatorset=ParagraphNumber,criterium=all]

\define\ParagraphNumber
{{\bf \incrementcounter[ParagraphNumber]%

\define\subParagraphNumber
{{\bf \incrementcounter[ParagraphNumber][2]%

\define\subsubParagraphNumber
{{\bf \incrementcounter[ParagraphNumber][3]%

[style=\bf,
alternative=text,
criterium=all,
number=no]

[style=\bf,
alternative=text,
criterium=all,
number=no]

[style=\bf,
alternative=text,
criterium=all,
number=no]

\setupwhitespace[line]

\def\startsectionpar{\startsection[title={\ParagraphNumber}]}
\def\startsubsectionpar{\startsection[title={\subParagraphNumber}]}
\def\startsubsubsectionpar{\startsection[title={\subsubParagraphNumber}]}
\def\stopsectionpar{\stopsection}
\def\stopsubsectionpar{\stopsubsection}
\def\stopsubsubsectionpar{\stopsubsubsection}

\starttext
\startsectionpar[title=\ParagraphNumber]
\input ward
\startsubsectionpar[title=\subParagraphNumber]
\input ward
\startsubsubsectionpar[title=\subsubParagraphNumber]
\input ward
\stopsubsubsectionpar
\stopsubsectionpar
\stopsectionpar

\startsectionpar[title=\ParagraphNumber]
\input ward
\startsubsubsectionpar[title=\subsubParagraphNumber]
\input ward
\stopsubsubsectionpar
\stopsection
\stoptext


The output from the previous code is: