Regression with \doboundtext in \writetolist
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 }}}", -- Rik
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} ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
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. -- Rik
Rik Kabel mailto:context@rik.users.panix.com 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
On 2015-10-11 12:56, Wolfgang Schuster wrote:
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
Is it an option of which I am aware, yes. Do I desire to use it, no. Will I use it? Perhaps, if \doboundtext cannot be repaired. The resulting page with \limitatetext has large rivers of white on the page. But more likely I will look for a hack to use \doboundtext to trim the text before writing it to the list, even though it loses the flexibility of computing the width dynamically. Can you point to what changed between the 20150325 version and TL15 to break this? -- Rik
Rik mailto:rik@panix.com 11. Oktober 2015 um 21:20 On 2015-10-11 12:56, Wolfgang Schuster wrote: Is it an option of which I am aware, yes. Do I desire to use it, no. Will I use it? Perhaps, if \doboundtext cannot be repaired. The resulting page with \limitatetext has large rivers of white on the page.
But more likely I will look for a hack to use \doboundtext to trim the text before writing it to the list, even though it loses the flexibility of computing the width dynamically. Adding \noexpand before \doboundtext should work.
Wolfgang
On 2015-10-11 15:41, Wolfgang Schuster wrote:
Rik mailto:rik@panix.com 11. Oktober 2015 um 21:20 On 2015-10-11 12:56, Wolfgang Schuster wrote: Is it an option of which I am aware, yes. Do I desire to use it, no. Will I use it? Perhaps, if \doboundtext cannot be repaired. The resulting page with \limitatetext has large rivers of white on the page.
But more likely I will look for a hack to use \doboundtext to trim the text before writing it to the list, even though it loses the flexibility of computing the width dynamically. Adding \noexpand before \doboundtext should work.
Wolfgang
Indeed, it does. Thank you. -- Rik
participants (4)
-
Hans Hagen
-
Rik
-
Rik Kabel
-
Wolfgang Schuster