On 2018-01-12 15:50, Hans Hagen wrote:
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

Indeed. Thank you. Adding it to the before key of \defineenumeration appears to have no unwanted side effects. Can you think of a reason not to do that?

--
Rik
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to