Bruce, that was kind of you to reply. I think we both know that the streams mechanism, while 'workable' for the most part, is still in need of refinement. It is quite possible that what is causing my problem has less to do with 'streams' per se, and more to do with the use of this mechanism in a 'real book' using frontmatter, bodymatter etc. etc. Since it would be too long and complicated an MWE to place here in the list to demonstrate my problem, I will send you the file separately so you can see the issue: effectively, the streams have worked for frontmatter (Foreword), but when I get to Chapter 1 in bodymatter, they are reversed. You will see that. I can't work out why, but you might be able to see what is causing that. And of course, I have two other problems to work out before I could use this in a real production scenario: there is the one you have already alluded to of extra pages occasionally beforehand (hopefully easily solvable) but I can see another problem when the text is a lengthy one... and this is the result of synchronization: when one language (vi) takes up more space than the other (en), we get an awkward break at the end of the chapter in en, so that the last line can 'catch up' with the last paragraph (in vi). Maybe this one will be harder to solve! Julian On 14/9/23 20:14, Bruce Horrocks wrote:
On 13 Sep 2023, at 07:47, jbf
wrote: When I come to bodymatter and Chapter 1, again it works, except that the positions of the languages are reversed, so I end up with vi on the left and en on the right. By Chapter 2 we are back to the correct position once more (en left and vi right). I want to know why this is happening, and if I can prevent it happening.
I've modified the sample code you got from Wolfgang to include chapter headings and it all looks fine to me[1] - the red text is all on the right hand side and the greeen text is all on the left. If this doesn't help and you still have problems then you'll need to post a sample that actually shows the problem. I'm using ConTeXt ver: 2023.09.04 19:15.
\starttext
\startoutputstream[one] \startcolor[red] \dorecurse{5}{\chapter{Stream One} \dorecurse{10}{\input knuth\par} } \stopcolor \stopoutputstream
\startoutputstream[two] \startcolor[green] \dorecurse{5}{\chapter{Stream Two} \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
[1] Apart from unnecessary blank pages at the beginning but that's a different problem so I'm not addressing that for now.
— Bruce Horrocks Hampshire, UK
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________