summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl')
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl128
1 files changed, 128 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl
new file mode 100644
index 00000000000..d6e01ea595c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl
@@ -0,0 +1,128 @@
+%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 for Thomas Schmitz
+%D who asked for parallel page streams. While playing with the code, I decided to
+%D make it into a component that can be used to construct all kind of stream related
+%D mechanisms. Because I could apply this feature in a project, there is some
+%D additional code here (related to graphics).
+%D
+%D These macros were written while listening to and watching the DVD \quotation
+%D {Rush In Rio}.
+%D
+%D The reimplementation (or rather experimenting with the complete rewrite) was done
+%D while looping over \quotation {Wende Snijders No.9}.
+%D
+%D Remark: marknotes are gone, at least for a while.
+
+\registerctxluafile{page-str}{}
+
+\unprotect
+
+\mutable\let\currentoutputstream\empty
+
+\newif \ifinoutputstream % will become a conditional or mode
+\newtoks \everyenableoutputstream
+
+\appendtoks
+ \page_otr_command_flush_side_floats
+\to \everyenableoutputstream
+
+\permanent\protected\def\initializeoutputstreams
+ {\clf_initializestream
+ \enforced\glet\initializeoutputstreams\relax}
+
+\permanent\protected\def\enableoutputstream[#1]% could be \startoutputsubstream
+ {\initializeoutputstreams
+ \the\everyenableoutputstream
+ \inoutputstreamtrue
+ \xdef\currentoutputstream{#1}%
+ \clf_enablestream{#1}
+ \prevdepth\zeropoint} % maybe more is needed i.e. we need to get rid of leading glue
+
+\permanent\protected\def\disableoutputstream
+ {\inoutputstreamfalse
+ \glet\currentoutputstream\s!default
+ \clf_disablestream}
+
+\permanent\protected\def\startoutputstream[#1]%
+ {\begingroup
+ \initializeoutputstreams
+ \the\everyenableoutputstream
+ \inoutputstreamtrue
+ \xdef\currentoutputstream{#1}%
+ \clf_startstream{#1}}
+
+\permanent\protected\def\stopoutputstream
+ {\clf_stopstream
+ \endgroup}
+
+\permanent\protected\def\startoutputsubstream[#1]% just push/pop instead
+ {\globalpushmacro\currentoutputstream
+ \enableoutputstream[#1]}
+
+\permanent\protected\def\stopoutputsubstream
+ {\globalpopmacro\currentoutputstream
+ \enableoutputstream[\currentoutputstream]}
+
+\permanent \protected\def\flushoutputstream [#1]{\clf_flushstream{#1}}
+\permanent \protected\def\outputstreambox [#1]{\vbox{\clf_flushstream{#1}}}
+\permanent \protected\def\outputstreamcopy [#1]{\vbox{\clf_flushstreamcopy{#1}}}
+\permanent \protected\def\outputstreamunvbox [#1]{\clf_flushstream{#1}}
+\permanent \protected\def\outputstreamunvcopy[#1]{\clf_flushstreamcopy{#1}}
+\permanent \protected\def\synchronizestreams [#1]{\clf_synchronizestream{#1}}
+\permanent\tolerant\protected\def\pushoutputstream [#1]{\clf_pushstream{#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