[NTG-context] Label problems with \definelabel and \defineenumeration, in and out of footnotes

Hans Hagen pragma at wxs.nl
Fri Jan 12 21:50:06 CET 2018


On 1/12/2018 8:24 PM, Rik Kabel wrote:
> On 2018-01-12 13:27, Hans Hagen wrote:
>> On 1/12/2018 6:58 PM, Rik Kabel wrote:
>>> Bump.
>>>
>>> On 2015-08-11 14:45, Rik Kabel wrote:
>>>> The example below documents the problems. In short, \definelabel 
>>>> suppresses paragraph indent when the label is at the beginning of a 
>>>> paragraph and fails to print the label or generate references with 
>>>> alternative=inmargin (or inright, or inleft) when in a footnote.
>>>>
>>>> \defineenumeration fails to work in a footnote.
>>
>> use
>>
>> \ID ... \par
>>
>> as it has to know where it ends which is a paragraph end
>>
>> or use
>>
>> \startID ... \stopID
>>
>>>>
>>>>     \setupindenting[yes,small]
>>>>     \definelabel   [ID][
>>>>     %\defineenumeration[ID][
>>>>        text=,
>>>>        after=,
>>>>        before=,
>>>>        headcolor=red,
>>>>        alternative=inright,
>>>>       ]
>>>>     \starttext
>>>>     \starttitle[title={Label testing}]
>>>>     \startsubject[title={Problems with \tex{definelabel}}]
>>>>
>>>>       This is a test. It is only a test.
>>>>
>>>>       \ID[id1]This paragraph should be indented, with an ID number
>>>>         in the margin. When \tex{ID} is placed at the beginning of the
>>>>         paragraph, as it is here, the paragraph is not indented.
>>>>
>>>>       This paragraph has a footnote.\footnote{%
>>>>           \ID[id2]The ID number is not printed in the margin with
>>>>             {\tt alternative=inright}, {\tt alternative=inmargin},
>>>>             or {\tt alternative=inleft}. Without any {\tt
>>>>             alternative} the ID number is printed where the macro
>>>>             appears. The positioning is unsatisfactory using {\tt
>>>>             alternative=right}.%
>>>>         } The footnote has an ID number which should be printed in the
>>>>         right margin.
>>>>
>>>>       This \ID[id3]paragraph has an ID, but it is not at the beginning
>>>>         of the paragraph and the paragraph is properly indented. The
>>>>         value of the ID number indicates that \tex{ID} in the footnote
>>>>         of the previous paragraph incremented the associated counter,
>>>>         but the failure of the references (\tex{in} and \tex{at}) to 
>>>> id2
>>>>         suggests that there are other problems.
>>>>
>>>>       \dorecurse{3}{
>>>>         ID id#1 is \in[id#1] and is on page \at[id#1].\par}
>>>>
>>>>       References for footnotes are generated without \tt{alternative=}.
>>>>
>>>>     \stopsubject
>>>>     \startsubject[title={Problems with \tex{defineenumeration}}]
>>>>
>>>>       When \tex{definelabel} is changed to \tex{defineenumeration},
>>>>         the example fails to compile. It does not properly handle
>>>>         the \tex{ID} in the footnote, complaining of an extra \} or
>>>>         forgotten \tex{endgroup}.
>>>>
>>>>     \stopsubject
>>>>     \stoptitle
>>>>     \stoptext
>>>>
>>>> -- 
>>>> Rik
> Thank you Hans.
> 
> With \defineenumeration, adding an explicit \par for the footnote allows 
> the index to print in the margin, and it works as well with 
> multi-paragraph footnotes using \epar and \bpar.
> 
> However, this does not address the failure to indent when the ID starts 
> a paragraph.

maybe putting a \dontleavehmode in front helps

> This does nothing to address the issues with \definelabel, but 
> \defineenumeration, together with "don't do that" for paragraph starts, 
> may now suffice.
> 


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list