[NTG-context] [Dev-luatex] Example: Sorting in LuaTeX

Hans Hagen pragma at wxs.nl
Thu Aug 9 13:19:56 CEST 2007


Jonathan Sauer wrote:
> Hello Hans,
> 
>>> Caveat: In TeX, braces can be used to hide the <delimiter>; this is 
>>> not possible in the above code. I plan to code a 
>>> "string.findOutsideBraces" function to handle braces correctly, but
> I 
>>> wonder if this should not be a library routine.
>> the embedded libaries and extensions are kept to the minimum, 
>> if only because we want to avoid endless discussions about 
>> what could go in there; lua is fast enough anyway; concerning 
>> braces .. watch the %b option on expressions, can be handy 
>> for nested braces
> 
> Right. I am still learning Lua and had known about patterns, but not
> about %b. That indeed looks promising. I will look into it.

simple example ...

\def\sortedsequence#1#2{\directlua 0 {
     do
         local sep = "\luaescapestring{#1}"
         local str = "\luaescapestring{#2}"
         local tab = { }
         for s in string.gmatch(str,"([^"..sep.."]+)") do
             tab[\string ##tab+1] = s
         end
         table.sort(tab)
         tex.sprint(table.concat(tab,sep))
     end
}}

\sortedsequence{,}{qq,aa,cc,bb,ee,xx}



-----------------------------------------------------------------
                                           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 ntg-context mailing list