When I need to draw datapoints from a external data file I’m using lua, like this: \starttext \startluacode Elemento = {} x = {} y ={} z= {} carga = {} i=1 context("\\startMPcode”) context("numeric u; u := 1.5cm;") for line in io.lines("molecule.xyz") do local a, b, c, d, e = string.match(line, '(%a+)%s*%s*(%S+)%s*%s*(%S+)%s*%s*(%S+)%s*%s*(%S+)') Elemento[i]= a x[i]= tonumber(b) y[i]= tonumber(c) z[i]= tonumber(d) carga[i]= tonumber(e) context("label(\"%s\", (%0.6f u, %0.6f u));", a, x[i],y[i]) i=i+1 end context("\\stopMPcode”) \stopluacode \stoptext Is there a way to pass directly the external data to MetaPost without using Lua? I know that I can use a similar function to gdata from graph.mp. I try to reuse this piece of code, but not works. \startMPcode vardef Grdln_@#(expr f) = save n_, s_; string s_; s_ = readfrom f; string @#[]; if s_<>EOF: @#1 := loptok s_; n_ = if @#1="%": 0 else: 1 fi; forever: @#[incr n_] := loptok s_; exitif @#[n_]=" "; endfor @#1<>" " else: false fi enddef; Grdln_$("molecule.xyz"); \stopMPcode Jorge