Two concurrent situations can happen, which I'd like to typeset as two parallel columns while keeping the overall page layout (i.e., headers, footers, margins, and such).

current version: 2023.07.18 22:07

I'd like to find a way to set up start/stop environments, if possible, to come up with a general-purpose solution (i.e., the prose itself is not changed).

Here are a few examples. In the first, a "concurrent" environment is created with two "timelines":

% SOT
\definestartstop[concurrent][
  before={\startcolumns[n=2, align={verytolerant,stretch}, separator=rule]},
  after=\stopcolumns,
]

\definestartstop[timelinea][
  after=\column,
]

\definestartstop[timelineb][]

\starttext
  \startconcurrent
    \starttimelinea
      \dorecurse{5}{\input ward}
    \stoptimelinea

    \starttimelineb
      \dorecurse{5}{\input knuth}
    \stoptimelineb
  \stopconcurrent
\stoptext
% EOT

The ward and knuth texts end up in the same column because one is shorter than the other. Here's another attempt:

% SOT
\defineparagraphs[concurrent][n=2]

\definestartstop[timelinea][
  before=\concurrent,
  after=\concurrent,
]

\definestartstop[timelineb][
  before=\concurrent,
]

\starttext
  \startconcurrent
    \starttimelinea
      \dorecurse{5}{\input ward}
    \stoptimelinea

    \starttimelineb
      \dorecurse{5}{\input knuth}
    \stoptimelineb
  \stopconcurrent
\stoptext
% EOT

This loses much of the input text.

Can this be accomplished using LMTX and what would be the best approach? Would this setupparagraphs, definecolumnset, synchronizestreams, or possibly incomplete/experimental functionality?

Thank you!