Rik Kabel
11. Oktober 2015 um 18:25
On 2015-10-11 06:11, Hans Hagen wrote:
On 10/11/2015 5:21 AM, Rik Kabel wrote:
The following example works with older versions of ConTeXt, such as the
version from 20150325 in my repository. It fails with TL15 and later,
including the current standalone beta.

    % macros=mkvi
    \setwidthof {99}\to\IDWidth\relax
    \def\STWidth{\dimexpr\textwidth-\IDWidth+1cm}
    \definelist[OList]
    \setuplist
    [OList][criterium=all,alternative=c,pagecommand=\gobbleoneargument]

    \starttexdefinition OLister #ID#String
    {\writetolist[OList]{}{\hbox{\simplealignedbox{\IDWidth}{left}{#ID\quad}
    {\doboundtext{#String}{\STWidth}{…}}}}}
    \stoptexdefinition

    \starttext
    \OLister1{Some list testing text xxx xxx xxx xxx xxx xxx xxx xxx xxx
    xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx}
    \OLister2{Yet another list testing text xxx xxx xxx xxx xxx xxx xxx
    xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx}
    \OLister3{A list testing text xxx xxx xxx xxx xxx xxx xxx xxx xxx
    xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx}
    \OLister4{Different list testing text xxx xxx xxx xxx xxx xxx xxx
    xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx}
    \subject{List half width}
    \startcolumns[n=2]
    \placelist[OList]
    \stopcolumns
    \stoptext

With the 20150325 ConTeXt, there are .tuc file entries like:

        ["second"]="\\hbox {\\simplealignedbox {\\IDWidth
    }{left}{2\\quad }{\\doboundtext {Yet another list testing text xxx
    xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
    xxx}{\\STWidth }{…}}}",

but with more recent versions, the corresponding entry is:

        ["second"]="\\hbox {\\simplealignedbox {12.6pt}{left}{2\\quad
    }{\\hbox {\\setbox \\scratchbox \\hbox {Yet another list testing
    text xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
    xxx xxx}\\scratchdimen \\dimexpr \\textwidth -12.6pt+1cm\\relax
    \\box \\scratchbox }}}",


\unexpanded\def\STWidth{\dimexpr\textwidth-\IDWidth+1cm}

Yes, expansion needs to be delayed to get the current dimension when the list is placed. My error—thank you for the correction. But the regression is not resolved. The .tuc file now contains:
["second"]="\\hbox {\\simplealignedbox {12.6pt}{left}{2\\quad }{\\hbox {\\setbox \\scratchbox \\hbox {Yet another list testing text xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx}\\scratchdimen \\STWidth \\relax \\box \\scratchbox }}}",
Still no mention of dobounded text is carried into the list.
Is \limitatetext a option for you because unlike \doboundtext the command is unexpandable?

\starttext

\doboundtext {Thus, I came to the conclusion that the designer of a new system ...}{.5\textwidth}{...}

\limitatetext{Thus, I came to the conclusion that the designer of a new system ...}{.5\textwidth}{...}

\stoptext

Wolfgang