Arthur Reutenauer <mailto:arthur.reutena...@normalesup.org>
26. November 2016 um 00:14
1. Streams work in MkIV
2. The MkIV version has a command to set sync points.
That’s \pushoutputstreams, I presume.
Yes, you can use it to create paragraphs of equal height in different
streams.
\setupbodyfont[tt]
\starttext
\startoutputstream[one]
\setupalign[flushleft]
\dorecurse{3}{Line \recurselevel\par}\pushoutputstream
\blank
\dorecurse{6}{Line \recurselevel\par}\pushoutputstream
\blank
\dorecurse{4}{Line \recurselevel\par}\pushoutputstream
\stopoutputstream
\startoutputstream[two]
\setupalign[flushright]
\dorecurse{5}{Line \recurselevel\par}\pushoutputstream
\blank
\dorecurse{2}{Line \recurselevel\par}\pushoutputstream
\blank
\dorecurse{7}{Line \recurselevel\par}\pushoutputstream
\stopoutputstream
\synchronizestreams[one,two]
\startoverlay
{\outputstreambox[one]}
{\raise2\strutdp\outputstreambox[two]}
\stopoverlay
\stoptext
Only the mechanism to create pages/columns for the stream content is
missing.
Can you elaborate a bit? I’m having the following use case in mind:
exactly two streams, one on even-numbered pages, the other on the
odd-numbered ones, with infrequent synchronisations. The two streams
could run in parallel, facing each other on the spread, and only be
resynchronised every 5 or 10 pages, say. Is that currently not
possible?
You can save text and flush it afterwards but there is no command which
places the content side by side (or in columns). Below is a simple example
but I had to write the splitter myself.
\starttext
\startoutputstream[one]
\startcolor[red]
\dorecurse{10}{\input knuth\par}
\stopcolor
\stopoutputstream
\startoutputstream[two]
\startcolor[green]
\dorecurse{10}{\input zapf\par}
\stopcolor
\stopoutputstream
\synchronizestreams[one,two]
\setbox\scratchboxone\outputstreambox[one]
\setbox\scratchboxtwo\outputstreambox[two]
\doloop
{\ifvoid\scratchboxone
\exitloop
\else
\setbox\scratchboxfour\vsplit\scratchboxone to \textheight
\vbox to \vsize{\box\scratchboxfour\vss}%
\setbox\scratchboxfive\vsplit\scratchboxtwo to \textheight
\vbox to \vsize{\box\scratchboxfive\vss}%
\fi}
\stoptext
Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________