Difference between revisions of "Paragraph Enumeration"

From Wiki
Jump to navigation Jump to search
m (changed widths for better screen output)
m
Line 3: Line 3:
 
ConTeXt has a built-in mechanism for paragraph numbering, which places numbers in the margin.  This is accessed with <cmd>setupparagraphnumbering</cmd>, as in this example, which also sets the number style to italic rather than the default roman.
 
ConTeXt has a built-in mechanism for paragraph numbering, which places numbers in the margin.  This is accessed with <cmd>setupparagraphnumbering</cmd>, as in this example, which also sets the number style to italic rather than the default roman.
  
<texcode>
+
<context source="yes">
\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.
 
 
 
A third numbered paragraph.
 
\setupparagraphnumbering[state=stop]
 
 
 
And, finally, an unnumbered paragraph after the paragraph numbering.
 
\stoptext
 
</texcode>
 
 
 
<context>
 
 
\setuplayout[scale=0.8,width=13cm]
 
\setuplayout[scale=0.8,width=13cm]
 
\starttext
 
\starttext
Line 45: Line 27:
 
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 <cmd>everypar</cmd> macro.  The following code was proposed by Taco on the mailing list.
 
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 <cmd>everypar</cmd> macro.  The following code was proposed by Taco on the mailing list.
  
<texcode>
+
<context source="yes" text="This produces the following result:">
\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
 
</texcode>
 
 
 
This produces the following result/
 
 
 
<context>
 
 
\setuplayout[scale=0.8,width=13cm]
 
\setuplayout[scale=0.8,width=13cm]
 
\newcounter\Paracount
 
\newcounter\Paracount

Revision as of 17:58, 4 March 2010

Standard Paragraph Numbering

ConTeXt has a built-in mechanism for paragraph numbering, which places numbers in the margin. This is accessed with \setupparagraphnumbering, as in this example, which also sets the number style to italic rather than the default roman.

\setuplayout[scale=0.8,width=13cm]
\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.

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.

\setuplayout[scale=0.8,width=13cm]
\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: