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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
%D \module
%D [ file=publ-imp-page,
%D version=2014.11.05,
%D title=\CONTEXT\ Publication Support,
%D subtitle=Page numbers,
%D author=Alan Braslau and 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.
\unprotect
\definebtx
[\s!page] % or just outer level
[\c!pagestate=\v!stop,
\c!pageleft=\btxleftparenthesis, % see below!!
\c!pageright=\btxrightparenthesis,
\c!pagesep={,\space},
\c!lastpagesep={,\space\btxlabeltext{\currentbtxspecification:and}\space},
\c!finalpagesep={\space\btxlabeltext{\currentbtxspecification:and}\space},
\c!pageconnector=\endash]
\definebtx
[\s!page:\s!list]
[\s!page]
[\c!command={\wordright}]
\startsetups \s!btx:\s!page:concat
\ifcase\currentbtxoverflow
\ifcase\currentbtxconcat
\or % first
\or % second
\btxparameter\c!pagesep
\or % second of two
\btxparameter\c!lastpagesep
\or % last
\btxparameter\c!finalpagesep
\fi
\fi
\stopsetups
% for the moment we have only one variant
\startsetups [\s!btx:\s!page:\s!list]
\fastsetup{\s!btx:\s!page:concat}
% \ifx\currentbtxlastpage\empty
% p.
% \else
% pp.
% \fi
% \btxnbsp
\ifconditional\btxinteractive
\goto {
\currentbtxfirstpage
} [
internal(\currentbtxfirstinternal)
]
\ifx\currentbtxlastpage\empty \else
\btxparameter\c!pageconnector
\goto {
\currentbtxlastpage
} [
internal(\currentbtxlastinternal)
]
\fi
\else
\currentbtxfirstpage
\ifx\currentbtxlastpage\empty \else
\btxparameter\c!pageconnector
\currentbtxlastpage
\fi
\fi
\stopsetups
\protect
|