Hi Aditya,
For some reason, there is an extra \relax written to file after `\the\numexp\clf_lastypos\relax` (there is no such relax after `\the\numexpr\clf_lastxpos\relax`). The test.pgf file is:
\macro {A}{23930350}{43358454.0\relax } \macro {B}{39564274.0\relax }{14083538}
Any ideas on why is the extra \relax written after lastypos and how to fix that?
\numexpr stops at the first non-expandable or non-digit token. If \clf_last[xy]pos expands to an integer, then that's the \relax, but if it expands to a float, then that's the decimal point. With Lua, adding, subtracting, or multiplying two integers will give you an integer, but dividing gives you a float. So somewhere in the backend, the vertical position is probably divided but the horizontal position is only added or subtracted. To fix this, change lines 2344--2345 of anch-pos.lmt from implement { name = "lastxpos", actions = function() context(jobpositions.lastx) end } implement { name = "lastypos", actions = function() context(jobpositions.lasty) end } to implement { name = "lastxpos", actions = function() context("%.0f", jobpositions.lastx) end } implement { name = "lastypos", actions = function() context("%.0f", jobpositions.lasty) end } Thanks, -- Max