diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv b/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv index 3bb923af424..9f4344b99d4 100644 --- a/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv +++ b/Master/texmf-dist/tex/context/base/mkiv/core-dat.mkiv @@ -73,9 +73,18 @@ {\clf_datasetvariable{#1}{#2}{#3}} \installcorenamespace{pagestate} +\installcorenamespace{pagestatecounter} \installcommandhandler \??pagestate {pagestate} \??pagestate +\def\syst_pagestates_allocate + {\expandafter\newcount\csname\??pagestatecounter\currentpagestate\endcsname + \expandafter\let\expandafter\c_syst_pagestate\csname\??pagestatecounter\currentpagestate\endcsname} + +\appendtoks + \syst_pagestates_allocate +\to \everydefinepagestate + \setuppagestate [\c!delay=\v!yes] @@ -85,17 +94,31 @@ \def\syst_pagestates_set[#1][#2]% {\begingroup \edef\currentpagestate{#1}% + \ifcsname\??pagestatecounter\currentpagestate\endcsname + \let\c_syst_pagestate\lastnamedcs + \else + \syst_pagestates_allocate + \fi + \global\advance\c_syst_pagestate\plusone + \scratchcounter\lastnamedcs \clf_setpagestate name {\currentpagestate}% - tag {#2}% + tag {\ifsecondargument#2\else\number\c_syst_pagestate\fi}% delay {\pagestateparameter\c!delay}% \relax \endgroup} -\def\pagestaterealpage#1#2% - {\clf_pagestaterealpage{#1}{#2}} +\unexpanded\def\autosetpagestate#1% + {\secondargumentfalse\syst_pagestates_set[#1]} + +\def\autopagestatenumber#1{\begincsname\??pagestatecounter#1\endcsname} + +\def\pagestaterealpage #1#2{\clf_pagestaterealpage {#1}{#2}} +\def\setpagestaterealpageno#1#2{\clf_setpagestaterealpageno{#1}{#2}} +\def\pagestaterealpageorder#1#2{\clf_pagestaterealpageorder{#1}#2\relax} -\def\setpagestaterealpageno#1#2% - {\clf_setpagestaterealpageno{#1}{#2}} +\def\autopagestaterealpage #1{\clf_pagestaterealpage {#1}{\number\autopagestatenumber{#1}}} +\def\setautopagestaterealpageno#1{\clf_setpagestaterealpageno{#1}{\number\autopagestatenumber{#1}}} +\def\autopagestaterealpageorder#1{\clf_pagestaterealpageorder{#1}\numexpr\autopagestatenumber{#1}\relax} \protect |