Patrick Gundlach wrote:

Am 21.07.2011 um 14:34 schrieb Arno Trautmann:
Patrick Gundlach wrote:
Am 21.07.2011 um 14:11 schrieb Arno Trautmann:
I'd like to use the post_linebreak_filter to manipulate the node list, but only 
if a macro appears in that given paragraph.

Can you use attributes there? Then you can test whether certain attributes are 
in a paragraph and apply your code.

Yes, and I do in fact. But I'm not sure how this solves my problem here? Maybe 
I'll be more precise on what I want to do:
I've written a function randomcolor that inserts a color whatsit before (push) 
and after (pull) every glyph in a paragraph, using the post_linebreak_filter. 
Now I want to provide a command \textrandomcolor{} that does the same, but only 
with the text in the argument. For this, I use the same function as above, but 
set an attribute at the beginning of the argument and unset it at the end, and 
in the function, I test for this attribute. Fine.

That's what I wanted to write.

However, in a paragraph that does /not/ contain any \textrandomcolor, I don't 
want the function to loop through all nodes. Let's say, for performance reasons 
…

Does it really differ (performance wise)?

After a short test on 300 pages of blindtext, it's about 0.4s, and actually below uncertainty … But I might want to construct some more complex functions, and then it may differ measureably. Besides, I just want to have nice code – that's what LuaTeX is about, no?
(ok, Patrick is maybe the wrong person for “nice code” ;) )

cheers
Arno

Reply via email to