ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Hooking stoptext
@ 2013-10-08 11:22 Procházka Lukáš Ing. - Pontex s. r. o.
  2013-10-08 11:34 ` Aditya Mahajan
  2013-10-08 11:40 ` Marco Patzer
  0 siblings, 2 replies; 13+ messages in thread
From: Procházka Lukáš Ing. - Pontex s. r. o. @ 2013-10-08 11:22 UTC (permalink / raw)
  To: ConTeXt

[-- Attachment #1: Type: text/plain, Size: 1168 bytes --]

Hello,

I'm trying to hook commands.stoptext()...

Here's a minimal example: why only the first image appears?

----
\startluacode
   local cmd_p
   local tab = {}

   f = function(a)
     if not cmd_p then
       cmd_p = commands.stoptext

       commands.stoptext = function(...)
         context("Hook")

         for _, v in ipairs(tab) do
           context.startTEXpage()
             context.externalfigure{v}
           context.stopTEXpage()
         end

         cmd_p(...)
       end
     end

     table.insert(tab, a)
   end
\stopluacode

\starttext
   A
   \ctxlua{f("cow")}
   \ctxlua{f("hacker")}
\stoptext
----

When I modify the code:

----
...
         for _, v in ipairs(tab) do
           --context.startTEXpage()
             context.externalfigure{v}
           --context.stopTEXpage()
         end
...
----

all figures are shown OK.

Where's the problem?

TIA.

Best regards,

Lukas


-- 
Ing. Lukáš Procházka [mailto:LPr@pontex.cz]
Pontex s. r. o.      [mailto:pontex@pontex.cz] [http://www.pontex.cz]
Bezová 1658
147 14 Praha 4

Tel: +420 244 062 238
Fax: +420 244 461 038

[-- Attachment #2: t.pdf --]
[-- Type: application/pdf, Size: 10212 bytes --]

[-- Attachment #3: t.mkiv --]
[-- Type: application/octet-stream, Size: 516 bytes --]

\startluacode
  local cmd_p
  local tab = {}

  f = function(a)
    if not cmd_p then
      cmd_p = commands.stoptext

      commands.stoptext = function(...)
        context("Hook")

        for _, v in ipairs(tab) do
          context.startTEXpage()
            context.externalfigure{v}
          context.stopTEXpage()
        end

        cmd_p(...)
      end
    end

    table.insert(tab, a)
  end
\stopluacode

\starttext
  A
  \ctxlua{f("cow")}
  \ctxlua{f("hacker")}
\stoptext

[-- Attachment #4: Type: text/plain, Size: 485 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] 13+ messages in thread
* Hooking \stoptext
@ 2012-03-07 14:28 Procházka Lukáš Ing. - Pontex s. r. o.
  2012-03-07 14:39 ` luigi scarso
  2012-03-07 15:50 ` Philipp Gesang
  0 siblings, 2 replies; 13+ messages in thread
From: Procházka Lukáš Ing. - Pontex s. r. o. @ 2012-03-07 14:28 UTC (permalink / raw)
  To: ConTeXt

[-- Attachment #1: Type: text/plain, Size: 854 bytes --]

Hello,

I'd need to to hook \stoptext by Lua - I'd need to write something right before the end of the text.

See the simple example:

---- t-Hook.mkiv
\startluacode
   local stoptext_p = context.stoptext

   context.stoptext = function(...)
     context("END")
     stoptext_p(...)
   end
\stopluacode

\starttext
   \input knuth
\stoptext % To be hooked by Lua
----

This code should write "END" right before the end of the document, but it doesn't.

How to achieve that?

- I'd rather Lua to TeX do the job as I need Lua to do more complicated things (the example above is very simplified).

TIA.

Best regards,

Lukas


-- 
Ing. Lukáš Procházka [mailto:LPr@pontex.cz]
Pontex s. r. o.      [mailto:pontex@pontex.cz] [http://www.pontex.cz]
Bezová 1658
147 14 Praha 4

Tel: +420 244 062 238
Fax: +420 244 461 038

[-- Attachment #2: t-Hook.mkiv --]
[-- Type: application/octet-stream, Size: 195 bytes --]

\startluacode
  local stoptext_p = context.stoptext

  context.stoptext = function(...)
    context("END")
    stoptext_p(...)
  end
\stopluacode

\starttext
  \input knuth
\stoptext

[-- Attachment #3: t-Hook.pdf --]
[-- Type: application/pdf, Size: 9427 bytes --]

[-- Attachment #4: Type: text/plain, Size: 485 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] 13+ messages in thread

end of thread, other threads:[~2013-10-08 11:52 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-08 11:22 Hooking stoptext Procházka Lukáš Ing. - Pontex s. r. o.
2013-10-08 11:34 ` Aditya Mahajan
2013-10-08 11:40 ` Marco Patzer
2013-10-08 11:43   ` Marco Patzer
2013-10-08 11:52   ` Procházka Lukáš Ing. - Pontex s. r. o.
  -- strict thread matches above, loose matches on Subject: below --
2012-03-07 14:28 Hooking \stoptext Procházka Lukáš Ing. - Pontex s. r. o.
2012-03-07 14:39 ` luigi scarso
2012-03-07 15:14   ` luigi scarso
2012-03-07 15:26   ` Procházka Lukáš Ing. - Pontex s. r. o.
2012-03-07 15:50 ` Philipp Gesang
2012-03-07 15:57   ` Procházka Lukáš Ing. - Pontex s. r. o.
2012-03-07 17:37     ` Wolfgang Schuster
2012-03-07 23:07       ` Wolfgang Schuster

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