[Dev-luatex] .BEILMOPS or how I stopped worrying and love Open Source
David Kastrup
dak at gnu.org
Wed Dec 12 10:26:53 CET 2007
"Jonathan Sauer" <Jonathan.Sauer at silverstroke.com> writes:
> Hello,
>
>> >> when using lpeg an dmatching, keep in mind that \unexpanded has the
>
>> >> side effect of introducing spaces
>> >
>> > Oh. I used \unexpanded, because sometime someone on this mailing list
>> > noted that it was faster than \detokenize.
>>
>> Should make no difference, I guess. \detokenize should
>> introduce the same spaces, using the same algorithm.
>
> Well, currently it makes a difference, three actually:
>
> 1. \unexpanded introduces "IMPOSSIBLE."
Hm.
> 2. \unexpanded introduces spaces after control sequences.
Why wouldn't \detokenize do the same? Wait, it does:
dak at lola:~$ etex
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
%&-line parsing enabled.
**\message{\detokenize{\a b}}
entering extended mode
\a b
*\message{\unexpanded{\a b}}
\a b
*\message{\detokenize{\:x}}
\:x
*\message{\unexpanded{\:x}}
\:x
*\end
No pages of output.
Transcript written on texput.log.
> 3. \unexpanded ignores \par's, while \detokenize does not. So empty
> lines in \directlua are no problem with \unexpanded, but result
> in a (Lua) parse error when \detokenize is used.
>
> At least in the context of \directlua.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I guess that this may be the real reason.
> Also, in terms of speed: \unexpanded only marks all tokens as
> unexpandable, while \detokenize creates new character tokens. So the
> latter should be somewhat slower.
No question about that.
>> >> btw, if you change \unexpanded by \detokenize you get the desired
>> >> result
>> >
>> > I know.
>>
>> Oops. Why would that be?
>
> Because of a bug? :-)
I should think so. Not sure whether this behavioral difference is
intended, but it certainly feels wrong to me.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
More information about the dev-luatex
mailing list