Accessing string contents of a macro in Lua.
Hi all, Below are three methods of defining a dimension / dimension string in ConTeXt --- the first two boil down to storing a string in a macro, the last is a proper TeX dimen. I want to access these dimensions from Lua. I can access the dimen via tex.dimen.ColumnC, but how can I access the macro contents? If there is no solution, I can always explicitly pass the value to Lua with \ctxlua{var = '\measure{ColumnA}'} , but I want to know if there is a Lua-only method to get these values. %% MWE \definemeasure[ColumnA][10mm] \def\ColumnB{20mm} \newdimen\ColumnC \ColumnC=30mm \startluacode -- print values to stdout logs.report('====') logs.report('ColumnA', context.measure('ColumnA')) logs.report('ColumnB', context.ColumnB) logs.report('ColumnC', tex.dimen.ColumnC) -- prints in scaled points print('====') \stopluacode Cheers, Sietse
On Wed, Apr 24, 2013 at 5:51 PM, Sietse Brouwer
Hi all,
Below are three methods of defining a dimension / dimension string in ConTeXt --- the first two boil down to storing a string in a macro, the last is a proper TeX dimen. I want to access these dimensions from Lua.
I can access the dimen via tex.dimen.ColumnC, but how can I access the macro contents? If there is no solution, I can always explicitly pass the value to Lua with
\ctxlua{var = '\measure{ColumnA}'}
, but I want to know if there is a Lua-only method to get these values.
%% MWE \definemeasure[ColumnA][10mm]
\def\ColumnB{20mm}
not a general solution %%% \def\ColumnB{20mm} \starttext \startluacode local c = "\\csname ColumnB\\endcsname" context("ColumnB=%s",c) \stopluacode \par \toks0=\expandafter{\ColumnB} \startluacode context("ColumnB=%s",tex.toks[0]) \stopluacode \stoptext -- luigi
On 4/24/2013 6:50 PM, luigi scarso wrote:
On Wed, Apr 24, 2013 at 5:51 PM, Sietse Brouwer
wrote: Hi all,
Below are three methods of defining a dimension / dimension string in ConTeXt --- the first two boil down to storing a string in a macro, the last is a proper TeX dimen. I want to access these dimensions from Lua.
I can access the dimen via tex.dimen.ColumnC, but how can I access the macro contents? If there is no solution, I can always explicitly pass the value to Lua with
\ctxlua{var = '\measure{ColumnA}'}
, but I want to know if there is a Lua-only method to get these values.
%% MWE \definemeasure[ColumnA][10mm]
\def\ColumnB{20mm} % not a general solution %%% \def\ColumnB{20mm}
\newtoks\MyColumnB \MyColumnB{20mm}
\starttext \startluacode local c = "\\csname ColumnB\\endcsname" context("ColumnB=%s",c) \stopluacode
\par \toks0=\expandafter{\ColumnB} \startluacode context("ColumnB=%s",tex.toks[0])
context("ColumnB=%s",tex.toks.MyColumnB)
\stopluacode
\stoptext
-- luigi ___________________________________________________________________________________ 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 ___________________________________________________________________________________
-- ----------------------------------------------------------------- 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
-
luigi scarso
-
Sietse Brouwer