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\writestatus{loading}{ConTeXt Publication Support Initialization}
49
50\registerctxluafile{publdat}{}
51\registerctxluafile{publini}{}
52\registerctxluafile{publsor}{}
53\registerctxluafile{publaut}{}
54\registerctxluafile{publusr}{}
55\registerctxluafile{publoth}{}
56\registerctxluafile{publfnd}{}
57\registerctxluafile{publjrn}{}
58\registerctxluafile{publreg}{}
59\registerctxluafile{publtra}{}
60
61\unprotect
62
63\startcontextdefinitioncode
64
65
66
67\definesystemconstant {btx}
68
69\definesystemconstant {btxset}
70\definesystemconstant {btxref}
71\definesystemconstant {btxint}
72\definesystemconstant {btxltx}
73\definesystemconstant {btxrtx}
74\definesystemconstant {btxatx}
75\definesystemconstant {btxbtx}
76\definesystemconstant {btxspc}
77\definesystemconstant {btxlst}
78\definesystemconstant {btxcom}
79
80\defineinterfacevariable {btxcite} {btxcite}
81\defineinterfacevariable {btxlist} {btxlist}
82\defineinterfacevariable {btxrendering} {btxrendering}
83
84\definelabelclass[btxlabel][2]
85
86\clf_definelabels{btxlabel}{btx}\s!false\relax
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115\mutable\let\currentbtxspecification \empty
116\mutable\let\currentbtxspecificationfallback\empty
117
118\installmacrostack\currentbtxspecification
119\installmacrostack\currentbtxspecificationfallback
120
121\permanent\protected\def\startbtxrenderingdefinitions[#1]
122 {\unprotect
123 \push_macro_currentbtxspecification
124 \edef\currentbtxspecification{#1}}
125
126\permanent\protected\def\stopbtxrenderingdefinitions
127 {\pop_macro_currentbtxspecification
128 \protect}
129
130\permanent\protected\def\loadfoundpublicationfile#1#2
131 {\input{#2}}
132
133\permanent\protected\def\loadbtxdefinitionfile [#1]{\clf_btxloaddefinitionfile {#1}}
134\permanent\protected\def\loadbtxreplacementfile[#1]{\clf_btxloadreplacementfile{#1}}
135
136\protected\def\publ_specification_push#1
137 {\push_macro_currentbtxspecification
138 \push_macro_currentbtxspecificationfallback
139 \edef\currentbtxspecification{#1}
140 \edef\currentbtxspecificationfallback{\namedbtxparameter\currentbtxspecification\c!default}
141 \ifx\currentbtxspecificationfallback\currentbtxspecification
142 \let\currentbtxspecificationfallback\empty
143 \fi
144 \clf_btxsetspecification{\currentbtxspecification}}
145
146\protected\def\publ_specification_pop
147 {\pop_macro_currentbtxspecificationfallback
148 \pop_macro_currentbtxspecification
149 \clf_btxsetspecification{\currentbtxspecification}}
150
151\protected\def\publ_specification_set#1
152 {\edef\currentbtxspecification{#1}
153 \edef\currentbtxspecificationfallback{\namedbtxparameter\currentbtxspecification\c!default}
154 \ifx\currentbtxspecificationfallback\currentbtxspecification
155 \let\currentbtxspecificationfallback\empty
156 \fi
157
158 \ifempty\currentbtxspecification
159
160 \else
161 \clf_btxsetspecification{\currentbtxspecification}
162 \fi}
163
164\installcorenamespace {btx}
165
166\installswitchcommandhandler \??btx {btx} \??btx
167
168
169
170\protected\def\btx_check_chain#1#2#3
171 {\doifelsesomething{#3}
172 {\writestatus{btx #1}{defining\space"#2"\space as\space descendant\space of\space"#3"}
173 \definebtx[#2][#3]}
174 {\writestatus{btx #1}{defining\space"#2"}
175 \definebtx[#2]}}
176
177
178
179
180\permanent\protected\def\btxcheckdefine#1{\doifelsecommandhandler\??btx{#1}\gobbleoneargument{\btx_check_chain{define}{#1}}}
181\permanent\protected\def\btxchecksetup #1{\doifelsecommandhandler\??btx{#1}\gobbleoneargument{\btx_check_chain {setup}{#1}}}
182
183
184
185\permanent\protected\def\btxenableautodefine
186 {\prependtoks
187 \clf_checkinterfacechain{\currentbtx}{btxcheckdefine}
188 \to \everydefinebtx
189 \prependtoks
190 \ifnum\btxsetupmode=\doingrootsetupnamed
191 \clf_checkinterfacechain{\currentbtx}{btxchecksetup}
192 \fi
193 \to \everysetupbtx
194 \let\btxenableautodefine\relax}
195
196\appendtoks
197 \ifnum\btxsetupmode=\doingrootsetuproot
198 \publ_specification_set{\btxparameter\c!specification}
199 \orelse\ifnum\btxsetupmode=\doingrootsetupnamed
200 \doifelsecommandhandler\??btx\currentbtx
201 {\publ_specification_set{\btxparameter\c!specification}}
202 {}
203 \fi
204\to \everysetupbtx
205
206\appendtoks
207 \ifnum\btxsetupmode=\doingrootsetuproot
208 \edef\currentbtxdataset{\clf_btxsetdataset{\btxparameter\c!dataset}{\currentbtxdataset}}
209 \fi
210\to \everysetupbtx
211
212\appendtoks
213 \publ_specification_set{\btxparameter\c!specification}
214\to \everyjob
215
216\permanent\protected\def\startusingbtxspecification[#1]
217 {\publ_specification_push{#1}}
218
219\permanent\protected\def\stopusingbtxspecification
220 {\publ_specification_pop}
221
222
223
224
225
226
227
228
229\installcorenamespace {btxdataset}
230\installcorenamespace {btxrendering}
231\installcorenamespace {btxregister}
232\installcorenamespace {btxcommand}
233\installcorenamespace {btxrenderingdefinition}
234
235\installcommandhandler \??btxdataset {btxdataset} \??btxdataset
236\installcommandhandler \??btxregister {btxregister} \??btxregister
237\installcommandhandler \??btxrendering {btxrendering} \??btxrendering
238
239\permanent\protected\def\setbtxparameterset#1#2
240 {\edef\currentbtx
241 {\ifcsname\??btx\currentbtxspecification:#1:#2:\s!parent\endcsname
242 \currentbtxspecification:
243 \orelse\ifempty\currentbtxspecificationfallback
244 \orelse\ifcsname\??btx\currentbtxspecificationfallback:#1:#2:\s!parent\endcsname
245 \currentbtxspecificationfallback:
246 \fi#1:#2}}
247
248\permanent\protected\def\setbtxparametersetroot#1
249 {\edef\currentbtx
250 {\ifcsname\??btx\currentbtxspecification:#1:\s!parent\endcsname
251 \currentbtxspecification:#1
252 \orelse\ifempty\currentbtxspecificationfallback
253 \orelse\ifcsname\??btx\currentbtxspecificationfallback:#1:\s!parent\endcsname
254 \currentbtxspecificationfallback:#1
255 \fi}}
256
257\permanent\protected\def\setbtxrendering
258 {\edef\currentbtxrendering
259 {\ifcsname\??btx\currentbtxspecification:\s!parent\endcsname
260 \currentbtxspecification
261 \orelse\ifempty\currentbtxspecificationfallback
262 \orelse\ifcsname\??btx\currentbtxspecificationfallback:\s!parent\endcsname
263 \currentbtxspecificationfallback
264 \fi}}
265
266\permanent\protected\def\setbtxlist
267 {\edef\currentbtxlist
268 {\ifcsname\??btx\currentbtxrendering:\s!parent\endcsname
269 \currentbtxrendering
270 \orelse\ifcsname\??btx\currentbtxspecification:\s!parent\endcsname
271 \currentbtxspecification
272 \orelse\ifempty\currentbtxspecificationfallback
273 \orelse\ifcsname\??btx\currentbtxspecificationfallback:\s!parent\endcsname
274 \currentbtxspecificationfallback
275 \fi}
276 \edef\currentlist{\s!btx:\currentbtxlist}}
277
278\tolerant\permanent\protected\def\usebtxdataset[#1]#*[#2]#*[#3]
279 {\begingroup
280 \getdummyparameters[\c!specification=\currentbtxspecification,#3]
281 \ifparameter#2\or
282 \clf_btxusedataset
283 specification {\dummyparameter\c!specification}
284 dataset {#1}
285 filename {#2}
286 \relax
287 \orelse\ifparameter#1\or
288 \clf_btxusedataset
289 specification {\dummyparameter\c!specification}
290 dataset {\v!default}
291 filename {#1}
292 \relax
293 \fi
294 \endgroup}
295
296\definebtxdataset
297 [\v!default]
298
299
300
301
302
303
304
305
306
307\frozen\let\stoppublication\relax
308
309\frozen\tolerant\protected\def\startpublication[#1]#*[#2]
310 {\begingroup
311 \catcode\commentasciicode\othercatcode
312 \ifparameters
313 \expandafter\publ_set_publication_default
314 \or
315 \expandafter\publ_set_publication_checked
316 \or
317 \expandafter\publ_set_publication_indeed
318 \fi{#1}{#2}}
319
320\def\publ_set_publication_default#1#2
321 {\publ_set_publication_indeed\v!default{#1}}
322
323\def\publ_set_publication_checked#1#2
324 {\doifelseassignment{#1}
325 {\publ_set_publication_indeed\v!default{#1}}
326 {\publ_set_publication_indeed{#1}{}}}
327
328\def\publ_set_publication_indeed#1#2#3\stoppublication
329 {\clf_btxaddentry{#1}{#2}{\detokenize{#3}}
330 \endgroup
331 \ignorespaces}
332
333
334
335\permanent\protected\def\btxcommand#1
336 {\ifcsname\??btxcommand#1\endcsname
337 \expandafter\publ_command_yes
338 \else
339 \expandafter\publ_command_nop
340 \fi{#1}}
341
342\newtoks\t_btx_cmd
343\newbox \b_btx_cmd
344
345\t_btx_cmd{\global\setbox\b_btx_cmd\hpack{\clf_btxcmdstring}}
346
347\aliased\let\btxcmd\btxcommand
348
349\def\publ_command_yes#1
350 {\csname\??btxcommand#1\endcsname}
351
352\def\publ_command_nop#1
353 {\ifcsname#1\endcsname
354 \showmessage\m!publications{10}{#1,#1}
355 \gletcsname\??btxcommand#1\expandafter\endcsname\csname#1\endcsname
356 \orelse\ifcsname\utfupper{#1}\endcsname
357 \showmessage\m!publications{10}{#1}{\utfupper{#1}}
358 \gletcsname\??btxcommand#1\expandafter\endcsname\csname\utfupper{#1}\endcsname
359 \else
360 \showmessage\m!publications{11}{#1}
361 \setugvalue{\??btxcommand#1}{\underbar{\tttf#1}}
362 \fi
363 \publ_command_yes{#1}}
364
365\permanent\protected\def\definebtxcommand#1
366 {\setuvalue{\??btxcommand\csstring#1}}
367
368
369
370\let\currentbtxtag \empty
371\let\currentbtxdataset\v!default
372
373\permanent\protected\def\setbtxentry[#1]
374 {\edef\currentbtxtag{\clf_btxsetentry{\currentbtxdataset}{#1}}}
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390\permanent\def\btxfieldname #1{\clf_btxfieldname {\currentbtxdataset}{\currentbtxtag}{#1}}
391\permanent\def\btxfieldtype #1{\clf_btxfieldtype {\currentbtxdataset}{\currentbtxtag}{#1}}
392\permanent\def\btxfoundname #1{\clf_btxfoundname {\currentbtxdataset}{\currentbtxtag}{#1}}
393\permanent\def\btxfoundtype #1{\clf_btxfoundtype {\currentbtxdataset}{\currentbtxtag}{#1}}
394\permanent\def\btxauthorfield#1{\clf_btxauthorfield \currentbtxauthorindex{#1}}
395\permanent\def\btxdoifelse #1{\clf_btxdoifelse {\currentbtxdataset}{\currentbtxtag}{#1}}
396\permanent\def\btxdoif #1{\clf_btxdoif {\currentbtxdataset}{\currentbtxtag}{#1}}
397\permanent\def\btxdoifnot #1{\clf_btxdoifnot {\currentbtxdataset}{\currentbtxtag}{#1}}
398
399\aliased\let\btxsetup\fastsetup
400
401\permanent\def\btxrawfield #1{\clf_btxfield {\currentbtxdataset}{\currentbtxtag}{#1}}
402
403\permanent\def\btxfield #1{\dostarttagged\t!pubfld{#1}\clf_btxfield {\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
404\permanent\def\btxdetail #1{\dostarttagged\t!pubfld{#1}\clf_btxdetail{\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
405\permanent\def\btxflush #1{\dostarttagged\t!pubfld{#1}\clf_btxflush {\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
406\permanent\def\btxdirect #1{\dostarttagged\t!pubfld{#1}\clf_btxdirect{\currentbtxdataset}{\currentbtxtag}{#1}\dostoptagged}
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423\permanent\protected\def\btxspace {\removeunwantedspaces\space}
424\permanent\protected\def\btxnobreakspace {\removeunwantedspaces\nobreakspace}
425\permanent\protected\def\btxnbsp {\removeunwantedspaces\nbsp}
426\permanent\protected\def\btxperiod {\removeunwantedspaces.\space}
427\permanent\protected\def\btxcomma {\removeunwantedspaces,\space}
428\permanent\protected\def\btxcommabreak {\removeunwantedspaces,\hskip\zeropoint plus .5\emwidth\relax}
429\permanent\protected\def\btxcolon {\removeunwantedspaces:\space}
430\permanent\protected\def\btxsemicolon {\removeunwantedspaces;\space}
431\permanent\protected\def\btxlparent {\removeunwantedspaces\space(}
432\permanent\protected\def\btxrparent {\removeunwantedspaces)\space}
433\permanent\protected\def\btxleftparenthesis {\removeunwantedspaces\space(}
434\permanent\protected\def\btxrightparenthesis {\removeunwantedspaces)\space}
435\permanent\protected\def\btxrightparenthesisperiod{\removeunwantedspaces).\space}
436\permanent\protected\def\btxrightparenthesiscomma {\removeunwantedspaces),\space}
437\permanent\protected\def\btxleftbracket {\removeunwantedspaces\space[}
438\permanent\protected\def\btxrightbracket {\removeunwantedspaces]\space}
439\permanent\protected\def\btxrightbracketperiod {\removeunwantedspaces].\space}
440\permanent\protected\def\btxrightbracketcomma {\removeunwantedspaces],\space}
441
442
443
444\mutable\let\currentbtxbacklink \empty \permanent\protected\def\btxsetbacklink {\def\currentbtxbacklink}
445\mutable\let\currentbtxcategory \empty \permanent\protected\def\btxsetcategory {\def\currentbtxcategory}
446\mutable\let\currentbtxcombis \empty \permanent\protected\def\btxsetcombis {\def\currentbtxcombis}
447\mutable\let\currentbtxdataset \empty \permanent\protected\def\btxsetdataset {\def\currentbtxdataset}
448\mutable\let\currentbtxfirst \empty \permanent\protected\def\btxsetfirst {\def\currentbtxfirst}
449\mutable\let\currentbtxsecond \empty \permanent\protected\def\btxsetsecond {\def\currentbtxsecond}
450\mutable\let\currentbtxsuffix \empty \permanent\protected\def\btxsetsuffix {\def\currentbtxsuffix}
451\mutable\let\currentbtxinternal \empty \permanent\protected\def\btxsetinternal {\def\currentbtxinternal}
452\mutable\let\currentbtxlefttext \empty \permanent\protected\def\btxsetlefttext {\def\currentbtxlefttext}
453\mutable\let\currentbtxrighttext \empty \permanent\protected\def\btxsetrighttext {\def\currentbtxrighttext}
454\mutable\let\currentbtxbefore \empty \permanent\protected\def\btxsetbefore {\def\currentbtxbefore}
455\mutable\let\currentbtxafter \empty \permanent\protected\def\btxsetafter {\def\currentbtxafter}
456\mutable\let\currentbtxlanguage \empty \permanent\protected\def\btxsetlanguage {\def\currentbtxlanguage}
457\mutable\let\currentbtxtag \empty \permanent\protected\def\btxsettag {\def\currentbtxtag}
458\mutable\let\currentbtxnumber \empty \permanent\protected\def\btxsetnumber {\def\currentbtxnumber}
459\mutable\let\currentbtxfirstinternal\empty \permanent\protected\def\btxsetfirstinternal{\def\currentbtxfirstinternal}
460\mutable\let\currentbtxlastinternal \empty \permanent\protected\def\btxsetlastinternal {\def\currentbtxlastinternal}
461
462\mutable\let\currentbtxauthorvariant\v!normal \permanent\protected\def\btxsetauthorvariant{\def\currentbtxauthorvariant}
463\mutable\let\currentbtxfirstnames \empty \permanent\protected\def\btxsetfirstnames {\let\currentbtxfirstnames\currentbtxfirstnamesindeed}
464\mutable\let\currentbtxinitials \empty \permanent\protected\def\btxsetinitials {\let\currentbtxinitials \currentbtxinitialsindeed }
465\mutable\let\currentbtxjuniors \empty \permanent\protected\def\btxsetjuniors {\let\currentbtxjuniors \currentbtxjuniorsindeed }
466\mutable\let\currentbtxsurnames \empty \permanent\protected\def\btxsetsurnames {\let\currentbtxsurnames \currentbtxsurnamesindeed }
467\mutable\let\currentbtxvons \empty \permanent\protected\def\btxsetvons {\let\currentbtxvons \currentbtxvonsindeed }
468
469\newconstant\currentbtxoverflow \permanent\protected\def\btxsetoverflow #1{\currentbtxoverflow #1\relax}
470\newconstant\currentbtxconcat \permanent\protected\def\btxsetconcat #1{\currentbtxconcat #1\relax}
471\newconstant\currentbtxcount \permanent\protected\def\btxsetcount #1{\currentbtxcount #1\relax}
472\newconstant\currentbtxauthorindex
473\newconstant\currentbtxauthorcount
474\newconstant\currentbtxauthorstate \permanent\protected\def\btxsetauthorstate#1{\currentbtxauthorstate#1\relax}
475
476\protected\def\currentbtxfirstnamesindeed{\clf_btxcurrentfirstnames\numexpr\currentbtxauthorindex\relax}
477\protected\def\currentbtxinitialsindeed {\clf_btxcurrentinitials \numexpr\currentbtxauthorindex\relax}
478\protected\def\currentbtxjuniorsindeed {\clf_btxcurrentjuniors \numexpr\currentbtxauthorindex\relax}
479\protected\def\currentbtxsurnamesindeed {\clf_btxcurrentsurnames \numexpr\currentbtxauthorindex\relax}
480\protected\def\currentbtxvonsindeed {\clf_btxcurrentvons \numexpr\currentbtxauthorindex\relax}
481
482\mutable\let\currentbtxfirstpage \empty \permanent\protected\def\btxsetfirstpage#1{\def\currentbtxfirstpage{\btx_page_number{#1}}}
483\mutable\let\currentbtxlastpage \empty \permanent\protected\def\btxsetlastpage #1{\def\currentbtxlastpage {\btx_page_number{#1}}}
484
485\mutable\let\currentbtxfield \empty
486\mutable\let\currentbtxfielddoi \empty
487\mutable\let\currentbtxfieldmonth \empty
488\mutable\let\currentbtxfieldyear \empty
489\mutable\let\currentbtxfieldurl \empty
490\mutable\let\currentbtxcriterium \empty
491\mutable\let\currentbtxlist \empty
492\mutable\let\currentbtxlistentry \empty
493\mutable\let\currentbtxlistindex \empty
494\mutable\let\currentbtxreference \empty
495\mutable\let\currentbtxrenderingtitle \empty
496\mutable\let\currentbtxcitetag \empty
497
498\mutable\def\currentbtxauthorvariant{normal}
499
500\protected\def\btx_reset_list
501 {\let\currentbtxcombis \empty
502 \let\currentbtxcategory \empty
503 \let\currentbtxinternal \empty
504 \let\currentbtxlefttext \empty
505 \let\currentbtxrighttext\empty
506 \let\currentbtxbefore \empty
507 \let\currentbtxafter \empty
508 \let\currentbtxbacklink \empty
509 \let\currentbtxlanguage \empty
510 \let\currentbtxsuffix \empty
511
512
513 \let\currentbtxnumber \empty}
514
515\protected\def\btx_reset_cite
516 {\let \currentbtxfirst \empty
517 \let \currentbtxsecond \empty
518 \let \currentbtxsuffix \empty
519 \let \currentbtxinternal \empty
520 \let \currentbtxlefttext \empty
521 \let \currentbtxrighttext \empty
522 \let \currentbtxbefore \empty
523 \let \currentbtxafter \empty
524 \let \currentbtxbacklink \empty
525 \let \currentbtxlanguage \empty
526
527
528 \let \currentbtxnumber \empty
529 \setconstant\currentbtxoverflow \zerocount
530 \setconstant\currentbtxconcat \zerocount
531 \setconstant\currentbtxcount \zerocount}
532
533\protected\def\btx_reset_page
534 {\let \currentbtxfirstpage \empty
535 \let \currentbtxlastpage \empty
536 \let \currentbtxfirstinternal\empty
537 \let \currentbtxlastinternal \empty
538 \setconstant\currentbtxoverflow \zerocount
539 \setconstant\currentbtxconcat \zerocount
540 \setconstant\currentbtxcount \zerocount}
541
542\protected\def\btx_reset_numbering
543 {\let \currentbtxfirst \empty
544 \let \currentbtxsecond\empty
545 \let \currentbtxsuffix\empty
546 \setconstant\currentbtxconcat\zerocount}
547
548
549
550\protected\def\btx_page_number#1
551 {\def\currentlistindex{#1}
552 \structurelistpagenumber}
553
554
555
556\mutable\def\mainbtxlanguage{\currentmainlanguage}
557
558\protected\def\btx_check_language
559 {\let\mainbtxlanguage\currentlanguage
560 \ifempty\currentbtxlanguage
561 \let\currentbtxlanguage\currentlanguage
562 \else
563 \btx_check_language_indeed
564 \fi}
565
566\protected\def\btx_check_language_indeed
567 {\edef\currentbtxlanguage{\reallanguagetag\currentbtxlanguage}
568 \ifempty\currentbtxlanguage
569 \let\currentbtxlanguage\currentlanguage
570 \orelse\ifx\currentbtxlanguage\currentlanguage\else
571 \setcurrentlanguage\currentmainlanguage\currentbtxlanguage
572 \fi}
573
574
575
576\newconditional\c_btx_trace
577
578\installtextracker
579 {btxrendering}
580 {\settrue \c_btx_trace}
581 {\setfalse\c_btx_trace}
582
583
584
585\permanent\protected\def\btxtodo#1{[#1]}
586
587
588
589\newdimen\d_publ_number_width
590
591\ifdefined\btxblock \else \newcount\btxblock \fi \btxblock\plusone
592\ifdefined\btxcitecounter \else \newcount\btxcitecounter \fi
593
594\newtoks\everysetupbtxlistplacement
595\newtoks\everysetupbtxciteplacement
596
597\definelist
598 [\s!btx]
599
600\setuplist
601 [\s!btx]
602 [\c!prefixstopper=:,
603 \c!state=\v!start,
604 \c!alternative=a,
605 \c!interaction=\v!none,
606
607
608
609 \c!before=\blank,
610 \c!after=\blank]
611
612\permanent\tolerant\protected\def\setupbtxlist[#1]#*[#2]
613 {\ifarguments\or
614 \setuplist[\s!btx][#1]
615 \or
616 \setuplist[\s!btx:#1][#2]
617 \fi}
618
619\appendtoks
620 \ifempty\currentbtxrenderingparent
621 \definelist
622 [\s!btx:\currentbtxrendering]
623 [\s!btx]
624 \orelse\ifx\currentbtxrenderingparent\s!btx
625 \definelist
626 [\s!btx:\currentbtxrendering]
627 [\s!btx]
628 \else
629 \definelist
630 [\s!btx:\currentbtxrendering]
631 [\s!btx:\currentbtxrenderingparent]
632 \fi
633\to \everydefinebtxrendering
634
635\newconditional\c_btx_list_texts
636
637\appendtoks
638 \doifelse{\btxrenderingparameter\c!textstate}\v!start
639 \settrue\setfalse\c_btx_list_texts
640\to \everysetupbtxlistplacement
641
642\newconditional\c_btx_list_pages
643
644\appendtoks
645 \doifelse{\btxrenderingparameter\c!pagestate}\v!start
646 \settrue\setfalse\c_btx_list_pages
647\to \everysetupbtxlistplacement
648
649\protected\def\btx_entry_inject_pages
650 {\dontleavehmode
651 \begingroup
652 \setbtxlist
653 \btx_reset_page
654 \setbtxparameterset\s!list\s!page
655 \btxparameter\c!command
656 {\usebtxstyleandcolor\c!style\c!color
657 \btxparameter\c!left
658 \clf_btxflushpages{\currentbtxdataset}{\currentbtxtag}
659 \btxparameter\c!right}
660 \endgroup}
661
662\permanent\protected\def\btxpagesetup#1
663 {\begingroup
664 \publ_fast_setup\plusfive\s!list\s!page
665 \endgroup
666 \btx_reset_page}
667
668\permanent\protected\def\btxnumberingsetup#1
669 {\begingroup
670 \dostarttagged\t!listtag\empty
671 \setbtxparameterset{\c!list:\s!numbering}\currentbtxnumbering
672 \btxparameter\c!left
673 \publ_fast_setup\plusthree{\s!list:\s!numbering}{#1}
674 \btxparameter\c!right
675 \dostoptagged
676 \endgroup
677 \btx_reset_numbering}
678
679
680
681\permanent\protected\def\btxflushlisttext
682 {\begingroup
683 \usebtxstyleandcolor\c!style\c!color
684 \ignorespaces
685 \publ_fast_setup\plusfour\s!list\currentbtxcategory
686 \removeunwantedspaces
687 \endgroup}
688
689\permanent\protected\def\btxflushlistcombis
690 {\begingroup
691 \processcommacommand[\currentbtxcombis]\btx_entry_inject_combi
692 \endgroup}
693
694\def\btx_entry_inject_list_text
695 {\publ_fast_setup\plusfour\s!list\s!text}
696
697\ifdefined\dotagpublication \else \aliased\let\dotagpublication\gobbletwoarguments \fi
698
699\protected\def\btx_entry_inject
700 {\begingroup
701 \dostarttagged\t!publication\empty
702 \dotagpublication\currentbtxdataset\currentbtxtag
703 \redoconvertfont
704 \edef\currentbtxcategory{\btxrawfield{category}}
705 \ignorespaces
706 \ifconditional\c_btx_list_texts
707 \dostarttagged\t!listtext\s!left
708 \currentbtxbefore
709 \dostoptagged
710 \fi
711
712 \btx_entry_inject_list_text
713
714 \ifconditional\c_btx_list_pages
715 \dostarttagged\t!listpage\empty
716 \btx_entry_inject_pages
717 \dostoptagged
718 \fi
719 \ifconditional\c_btx_list_texts
720 \dostarttagged\t!listtext\s!right
721 \currentbtxafter
722 \dostoptagged
723 \fi
724 \dostoptagged
725 \endgroup}
726
727\permanent\tolerant\protected\def\btxshowentryinline[#1]#*[#2]
728 {\ifarguments
729 \ctxcommand{showbtxentry("\currentbtxdataset","\currentbtxtag")}
730 \or
731 \ctxcommand{showbtxentry("\currentbtxdataset","#1")}
732 \or
733 \ctxcommand{showbtxentry("#1","#2")}
734 \fi}
735
736\permanent\protected\def\btxstartcombientry
737 {\begingroup}
738
739\permanent\protected\def\btxstopcombientry
740 {\endgroup}
741
742\permanent\protected\def\btxhandlecombientry
743 {\btx_reference_indeed}
744
745\def\btx_entry_inject_combi#1
746 {\begingroup
747 \def\currentbtxtag{#1}
748 \ignorespaces
749 \publ_fast_setup\plusfour\s!list\currentbtxcategory
750 \removeunwantedspaces
751 \endgroup}
752
753
754
755
756
757
758
759
760
761
762
763
764
765\newtoks\everybtxlistrendering
766
767\appendtoks
768 \setbtxlist
769
770 \edef\currentbtxcriterium{\btxrenderingparameter\c!criterium}
771 \ifempty\currentbtxcriterium
772 \let\currentbtxcriterium\v!previous
773 \orelse\ifx\currentbtxcriterium\v!cite
774 \let\currentbtxcriterium\v!here
775 \fi
776
777 \iflocation
778 \letinteractionparameter\c!style\empty
779
780
781 \fi
782\to \everybtxlistrendering
783
784\mutable\let\nofbtxlistentries \!!zerocount
785\mutable\let\currentbtxlistentry\!!zerocount
786\mutable\let\currentbtxlistindex\!!zerocount
787
788\newconditional\c_publ_prefixed
789
790\permanent\protected\def\btxsetnoflistentries #1{\edef\nofbtxlistentries {#1}}
791\permanent\protected\def\btxsetcurrentlistentry#1{\edef\currentbtxlistentry{#1}}
792\permanent\protected\def\btxsetcurrentlistindex#1{\edef\currentbtxlistindex{#1}}
793
794\permanent\protected\def\btxdoifelsesameaspreviouschecked#1#2
795 {\clf_btxdoifelsesameasprevious
796 {\currentbtxdataset}
797 \currentbtxlistentry
798 {#2}
799 \c_btx_list_reference
800 {#1}}
801
802\permanent\protected\def\btxdoifelsesameasprevious
803 {\btxdoifelsesameaspreviouschecked\v!doublesided}
804
805\permanent\protected\def\btxdoifelsecombiinlist#1#2
806 {\clf_btxdoifelsecombiinlist{#1}{#2}}
807
808\permanent\protected\def\btxdoifelsecitedone#1#2
809 {\clf_btxdoifelsecitedone{#1}{#2}}
810
811\aliased\let\btxdoifsameaspreviouscheckedelse\btxdoifelsesameaspreviouschecked
812\aliased\let\btxdoifsameaspreviouselse \btxdoifelsesameasprevious
813\aliased\let\btxdoifcombiinlistelse \btxdoifelsecombiinlist
814\aliased\let\btxdoifcitedoneelse \btxdoifelsecitedone
815
816\tolerant\def\publ_place_list_indeed#1#2#*[#3]#*[#4]
817 {\begingroup
818 \ifparameters\or\or
819 \let\currentbtxrendering\currentbtxspecification
820 \or
821 \ifhastok={#3}
822
823 \let\currentbtxrendering\currentbtxspecification
824 \setupcurrentbtxrendering[#3]
825 \edef\p_specification{\btxrenderingparameter\c!specification}
826 \ifempty\p_specification\else
827 \let\currentbtxspecification\p_specification
828 \let\currentbtxrendering\currentbtxspecification
829 \fi
830 \else
831 \edef\currentbtxrendering{#3}
832 \edef\p_specification{\btxrenderingparameter\c!specification}
833 \ifempty\p_specification\else
834 \let\currentbtxspecification\p_specification
835 \fi
836 \fi
837 \or
838
839 \edef\currentbtxrendering{#3}
840 \setupcurrentbtxrendering[#4]
841 \edef\p_specification{\btxrenderingparameter\c!specification}
842 \ifempty\p_specification\else
843 \let\currentbtxspecification\p_specification
844 \fi
845 \fi
846 \setbtxparameterset\currentbtxspecification\s!list
847 \the\everybtxlistrendering
848 \ifconditional#1\relax
849 \edef\currentbtxrenderingtitle{\btxrenderingparameter\c!title}
850 \ifempty\currentbtxrenderingtitle
851 \normalexpanded{\startnamedsection[\v!chapter][\c!reference=\currentbtxrendering,\c!title={\headtext{\currentbtxrendering}}]}
852 \else
853 \normalexpanded{\startnamedsection[\v!chapter][\c!reference=\currentbtxrendering,\c!title={\currentbtxrenderingtitle}]}
854 \fi
855 \fi
856 \ifempty\currentbtxrendering
857 \setbtxrendering
858 \fi
859 \edef\currentbtxdataset{\btxrenderingparameter\c!dataset}
860 \uselanguageparameter\btxdatasetparameter
861 \setbtxlist
862 \the\everystructurelist
863 \the\everysetupbtxlistplacement
864
865
866 \clf_btxcollectlistentries
867 names {\s!btx}
868 criterium {\currentbtxcriterium}
869 reference {\btxrenderingparameter\c!reference}
870 method {\btxrenderingparameter\c!method}
871 dataset {\currentbtxdataset}
872 keyword {\btxrenderingparameter\c!keyword}
873 sorttype {\btxrenderingparameter\c!sorttype}
874 repeated {\btxrenderingparameter\c!repeat}
875 ignored {\btxrenderingparameter\c!ignore}
876 group {\btxrenderingparameter\c!group}
877 filter {\btxrenderingparameter\c!filter}
878 \relax
879 \ifnum\nofbtxlistentries>\zerocount
880 \forgetall
881 \btxrenderingparameter\c!before
882 \ifconditional#2\relax
883 \edef\p_command{\btxrenderingparameter\c!command}
884 \ifempty\p_command
885 \edef\p_setups{\btxrenderingparameter\c!setups}
886 \ifempty\p_setups
887 \else
888 \directsetup{\p_setups}
889 \fi
890 \else
891 \expandafter\p_command\expandafter{\number\nofbtxlistentries}\relax
892 \fi
893 \else
894 \dostarttagged\t!publications\currentbtxrendering
895 \dostarttagged\t!list{btx}
896 \startpacked[\v!blank]
897
898 \clf_btxpreparelistentries{\currentbtxdataset}
899
900 \ifempty\currentbtxnumbering \else
901 \edef\p_width{\listparameter\c!width}
902 \ifx\p_width\v!auto
903 \setbox\scratchbox\vbox \bgroup
904 \settrialtypesetting
905 \clf_btxfetchlistentries{\currentbtxdataset}
906 \egroup
907 \d_publ_number_width\wd\scratchbox
908 \letlistparameter\c!width\d_publ_number_width
909 \fi
910 \fi
911 \doifelse{\listparameter\c!prefix}\v!yes\settrue\setfalse\c_publ_prefixed
912
913
914 \dorecurse\nofbtxlistentries
915 {\let\currentbtxlistentry\recurselevel
916 \clf_btxflushlistentry{\currentbtxdataset}\currentbtxlistentry\relax}
917 \stoppacked
918 \dostoptagged
919 \dostoptagged
920 \fi
921 \btxrenderingparameter\c!after
922 \fi
923 \ifconditional#1\relax
924 \stopnamedsection
925 \fi
926 \global\advance\btxblock\plusone
927 \endgroup}
928
929\permanent\protected\def\placebtxrendering {\publ_place_list_indeed\conditionalfalse\conditionalfalse}
930\permanent\protected\def\completebtxrendering{\publ_place_list_indeed\conditionaltrue \conditionalfalse}
931\permanent\protected\def\flushbtxrendering {\publ_place_list_indeed\conditionalfalse\conditionaltrue }
932
933\aliased\let\completelistofpublications\completebtxrendering
934\aliased\let\placelistofpublications \placebtxrendering
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966\permanent\protected\def\btxsetlisttag#1
967 {\clf_btxflushlisttag{\currentbtxdataset}#1\relax}
968
969\newcount\c_btx_list_index
970
971\let\m_btx_list_action\empty
972
973\def\publ_flush_list_step_command
974 {\btxsetlisttag{\c_btx_list_index}
975 \expandafter\m_btx_list_action\expandafter{\currentbtxtag}
976 \ifnum\c_btx_list_index<\nofbtxlistentries
977 \advance\c_btx_list_index\plusone
978 \expandafter\publ_flush_list_step_command
979 \else
980 \glet\m_btx_list_action\relax
981 \fi}
982
983\def\publ_flush_list_step_setup
984 {\btxsetlisttag{\c_btx_list_index}
985 \directsetup{\m_btx_list_action}
986 \ifnum\c_btx_list_index<\nofbtxlistentries
987 \advance\c_btx_list_index\plusone
988 \expandafter\publ_flush_list_step_setup
989 \else
990 \glet\m_btx_list_action\relax
991 \fi}
992
993\permanent\protected\def\flushbtxentries[#1]
994 {\begingroup
995 \getdummyparameters[\c!command=,\c!setups=,#1]
996 \xdef\m_btx_list_action{\dummyparameter\c!command}
997 \ifempty\m_btx_list_action
998 \xdef\m_btx_list_action{\dummyparameter\c!setups}
999 \ifempty\m_btx_list_action
1000 \endgroup
1001 \c_btx_list_index\zerocount
1002 \else
1003 \endgroup
1004 \c_btx_list_index\plusone
1005 \doubleexpandafter\publ_flush_list_step_command
1006 \fi
1007 \else
1008 \endgroup
1009 \c_btx_list_index\plusone
1010 \expandafter\publ_flush_list_step_command
1011 \fi}
1012
1013
1014
1015\permanent\def\currentbtxblock{\number\btxblock}
1016
1017
1018
1019\permanent\protected\def\btxchecklistentry
1020 {\begingroup
1021
1022 \hbox{\btx_reference_checked}
1023 \par
1024 \endgroup}
1025
1026
1027
1028
1029
1030\installstructurelistprocessor{\s!btx}
1031 {\let\currentlistentrynumber \btx_reference_indeed
1032 \let\currentlistentrytitle \btx_entry_indeed
1033 \let\currentlistentrypagenumber\btx_page_indeed
1034 \strc_lists_apply_renderingsetup}
1035
1036\def\btx_entry_indeed
1037 {\dostarttagged\t!listcontent\empty
1038 \btx_list_reference_inject
1039 \btx_entry_inject
1040 \dostoptagged}
1041
1042\def\btx_page_indeed
1043 {}
1044
1045\permanent\protected\def\btxhandlelistentry
1046 {\strc_lists_entry_process}
1047
1048\permanent\protected\def\btxstartlistentry
1049 {\begingroup
1050 \global\advance\c_btx_list_reference\plusone}
1051
1052\permanent\protected\def\btxstoplistentry
1053 {\iftrialtypesetting
1054 \global\advance\c_btx_list_reference\minusone
1055 \fi
1056 \endgroup}
1057
1058\newtoks\everybtxlistentry
1059
1060\permanent\protected\def\btxlistsetup#1
1061 {\the\everybtxlistentry
1062 \everybtxlistentry\emptytoks
1063 \publ_fast_setup\plusfour\s!list{#1}}
1064
1065\appendtoks
1066 \btx_check_language
1067\to \everybtxlistentry
1068
1069\protected\def\btx_reference_indeed
1070 {\begingroup
1071
1072 \setbtxparameterset{\c!list:\s!numbering}\currentbtxnumbering
1073
1074 \ifempty\currentbtxnumbering
1075
1076 \orelse\ifx\currentbtxnumbering\v!no
1077
1078 \else
1079 \usebtxstyleandcolor\c!style\c!color
1080 \ifconditional\c_publ_prefixed\btxlistprefixednumber\fi
1081 \clf_btxlistvariant
1082 {\currentbtxdataset}
1083 {\currentbtxblock}
1084 {\currentbtxtag}
1085 {\currentbtxnumbering}
1086 {\currentbtxnumber}
1087 \relax
1088 \fi
1089 \endgroup}
1090
1091\permanent\protected\def\btxlistprefixednumber
1092 {\clf_listprefixednumber
1093 {\currentlist}
1094 \currentbtxlistindex
1095 {
1096 prefix {\listparameter\c!prefix}
1097 separatorset {\listparameter\c!prefixseparatorset}
1098 conversionset {\listparameter\c!prefixconversionset}
1099 starter {\listparameter\c!prefixstarter}
1100 stopper {\listparameter\c!prefixstopper}
1101 set {\listparameter\c!prefixset}
1102 segments {\listparameter\c!prefixsegments}
1103 connector {\listparameter\c!prefixconnector}
1104 }
1105 \relax}
1106
1107\protected\def\btx_reference_checked
1108 {\dontleavehmode\hbox\bgroup
1109 \btx_reference_indeed
1110 \egroup}
1111
1112\newcount\c_btx_list_reference
1113
1114\protected\def\btx_list_reference_inject
1115 {\dontleavehmode\begingroup
1116 \iftrialtypesetting\else
1117 \btx_list_reference_inject_now
1118 \fi
1119
1120 \endgroup}
1121
1122\def\btx_list_reference_inject_now
1123 {\strc_references_direct_full_user
1124 {\ifx\currentbtxdataset\v!default\else\s!btxset=\currentbtxdataset,\fi
1125 \s!btxref=\currentbtxtag,
1126 \s!btxspc=\currentbtxspecification,
1127 \s!btxlst=\number\c_btx_list_reference,
1128
1129 \ifempty\currentbtxbefore \else\s!btxbtx={\currentbtxbefore},\fi
1130 \ifempty\currentbtxafter \else\s!btxatx={\currentbtxafter },\fi
1131 \ifempty\currentbtxbacklink\else\s!btxint=\number\currentbtxbacklink\fi
1132 }
1133 {\s!btx::\v!list::\number\c_btx_list_reference}
1134 {\currentbtxnumber}}
1135
1136\newconditional\c_btx_cite_reference_injected
1137
1138\permanent\protected\def\btx_cite_reference_inject
1139 {\ifconditional\c_btx_cite_reference_injected \else
1140 \dontleavehmode
1141 \iftrialtypesetting \else
1142 \ifempty\currentbtxbacklink
1143
1144 \orelse\ifnum\currentbtxbacklink>\zerocount
1145 \btx_cite_reference_inject_indeed
1146 \settrue\c_btx_cite_reference_injected
1147 \fi
1148 \fi
1149 \fi}
1150
1151\newtoks\t_btx_reference_inject
1152
1153\def\btx_cite_reference_inject_indeed
1154 {\the\t_btx_reference_inject
1155 \strc_lists_inject_direct
1156 [\s!btx]
1157 [\c!type=\s!btx]
1158 [\ifx\currentbtxdataset\v!default\else\s!btxset=\currentbtxdataset,\fi
1159 \s!btxref=\currentbtxtag,
1160
1161 \ifempty\currentbtxbefore \else\s!btxbtx={\currentbtxbefore},\fi
1162 \ifempty\currentbtxafter \else\s!btxatx={\currentbtxafter },\fi
1163 \ifempty\currentbtxbacklink\else\s!btxint=\number\currentbtxbacklink,\fi
1164 \ifempty\currentbtxciteuservariables\else,\currentbtxciteuservariables\fi]}
1165
1166\permanent\def\currentbtxuservariable #1{\clf_btxuservariable {\currentbtxdataset}{#1}}
1167\permanent\def\btxdoifelseuservariable#1{\clf_btxdoifelseuservariable{\currentbtxdataset}{#1}}
1168
1169\aliased\let\btxdoifuservariableelse\btxdoifelseuservariable
1170
1171\aliased\let\btxcitereference\btx_cite_reference_inject
1172
1173\mutable\let\currentbtxnumbering \empty
1174\mutable\let\currentbtxcitealternative \empty
1175
1176\appendtoks
1177 \edef\currentbtxnumbering{\btxrenderingparameter\c!numbering}
1178 \ifx\currentbtxnumbering\v!yes
1179 \def\currentbtxnumbering{num}
1180 \letbtxrenderingparameter\c!numbering\currentbtxnumbering
1181 \letlistparameter\c!headnumber\v!always
1182 \orelse\ifx\currentbtxnumbering\v!no
1183 \letlistparameter\c!headnumber\v!no
1184 \let\currentbtxnumbering\empty
1185
1186 \letlistparameter\c!symbol \v!none
1187 \letlistparameter\c!aligntitle \v!yes
1188 \letlistparameter\c!numbercommand\firstofoneargument
1189 \else
1190 \letlistparameter\c!headnumber\v!always
1191 \fi
1192 \let\currentlistmethod\s!btx
1193\to \everysetupbtxlistplacement
1194
1195\permanent\tolerant\protected\def\btxremapauthor[#1]#*[#2]
1196 {\clf_btxremapauthor{#1}{#2}}
1197
1198\permanent\protected\def\btxshowauthorremapping
1199 {\clf_btxshowauthorremapping}
1200
1201\permanent\protected\def\btxflushauthor
1202 {\doifelsenextoptionalcs\btx_flush_author_yes\btx_flush_author_nop}
1203
1204\permanent\protected\def\btxflushsuffix
1205 {\ifempty\currentbtxsuffix
1206
1207 \else
1208 \characters{\currentbtxsuffix}
1209 \fi}
1210
1211\def\btx_flush_author_yes[#1]{\btx_flush_author{#1}}
1212\def\btx_flush_author_nop {\btx_flush_author{\btxparameter\c!authorconversion}}
1213
1214\protected\def\btx_flush_author#1#2
1215 {\begingroup
1216 \edef\currentbtxfield{#2}
1217 \setbtxparameterset\s!list\currentbtxfield
1218
1219 \clf_btxauthor
1220 {\currentbtxdataset}
1221 {\currentbtxtag}
1222 {\currentbtxfield}
1223 {
1224 combiner {#1}
1225 kind {list}
1226 etallimit {\btxparameter\c!etallimit}
1227 etaldisplay {\btxparameter\c!etaldisplay}
1228 etaloption {\btxparameter\c!etaloption}
1229 symbol {\btxparameter{\c!stopper:initials}}
1230 connector {\btxparameter{\c!connector:initials}}
1231 }
1232 \relax
1233 \endgroup}
1234
1235
1236
1237\permanent\protected\def\btxflushauthorname {\btx_flush_author{name}}
1238\permanent\protected\def\btxflushauthornormal {\btx_flush_author{normal}}
1239\permanent\protected\def\btxflushauthornormalshort {\btx_flush_author{normalshort}}
1240\permanent\protected\def\btxflushauthorinverted {\btx_flush_author{inverted}}
1241\permanent\protected\def\btxflushauthorinvertedshort{\btx_flush_author{invertedshort}}
1242
1243\mutable\let\currentbtxauthorfield\s!author
1244
1245\permanent\protected\def\btxsetauthorfield#1{\edef\currentbtxauthorfield{#1}}
1246
1247\permanent\protected\def\currentbtxciteauthorbyfield
1248 {\begingroup
1249
1250
1251
1252 \setbtxparameterset\s!cite\currentbtxcitealternative
1253 \clf_btxauthor
1254 {\currentbtxdataset}
1255 {\currentbtxtag}
1256 {\currentbtxauthorfield}
1257 {
1258 combiner {\btxparameter\c!authorconversion}
1259 kind {cite}
1260 etallimit {\btxparameter\c!etallimit}
1261 etaldisplay {\btxparameter\c!etaldisplay}
1262 etaloption {\btxparameter\c!etaloption}
1263 symbol {\btxparameter{\c!stopper:initials}}
1264 }
1265 \relax
1266 \endgroup}
1267
1268\permanent\protected\def\currentbtxciteauthor
1269 {\let\currentbtxauthorfield\s!author
1270 \currentbtxciteauthorbyfield}
1271
1272\permanent\protected\def\btxstartauthor#1#2#3
1273 {\begingroup
1274 \currentbtxauthorindex#1\relax
1275 \currentbtxauthorcount#2\relax
1276 \currentbtxauthorstate#3\relax}
1277
1278\permanent\protected\def\btxstopauthor
1279 {\endgroup}
1280
1281\permanent\protected\def\btxciteauthorsetup#1{\fastsetup{\s!btx:\s!cite:\s!author:#1}}
1282\permanent\protected\def\btxlistauthorsetup#1{\fastsetup{\s!btx:\s!list:\s!author:#1}}
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301\newconditional\btxinteractive
1302\newconditional\btxinteractivenumber
1303\newconditional\btxinteractivetext
1304\newconditional\btxinteractivepage
1305
1306\mutable\let\currentbtxinteraction\empty
1307
1308\installcorenamespace{btxinteraction}
1309
1310\defcsname\??btxinteraction\v!number\endcsname{\settrue\btxinteractivenumber}
1311\defcsname\??btxinteraction\v!text \endcsname{\settrue\btxinteractivetext}
1312\defcsname\??btxinteraction\v!page \endcsname{\settrue\btxinteractivepage}
1313\defcsname\??btxinteraction\v!all \endcsname{\settrue\btxinteractivenumber
1314 \settrue\btxinteractivetext
1315 \settrue\btxinteractivepage}
1316
1317
1318
1319
1320\appendtoks
1321 \iflocation
1322 \edef\currentbtxinteraction{\btxparameter\c!interaction}
1323 \ifx\currentbtxinteraction\v!stop
1324 \setfalse\btxinteractive
1325 \else
1326 \enforced\let\structurelistlocation\empty
1327 \settrue\btxinteractive
1328 \begincsname\??btxinteraction\currentbtxinteraction\endcsname
1329 \fi
1330 \else
1331 \setfalse\btxinteractive
1332 \fi
1333\to \everysetupbtxlistplacement
1334
1335\appendtoks
1336 \iflocation
1337 \edef\currentbtxinteraction{\btxparameter\c!interaction}
1338 \ifx\currentbtxinteraction\v!stop
1339 \setfalse\btxinteractive
1340 \else
1341 \settrue\btxinteractive
1342 \fi
1343 \else
1344 \setfalse\btxinteractive
1345 \fi
1346\to \everysetupbtxciteplacement
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379\let\p_publ_cite_before \empty
1380\let\p_publ_cite_after \empty
1381\let\p_publ_cite_lefttext \empty
1382\let\p_publ_cite_righttext\empty
1383
1384\mutable\let\currentbtxciteuservariables\empty
1385\mutable\let\currentbtxcitealternative \empty
1386
1387\permanent\protected\def\btxhybridcite
1388 {\dontleavehmode
1389 \begingroup
1390 \strictdoifelsenextoptional\publ_cite_tags_options\publ_cite_tags_indeed}
1391
1392\protected\def\publ_cite_tags_options[#1]
1393 {\strictdoifelsenextoptional{\publ_cite_tags_options_indeed{#1}}{\publ_cite_tags_indeed{#1}}}
1394
1395\protected\def\publ_cite_tags_indeed#1
1396 {\letinteractionparameter\c!style\empty
1397 \setbtxparametersetroot\s!cite
1398 \edef\currentbtxcitealternative{\btxparameter\c!alternative}
1399 \setbtxparameterset\s!cite\currentbtxcitealternative
1400 \edef\currentbtxcitetag{#1}
1401 \the\everysetupbtxciteplacement
1402 \publ_cite_variant
1403 \endgroup}
1404
1405\protected\def\publ_cite_tags_options_indeed#1
1406 {\doifelseassignment{#1}\publ_cite_tags_settings_indeed\publ_cite_tags_variants_indeed{#1}}
1407
1408\def\publ_cite_tags_settings_indeed#1[#2]
1409 {\letinteractionparameter\c!style\empty
1410
1411 \letdummyparameter\c!reference \empty
1412 \letdummyparameter\c!alternative\empty
1413 \letdummyparameter\c!before \empty
1414 \letdummyparameter\c!after \empty
1415 \letdummyparameter\c!lefttext \empty
1416 \letdummyparameter\c!righttext \empty
1417 \getdummyparameters[#1]
1418 \edef\p_reference{\dummyparameter\c!reference}
1419 \ifempty\p_reference
1420 \edef\currentbtxcitetag{#2}
1421 \else
1422 \let\currentbtxcitetag\p_reference
1423 \edef\currentbtxciteuservariables{#2}
1424 \fi
1425 \edef\p_specification{\dummyparameter\c!specification}
1426 \ifempty\p_specification
1427 \else
1428 \let\currentbtxspecification\p_specification
1429 \fi
1430 \edef\p_alternative{\dummyparameter\c!alternative}
1431 \ifempty\p_alternative
1432 \setbtxparametersetroot\s!cite
1433 \edef\currentbtxcitealternative{\btxparameter\c!alternative}
1434 \else
1435 \let\currentbtxcitealternative\p_alternative
1436 \fi
1437 \setbtxparameterset\s!cite\currentbtxcitealternative
1438 \setupcurrentbtx[#1]
1439
1440 \edef\p_publ_cite_before {\dummyparameter\c!before}
1441 \edef\p_publ_cite_after {\dummyparameter\c!after}
1442 \edef\p_publ_cite_lefttext {\dummyparameter\c!lefttext}
1443 \edef\p_publ_cite_righttext{\dummyparameter\c!righttext}
1444
1445 \the\everysetupbtxciteplacement
1446 \publ_cite_variant
1447 \endgroup}
1448
1449\def\publ_cite_tags_variants_indeed#1[#2]
1450 {\letinteractionparameter\c!style\empty
1451 \edef\currentbtxcitealternative{#1}
1452 \edef\currentbtxcitetag{#2}
1453 \setbtxparameterset\s!cite\currentbtxcitealternative
1454 \the\everysetupbtxciteplacement
1455 \publ_cite_variant
1456 \endgroup}
1457
1458\newconditional\btxcitecompress
1459
1460\mutable\let\currentbtxcitemethod\v!hidden
1461
1462\def\publ_cite_variant
1463 {\begingroup
1464 \publ_cite_handle_variant_indeed[\currentbtxcitetag]}
1465
1466\protected\def\publ_cite_handle_variant#1
1467 {\begingroup
1468 \edef\currentbtxcitealternative{#1}
1469 \setbtxparameterset\s!cite\currentbtxcitealternative
1470 \the\everysetupbtxciteplacement
1471 \publ_cite_handle_variant_indeed}
1472
1473\permanent\protected\def\publ_cite_handle_variant_blob
1474 {\clf_btxhandlecite
1475 dataset {\currentbtxdataset}
1476 reference {\currentbtxreference}
1477 method {\currentbtxcitemethod}
1478 variant {\currentbtxcitealternative}
1479 sorttype {\btxparameter\c!sorttype}
1480 compress {\btxparameter\c!compress}
1481 author {\btxparameter\c!author}
1482 authorconversion {\c!authorconversion}
1483 lefttext {\p_publ_cite_lefttext}
1484 righttext {\p_publ_cite_righttext}
1485 before {\p_publ_cite_before}
1486 after {\p_publ_cite_after}
1487 \relax
1488 \iftrialtypesetting\else
1489
1490 \fi}
1491
1492\aliased\let\dobtxcitevariantblob\publ_cite_handle_variant_blob
1493
1494\tolerant\def\publ_cite_handle_variant_indeed[#1]
1495 {\letbtxparameter\c!alternative\currentbtxcitealternative
1496 \edef\currentbtxreference{#1}
1497 \saverunningstyleandcolor
1498 \usebtxstyleandcolor\c!style\c!color
1499 \uselanguageparameter\btxdatasetparameter
1500 \btxparameter\c!left
1501 \btxparameter\c!command{\dobtxcitevariantblob}
1502 \btxparameter\c!right
1503 \endgroup}
1504
1505\permanent\protected\def\btxlistcitation {\publ_citation\v!list}
1506\permanent\protected\def\btxtextcitation {\publ_citation\v!text}
1507\permanent\protected\def\btxalwayscitation{\publ_citation\v!always}
1508
1509\tolerant\def\publ_citation#1[#2]#,[#3]
1510 {\dontleavehmode
1511 \begingroup
1512 \let\currentbtxcitemethod#1
1513 \ifparameter#3\or
1514 \publ_cite_tags_options_indeed{#2}[#3]
1515 \else
1516 \publ_cite_tags_indeed{#2}
1517 \fi}
1518
1519\permanent\tolerant\protected\def\btxhiddencitation[#1]
1520 {\iftrialtypesetting \else
1521 \begingroup
1522 \let\currentbtxcitemethod\v!hidden
1523 \edef\currentbtxreference{#1}
1524 \clf_btxhandlenocite
1525 method {\currentbtxcitemethod}
1526 dataset {\currentbtxdataset}
1527 reference {\currentbtxreference}
1528 \relax
1529
1530 \endgroup
1531 \fi}
1532
1533\permanent\protected\def\btxmissing#1
1534 {\dontleavehmode{\tttf<#1>}}
1535
1536
1537
1538\aliased\let\hiddencitation\btxhiddencitation \aliased\let\hiddencite\hiddencitation
1539\aliased\let\listcitation \btxlistcitation \aliased\let\listcite \listcitation
1540\aliased\let\textcitation \btxtextcitation \aliased\let\textcite \textcitation
1541\aliased\let\alwayscitation\btxalwayscitation \aliased\let\alwayscite\alwayscitation
1542
1543\permanent\protected\def\citation {\doifelsenextoptionalcs\btxlistcitation \btxdirectlistcite}
1544\permanent\protected\def\nocitation{\doifelsenextoptionalcs\btxhiddencitation\btxdirecthiddencite}
1545
1546\aliased\let\cite \citation
1547\aliased\let\nocite \nocitation
1548\aliased\let\usecitation\nocitation
1549
1550\protected\def\publ_entry_citation {\doifelsenextoptionalcs\btxlistcitation \btxdirectlistcite}
1551\protected\def\publ_entry_nocitation{\doifelsenextoptionalcs\btxhiddencitation\btxdirecthiddencite}
1552
1553\appendtoks
1554 \enforced\let\cite \publ_entry_citation
1555 \enforced\let\nocite\publ_entry_nocitation
1556\to \everybtxlistrendering
1557
1558\permanent\protected\def\btxdirectlistcite #1{\btxlistcitation [#1]\relax}
1559\permanent\protected\def\btxdirecthiddencite#1{\btxhiddencitation[#1]\relax}
1560
1561
1562
1563
1564\defcsname\??setup:\s!btx:\s!unknown\endcsname#1{\inframed{\tttf#1}}
1565
1566\def\publ_fast_setup_yes#1#2
1567 {\csname\??setup:\s!btx:
1568 \ifcsname\??setup:\s!btx:\currentbtxspecification:#1:#2\endcsname
1569 \currentbtxspecification:#1:#2
1570 \orelse\ifcsname\??setup:\s!btx:\currentbtxspecificationfallback:#1:#2\endcsname
1571 \currentbtxspecificationfallback:#1:#2
1572 \orelse\ifcsname\??setup:\s!btx:#1:#2\endcsname
1573 #1:#2
1574 \orelse\ifcsname\??setup:\s!btx:\currentbtxspecification:#1:\s!unknown\endcsname
1575 \currentbtxspecification:#1:\s!unknown
1576 \orelse\ifcsname\??setup:\s!btx:\currentbtxspecificationfallback:#1:\s!unknown\endcsname
1577 \currentbtxspecificationfallback:#1:\s!unknown
1578 \else
1579 #1:\s!unknown
1580 \fi
1581 \endcsname{#2}}
1582
1583\def\publ_fast_setup_nop#1#2
1584 {\csname\??setup:\s!btx:
1585 \ifcsname\??setup:\s!btx:\currentbtxspecification:#1:#2\endcsname
1586 \currentbtxspecification:#1:#2
1587 \orelse\ifcsname\??setup:\s!btx:#1:#2\endcsname
1588 #1:#2
1589 \orelse\ifcsname\??setup:\s!btx:\currentbtxspecification:#1:\s!unknown\endcsname
1590 \currentbtxspecification:#1:\s!unknown
1591 \else
1592 #1:\s!unknown
1593 \fi
1594 \endcsname{#2}}
1595
1596\newconstant\btxsetuptype
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606\protected\def\publ_fast_btx_setup_chain_inbetween{\allowbreak>\allowbreak}
1607\protected\def\publ_fast_btx_setup_colon_inbetween{\allowbreak :\allowbreak}
1608
1609\protected\def\publ_fast_btx_setup_chain_yes#1#2
1610 {\dontleavehmode\begingroup
1611 \let\:\publ_fast_btx_setup_colon_inbetween
1612 \infofont
1613 \ifcase\btxsetuptype\darkred\or\darkblue\or\darkgreen\or\darkcyan\or\darkmagenta\else\darkred\fi
1614 [\prewordbreak
1615 \currentbtxspecification \:#1\:#2\ifcsname\??setup:\s!btx:\currentbtxspecification:#1:#2\endcsname\else
1616 \publ_fast_btx_setup_chain_inbetween
1617 \currentbtxspecificationfallback\:#1\:#2\ifcsname\??setup:\s!btx:\currentbtxspecificationfallback:#1:#2\endcsname\else
1618 \publ_fast_btx_setup_chain_inbetween
1619 #1\:#2\ifcsname\??setup:\s!btx:#1:#2\endcsname\else
1620 \publ_fast_btx_setup_chain_inbetween
1621 \currentbtxspecification \:#1\:\s!unknown\ifcsname\??setup:\s!btx:\currentbtxspecification:#1:\s!unknown\endcsname\else
1622 \publ_fast_btx_setup_chain_inbetween
1623 \currentbtxspecificationfallback\:#1\:\s!unknown\ifcsname\??setup:\s!btx:\currentbtxspecificationfallback:#1:\s!unknown\endcsname\else
1624 \publ_fast_btx_setup_chain_inbetween
1625 unset\fi\fi\fi\fi\fi
1626 \space @\space
1627 \currentbtx
1628 \prewordbreak]
1629 \endgroup}
1630
1631\protected\def\publ_fast_btx_setup_chain_nop#1#2
1632 {\dontleavehmode\begingroup
1633 \let\:\publ_fast_btx_setup_colon_inbetween
1634 \infofont
1635 \darkred
1636 [\prewordbreak
1637 \currentbtxspecification\:#1\:#2\ifcsname\??setup:\s!btx:\currentbtxspecification:#1:#2\endcsname\else
1638 \publ_fast_btx_setup_chain_inbetween
1639 #1\:#2\ifcsname\??setup:\s!btx:#1:#2\endcsname\else
1640 \publ_fast_btx_setup_chain_inbetween
1641 \currentbtxspecification\:#1\:\s!unknown\ifcsname\??setup:\s!btx:\currentbtxspecification:#1:\s!unknown\endcsname\else
1642 \publ_fast_btx_setup_chain_inbetween
1643 unset\fi\fi\fi
1644 \space @\space
1645 \currentbtx
1646 \prewordbreak]
1647 \endgroup}
1648
1649\protected\def\publ_fast_btx_setup_normal#1
1650 {\btxsetuptype#1\relax
1651 \ifempty\currentbtxspecificationfallback
1652 \expandafter\publ_fast_setup_nop
1653 \else
1654 \expandafter\publ_fast_setup_yes
1655 \fi}
1656
1657\protected\def\publ_fast_btx_setup_visual#1#2#3
1658 {\btxsetuptype#1\relax
1659 \ifempty\currentbtxspecificationfallback
1660 \expandafter\publ_fast_btx_setup_chain_nop
1661 \else
1662 \expandafter\publ_fast_btx_setup_chain_yes
1663 \fi{#2}{#3}
1664 \ifempty\currentbtxspecificationfallback
1665 \expandafter\publ_fast_setup_nop
1666 \else
1667 \expandafter\publ_fast_setup_yes
1668 \fi{#2}{#3}}
1669
1670\installtextracker
1671 {publications.setups}
1672 {\let\publ_fast_setup\publ_fast_btx_setup_visual}
1673 {\let\publ_fast_setup\publ_fast_btx_setup_normal}
1674
1675\let\publ_fast_setup\publ_fast_btx_setup_normal
1676
1677
1678
1679\newtoks\everybtxciteentry
1680
1681\prependtoks
1682 \setfalse\c_btx_cite_reference_injected
1683\to \everybtxciteentry
1684
1685\permanent\protected\def\btxcitesetup#1
1686 {\the\everybtxciteentry
1687 \everybtxciteentry\emptytoks
1688 \publ_fast_setup\plusone\s!cite{#1}}
1689
1690\permanent\protected\def\btxsubcitesetup#1
1691 {\the\everybtxciteentry
1692 \everybtxciteentry\emptytoks
1693 \publ_fast_setup\plustwo\s!cite{#1}}
1694
1695\appendtoks
1696 \btx_check_language
1697\to \everybtxciteentry
1698
1699\permanent\protected\def\btxstartsubcite#1
1700 {\begingroup
1701 \btx_reset_cite
1702
1703 \def\currentbtxcitealternative{#1}
1704 \setbtxparameterset\s!cite\currentbtxcitealternative
1705 \usebtxstyleandcolor\c!style\c!color
1706 \btxparameter\c!left
1707 \relax}
1708
1709\permanent\protected\def\btxstopsubcite
1710 {\relax
1711 \btxparameter\c!right
1712 \endgroup}
1713
1714\permanent\protected\def\btxstartciterendering[#1]
1715 {\begingroup
1716 \edef\currentbtxcitealternative{#1}
1717 \setbtxparameterset\s!cite\currentbtxcitealternative
1718 \usebtxstyleandcolor\c!style\c!color
1719 \btxparameter\c!left
1720 \relax}
1721
1722\permanent\protected\def\btxstopciterendering
1723 {\relax
1724 \btxparameter\c!right
1725 \endgroup}
1726
1727\aliased\let\btxstartciteauthor\begingroup
1728\aliased\let\btxstopciteauthor \endgroup
1729
1730\permanent\protected\def\btxstartcite{\begingroup\btx_reset_cite}
1731\aliased \let\btxstopcite \endgroup
1732
1733
1734
1735\permanent\protected\def\btxsingularplural#1{\clf_btxsingularorplural{\currentbtxdataset}{\currentbtxtag}{#1}}
1736\permanent\protected\def\btxoneorrange #1{\clf_btxoneorrange {\currentbtxdataset}{\currentbtxtag}{#1}}
1737\permanent\protected\def\btxfirstofrange #1{\clf_btxfirstofrange {\currentbtxdataset}{\currentbtxtag}{#1}}
1738
1739\aliased\let\btxsingularorplural\btxsingularplural
1740
1741\stopcontextdefinitioncode
1742
1743
1744
1745\permanent\protected\def\btxloadjournallist [#1]{\clf_btxloadjournallist{#1}}
1746\permanent\protected\def\btxsavejournallist [#1]{\clf_btxsavejournallist{#1}}
1747\permanent\protected\def\btxaddjournal [#1][#2]{\clf_btxaddjournal{#1}{#2}}
1748\permanent \def\btxexpandedjournal #1{\clf_btxexpandedjournal{#1}}
1749\permanent \def\btxabbreviatedjournal#1{\clf_btxabbreviatedjournal{#1}}
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767\tolerant\permanent\protected\def\savebtxdataset[#1]#*[#2]#*[#3]
1768 {\ifarguments
1769
1770 \or
1771 \ifhastok={#1}
1772 \publ_save_dataset_indeed[\s!default][\jobnamesaved.bib][#1]
1773 \else
1774 \publ_save_dataset_indeed[\s!default][#1][]
1775 \fi
1776 \or
1777 \ifhastok={#2}
1778 \publ_save_dataset_indeed[\s!default][#1][#2]
1779 \else
1780 \publ_save_dataset_indeed[#1][#2][]
1781 \fi
1782 \or
1783 \publ_save_dataset_indeed[#1][#2][#3]
1784 \fi}
1785
1786\protected\def\publ_save_dataset_indeed[#1][#2][#3]
1787 {\begingroup
1788 \getdummyparameters
1789 [\c!criterium=\v!all,
1790 \c!type=,
1791 \c!dataset=#1,
1792 \c!file=#2,
1793 #3]
1794 \clf_btxsavedataset
1795 dataset {\dummyparameter\c!dataset}
1796 filename {\dummyparameter\c!file}
1797 filetype {\dummyparameter\c!type}
1798 criterium {\dummyparameter\c!criterium}
1799 \relax
1800 \endgroup}
1801
1802
1803
1804
1805
1806
1807
1808\permanent\protected\def\placecitation{\citation[entry]}
1809
1810\permanent\protected\def\btxhandleciteentry
1811 {\dontleavehmode
1812 \begingroup
1813 \def\currentbtxcitealternative{entry}
1814 \setbtxparameterset\s!cite\currentbtxcitealternative
1815 \btxcitereference
1816 \btx_entry_inject
1817 \endgroup}
1818
1819
1820
1821
1822
1823
1824
1825
1826\protected\def\publ_registers_set
1827 {\ifempty\currentbtxregister \else
1828 \clf_btxsetregister
1829 specification {\currentbtxspecification}
1830 name {\currentbtxregister}
1831 state {\btxregisterparameter\c!state}
1832 dataset {\btxregisterparameter\c!dataset}
1833 field {\btxregisterparameter\c!field}
1834 register {\btxregisterparameter\c!register}
1835 method {\btxregisterparameter\c!method}
1836 alternative {\btxregisterparameter\c!alternative}
1837 \relax
1838 \fi}
1839
1840\appendtoks
1841 \publ_registers_set
1842\to \everydefinebtxregister
1843
1844\appendtoks
1845 \publ_registers_set
1846\to \everysetupbtxregister
1847
1848\appendtoks
1849 \normalexpanded{
1850 \defineprocessor
1851 [\s!btx:r:\currentbtxregister]
1852 [\c!style=\noexpand\namedbtxregisterparameter{\currentbtxregister}\noexpand\c!style,
1853 \c!color=\noexpand\namedbtxregisterparameter{\currentbtxregister}\noexpand\c!color]}
1854\to \everydefinebtxregister
1855
1856\appendtoks
1857 \clf_btxtoregister{\currentbtxdataset}{\currentbtxtag}
1858\to \t_btx_reference_inject
1859
1860\permanent\protected\def\btxindexedauthor#1#2#3#4#5#6
1861 {\begingroup
1862 \def\currentbtxcitealternative{#1}
1863 \ifempty\currentbtxcitealternative
1864 \edef\currentbtxcitealternative{invertedshort}
1865 \fi
1866
1867 \the\everysetupbtxciteplacement
1868 \def\currentbtxvons {#2}
1869 \def\currentbtxsurnames {#3}
1870 \def\currentbtxinitials {#4}
1871 \def\currentbtxfirstnames {#5}
1872 \def\currentbtxjuniors {#6}
1873 \setbtxparameterset\s!cite\currentbtxcitealternative
1874 \fastsetup{\s!btx:\s!cite:\s!author:\currentbtxcitealternative}
1875 \endgroup}
1876
1877\permanent\protected\def\btxregisterauthor
1878 {\doifelsenextoptionalcs\publ_register_author_yes\publ_register_author_nop}
1879
1880\def\publ_register_author_yes[#1]#2
1881 {\clf_btxauthortoregister{#1}{#2}\relax}
1882
1883\def\publ_register_author_nop#1
1884 {\clf_btxauthortoregister{\currentbtxdataset}{#1}\relax}
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905\mutable\let\m_btx_saved_current\empty
1906
1907\permanent\protected\def\btxstartstyle[#1]
1908 {\begingroup
1909 \let\m_btx_saved_current\currentbtx
1910 \def\currentbtx{#1}
1911 \usebtxstyleparameter\c!style
1912 \let\currentbtx\m_btx_saved_current}
1913
1914\permanent\protected\def\btxstartcolor[#1]
1915 {\begingroup
1916 \let\m_btx_saved_current\currentbtx
1917 \def\currentbtx{#1}
1918 \usebtxcolorparameter\c!color
1919 \let\currentbtx\m_btx_saved_current}
1920
1921\permanent\protected\def\btxstartstyleandcolor[#1]
1922 {\begingroup
1923 \let\m_btx_saved_current\currentbtx
1924 \def\currentbtx{#1}
1925 \usebtxstyleandcolor\c!style\c!color
1926 \let\currentbtx\m_btx_saved_current}
1927
1928\aliased\let\btxstopstyle \endgroup
1929\aliased\let\btxstopcolor \endgroup
1930\aliased\let\btxstopstyleandcolor\endgroup
1931
1932\permanent\protected\def\btxusecommand[#1]#2
1933 {\namedbtxparameter{#1}\c!command{#2}}
1934
1935\permanent\protected\def\startbtxrunningstyleandcolor
1936 {\dontleavehmode
1937 \begingroup
1938 \restorerunningstyleandcolor}
1939
1940\permanent\protected\def\stopbtxrunningstyleandcolor
1941 {\endgroup}
1942
1943
1944
1945\permanent\protected\def\btxdoifelsematches#1#2#3
1946 {\clf_btxdoifelsematches{#1}{#2}{#3}}
1947
1948
1949
1950\setupbtxrendering
1951 [\c!interaction=\v!start,
1952 \c!specification=\btxparameter\c!specification,
1953 \c!dataset=\v!default,
1954 \c!repeat=\v!no,
1955 \c!continue=\v!no,
1956 \c!method=\v!global,
1957
1958 \c!sorttype=\v!default,
1959 \c!criterium=\v!text,
1960 \c!refcommand=authoryears,
1961 \c!numbering=\v!yes,
1962
1963 \c!pagestate=\v!stop,
1964 \c!textstate=\v!start,
1965 \c!width=\v!auto,
1966 \c!separator={\removepunctuation;\space},
1967 \c!distance=1.5\emwidth]
1968
1969
1970
1971
1972
1973\setupbtx
1974 [\c!interaction=\v!start,
1975 \c!alternative=num,
1976 \c!inbetween=\btxspace,
1977
1978 \c!range=\directdiscretionary\endash,
1979 \c!compress=\v!yes,
1980 \c!authorconversion=normal,
1981 \c!sorttype=normal,
1982 \c!etallimit=3,
1983 \c!etaldisplay=\btxparameter\c!etallimit,
1984 \c!otherstext={\btxspace et al.},
1985 \c!separator:firstnames={\btxspace},
1986 \c!separator:juniors={\btxspace},
1987 \c!separator:vons={\btxspace},
1988 \c!separator:initials={\btxspace},
1989 \c!stopper:initials={.},
1990
1991 \c!separator:invertedinitials={\btxcomma},
1992 \c!separator:invertedfirstnames={\btxcomma},
1993 \c!separator:names:2={\btxcomma},
1994 \c!separator:names:3=\btxparameter{\c!separator:2},
1995 \c!separator:names:4=\btxparameter{\c!separator:2},
1996 \c!separator:2={\btxsemicolon},
1997 \c!separator:3=\btxparameter{separator:2},
1998 \c!separator:4=\btxparameter{separator:2}]
1999
2000
2001
2002\loadbtxdefinitionfile[commands]
2003\loadbtxdefinitionfile[definitions]
2004
2005\loadbtxdefinitionfile[cite]
2006\loadbtxdefinitionfile[list]
2007\loadbtxdefinitionfile[page]
2008\loadbtxdefinitionfile[author]
2009
2010
2011
2012
2013\permanent\protected\def\usebtxdefinitions[#1]
2014 {\loadbtxdefinitionfile[#1]
2015 \setupbtx[\c!specification=#1]}
2016
2017\setupbtx
2018 [\c!specification=\s!default,
2019 \c!dataset=\v!default,
2020 \c!default=\v!default]
2021
2022\loadbtxdefinitionfile
2023 [\s!default]
2024
2025
2026
2027\fetchmodulecommand \showbtxdatasetfields \f!publ_tra
2028\fetchmodulecommand \showbtxdatasetcompleteness \f!publ_tra
2029\fetchmodulecommand \showbtxdatasetauthors \f!publ_tra
2030\fetchmodulecommand \showbtxhashedauthors \f!publ_tra
2031\fetchmodulecommand \showbtxfields \f!publ_tra
2032\fetchmodulecommand \showbtxtables \f!publ_tra
2033
2034
2035
2036
2037
2038
2039\permanent\tolerant\protected\def\btxshortcut[#1]#:#2
2040 {\clf_btxshortcut{\ifparameter#1\or#1\else\s!default\fi}{#2}}
2041
2042\protect
2043 |