From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/69130 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: break strings Date: Mon, 13 Jun 2011 22:19:12 +0200 Message-ID: <4DF670C0.1070108@wxs.nl> References: <81BCF9A8-D19A-4DD3-91EE-C552023AA86E@st.estfiles.de> <8EA8D5E8-2692-4D13-881A-4D8E499BF803@googlemail.com> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1307996381 1569 80.91.229.12 (13 Jun 2011 20:19:41 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 13 Jun 2011 20:19:41 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon Jun 13 22:19:37 2011 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([195.12.62.10]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QWDbj-0001mC-Ld for gctc-ntg-context-518@m.gmane.org; Mon, 13 Jun 2011 22:19:35 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 9ACB9CAD8E; Mon, 13 Jun 2011 22:19:34 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id TgxoEDfb33MB; Mon, 13 Jun 2011 22:19:31 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 0FF99CACF3; Mon, 13 Jun 2011 22:19:31 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 8B68DCACF3 for ; Mon, 13 Jun 2011 22:19:29 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id gr8OEsZljZL5 for ; Mon, 13 Jun 2011 22:19:18 +0200 (CEST) Original-Received: from filter3-ams.mf.surf.net (filter3-ams.mf.surf.net [192.87.102.71]) by balder.ntg.nl (Postfix) with ESMTP id 6CFFFCAB80 for ; Mon, 13 Jun 2011 22:19:18 +0200 (CEST) Original-Received: from smtp.ziggozakelijk.nl (D57D1DA2.static.ziggozakelijk.nl [213.125.29.162]) by filter3-ams.mf.surf.net (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id p5DKJHSc014968 for ; Mon, 13 Jun 2011 22:19:18 +0200 X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=10.100.1.101; Original-Received: from [10.100.1.101] (unverified [10.100.1.101]) by pragma-net.nl (SurgeMail 5.2a) with ESMTP id 3305-1713362 for multiple; Mon, 13 Jun 2011 22:19:14 +0200 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110414 Lightning/1.0b2 Thunderbird/3.1.10 ThunderBrowse/3.3.5 In-Reply-To: X-Authenticated-User: hagen@controller-9 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=213.125.29.162; country=NL; region=11; city=Den Haag; latitude=52.0833; longitude=4.3000; http://maps.google.com/maps?q=52.0833,4.3000&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0cETwjhGN - a287648cab15 - 20110613 X-Scanned-By: CanIt (www . roaringpenguin . com) on 192.87.102.71 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.12 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:69130 Archived-At: On 13-6-2011 3:58, Wolfgang Schuster wrote: > > Am 13.06.2011 um 15:40 schrieb luigi scarso: > >> Where is the difference ? > > The TeX solution is faster. > > \define[1]\ThisHelps > {\handletokens#1\with{\hskip 0pt plus .1pt\firstofoneargument}} > > \define[1]\ThisHelpsLuigi > {\startluacode > s='#1' > s= string.gsub(s,'(.)',"\%1\\hskip 0sp plus .1pt") > context(s) > \stopluacode} > > \showframe > > \starttext > > \testfeatureonce{10000}{\ThisHelps {abcde123xyz}}% > \testfeatureonce{10000}{\ThisHelpsLuigi{abcde123xyz}} > > \stoptext A few variants ... \startluacode local gsub = string.gsub function LuigiX(s) local s = gsub(s,'.',"\%1\\hskip 0sp plus .1pt") context(s) end local gmatch = string.gmatch function LuigiY(s) local LuigiYY = context.LuigiYY for s in gmatch(s,".") do LuigiYY(s) end end \stopluacode \def\ThisHelpsLuigiX#1{\ctxlua{LuigiX('#1')}} \def\ThisHelpsLuigiY#1{\ctxlua{LuigiY('#1')}} \def\LuigiYY#1{#1\hskip\zeropoint plus .1pt\relax} The disadvantage of the lua way is that for long strings we end up with a lot of data collected at the lua end that gets passed to tex. Normally this is no real problem. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ 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 ___________________________________________________________________________________