On 10/11/2021 1:38 PM, Adam Reviczky via ntg-context wrote:
Hi,
I am trying to use a combination figure with luacode (both with latest MKIV and LMTX). However, the figures do not line up in the grid of the combination.
I get the correct result with examples 1 and 2 below, but example 3 using lua functions for combination and externalfigure is what I wanted to use in the first place.
MWE:
\starttext
\startluacode
-- Combination 1 context.startplacefigure({title = "Figure"}) context.startcombination({nx = "2", ny = "2"},
"\\externalfigure[cow][width=50mm]","Caption 1", "\\externalfigure[cow][width=50mm]","Caption 2", "\\externalfigure[cow][width=50mm]","Caption 3", "\\externalfigure[cow][width=50mm]","Caption 4" )
context.stopcombination() context.stopplacefigure()
-- Combination 2
context.startplacefigure({title = "Figure"}) context.startcombination({nx = "2", ny = "2"},
"Picture 1","Caption 1", "Picture 2","Caption 2", "Picture 3","Caption 3", "Picture 4","Caption 4" )
context.stopcombination() context.stopplacefigure()
-- Combination 3
context.startplacefigure({title = "Figure"}) context.startcombination({nx = "2", ny = "2"},
context.externalfigure({"cow"},{width = "50mm"}),"Caption 1", context.externalfigure({"cow"},{width = "50mm"}),"Caption 2", context.externalfigure({"cow"},{width = "50mm"}),"Caption 3", context.externalfigure({"cow"},{width = "50mm"}),"Caption 4" )
context.stopcombination() context.stopplacefigure()
\stopluacode \stoptext
Any hints on what I am doing wrong in example 3? as in any prodedural language a function as argument gets immediately executed so you need to delay:
context.startplacefigure({title = "Figure"}) context.startcombination({nx = "2", ny = "2"}, context.delayed.externalfigure({"cow"},{width = "50mm"}), "Caption 1", context.delayed.externalfigure({"cow"},{width = "50mm"}), "Caption 2", context.delayed.externalfigure({"cow"},{width = "50mm"}), "Caption 3", context.delayed.externalfigure({"cow"},{width = "50mm"}), "Caption 4" ) context.stopcombination() context.stopplacefigure() (this is why encoding complex documents completely in a scrtipt language is non trivial and why for instance these template systems are there because these accumulate) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------