diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/page-imp.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/page-imp.mkiv | 110 |
1 files changed, 95 insertions, 15 deletions
diff --git a/Master/texmf-dist/tex/context/base/page-imp.mkiv b/Master/texmf-dist/tex/context/base/page-imp.mkiv index 9d0f722fe28..c22e9e646c9 100644 --- a/Master/texmf-dist/tex/context/base/page-imp.mkiv +++ b/Master/texmf-dist/tex/context/base/page-imp.mkiv @@ -71,7 +71,7 @@ \let\installpagehandler\installshipoutmethod % will go \unexpanded\def\invokepagehandler#1% - {\expandcheckedcsname{\??shipoutmethod}{#1}\v!normal} + {\expandnamespacevalue\??shipoutmethod{#1}\v!normal} \def\page_shipouts_handle {\csname\??shipoutmethod\ifcsname\??shipoutmethod\v_page_target_method\endcsname @@ -90,18 +90,33 @@ \installshipoutmethod \v!none {\page_shipouts_ignore} +% extension mechanism + +\newcount\c_page_boxes_flush_n % set at the lua end + +\let\page_boxes_flush_before\relax +\let\page_boxes_flush_after \relax + +% used here: + \def\page_boxes_shipout#1% or: \page_shipouts_apply - {\dontcomplain % redundant - \the\everybeforeshipout - \ifcase\shipoutfinalizemethod - \page_shipouts_handle{#1}% - \else - \setbox\shipoutscratchbox\hbox{#1}% just in case there are objects there, hook for testing (will go away) - \finalizeshipoutbox\shipoutscratchbox - \page_shipouts_handle{\box\shipoutscratchbox}% - \fi - \setnextrealpageno % so this comes before \everyaftershipout so in fact: - \the\everyaftershipout} % at this point we're already on the next realpage + {\dontcomplain % redundant + \ifcase\c_page_boxes_flush_n\else + \page_boxes_flush_before + \fi + \the\everybeforeshipout + \ifcase\shipoutfinalizemethod + \page_shipouts_handle{#1}% + \else + \setbox\shipoutscratchbox\hbox{#1}% just in case there are objects there, hook for testing (will go away) + \finalizeshipoutbox\shipoutscratchbox + \page_shipouts_handle{\box\shipoutscratchbox}% + \fi + \setnextrealpageno % so this comes before \everyaftershipout so in fact: + \the\everyaftershipout % at this point we're already on the next realpage + \ifcase\c_page_boxes_flush_n\else + \page_boxes_flush_after + \fi} \def\page_shipouts_ignore#1% {\begingroup @@ -148,8 +163,7 @@ \donetrue \fi \else % testen, aangepast / expanded nodig ? - \normalexpanded{\doifinsetelse{\the\shippedoutpages}{\pagestoshipout}}% - \donetrue\donefalse + \normalexpanded{\doifinsetelse{\the\shippedoutpages}{\pagestoshipout}}\donetrue\donefalse \fi \ifdone \setbox\shipoutscratchbox\hbox{#1}% @@ -1092,7 +1106,73 @@ \or \handlearrangedpageXandY{#1}000\arrangedpageA % 12 \poparrangedpages \fi} - + +% % From Wolfgang for Mari (mail on list) ... yes or no in core .. time for +% % delayed loading ... +% % +% % http://stamphenge.wordpress.com/minibooks/meander-accordion-folded-book/ +% +% \installpagearrangement MEANDER16 +% {\dosetuparrangement{4}{4}{16}{5}{5}% +% \pusharrangedpageMEANDERSIXTEEN\poparrangedpagesXY\relax} +% +% \def\pusharrangedpageMEANDERSIXTEEN#1% +% {\advancearrangedpageN +% \reportarrangedpage\arrangedpageN +% \ifcase\arrangedpageN +% \or \handlearrangedpageXandY{#1}000\arrangedpageA +% \or \handlearrangedpageXandY{#1}010\arrangedpageA +% \or \handlearrangedpageXandY{#1}020\arrangedpageA +% \or \handlearrangedpageXandY{#1}030\arrangedpageA +% \or \handlearrangedpageXandY{#1}131\arrangedpageA +% \or \handlearrangedpageXandY{#1}121\arrangedpageA +% \or \handlearrangedpageXandY{#1}111\arrangedpageA +% \or \handlearrangedpageXandY{#1}101\arrangedpageA +% \or \handlearrangedpageXandY{#1}002\arrangedpageA +% \or \handlearrangedpageXandY{#1}012\arrangedpageA +% \or \handlearrangedpageXandY{#1}022\arrangedpageA +% \or \handlearrangedpageXandY{#1}032\arrangedpageA +% \or \handlearrangedpageXandY{#1}133\arrangedpageA +% \or \handlearrangedpageXandY{#1}123\arrangedpageA +% \or \handlearrangedpageXandY{#1}113\arrangedpageA +% \or \handlearrangedpageXandY{#1}103\arrangedpageA +% \poparrangedpages +% \fi} +% +% % \definepapersize[small][width=6cm,height=6cm] +% % \definepapersize[big][width=30cm,height=30cm] +% % \setuppapersize[small][big] +% % \setuppagenumbering[location=] +% % \setuparranging[MEANDER16] +% % \setuplayout +% % [location=middle, +% % marking=on] +% % \starttext +% % \dorecurse{32}{\centerbox{\ssd\recurselevel}} +% % \stoptext +% +% % By Willi: +% +% \installpagearrangement MEANDER9 +% {\dosetuparrangement{3}{3}{9}{4}{4}% +% \pusharrangedpageMEANDERNINE\poparrangedpagesXY\relax} +% +% \def\pusharrangedpageMEANDERNINE#1% +% {\advancearrangedpageN +% \reportarrangedpage\arrangedpageN +% \ifcase\arrangedpageN +% \or \handlearrangedpageXandY{#1}000\arrangedpageA +% \or \handlearrangedpageXandY{#1}010\arrangedpageA +% \or \handlearrangedpageXandY{#1}020\arrangedpageA +% \or \handlearrangedpageXandY{#1}121\arrangedpageA +% \or \handlearrangedpageXandY{#1}111\arrangedpageA +% \or \handlearrangedpageXandY{#1}101\arrangedpageA +% \or \handlearrangedpageXandY{#1}002\arrangedpageA +% \or \handlearrangedpageXandY{#1}012\arrangedpageA +% \or \handlearrangedpageXandY{#1}022\arrangedpageA +% \poparrangedpages +% \fi} + % % handy for stickers etc, this way we can treat them as page % % \setuppapersize [XY][A4] |