From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/69981 Path: news.gmane.org!not-for-mail From: Jaroslav Hajtmar Newsgroups: gmane.comp.tex.context Subject: Re: Optimal way to defining of macros in Luacode in ConTeXt Date: Thu, 14 Jul 2011 17:12:28 +0200 Message-ID: <4E1F075C.1010405@gyza.cz> References: <4E1C6883.30300@gyza.cz> <4E1C6BA0.90008@wxs.nl> <4E1D51D5.50507@gyza.cz> <4E1D6B95.4080200@wxs.nl> <4E1D6DF9.2050700@gyza.cz> <95434AD2-8A25-413A-A4EA-6CBA6DC96776@googlemail.com> <4E1DA72E.6070702@gyza.cz> <21109B35-0FFC-44B7-817B-9601A6D5101A@googlemail.com> Reply-To: hajtmar@gyza.cz, 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 1310656371 29914 80.91.229.12 (14 Jul 2011 15:12:51 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 14 Jul 2011 15:12:51 +0000 (UTC) Cc: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Thu Jul 14 17:12:47 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 1QhNao-0000nI-5e for gctc-ntg-context-518@m.gmane.org; Thu, 14 Jul 2011 17:12:46 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 450EDCAE43; Thu, 14 Jul 2011 17:12:43 +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 lExFibzcUHTb; Thu, 14 Jul 2011 17:12:38 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id A6BFCCAE3D; Thu, 14 Jul 2011 17:12:38 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 734E8CAE3D for ; Thu, 14 Jul 2011 17:12:37 +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 rR2-xQXMLVKm for ; Thu, 14 Jul 2011 17:12:35 +0200 (CEST) Original-Received: from filter4-til.mf.surf.net (filter4-til.mf.surf.net [194.171.167.220]) by balder.ntg.nl (Postfix) with ESMTP id 8BDC4CAE1A for ; Thu, 14 Jul 2011 17:12:35 +0200 (CEST) Original-Received: from psi1.forpsi.com (smtpa.forpsi.com [81.2.195.204]) by filter4-til.mf.surf.net (8.14.3/8.14.3/Debian-5+lenny1) with ESMTP id p6EFCYs6025470 for ; Thu, 14 Jul 2011 17:12:34 +0200 Original-Received: (qmail 3324 invoked by uid 89); 14 Jul 2011 15:12:32 -0000 Original-Received: from unknown (HELO ?192.168.20.100?) (hajtmar@88.103.230.14) by psi01 with ESMTPA; 14 Jul 2011 15:12:32 -0000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs; rv:1.9.1.8) Gecko/20100216 Thunderbird/3.0.2 In-Reply-To: <21109B35-0FFC-44B7-817B-9601A6D5101A@googlemail.com> X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=81.2.195.204; country=CZ; latitude=49.7500; longitude=15.5000; http://maps.google.com/maps?q=49.7500,15.5000&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 05F7PcySh - 2c318f618f93 - 20110714 X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.216 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:69981 Archived-At: Thanx very much Hans and Wolfgang too, I converted ALL my ConTeXt definitions (macros) with fixed numbers of parameters by using yours method - ie: interfaces.definecommand { name = "....", macro = ....., arguments = { { "content", "string" }, { "content", "string" }, }, } It is great and very easy - thanx. Now I want convert rest of definitions (macros) - they have varied numbers of parameters. Is there any similar way to do it? Suffice it to indicate how. Thanx Jaroslav To show what macros I want to convert, I mention these examples: \def\opencsvfile{% \dosingleempty\doopencsvfile% } \def\doopencsvfile[#1]{% \dosinglegroupempty\dodoopencsvfile } \def\dodoopencsvfile#1{% \iffirstargument \ctxlua{thirddata.scancsv.opencsvfile("#1")} \else \ctxlua{thirddata.scancsv.opencsvfile()} \fi } or other macro etc: % \doloopaction % implicit use \lineaction macro % \doloopaction{\action} % use \action macro for all lines % \doloopaction{\action}{4} % use \action macro for first 4 lines % \doloopaction{\action}{2}{5} % use \action macro for lines from 2 to 5 \def\doloopaction{\dotriplegroupempty\doloopAction} \def\doloopAction#1#2#3{% \opencsvfile% \doifsomethingelse{#3}{%3 args. \doloopfromto{#2}{#3}{#1}% if 3 arguments then do #1 macro from #2 line to #3 line }{% \doifsomethingelse{#2}{%2 args. \doloopfromto{1}{#2}{#1}% if 2 arguments then do #1 macro for first #2 lines }% {\doifsomethingelse{#1}{% 1 arg. \doloopfromto{-1}{-1}{#1}% }{% if without arguments then do \lineaction macro for all lines \doloopfromto{-1}{-1}{\lineaction}% }% }% }% }% Dne 13.7.2011 16:33, Wolfgang Schuster napsal(a): > Am 13.07.2011 um 16:09 schrieb Jaroslav Hajtmar: > > >> Thanx Wolfgang, >> >> It looks very interesting... It can be used this method for example for macro definitions? >> > It depends what you want to achieve, while you try to create many commands > in the form \MacroXXX where each command contains some content i define > only one command which takes the content only when requested. > > >> When I will return to the subject of this mail: >> Can also be used for the council said Hans macros with multiple parameters? >> >> For example macros without parameter is no problem: >> context.setvalue('printline',calling.luafunction(),tex.par) >> I assume that for a more parameters cannot be used context.setvalue (...) .. >> >> But how to use multiple parameters when defining the macro as follows: >> context([[\\def\\paramcontrol#1#2{%s}]],thirddata.scancsv.paramcontrol('#1', '#2')) >> > Look into cldf-int.lua where you can see a method to create TeX commands > without optional arguments from Lua. > > Wolfgang > ___________________________________________________________________________________ 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 ___________________________________________________________________________________