On 7/27/2021 11:46 PM, jbf via ntg-context wrote:
No, in fact I discovered that \startpostponingnotes is what is needed. localfootnotes does work but places the footnote immediately below the framed text, and I wanted it to appear in the usual footnote location, which is achieved with startpostponingnotes

I assume that you use(d) mkiv/luatex and not lmtx/luametatex.

Footnotes are in tex speak 'inserts' and at some point they are filtered and added to the datastructure (list) that is taken into account when breaking a page.

When tex was written, the main application was books like those of Don Knuth where inserts like notes occur at the outer level. However, a macro package like context has all kind of complex deeply nested elements and there these notes just disappear. The main (and valid) reason is that it becomes kind of unpredictable what inserts are and where they have to go. (This is one reason why as soon as a macro package provides more functionality and control it also becomes much larger deep down.)

For this footnote-text-getting-lost problem, in mkii a solution became local notes and postponing.

In mmkiv it became a bit more clever and there is also an automigration features although in some cases that gives other side effects so it's not turned on by default.

In lmtx we use some new insert related features in luametatex so that's what I'll discuss next. (One can quit reading if not interested.)

Although it is still not trivial to deal with these things (keep in mind that users combine all mechanism which means that all mechanisms should be able to cooperate) in luametatex the inserts can bubble up which means that footnotes eventually will end up at the outer level.

So, if you use lmtx, ideally there is no need to use postponing (you can try your exapmle in lmtx without postponing).

For the curious ... the low level mechanisms involved in this can also be used for other purposes although currently this is not done. There is plenty of relative new functionality that can/will be applied some day.

Here is an example:

\setbox0\hbox{\strut this is just a test}

\setprelistbox 0\hbox{\strut \quad before}
\setpostlistbox0\hbox{\strut \quad after}

test \par \box0 \par test

Here \setprelistbox and \setpostlistbox are macros that (ab)use these hooks into lists. They will stay but keep in mind that when you use them they can interfere with for instance already present inserts.

Take this:

\starttext

\setbox0\hbox{\strut this is just a\footnote{oeps} test}
\setbox2\hbox{\strut this is just a\footnote{oeps} test}

\setprelistbox 0\hbox{\strut \quad before: \prelistbox0}
\setpostlistbox0\hbox{\strut \quad after: \postlistbox0}

\setprelistbox 2\hbox{\strut \quad before}
\setpostlistbox2\hbox{\strut \quad after}

test \par \box0 \par \box2 \par test

\stoptext

If you look carefully you'll see / can deduce what happens with inserts in luamatetatex.

Boxes are a major thing in tex, paragraphs are too, so here's another (already described elsewhere) trick with hooks,

(\wrapuppar{)}some text and some more text and ...

(\wrapuppar{\removeunwantedspaces)}some text and some more text and ...

test\wrapuppar{\crlf\ignorepars}

test

test\wrapuppar{\ignorepars}

test

test\wrapuppar{\removeunwantedspaces\ignorepars}

test

These are actually features that are already around and (so far) have proven to work ok. Especially the last examples are real tricky because you don't know if other mechanisms also use these (some already do) but all this box and pas stuff might eventually come with more high level interfaces (there is already one for the par stuff, not yet for the box stuff). But as with other such mechanism, one cannot rely on a naive approach and just assume the single case usage, only the user knows where it might interfere. On the other hand, low level box magick like the above will work ok because it's just that box.

Welcome to the world of (new) low level context trickery, which is and eventually will be described in the lowlevel-* manuals (after all I need topics for occasional presentations and those need to be new and if possible challenging.)

Hans

Julian

On 27/7/21 7:42 pm, Henning Hraban Ramm via ntg-context wrote:
Am 27.07.2021 um 06:07 schrieb jbf via ntg-context <ntg-context@ntg.nl>:

Is there any reason why the following MWE does not produce the footnote at the bottom of the page? It seems like the use of framedtext is preventing it, but am not sure why. Can I get around this problem and still have framed text?

Julian

\setupframed[location=middle]

\startframedtext[width=.77\makeupwidth,corner=round]
The poems of St John of the Cross have been important for me in recent years. This is John’s prayer from a verse in his Spiritual Canticle:\footnote{John of the Cross, {\em Spiritual Canticle}, stanza 32.  }

\startblockquote
You looked with love upon me, and deep within, your eyes imprinted grace. This mercy set me free, held in your love’s embrace, to lift my eyes adoring to your face.
\stopblockquote

I wonder how often John prayed that prayer.
\stopframedtext
Maybe localfootnotes are the solution (didn’t try):
https://wiki.contextgarden.net/Footnotes#Footnotes_in_Floats

Hraban
___________________________________________________________________________________ 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
___________________________________________________________________________________
___________________________________________________________________________________ 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
___________________________________________________________________________________


--

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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