Difference between revisions of "User:Luigi.scarso"

From Wiki
Jump to navigation Jump to search
Line 149: Line 149:
 
dofile('testD.lua')}%
 
dofile('testD.lua')}%
 
}
 
}
 
 
Following [http://labix.org/lunatic-python] I was able, in a linux box, to modify luatex-snapshot-20070820.tar.bz2 so that <tt>luatex --luaonly</tt> can host python. Of course <tt>\directlua0{....}</tt> also works.
 
'''WARNING: these modifications break security and portability'''
 
 
<pre>% engine=luatex
 
\def\TestA#1{%
 
\directlua0{%
 
require('python')
 
re = python.import("re")
 
pattern = re.compile(".*(TeX).*")
 
match = pattern.match("#1")
 
if match
 
then
 
  print( 'match.group(1)===&gt;',match.group(1))
 
else
 
print ('#1 no match')
 
end
 
}}
 
 
\def\TestB#1{%
 
\directlua1{%
 
require('python')
 
re = python.import("re")
 
pattern = re.compile(".*(TeX).*")
 
match = pattern.match("#1")
 
if match
 
then
 
  print( 'match.group(1)===&gt;',match.group(1))
 
else
 
print ('#1 no match')
 
end
 
}}
 
 
\def\TestC{%
 
\directlua0{%
 
require('python')
 
python.execute('n=1')
 
n=python.eval('n')
 
print("PYTHON:"..n)
 
%% --[[ --]]
 
python.execute('s="XYZ"')
 
s=python.eval('s')
 
print("PYTHON:"..s,",lenght="..\letterhash s)
 
%% --[[ --]]
 
python.execute('d={"Boo":1}')
 
python.execute('d["FOO"]=2')
 
d=python.eval('d')
 
print("PYTHON:",d)
 
print("PYTHON:",d.Boo,d["Boo"],d.FOO,d["FOO"])
 
%% --[[ --]]
 
python.execute('a=[1,3,2,5,9]')
 
a=python.eval('a')
 
print("PYTHON:",a)
 
print("PYTHON:",a[0],a[1])
 
python.execute('a.append("X")')
 
python.execute('a.sort()')
 
a=python.eval('a')
 
print("PYTHON:",a)
 
print("PYTHON:",a[0],a[1])
 
%% --[[ --]]
 
a=python.eval('[0,3,8,2,-1]')
 
print("PYTHON:",a[3])
 
print("PYTHON:",a,type(a))
 
%%
 
}}
 
 
%%-- testD.lua
 
%% require('python')
 
%% print("BEGIN PYTHON")
 
%% pycode=[[
 
%% class Test(object):
 
%%  def __init__(self):
 
%%    self.a=[0,3,81,2,-1]
 
%%    self.b=self.a[:]
 
%%    self.a.sort()
 
%%
 
%%  def get(self):
 
%%    return self.a,self.b
 
%% ]]
 
%% python.execute(pycode)
 
%% python.execute("t=Test()")
 
%% print(python.eval("t.get()"))
 
%% t=python.eval("Test()")
 
%% print(t.get())
 
%% print(t.get()[0])
 
%% print(t.get()[0][0])
 
%% print(TeX)
 
%% print("END PYTHON")
 
\def\TestD#1{%
 
\directlua0{%
 
TeX='#1'
 
dofile('testD.lua')}%
 
}
 
 
  
 
%% -- testG.lua
 
%% -- testG.lua

Revision as of 11:40, 27 August 2007

Modules::documentation

Modules as name come from modules switch in
texexec --pdf --modules module name
or
texmfstart texexec --pdf --modules module name
which is a way to make pdf of documentation and code of module name .

-- Maybe you are searching for Modules, ie extensions to ConTeXt's core functions.--

Other stuffs

  • I have download preprint of EUROTEX 2005 [3] It's very interesting.

  • Is Indesign CS2 better than ConTeXt ?

Cool links





Luatex hosts python

Following [5] I was able, in a linux box, to modify luatex-snapshot-20070820.tar.bz2 so that luatex --luaonly can host python. Of course \directlua0{....} also works.
WARNING: these modifications break security and portability

% engine=luatex
\def\TestA#1{%
\directlua0{%
require('python')
re = python.import("re")
pattern = re.compile(".*(TeX).*")
match = pattern.match("#1")
if match
then
  print( 'match.group(1)===>',match.group(1))
else
 print ('#1 no match')
end
}}

\def\TestB#1{%
\directlua1{%
require('python')
re = python.import("re")
pattern = re.compile(".*(TeX).*")
match = pattern.match("#1")
if match
then
  print( 'match.group(1)===>',match.group(1))
else
 print ('#1 no match')
end
}}

\def\TestC{%
\directlua0{%
require('python')
python.execute('n=1')
n=python.eval('n')
print("PYTHON:"..n)
%% --[[ --]]
python.execute('s="XYZ"')
s=python.eval('s')
print("PYTHON:"..s,",lenght="..\letterhash s)
%% --[[ --]]
python.execute('d={"Boo":1}')
python.execute('d["FOO"]=2')
d=python.eval('d')
print("PYTHON:",d)
print("PYTHON:",d.Boo,d["Boo"],d.FOO,d["FOO"])
%% --[[ --]]
python.execute('a=[1,3,2,5,9]')
a=python.eval('a')
print("PYTHON:",a)
print("PYTHON:",a[0],a[1])
python.execute('a.append("X")')
python.execute('a.sort()')
a=python.eval('a')
print("PYTHON:",a)
print("PYTHON:",a[0],a[1])
%% --[[ --]]
a=python.eval('[0,3,8,2,-1]')
print("PYTHON:",a[3])
print("PYTHON:",a,type(a))
%%
}}

%%-- testD.lua 
%% require('python')
%% print("BEGIN PYTHON")
%% pycode=[[
%% class Test(object):
%%  def __init__(self):
%%    self.a=[0,3,81,2,-1]
%%    self.b=self.a[:]
%%    self.a.sort()
%%    
%%  def get(self):    
%%    return self.a,self.b
%% ]]
%% python.execute(pycode)
%% python.execute("t=Test()")
%% print(python.eval("t.get()"))
%% t=python.eval("Test()")
%% print(t.get())
%% print(t.get()[0])
%% print(t.get()[0][0])
%% print(TeX)
%% print("END PYTHON")
\def\TestD#1{%
\directlua0{%
TeX='#1'
dofile('testD.lua')}%
}

%% -- testG.lua
%% require('python')
%% tex.print("\\ruledvbox{testG}\\blank")
%% tex.print("\\ruledvbox{BEGIN PYTHON}\\blank")
%% pyg = python.globals()
%% pycode=[[
%% class Test(object):
%%   def __init__(self,tex):
%%     self.tex=tex
%%     
%%   def getbboxpage(self):    
%%     return self.tex['hsize'],self.tex['vsize']
%% 
%% ]]
%% python.execute(pycode)
%% --
%% pyg.tex = tex
%% python.execute("test=Test(tex)")
%% test=python.eval("test")
%% bboxpage = test.getbboxpage()
%% tex.print(tostring(bboxpage))
%% tex.print("\\blank\\ruledvbox{END PYTHON}")
\def\TestG{\directlua0{dofile('testG.lua')}}


\starttext

\TestD

\stoptext


Future ConTeXt Users

Future_ConTeXt_Users