summaryrefslogtreecommitdiff
path: root/tex/context/base/mkii/page-par.mkii
blob: 9b5e0b6ebfa878bb71a9331a7f814cddd9859879 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
%D \module
%D   [       file=page-par, % copied from page-lin
%D        version=1997.03.31,
%D          title=\CONTEXT\ Page Macros,
%D       subtitle=Line Numbering,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

\writestatus{loading}{ConTeXt Page Macros / Paragraph Numbering}

\unprotect

\newcount\internalparagraphnumber

\def\setupparagraphnumbering
  {\dosingleempty\dosetupparagraphnumbering}

\def\dosetupparagraphnumbering[#1]%
  {\getparameters
     [\??ph][#1]%
   \processaction
     [\@@phstate]
     [\v!start=>\let\showparagraphnumber\doshowparagraphnumberA,
       \v!stop=>\let\showparagraphnumber\relax,
       \v!line=>\let\showparagraphnumber\doshowparagraphnumberB,
      \v!reset=>\global\internalparagraphnumber\zerocount
                \let\showparagraphnumber\doshowparagraphnumberA]}

\def\dodoshowparagraphnumber
  {\global\advance\internalparagraphnumber \plusone
   \inleftmargin % \tf normalizes em
     {\tf{\doattributes\??ph\c!style\c!color{\the\internalparagraphnumber}}%
      \kern\@@phdistance}}

\def\doshowparagraphnumberA
  {\ifprocessingverbatim
     \iflinepar\dodoshowparagraphnumber\fi
   \else
     \dodoshowparagraphnumber
   \fi}

\def\doshowparagraphnumberB
  {\ifnumberinglines
     \doshowparagraphnumberA
   \fi}

\setupparagraphnumbering
  [\c!state=\v!stop,
   \c!style=,
   \c!color=,
   \c!distance=\ifcase\linenumberlocation2em\else\!!zeropoint\fi] % will change

\protect \endinput