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
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/
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 -----------------------------------------------------------------
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/
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
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 -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
Peter Münster
-
Philipp Gesang