On Mon, 22 Aug 2011, Hans Hagen wrote:
On 22-8-2011 09:15, Aditya Mahajan wrote:
Hi
Consider the following example:
\startluacode print("lualetterbackslash:", [=[\\include]=]) \stopluacode
\def\lualetterbackslash{\letterbackslash} \startluacode print("letterbackslash:", [=[\\include]=]) \stopluacode
\bye
gives
lualetterbackslash: \\include letterbackslash: \include
I find the second alternative better. Why is \lualetterbackslash defined differently from \letterbackslash?
to avoid problems with \n, \t and such
Ah, I see.
btw, best use context.include then as it provides you better tracing
Well, \include is a lilypond command that must be written to an external file, something like this: \startluacode lilypond_preamble = [[ \\include "lilypond-book-preamble.py" other settings that will be substituted at run-time ]] buffers.assign("preamble", lilypond_preamble) \stopluacode \startbuffer[content] content of lilypond file \stopbuffer \savebuffer[preamble,content][temp-file] \bye I'll probably just use \appendtoks \def\/{\letterbackslash} \to\everyluacode and then \/include. Other than using the magic single letter commands, I don't see an easy way of getting a \ in a lua string inside luacode :( - \noexpand\include fails unless I define \include - \letterbackslash include gives "\ include" - \letterbackslash{}include gives "\{}include" Aditya