summaryrefslogtreecommitdiff
path: root/tex/context/base/publ-ini.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/publ-ini.mkiv')
-rw-r--r--tex/context/base/publ-ini.mkiv36
1 files changed, 32 insertions, 4 deletions
diff --git a/tex/context/base/publ-ini.mkiv b/tex/context/base/publ-ini.mkiv
index 1d21a83f9..4c209f6cd 100644
--- a/tex/context/base/publ-ini.mkiv
+++ b/tex/context/base/publ-ini.mkiv
@@ -126,6 +126,32 @@
\fi
\to \everysetupbtx
+\unexpanded\def\publ_specification_push#1% local, don't override
+ {\pushmacro\currentbtxspecification
+ \edef\currentbtxspecification{#1}%
+ \ctxcommand{setbtxspecification("\currentbtxspecification")}}
+
+\unexpanded\def\publ_specification_pop
+ {\popmacro\currentbtxspecification
+ \ctxcommand{setbtxspecification("\currentbtxspecification")}}
+
+\unexpanded\def\publ_specification_set#1% beware: is global
+ {\edef\currentbtxspecification{#1}%
+ \ctxcommand{setbtxspecification("\currentbtxspecification")}}
+
+\appendtoks
+ \publ_specification_set{\btxparameter\c!specification}%
+\to \everysetupbtx
+
+\appendtoks
+ \publ_specification_set{\btxparameter\c!specification}%
+\to \everyjob
+
+\unexpanded\def\startusingbtxspecification[#1]%
+ {\publ_specification_push{#1}}
+
+\let\stopusingbtxspecification\publ_specification_pop
+
% a dedicated construction mechanism
\installcorenamespace {btxlist}
@@ -729,8 +755,7 @@
{\startbtxrendering[\currentbtxrendering]%
% \fastsetup{\btxrenderingparameter\c!setups}% specific initializations
% \determinelistcharacteristics[\currentbtxrendering]%
- \edef\currentbtxspecification{\btxrenderingparameter\c!specification}%
- \ctxcommand{setbtxspecification("\currentbtxspecification")}%
+ \publ_specification_push{\btxrenderingparameter\c!specification}%
\edef\currentbtxdataset{\btxrenderingparameter\c!dataset}%
\uselanguageparameter\btxdatasetparameter % new
\let\currentlist\s!btx
@@ -768,6 +793,7 @@
% this actually typesets them
\ctxcommand{btxflushlistentries("\currentbtxdataset")}%
\stoppacked
+ \publ_specification_pop
\stopbtxrendering
\global\advance\btxblock\plusone}
@@ -1130,6 +1156,7 @@
\def\publ_cite_handle_variant_indeed[#1]%
{\usebtxcitevariantstyleandcolor\c!style\c!color
\uselanguageparameter\btxdatasetparameter % new
+ \publ_specification_push{\btxcitevariantparameter\c!specification}%
\letbtxcitevariantparameter\c!alternative\currentbtxcitevariant
\btxcitevariantparameter\v!left
\ctxcommand{btxhandlecite{%
@@ -1147,6 +1174,7 @@
}}%
\btxcitevariantparameter\v!right
\ctxcommand{flushmarked()}%
+ \publ_specification_pop
\endgroup}
\unexpanded\def\btxcitation
@@ -1263,10 +1291,10 @@
\unexpanded\def\btxhandleciteentry
{\dontleavehmode
\begingroup
- \edef\currentbtxspecification{\btxcitevariantparameter\c!specification}%
- \ctxcommand{setbtxspecification("\currentbtxspecification")}%
+ \publ_specification_push{\btxcitevariantparameter\c!specification}%
\btxcitereference
\btx_entry_inject
+ \publ_specification_pop
\endgroup}
\startsetups \s!btx:\s!cite:entry