1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17\writestatus{loading}{ConTeXt Structure Macros Tags}
18
19\registerctxluafile{strctag}{autosuffix}
20
21\unprotect
22
23
24
25
26\definetagconstant{document}
27
28\definetagconstant{division}
29\definetagconstant{paragraph}
30\definetagconstant{p}
31\definetagconstant{construct}
32\definetagconstant{highlight}
33
34\definetagconstant{section}
35\definetagconstant{sectioncaption}
36\definetagconstant{sectiontitle}
37\definetagconstant{sectionnumber}
38\definetagconstant{sectioncontent}
39
40\definetagconstant{itemgroup}
41\definetagconstant{item}
42\definetagconstant{itemtag}
43\definetagconstant{itemcontent}
44\definetagconstant{itemhead}
45\definetagconstant{itembody}
46
47\definetagconstant{description}
48\definetagconstant{descriptiontag}
49\definetagconstant{descriptioncontent}
50\definetagconstant{descriptionsymbol}
51
52\aliastagconstant{construction} {description}
53\aliastagconstant{constructiontag} {descriptiontag}
54\aliastagconstant{constructioncontent}{descriptioncontent}
55\aliastagconstant{constructionsymbol} {descriptionsymbol}
56
57\definetagconstant{verbatimblock}
58\definetagconstant{verbatimlines}
59\definetagconstant{verbatimline}
60\definetagconstant{verbatim}
61
62\definetagconstant{lines}
63\definetagconstant{line}
64\definetagconstant{linenumber}
65
66\definetagconstant{sorting}
67\definetagconstant{synonym}
68
69\definetagconstant{register}
70\definetagconstant{registerlocation}
71\definetagconstant{registersection}
72\definetagconstant{registertag}
73\definetagconstant{registerentries}
74\definetagconstant{registerentry}
75\definetagconstant{registercontent}
76\definetagconstant{registersee}
77\definetagconstant{registerpages}
78\definetagconstant{registerpage}
79\definetagconstant{registerpagerange}
80\definetagconstant{registerfrompage}
81\definetagconstant{registertopage}
82\definetagconstant{registerseparator}
83
84\definetagconstant{table}
85\definetagconstant{tablerow}
86\definetagconstant{tablecell}
87\definetagconstant{tableheadcell}
88\definetagconstant{tablehead}
89\definetagconstant{tablebody}
90\definetagconstant{tablefoot}
91
92\definetagconstant{tabulate}
93\definetagconstant{tabulaterow}
94\definetagconstant{tabulatecell}
95\definetagconstant{tabulateheadcell}
96\definetagconstant{tabulatehead}
97\definetagconstant{tabulatebody}
98\definetagconstant{tabulatefoot}
99
100\definetagconstant{math}
101\definetagconstant{mtable}
102\definetagconstant{mtr}
103\definetagconstant{mtd}
104\definetagconstant{maction}
105
106\definetagconstant{mstacker}
107\definetagconstant{mstackertop}
108\definetagconstant{mstackermid}
109\definetagconstant{mstackerbot}
110\definetagconstant{mextensible}
111
112\aliastagconstant{mtablerow} {mtr}
113\aliastagconstant{mtablecell}{mtd}
114
115\definetagconstant{munderover}
116\definetagconstant{munder}
117\definetagconstant{mover}
118
119\definetagconstant{list}
120\definetagconstant{listitem}
121\definetagconstant{listtag}
122\definetagconstant{listcontent}
123\definetagconstant{listdata}
124\definetagconstant{listpage}
125\definetagconstant{listtext}
126
127\definetagconstant{delimited}
128
129\definetagconstant{delimitedsymbol}
130\definetagconstant{delimitedcontent}
131
132\aliastagconstant{delimitedblock}{delimited}
133
134\definetagconstant{subsentence}
135\definetagconstant{subsentencecontent}
136\definetagconstant{subsentencesymbol}
137
138\definetagconstant{float}
139\definetagconstant{floatcaption}
140\definetagconstant{floatlabel}
141\definetagconstant{floattext}
142\definetagconstant{floatnumber}
143\definetagconstant{floatcontent}
144
145\definetagconstant{image}
146
147\definetagconstant{mpgraphic}
148
149\definetagconstant{formulaset}
150\definetagconstant{formula}
151\definetagconstant{formulacaption}
152\definetagconstant{formulalabel}
153\definetagconstant{formulanumber}
154\definetagconstant{formulacontent}
155\definetagconstant{subformula}
156
157\definetagconstant{link}
158\definetagconstant{reference}
159
160\definetagconstant{margintext}
161\definetagconstant{margintextblock}
162\definetagconstant{marginanchor}
163
164
165
166\definetagconstant{label}
167\definetagconstant{number}
168
169\definetagconstant{ignore}
170\definetagconstant{private}
171
172\definetagconstant{mid}
173\definetagconstant{sub}
174\definetagconstant{sup}
175\definetagconstant{subsup}
176
177\definetagconstant{unit}
178\definetagconstant{quantity}
179
180
181\definetagconstant{combination}
182\definetagconstant{combinationpair}
183\definetagconstant{combinationcontent}
184\definetagconstant{combinationcaption}
185
186\definetagconstant{publications}
187\definetagconstant{publication}
188\definetagconstant{pubfld}
189
190\definetagconstant{block}
191\definetagconstant{userdata}
192
193
194
195
196
197
198
199\definesystemattribute[tagged][public]
200\definesystemattribute[image] [public]
201
202
203
204
205\permanent\protected\def\ignoretagsinexport[#1]{\clf_ignoretagsinexport{#1}}
206
207\installcorenamespace{tagging}
208
209\installsetuponlycommandhandler \??tagging {tagging}
210
211
212
213
214
215
216
217
218
219
220\permanent\protected\def\strc_tags_element_start_yes
221 {\iftrialtypesetting
222 \expandafter\gobbletwooptionals
223 \else
224 \expandafter\strc_tags_start_userdata
225 \fi}
226
227\permanent\protected\def\strc_tags_element_stop_yes
228 {\iftrialtypesetting
229
230 \else
231 \expandafter\strc_tags_stop
232 \fi}
233
234\protected\def\strc_tags_enable_elements
235 {\enforced\let\startelement \strc_tags_element_start_yes
236 \enforced\let\stopelement \strc_tags_element_stop_yes
237 \enforced\let\dosettagproperty\strc_tags_set_aspect}
238
239\protected\def\strc_tags_disable_elements
240 {\enforced\let\startelement \gobbletwooptionals
241 \enforced\let\stopelement \relax
242 \enforced\let\dosettagproperty\gobbletwoarguments}
243
244
245
246\def\strc_tags_enabled_start_no_detail
247 {\iftrialtypesetting
248 \expandafter\gobbleoneargument
249 \else
250 \expandafter\strc_tags_start
251 \fi}
252
253\def\strc_tags_enabled_start_detail
254 {\iftrialtypesetting
255 \expandafter\gobbletwoarguments
256 \else
257 \expandafter\strc_tags_start_detail
258 \fi}
259
260\def\strc_tags_enabled_start_chained
261 {\iftrialtypesetting
262 \expandafter\gobblethreearguments
263 \else
264 \expandafter\strc_tags_start_chained_indeed
265 \fi}
266
267\def\strc_tags_enabled_start_ignore
268 {\iftrialtypesetting
269 \expandafter\gobbleoneargument
270 \else
271 \expandafter\strc_tags_start_ignore
272 \fi}
273
274\def\strc_tags_enabled_stop
275 {\iftrialtypesetting
276
277 \else
278 \expandafter\strc_tags_stop
279 \fi}
280
281\def\strc_tags_start_chained_indeed#1#2#3{\strc_tags_start_chained{#1}{#2}{\getcurrentparentchain#3{#2}}}
282
283\newconditional\c_strc_tags_enabled
284
285\lettonothing\dotaggedplaceholder
286
287\immutable\chardef\strc_tags_placeholder_char\zerocount
288
289\protected\def\strc_tags_enable_indeed
290 {\enforced\let\dotaggedplaceholder \strc_tags_placeholder_char
291 \enforced\let\dostarttagged \strc_tags_enabled_start_detail
292 \enforced\let\dostarttaggednodetail\strc_tags_enabled_start_no_detail
293 \enforced\let\dostarttaggedchained \strc_tags_enabled_start_chained
294 \enforced\let\dostoptagged \strc_tags_enabled_stop
295 \enforced\let\dostartignoretagging \strc_tags_enabled_start_ignore
296 \enforced\let\dostopignoretagging \strc_tags_stop}
297
298\protected\def\strc_tags_enable
299 {
300 \global\c_strc_tags_enabled\conditionaltrue
301
302 \strc_tags_enable_indeed}
303
304\protected\def\strc_tags_disable
305 {\ifconditional\c_strc_tags_enabled
306
307 \enforced\let\dotaggedplaceholder \strc_tags_placeholder_char
308 \enforced\let\dostarttagged \gobbletwoarguments
309 \enforced\let\dostarttaggednodetail\gobbleoneargument
310 \enforced\let\dostarttaggedchained \gobblethreearguments
311 \enforced\let\dostoptagged \donothing
312 \else
313
314 \enforced\lettonothing\dotaggedplaceholder
315 \enforced\let\dostarttagged \gobbletwoarguments
316 \enforced\let\dostarttaggednodetail\gobbleoneargument
317 \enforced\let\dostarttaggedchained \gobblethreearguments
318 \enforced\let\dostoptagged \donothing
319 \enforced\let\dostartignoretagging \donothing
320 \enforced\let\dostopignoretagging \donothing
321 \fi}
322
323
324
325\protected\def\strc_tags_setup_element_user_properties
326 {\iftrialtypesetting
327 \expandafter\gobbletwooptionals
328 \else
329 \expandafter\strc_tags_set_element_user_properties
330 \fi}
331
332\protected\def\strc_tags_enable_properties
333 {\enforced\let\getelementtag \strc_tags_get_element_tag
334 \enforced\let\setupelementuserproperties\strc_tags_set_element_user_properties}
335
336\protected\def\strc_tags_disable_properties
337 {\enforced\let\getelementtag \donothing
338 \enforced\let\setupelementuserproperties\gobbletwooptionals}
339
340\strc_tags_disable
341
342
343
344\newtoks\everyenableelements
345\newtoks\everydisableelements
346
347\appendtoks
348 \strc_tags_enable_elements
349 \strc_tags_enable_properties
350 \ifcstok{\taggingparameter\c!method}\v!auto
351 \strc_tags_enable
352 \else
353 \strc_tags_disable
354 \fi
355\to \everyenableelements
356
357\appendtoks
358 \strc_tags_disable_elements
359 \strc_tags_disable_properties
360 \strc_tags_disable
361\to \everydisableelements
362
363\appendtoks
364 \ifcstok{\taggingparameter\c!state}\v!start
365 \expand\everyenableelements
366 \else
367 \expand\everydisableelements
368 \fi
369\to \everysetuptagging
370
371\permanent\protected\def\forgettagging
372 {\c_attr_tagged\attributeunsetvalue}
373
374\setuptagging
375 [\c!state=\v!stop,
376 \c!method=\v!auto]
377
378
379
380
381
382
383
384
385
386
387
388\installcorenamespace {paragraph}
389\installcommandhandler \??paragraph {paragraph} \??paragraph
390
391\setupparagraph
392 [\c!color=,
393 \c!style=]
394
395\ifdefined\dotagparagraph \else \aliased\let\dotagparagraph\gobbleoneargument \fi
396
397\permanent\tolerant\protected\def\startparagraph[#S#1]#*[#S#2]
398 {\endgraf
399 \begingroup
400 \ifarguments
401 \lettonothing\currentparagraph
402 \or
403 \ifhastok={#1}
404 \lettonothing\currentparagraph
405 \setupcurrentparagraph[#1]
406 \else
407 \cdef\currentparagraph{#1}
408 \fi
409 \or
410 \cdef\currentparagraph{#1}
411 \setupcurrentparagraph[#2]
412 \fi
413 \useparagraphstyleandcolor\c!style\c!color
414 \usealignparameter\paragraphparameter
415 \usesetupsparameter\paragraphparameter
416 \dostarttagged\t!paragraph\currentparagraph
417 \dotagparagraph{\paragraphparameter\c!align}}
418
419\permanent\protected\def\stopparagraph
420 {\dostoptagged
421 \endgraf
422 \endgroup}
423
424\aliased\let\startpar\startparagraph
425\aliased\let\stoppar \stopparagraph
426
427\def\strc_tags_document_start_indeed
428 {\glet\strc_tags_document_start_indeed\relax
429 \dostarttagged\t!document\empty}
430
431\def\strc_tags_document_stop_indeed
432 {\glet\strc_tags_document_stop_indeed\relax
433 \dostoptagged}
434
435\appendtoks
436 \strc_tags_document_start_indeed
437\to \everyenableelements
438
439
440
441
442
443\appendtoks
444 \strc_tags_document_stop_indeed
445\to \everystoptext
446
447\appendtoks
448 \strc_tags_disable_elements
449 \strc_tags_disable
450\to \everybeforepagebody
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467\aliased\let\doifinelementelse\doifelseinelement
468
469\permanent\protected\def\taggedlabeltexts#1#2#3
470 {\begingroup
471 \dostarttagged\t!label{#1}
472 \labeltexts{#1}
473 {\dostoptagged
474 \dostarttagged\t!number{#2}
475 #3
476 \dostoptagged
477 \dostarttagged\t!label{#1}}
478 \dostoptagged
479 \endgroup}
480
481\permanent\protected\def\namedtaggedlabeltexts#1#2#3#4#5
482 {\begingroup
483 \dostarttagged{#1}{#2}
484 \labeltexts{#2}
485 {\dostoptagged
486 \dostarttagged{#3}{#4}
487 #5
488 \dostoptagged
489 \dostarttagged{#1}{#2}}
490 \dostoptagged
491 \endgroup}
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515\pushoverloadmode
516
517\aliased\let\strc_tagged_saved_bpar\bpar
518\aliased\let\strc_tagged_saved_epar\epar
519
520\enforced\permanent\protected\def\bpar{\dostarttagged\t!paragraph\empty\strc_tagged_saved_bpar}
521\enforced\permanent\protected\def\epar{\strc_tagged_saved_epar\dostoptagged}
522
523\popoverloadmode
524
525
526
527\appendtoks
528 \clf_settagginglevel{\taggingparameter\c!level}
529\to \everysetuptagging
530
531
532
533\protect
534 |