Difference between revisions of "Paragraph Enumeration"

From Wiki
Jump to navigation Jump to search
(POint reader to Paragraf Referencing/pararef module)
(added new numbering from sections)
Line 60: Line 60:
  
 
And, finally, an unnumbered paragraph after the paragraph numbering.
 
And, finally, an unnumbered paragraph after the paragraph numbering.
 +
\stoptext
 +
</context>
 +
 +
== Using Section Numbering to Improve Paragraph Numbering ==
 +
 +
Idris provided [https://mailman.ntg.nl/pipermail/ntg-context/2017/089454.html a modified version] of sample from Wolfgang to use section numbering to get some paragraphs numbered:
 +
 +
<context source="yes" text="The output from the previous code is:">
 +
\defineseparatorset [ParagraphNumber][.,] % no second decimal for susubparagraphs
 +
% \defineseparatorset [ParagraphNumber][.,.] % second decimal for susubparagraphs
 +
 +
\definecounter[ParagraphNumber][numberseparatorset=ParagraphNumber,criterium=all]
 +
 +
\define\ParagraphNumber
 +
  {{\bf \incrementcounter[ParagraphNumber]%
 +
    \convertedcounter[ParagraphNumber][numbersegments=1]}\quad}
 +
 +
\define\subParagraphNumber
 +
  {{\bf \incrementcounter[ParagraphNumber][2]%
 +
    \convertedcounter[ParagraphNumber][numbersegments=1:2]}\quad}
 +
 +
\define\subsubParagraphNumber
 +
  {{\bf \incrementcounter[ParagraphNumber][3]%
 +
    \convertedcounter[ParagraphNumber][numbersegments=1:3]}\quad}
 +
 +
\setuphead[section]
 +
    [style=\bf,
 +
    alternative=text,
 +
    criterium=all,
 +
    number=no]
 +
 +
\setuphead[subsection]
 +
    [style=\bf,
 +
    alternative=text,
 +
    criterium=all,
 +
    number=no]
 +
 +
\setuphead[subsubsection]
 +
    [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
 
\stoptext
 
</context>
 
</context>

Revision as of 15:59, 8 August 2017

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]%
    \convertedcounter[ParagraphNumber][numbersegments=1]}\quad}

\define\subParagraphNumber
   {{\bf \incrementcounter[ParagraphNumber][2]%
    \convertedcounter[ParagraphNumber][numbersegments=1:2]}\quad}

\define\subsubParagraphNumber
   {{\bf \incrementcounter[ParagraphNumber][3]%
    \convertedcounter[ParagraphNumber][numbersegments=1:3]}\quad}

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

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

\setuphead[subsubsection]
    [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: