ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* lua, footnotes, interaction
@ 2010-04-16 21:10 Philipp Gesang
  2010-04-17  6:27 ` Peter Münster
  2010-04-17  6:52 ` Peter Münster
  0 siblings, 2 replies; 6+ messages in thread
From: Philipp Gesang @ 2010-04-16 21:10 UTC (permalink / raw)
  To: ntg-context


[-- Attachment #1.1: Type: text/plain, Size: 1667 bytes --]

Good evening all,


interaction remains a mystery to me.  When tracking things I encountered
the following deviation in footnotes:

---8<--------------------------------------------------------------------------

\startluacode
track = {}
track.preceding = ""

function track.simple(arg)
    context("Last one:\\ {\\bf " .. track.preceding .. "}.\\ " .. 
            "This one:\\ {\\bf " .. arg .. "}")
    if arg == track.preceding then
      context("\\ -- matching!")
    else
      context("\\ -- not matching!")
      track.preceding = arg
    end
end
\stopluacode

\def\track#1{\ctxlua{track.simple("#1")}}
\def\foottrack#1{\footnote{\ctxlua{track.simple("#1")}}}

\starttext

\section{Normal}
\track{one}\par
\track{two}\par
\track{two}\par
\track{one}\par
\track{one}\par
\track{two}\par
\track{one}\par

\section{In Footnotes}
\foottrack{one}
\foottrack{two}
\foottrack{two}
\foottrack{one}
\foottrack{one}
\foottrack{two}
\foottrack{one}

\setupinteraction[state=start]
\section{In Footnotes, interaction enabled}
\footnote{\hrule}
\foottrack{one}
\foottrack{two}
\foottrack{two}
\foottrack{one}
\foottrack{one}
\foottrack{two}
\foottrack{one}

\stoptext

%   vim:ft=context
---8<--------------------------------------------------------------------------

I'd naively expect \track#1 to behave identically regardless of
interaction.  How do I make it interaction-proof, and, if possible,
how do I interaction-proof macros in general?

Thanks for your efforts,


Philipp

-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lua, footnotes, interaction
  2010-04-16 21:10 lua, footnotes, interaction Philipp Gesang
@ 2010-04-17  6:27 ` Peter Münster
  2010-04-17 10:19   ` Hans Hagen
  2010-04-17  6:52 ` Peter Münster
  1 sibling, 1 reply; 6+ messages in thread
From: Peter Münster @ 2010-04-17  6:27 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Fri, Apr 16 2010, Philipp Gesang wrote:

> function track.simple(arg)

Try this:
   print("TRACK:", arg)

> \def\foottrack#1{\footnote{\ctxlua{track.simple("#1")}}}

With interaction enabled, the argument to \footnote{} gets evaluated twice.
Cheers, Peter

-- 
Contact information: http://pmrb.free.fr/contact/


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lua, footnotes, interaction
  2010-04-16 21:10 lua, footnotes, interaction Philipp Gesang
  2010-04-17  6:27 ` Peter Münster
@ 2010-04-17  6:52 ` Peter Münster
  2010-04-17  7:20   ` Philipp Gesang
  1 sibling, 1 reply; 6+ messages in thread
From: Peter Münster @ 2010-04-17  6:52 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On Fri, Apr 16 2010, Philipp Gesang wrote:

> I'd naively expect \track#1 to behave identically regardless of
> interaction.  How do I make it interaction-proof

Sorry, I had forgotten to answer your main-question:

\def\foottrack#1{\expanded{\footnote{\ctxlua{track.simple("#1")}}}}


> and, if possible, how do I interaction-proof macros in general?

I don't know, but I suppose \expanded{} can help in most cases.

Cheers, Peter

-- 
Contact information: http://pmrb.free.fr/contact/


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lua, footnotes, interaction
  2010-04-17  6:52 ` Peter Münster
@ 2010-04-17  7:20   ` Philipp Gesang
  2010-04-17 10:37     ` Hans Hagen
  0 siblings, 1 reply; 6+ messages in thread
From: Philipp Gesang @ 2010-04-17  7:20 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 1650 bytes --]

Hi Peter, hi all!


On 2010-04-17 <08:52:05>, Peter Münster wrote:
> On Fri, Apr 16 2010, Philipp Gesang wrote:
> 
> > I'd naively expect \track#1 to behave identically regardless of
> > interaction.  How do I make it interaction-proof
> 
> Sorry, I had forgotten to answer your main-question:
> 
> \def\foottrack#1{\expanded{\footnote{\ctxlua{track.simple("#1")}}}}
Thanks very much, this does it!

> > and, if possible, how do I interaction-proof macros in general?
> 
> I don't know, but I suppose \expanded{} can help in most cases.  

Adding that one to my “try first”-list seems reasonable. There's a macro
\expanded defined in syst-aux.mkiv but it mentions certain “recent TeXs”
that have it builtin as a primitive -- which one am I using in mkiv?
The LuaTeXbook mentions an extra primitive “\expanded” taken from
pdfTeX. Are they equivalent?

Thanks a lot for your help!


Philipp


> Cheers, Peter
> 
> -- 
> Contact information: http://pmrb.free.fr/contact/
> 
> 
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________

-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lua, footnotes, interaction
  2010-04-17  6:27 ` Peter Münster
@ 2010-04-17 10:19   ` Hans Hagen
  0 siblings, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2010-04-17 10:19 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On 17-4-2010 8:27, Peter Münster wrote:
> On Fri, Apr 16 2010, Philipp Gesang wrote:
>
>> function track.simple(arg)
>
> Try this:
>     print("TRACK:", arg)
>
>> \def\foottrack#1{\footnote{\ctxlua{track.simple("#1")}}}
>
> With interaction enabled, the argument to \footnote{} gets evaluated twice.

eventually there will be a proper api for accessing footnote (and other) 
data ... for instance, one can carry user data around and access that 
later on

Hans

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: lua, footnotes, interaction
  2010-04-17  7:20   ` Philipp Gesang
@ 2010-04-17 10:37     ` Hans Hagen
  0 siblings, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2010-04-17 10:37 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Philipp Gesang

On 17-4-2010 9:20, Philipp Gesang wrote:
> Hi Peter, hi all!
>
>
> On 2010-04-17<08:52:05>, Peter Münster wrote:
>> On Fri, Apr 16 2010, Philipp Gesang wrote:
>>
>>> I'd naively expect \track#1 to behave identically regardless of
>>> interaction.  How do I make it interaction-proof
>>
>> Sorry, I had forgotten to answer your main-question:
>>
>> \def\foottrack#1{\expanded{\footnote{\ctxlua{track.simple("#1")}}}}
> Thanks very much, this does it!
>
>>> and, if possible, how do I interaction-proof macros in general?
>>
>> I don't know, but I suppose \expanded{} can help in most cases.
>
> Adding that one to my “try first”-list seems reasonable. There's a macro
> \expanded defined in syst-aux.mkiv but it mentions certain “recent TeXs”
> that have it builtin as a primitive -- which one am I using in mkiv?
> The LuaTeXbook mentions an extra primitive “\expanded” taken from
> pdfTeX. Are they equivalent?

no, we had \expanded (and \protected and \unexpanded and ...) long 
before they showed up as primitives

when \expanded was added, it was agreed that that name could be used 
even if it clashed with context internals; ok, it add confusion for 
users who use low level code, but as we always have \normalexpanded in 
context it's no big deal; when in doubt, use \normal* for primitives (or 
\primitive\expanded)

Hans


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

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-04-17 10:37 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-16 21:10 lua, footnotes, interaction Philipp Gesang
2010-04-17  6:27 ` Peter Münster
2010-04-17 10:19   ` Hans Hagen
2010-04-17  6:52 ` Peter Münster
2010-04-17  7:20   ` Philipp Gesang
2010-04-17 10:37     ` Hans Hagen

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).