Hello, while testing, I stumbled on a (then) strange phenomenon concerning line numbers in tex.print. It seems that \inputlineno is not equal to the number of the line of the tex.print statement (or the macro expanding to it), but of the virtual file tex.print uses internally. Example (PlainTeX): -------------------------------------------------------------------- % Output is `1' instead of `3': \directlua0{\unexpanded{tex.print('\\message{\\the\\inputlineno}')}} % Output is `1' instead of `6': \scantokens{\message{\the\inputlineno}} \bye -------------------------------------------------------------------- Results in: This is luaTeX, Version 3.141592-beta-0.11.2-2007091918 (Web2C 7.5.6) (format=luatex 2007.9.20) 24 SEP 2007 15:25 **LineNumberTest.tex (LineNumberTest.tex 1 1 ) No pages of output. As you can see, eTeX's \scantokens exhibits the same behaviour (most likely because it also uses a virtual file). But I think that tex.print will be used more often than \scantokens, since it is the only way to pass arbitrary tokens from Lua to TeX. This means that when TeX executes these tokens, log messages will use not the line number of the TeX macro that expanded to the Lua code that created new TeX tokens, but the "virtual line number" (as seen in the example above). These log messages (and most likely \errmessage-s as well) are not very useful. Jonathan
Jonathan Sauer wrote:
Hello,
while testing, I stumbled on a (then) strange phenomenon concerning line numbers in tex.print. It seems that \inputlineno is not equal to the number of the line of the tex.print statement (or the macro expanding to it), but of the virtual file tex.print uses internally.
Example (PlainTeX):
--------------------------------------------------------------------
% Output is `1' instead of `3': \directlua0{\unexpanded{tex.print('\\message{\\the\\inputlineno}')}}
% Output is `1' instead of `6': \scantokens{\message{\the\inputlineno}}
it's a new input level; using the line number of the parent would be confusing in other situations; Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (2)
-
Hans Hagen
-
Jonathan Sauer