You are correct Hans, I was using Mk IV luatex as the engine, though I
could use lmtx. It's just that in a production environment I need to be
absolutely sure things work (printers deadlines and that sort of thing!)
and I know that the MkIV luatex scene always works. But I'll give the
lmtx a run on this particular text without postponing and see how it
goes, since I already have a working result from the other.
Julian
On 28/7/21 5:32 pm, Hans Hagen wrote:
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
___________________________________________________________________________________
___________________________________________________________________________________
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
___________________________________________________________________________________