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