[Dev-luatex] .BEILMOPS or how I stopped worrying and love Open Source

Hans Hagen pragma at wxs.nl
Wed Dec 12 09:56:41 CET 2007


Jonathan Sauer wrote:

... zip file ...

when using lpeg an dmatching, keep in mind that \unexpanded has the side 
effect of introducing spaces

\edef\oeps{\unexpanded{\t\n}} \meaning\oeps
\edef\oeps{\string\t\string\n} \meaning\oeps

indeed your weird file produces an empty page but that due to your macro 
... the simple example

\pdfoutput1 \pdfcompresslevel=0

\def\splitComma{%
	\directlua0{s=1}%
}

\splitComma

also produces an empty page, just call

\show\splitComma

this has to do with the fact that you use tabs in your file and you have 
not handled tab in your format

btw, if you change \unexpanded by \detokenize you get the desired result

a simple test shows ...

\directlua0{lpeg.print(lpeg.S(" \string\t\string\n"))}
\directlua0{\unexpanded{lpeg.print(lpeg.S(" \t\n"))}}
\directlua0{\detokenize{lpeg.print(lpeg.S(" \t\n"))}}

00: set [(09-0a)(20)]
09: end
[]
00: set [(0a)(20)(2e)(42)(45)(49)(4c-4d)(4f-50)(53)]
09: end
[]
00: set [(09-0a)(20)]
09: end

a simpler test is:

\directlua0{print("1 \string\t\string\n")}
\directlua0{\unexpanded{print("2 \t\n")}}
\directlua0{\detokenize{print("3 \t\n")}}

this gives

1

2 IMPOSSIBLE.

3

a simple write as in

\immediate\write16{1 \string\t\string\n}
\immediate\write16{\unexpanded{2 \t\n}}
\immediate\write16{\detokenize{3 \t\n}}

1 \t\n
2 \t \n
3 \t \n

(so, your problem is unrelated to lpeg)

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


More information about the dev-luatex mailing list