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
___________________________________________________________________________________
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
___________________________________________________________________________________

Reply via email to