[NTG-context] Labels and Enumerations

Rik Kabel context at rik.users.panix.com
Sun Jan 14 21:37:13 CET 2018


On 2018-01-14 09:46, Hans Hagen wrote:
> On 1/13/2018 10:17 PM, Rik Kabel wrote:
>> I would like to request the restoration of labels (\definelabel) to 
>> full citizenship in MKIV. While enumerations are more flexible in 
>> many ways, they cannot replace one particular use of labels if find 
>> necessary. Enumerations are paragraph entities, while labels are not 
>> so restricted.
>>
>> I use labels displayed as numbers in the margin to serially identify 
>> quotations in a book about the development of quotation and 
>> misquotation, at the same time generating reference information for 
>> cross-referencing. While most quotations are blocks and can be 
>> handled by enumerations, many are in-line quotations, and enumeration 
>> cannot be used for these.
>>
>> The wiki describes enumerations as the MKIV replacement for labels, 
>> and the documentation as far as I can see omits \definelabel. Unless 
>> there is something else supported in MKIV that can assume this 
>> function of labels, can we please have full support for labels? I 
>> would not want to see labels deprecated before the functionality is 
>> reproduced.
>>
>> (Of course, if you can suggest how enumeration can be adapted to this 
>> requirement, or suggest an alternative mechanism, this request can be 
>> rejected.)
>
> two options:
>
> \defineconstructionalternative
>   [mylabel]
>   [renderingsetup=constructionrenderings:mylabel,
>    width=]
>
> \startsetups[constructionrenderings:mylabel]
>     \dontleavehmode
>     \flushconstructionheadbox
> \stopsetups
>
> \defineenumeration[two][alternative=mylabel,display=no,before=,after=]
>
> \definelabel[foo][way=bychapter,prefix=chapter]
>
> \starttext
>
>     \startchapter[title=bar]
>
>         here \starttwo\stoptwo \input tufte
>
>         here \foo[xx] \input tufte
>
>         whatever \in{foo}[xx]
>
>     \stopchapter
>
> \stoptext

I played a bit more with enumerations and resolved one issue, I think. 
The forced paragraph break is a feature of the default before/after keys 
(both of which I need to null). Once this is done, enumerations can be 
used for in-line text as well, and when an explicit \par is added to 
\footnotes, the enumeration index appears there, unlike labels, where it 
does not appear.

Can you explain why the enumeration defined with constructionalternative 
rendering fails in footnotes, as shown in the following example? I 
suspect it has to do with my not understanding the use of 
\flushconstructionheadbox.

    \defineconstructionalternative
       [mylabel]
       [renderingsetup=constructionrenderings:mylabel,
        width=]

    \startsetups[constructionrenderings:mylabel]
         \inright{\dontleavehmode\flushconstructionheadbox}
    \stopsetups

    \defineenumeration[two][alternative=mylabel, % use mylabel rendering
                             headcolor=darkgreen,
                             text=,               % no name preceding
    label number
                             display=no,          % suppresses line
    break with constructs
                             before=,             % no added text before
    label number
                             after=]              % no added text after
    label number

    \defineenumeration[why][alternative=inright, % use inright rendering
                             headcolor=blue,
                             display=yes,         % seems to be the default
                             text=,               % no name preceding
    label number
                             before=,             % no added text before
    label number
                             after=]              % no added text after
    label number

    \definelabel[foo][text=,headcolor=red,alternative=inright]

    \starttext

             \startchapter[title=bar]

             here \starttwo[reference=aa]\stoptwo \input ward
    \starttwo[reference=bb]\stoptwo \input ward

             here as well?\footnote{\starttwo[reference=cc]\stoptwo This
    fails.\par}

             whatever \in{two}[aa] and \in{two}[bb] and \in{two}[cc]

             \blank

             here \two[dd]\input ward \two[ee]\input ward

             here as well?\footnote{\two[ff]This fails.\par}

             whatever \in{two}[dd] and \in{two}[ee] and \in{two}[ff] and why
             is this section not three paragraph?

             \blank

             here \why[gg]\input ward \why[hh] \input ward

             here as well?\footnote{\why[ii]This works!\par}

             whatever \in{why}[gg] and \in{why}[hh] and \in{why}[ii]

             \blank

             here \foo[xx] \input ward \foo[yy] \input ward

             here as well?\footnote{\foo[zz]This fails.}

             whatever \in{foo}[xx] and \in{foo}[yy] and \in{foo}[zz]

         \stopchapter


    \stoptext

Could you explain the display key. The best I could determine from 
strc-con.mkvi is that if it is not 'no' in a construction, a \par is 
inserted, although I do not see why it is required in one case, and the 
other in my example above.

Could you also explain why \par is required in the footnotes when it 
does not seem to be needed in footnotes for any other use?

-- 
Rik

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20180114/81739a9d/attachment.html>


More information about the ntg-context mailing list