ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Achim Jander <achim@jander.de>
To: Hans Hagen <pragma@wxs.nl>
Cc: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: still struggling with footnotes
Date: Thu, 06 Jan 2011 16:58:02 +0100	[thread overview]
Message-ID: <4D25E68A.6010309@jander.de> (raw)
In-Reply-To: <4D25C84E.1020009@wxs.nl>

Hi Hans,
your're a genious, thats so great! Thank you very very much!
While testing and adapting the code, there are two questions still:

I changed
            pages[number] = range
to
            local order =  v.references.order
             pages[order] = range

and accordingly

function document.dosomething()
   local n = structures.notes.getn("footnote",n)

which seems to work, but it would be nice if you could confirm my 
suggestion that these two values are equal.

The other question:
As far as I can understand, structures.lists.collected seems to be 
filled before any typesetting is done yet???
Could you give me some enlightment about that or is it simply the 
ConTeXt magic?

Thank you once again,
Greetings
Achim


Am 06.01.2011 14:49, schrieb Hans Hagen:
> something like this
>
> \enabletrackers[structures.notes]
>
> \setupnotedefinition[footnote][location=left,distance=1em,hang=4,headalign=flushright] 
>
>
> \startluacode
>     local n, ranges, pages = 0, { }, { }
>     for k, v in ipairs(structures.lists.collected) do
>         if v.metadata.kind == "description" and v.metadata.name == 
> "footnote" then
>             local realpage = v.references.realpage
>             local number = v.numberdata.numbers[1]
>             local range = ranges[realpage]
>             if not range then
>                 range = { min = 0, max = 0 }
>                 ranges[realpage] = range
>             end
>             if number < range.min then
>                 range.min = number
>             end
>             if number > range.max then
>                 range.max = number
>             end
>             pages[number] = range
>         end
>     end
>     function document.dosomething()
>         n = n + 1
>         local range = pages[n]
>         if range then
>             context.setupnotedefinition(
>                 { "footnote" },
>                 {  sample = range.max }
>             )
>         end
>     end
> \stopluacode
>
> \appendtoks
>     \ctxlua{document.dosomething()}
> \to \everybeforenoteinsert
>
> \showframe
>
> \starttext
>     \dorecurse {200} {test\footnote{test} }
> \stoptext
>
>
> -----------------------------------------------------------------
>                                           Hans Hagen | PRAGMA ADE
>               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>     tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
>                                              | 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


  reply	other threads:[~2011-01-06 15:58 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-03 15:51 Achim Jander
2011-01-05 15:54 ` Achim Jander
2011-01-06 13:49   ` Hans Hagen
2011-01-06 15:58     ` Achim Jander [this message]
2011-01-07 18:26       ` Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D25E68A.6010309@jander.de \
    --to=achim@jander.de \
    --cc=ntg-context@ntg.nl \
    --cc=pragma@wxs.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).