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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
%D \module
%D [ file=core-ref,
%D version=2008.10.14,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Cross Referencing,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
\let\mainreference\gobblefivearguments % catch mkii tuo stuff
\registerctxluafile{core-ref}{1.001}
\unprotect
% later we will use the lua tables directly (first a hack)
%
% \the\everyreference % we're grouped anyway
\newcount\crossreferencenumber \crossreferencenumber\plusone
\def\dowithjobreference#1%
{\global\advance\crossreferencenumber\plusone
\doiffirstreferenceoccurance{#1}{\thisisdestination{\referenceprefix#1}}%
\referenceinfo>{#1}}
% \def\dowithjobreference#1{}
\def\dosetjobreference#1#2#3#4#5%
{\ifcsname\r!cross\fileprefix#1#2\endcsname
\ifcase0#4\else
\showmessage\m!references2{[#1][#2],#4 (\currentutilityfilename)}%
\fi
\else
\ifcase\autocrossfilereferences
\setglobalcrossreference{#1#2}{#3}{#4}{#5}%
\or
\setglobalcrossreference{#1#2}{#3}{#4}{#5}%
\ifcsname\r!cross#1#2\endcsname
\showmessage\m!references2{[#1][#2],#4 (auto \currentutilityfilename)}%
\else
\expanded{\definereference[#1#2][\fileprefix#1#2]}%
\fi
\or
\ifcsname\r!cross#1#2\endcsname
\showmessage\m!references2{[#1][#2],#4 (auto \currentutilityfilename)}%
\else
\expanded{\definereference[#1#2][\noexpand\v!page(\fileprefix#4)]}%
\fi
\fi
\fi}
\def\rawreference#1#2#3%
{\ifreferencing
\doifsomething{#2}
{\bgroup
\the\everyreference
\makesectionformat
\expanded{\ctxlua{jobreferences.with("#2")}}%
\expanded{\ctxlatelua{jobreferences.set(
"\referenceprefix",
"#2",
"\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber",
"\noexpand\the\realpageno",
\!!bs#3\!!es
)}}%
\egroup}%
\fi}
\def\rawpagereference#1#2%
{\ifreferencing
\doifsomething{#2}
{\bgroup
\the\everyreference
\makesectionformat
\expanded{\ctxlua{jobreferences.with("#2")}}%
\expanded{\ctxlatelua{jobreferences.set(
"\referenceprefix",
"#2",
"\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber",
"\noexpand\the\realpageno",
""
)}}%
\egroup}%
\fi}
\def\rawtextreference#1#2#3%
{\ifreferencing
\doifsomething{#2}
{\bgroup
\the\everyreference
\expanded{\ctxlua{jobreferences.with("#2")}}%
\expanded{\ctxlatelua{jobreferences.set(
"\referenceprefix",
"#2",
"",
"\noexpand\the\realpageno",
\!!bs#3\!!es
)}}%
\egroup}%
\fi}
\protect
|