diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv new file mode 100644 index 00000000000..e4b2fa22980 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/mkiv/page-str.mkiv @@ -0,0 +1,153 @@ +%D \module +%D [ file=page-str, +%D version=2010.03.13, % 2006.03.21, +%D title=\CONTEXT\ Page Macros, +%D subtitle=Page Streams, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\writestatus{loading}{ConTeXt Page Macros / Page Streams} + +%D The first version of this component of \CONTEXT\ was written +%D for Thomas Schmitz who asked for parallel page streams. While +%D playing with the code, I decided to make it into a component +%D that can be used to construct all kind of stream related +%D mechanisms. Because I could apply this feature in a project, +%D there is some additional code here (related to graphics). +%D +%D These macros were written while listening to and watching the DVD +%D \quotation {Rush In Rio}. +%D +%D The reimplementation (or rather experimenting with the complete +%D rewrite) was done while looping over \quotation {Wende Snijders +%D No.9}. +%D +%D Remark: marknotes are gone, at least for a while. + +\registerctxluafile{page-str}{1.001} + +\unprotect + +\let \currentoutputstream \empty +\newif \ifinoutputstream % will become a conditional or mode +\newtoks \everyenableoutputstream + +\appendtoks + \page_otr_command_flush_side_floats +\to \everyenableoutputstream + +\unexpanded\def\initializeoutputstreams + {\clf_initializestream + \glet\initializeoutputstreams\relax} + +\unexpanded\def\enableoutputstream[#1]% could be \startoutputsubstream + {\initializeoutputstreams + \the\everyenableoutputstream + \inoutputstreamtrue + \xdef\currentoutputstream{#1}% + \clf_enablestream{#1}} + +\unexpanded\def\disableoutputstream + {\inoutputstreamfalse + \global\let\currentoutputstream\s!default + \clf_disablestream} + +\unexpanded\def\startoutputstream[#1]% + {\begingroup + \initializeoutputstreams + \the\everyenableoutputstream + \inoutputstreamtrue + \xdef\currentoutputstream{#1}% + \clf_startstream{#1}} + +\unexpanded\def\stopoutputstream + {\clf_stopstream + \endgroup} + +\unexpanded\def\startoutputsubstream[#1]% just push/pop instead + {\globalpushmacro\currentoutputstream + \enableoutputstream[#1]} + +\unexpanded\def\stopoutputsubstream + {\globalpopmacro\currentoutputstream + \enableoutputstream[\currentoutputstream]} + +\def\flushoutputstream [#1]{\clf_flushstream{#1}} +\def\outputstreambox [#1]{\vbox{\clf_flushstream{#1}}} +\def\outputstreamcopy [#1]{\vbox{\clf_flushstreamcopy{#1}}} +\def\outputstreamunvbox [#1]{\clf_flushstream{#1}} +\def\outputstreamunvcopy[#1]{\clf_flushstreamcopy{#1}} +\def\synchronizestreams [#1]{\clf_synchronizestream{#1}} +\def\dopushoutputstream [#1]{\clf_pushstream{#1}} + +\unexpanded\def\pushoutputstream + {\dosingleempty\dopushoutputstream} + +% \unexpanded\def\defineoutputstream[#1]% +% {\doifundefined{otrs:#1}{\expandafter\newbox\csname otrs:#1\endcsname}} +% +% \def\useoutputstream[#1]% +% {\writestatus{otr}{using output stream #1}% +% \xdef\currentoutputstream{#1}} +% +% \directsetup{stream:\firstoutputstream:set} +% \directsetup{stream:\firstoutputstream:top} +% \directsetup{stream:\firstoutputstream:bottom} +% \directsetup{stream:\firstoutputstream:reset} + +% Obsolete in \MKIV: +% +% \unexpanded\def\definemarknote +% {\dodoubleempty\dodefinemarknote} +% +% \def\dodefinemarknote[#1][#2]{} +% \def\setmarknote [#1]{\gobbleoneargument} +% \def\flushmarknotes [#1]{} +% \def\erasemarknotes [#1]{} + +\protect \endinput + +% \enabletrackers[streams.flushing] +% +% \setuplayout[grid=yes] \showgrid +% +% \starttext +% +% \input tufte +% +% \startoutputstream[nl] +% +% Wat doen we hier? +% +% \enableoutputstream[en] +% +% Are you sleeping, brother John?\footnote{xxx} +% +% \dorecurse{4}{x \footnote{note \recurselevel}\input tufte \par \pushoutputstream} +% +% \enableoutputstream[de] +% +% Bruder Jakob, schläfst du noch?\footnote{yyy} +% +% \dorecurse{4}{x \footnote{note \recurselevel}\input ward \par \pushoutputstream} +% +% \disableoutputstream +% +% \stopoutputstream +% +% Vader Jacob, slaap je nog?\footnote{zzz} +% +% \input tufte +% +% \synchronizestreams[en,de,nl] +% +% \page \flushoutputstream[en] \input knuth +% \page \flushoutputstream[de] \input knuth +% \page \flushoutputstream[nl] \input knuth +% +% \stoptext |