1
2
3
4
5
6
7
8
9
10
11
12
13
14\writestatus{loading}{ConTeXt Structure Macros Markings}
15
16\registerctxluafile{strcmarold}{autosuffix}
17
18\unprotect
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41\definesystemattribute [marks] [global]
42
43\installcorenamespace{marking}
44
45\installcommandhandler \??marking {marking} \??marking
46
47\newconditional\inhibitgetmarking
48\newconditional\inhibitsetmarking
49
50\newtoks \everymarking
51
52\appendtoks
53 \clf_definemarking{\currentmarking}{\currentmarkingparent}
54\to \everydefinemarking
55
56\permanent\protected\tolerant\def\relatemarking [#1]#*[#2]{\clf_relatemarking{#1}{#2}}
57\permanent\protected\tolerant\def\resetmarking [#1]{\clf_resetmarking{#1}}
58\permanent\protected\tolerant\def\synchronizemarking[#1]#*[#2]#*[#3]{\ifvoid#2\else\clf_synchronizemarking{#1}#2{#3}\fi}
59\permanent \def\doifelsemarking #1{\clf_doifelsemarking{#1}}
60
61\aliased\let\clearmarking\resetmarking
62
63\def\strc_markings_synchronize#1#2#3{\ifvoid#2\else\clf_synchronizemarking{#1}#2{#3}\fi}
64
65\permanent\protected\tolerant\def\setmarking[#1]#:#2
66 {\ifconditional\inhibitsetmarking\else
67 \doifelse{\namedmarkingparameter{#1}\c!expansion}\v!yes
68 {\clf_setmarking{#1}{#2}}
69 {\clf_setmarking{#1}{\detokenize{#2}}}
70 \fi}
71
72\aliased\let\marking \setmarking
73\aliased\let\doifmarkingelse\doifelsemarking
74
75
76
77\setupmarking
78 [\c!expansion=\v!no,
79 \c!separator=\space\emdash\space,
80 \c!filtercommand=\firstofoneargument,
81 \c!state=\v!start]
82
83
84
85\permanent\protected\def\getmarking
86 {\ifconditional\inhibitgetmarking
87 \expandafter\strc_markings_get_nop
88 \else
89 \expandafter\strc_markings_get_yes
90 \fi}
91
92\tolerant\def\strc_markings_get_nop[#]#*[#]#*[#]
93 {}
94
95\tolerant\def\strc_markings_get_yes[#1]#*[#2]#*[#3]
96 {\ifcstok{\namedmarkingparameter{#1}\c!state}\v!start
97 \begingroup
98 \setsystemmode\v!marking
99 \the\everymarking
100 \ifparameter#3\or
101 \clf_getmarking{#1}{#2}{#3}
102 \else
103 \clf_getmarking{#1}{\v!page}{#2}
104 \fi
105 \endgroup
106 \fi}
107
108
109
110\permanent\tolerant\def\fetchonemark[#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchonemark {#1}{\v!page}{#2}\fi}
111\permanent\tolerant\def\fetchtwomarks [#1]{\ifconditional\inhibitgetmarking\else\clf_fetchtwomarks{#1}{\v!page}\fi}
112\permanent\tolerant\def\fetchallmarks [#1]{\ifconditional\inhibitgetmarking\else\clf_fetchallmarks{#1}{\v!page}\fi}
113
114\aliased\let\fetchmark\fetchonemark
115
116
117
118\permanent\tolerant\def\fetchonemarking[#1]#*[#2]#*[#3]{\ifconditional\inhibitgetmarking\else\clf_fetchonemark {#1}{#2}{#3}\fi}
119\permanent\tolerant\def\fetchtwomarkings [#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchtwomarks{#1}{#2}\fi}
120\permanent\tolerant\def\fetchallmarkings [#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchallmarks{#1}{#2}\fi}
121
122\aliased\let\fetchmarking\fetchonemarking
123
124\permanent\def\markingseparator#1{\namedmarkingparameter{#1}\c!separator}
125\permanent\def\markingcommand #1{\namedmarkingparameter{#1}\c!filtercommand}
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142\protect \endinput
143 |