Re: [NTG-context] getting line numbers
Hi, I am trying to test this file but without success. I just do context test.tex but I suspect that is not it. When you say > We compile and run: > Which command is it with ? Thanks Fabrice Le ven. 3 sept. 2021 à 18:26, Hans Hagen via ntg-context a écrit : > On 9/3/2021 3:53 PM, Aditya Mahajan via ntg-context wrote: > > On Fri, 3 Sep 2021, Thierry Horsin via ntg-context wrote: > > > >> Hi everybody > >> > >> Is there a way to have an automatic access to the current line number > of a specific place inside a tex file ? To be more precise, here is what I > would like to do. > > > > Also look at the filter module. > > > > https://github.com/adityam/filter > > > > Behind the scenes, it works by saving the content in an external file > and then > > running it through any external program. It also allows for caching the > > result, and has many options for customizing the behavior. > you forgot to mention that it also makes sure that you only process when > there has been a change (after all calling gcc comes at a price) > > Hans > > - >Hans Hagen | PRAGMA ADE >Ridderstraat 27 | 8061 GH Hasselt | The Netherlands > tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net > archive : https://bitbucket.org/phg/context-mirror/commits/ > wiki : http://contextgarden.net > > ___ > ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] getting line numbers
Thank you Hans. For what I had in mind (compiling some c++ inside a tex file) it seems to work. Anyway for this I am currently using the buffer and typebuffer solution you provide. T. Le Saturday 04 Sep 2021 à 10:35:34 (+0200), Hans Hagen a écrit : > there has always been > > \the\inputlineno > > but it is not always accurate (because content can come from anyplace, e.g. > lua) > > > - > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands >tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] getting line numbers
On 9/4/2021 9:01 AM, thierry horsin via ntg-context wrote: Hi and thank you Aditaya and again Hans. By the way, just for fun , is there a(n easy) way to get the linenumber in the tex file ? there has always been \the\inputlineno but it is not always accurate (because content can come from anyplace, e.g. lua) - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] getting line numbers
Hi and thank you Aditaya and again Hans. By the way, just for fun , is there a(n easy) way to get the linenumber in the tex file ? Thanks On 03/09/2021 18:04, ntg-context-requ...@ntg.nl wrote: -- Message: 4 Date: Fri, 3 Sep 2021 14:16:40 +0200 From: Hans Hagen To: mailing list for ConTeXt users Cc: Thierry Horsin Subject: Re: [NTG-context] getting line numbers Message-ID: <807e4b7c-97ae-e20e-3207-28393544c...@xs4all.nl> Content-Type: text/plain; charset=utf-8; format=flowed in this case, thinking a bit different is easier ... \starttext \startbuffer[MyBuffer] #include using namespace std; int mysum(int,int); int a; int b; int main () { a=2; b=9; cout << mysum(a,b) << endl; return 0; } int mysum(int a, int b) { return a+b; } \stopbuffer We compile and run: \typebuffer[MyBuffer][option=C] \startluacode io.savedata("test.cpp",buffers.getcontent("MyBuffer")) --os.execute("g++ -o test test.cpp") --os.execute("./test > test.tmp") os.execute("echo done > test.tmp") buffers.assign("MyBuffer",io.loaddata("test.tmp")) \stopluacode And get: \typebuffer[MyBuffer] Or just: \typefile{test.tmp} \stoptext - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl - -- -- Message: 6 Date: Fri, 3 Sep 2021 09:53:58 -0400 (EDT) From: Aditya Mahajan To: Thierry Horsin via ntg-context Subject: Re: [NTG-context] getting line numbers Message-ID: Content-Type: text/plain; charset=US-ASCII On Fri, 3 Sep 2021, Thierry Horsin via ntg-context wrote: https://github.com/adityam/filter Behind the scenes, it works by saving the content in an external file and then running it through any external program. It also allows for caching the result, and has many options for customizing the behavior. Aditya ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] getting line numbers
On 9/3/2021 3:53 PM, Aditya Mahajan via ntg-context wrote: On Fri, 3 Sep 2021, Thierry Horsin via ntg-context wrote: Hi everybody Is there a way to have an automatic access to the current line number of a specific place inside a tex file ? To be more precise, here is what I would like to do. Also look at the filter module. https://github.com/adityam/filter Behind the scenes, it works by saving the content in an external file and then running it through any external program. It also allows for caching the result, and has many options for customizing the behavior. you forgot to mention that it also makes sure that you only process when there has been a change (after all calling gcc comes at a price) Hans - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] getting line numbers
On Fri, 3 Sep 2021, Thierry Horsin via ntg-context wrote: > Hi everybody > > Is there a way to have an automatic access to the current line number of a > specific place inside a tex file ? To be more precise, here is what I would > like to do. Also look at the filter module. https://github.com/adityam/filter Behind the scenes, it works by saving the content in an external file and then running it through any external program. It also allows for caching the result, and has many options for customizing the behavior. Aditya ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] getting line numbers
Many thanks Hans. Thierry Le Friday 03 Sep 2021 à 14:16:40 (+0200), Hans Hagen a écrit : > in this case, thinking a bit different is easier ... > > \starttext > > \startbuffer[MyBuffer] > #include > > using namespace std; > int mysum(int,int); > int a; int b; > int main () { > a=2; b=9; > cout << mysum(a,b) << endl; > return 0; > } > int mysum(int a, int b) { > return a+b; > } > \stopbuffer > > We compile and run: > > \typebuffer[MyBuffer][option=C] > > \startluacode > io.savedata("test.cpp",buffers.getcontent("MyBuffer")) > --os.execute("g++ -o test test.cpp") > --os.execute("./test > test.tmp") > os.execute("echo done > test.tmp") > buffers.assign("MyBuffer",io.loaddata("test.tmp")) > \stopluacode > > And get: > > \typebuffer[MyBuffer] > > Or just: > > \typefile{test.tmp} > > \stoptext > > > - > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands >tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
Re: [NTG-context] getting line numbers
On 9/3/2021 12:58 PM, Thierry Horsin via ntg-context wrote: Hi everybody Is there a way to have an automatic access to the current line number of a specific place inside a tex file ? To be more precise, here is what I would like to do. I am currently trying to have some automatic external compilation by g++ of some portion of my tex file as in the following example below. \startC \stopC defines a framed part of text written between lines 538 and 549. Of course, if I add something before or inbetween my framed code, 538 and/or 549 will change. Thus I would like to get these two numbers automatically. Thank you. Thierry \startC #include using namespace std; int mysum(int,int); int a; int b; int main () { a=2; b=9; cout << mysum(a,b) << endl; return 0; } int mysum(int a, int b) { return a+b; } \stopC \startluacode myout = io.open("test.cpp", "w") myin = io.open(tex.jobname..".tex", "r") local n=0 for line in myin:lines() do n=n+1 if n>539 and n<550 then myout:write(line.."\n") end end myout:close() myin:close() os.execute("g++ -o test test.cpp") os.execute("./test > tmp") local file=assert(io.open("tmp","r")) local t = file:read("*all") tex.print(t) \stopluacode in this case, thinking a bit different is easier ... \starttext \startbuffer[MyBuffer] #include using namespace std; int mysum(int,int); int a; int b; int main () { a=2; b=9; cout << mysum(a,b) << endl; return 0; } int mysum(int a, int b) { return a+b; } \stopbuffer We compile and run: \typebuffer[MyBuffer][option=C] \startluacode io.savedata("test.cpp",buffers.getcontent("MyBuffer")) --os.execute("g++ -o test test.cpp") --os.execute("./test > test.tmp") os.execute("echo done > test.tmp") buffers.assign("MyBuffer",io.loaddata("test.tmp")) \stopluacode And get: \typebuffer[MyBuffer] Or just: \typefile{test.tmp} \stoptext - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___
[NTG-context] getting line numbers
Hi everybody Is there a way to have an automatic access to the current line number of a specific place inside a tex file ? To be more precise, here is what I would like to do. I am currently trying to have some automatic external compilation by g++ of some portion of my tex file as in the following example below. \startC \stopC defines a framed part of text written between lines 538 and 549. Of course, if I add something before or inbetween my framed code, 538 and/or 549 will change. Thus I would like to get these two numbers automatically. Thank you. Thierry \startC #include using namespace std; int mysum(int,int); int a; int b; int main () { a=2; b=9; cout << mysum(a,b) << endl; return 0; } int mysum(int a, int b) { return a+b; } \stopC \startluacode myout = io.open("test.cpp", "w") myin = io.open(tex.jobname..".tex", "r") local n=0 for line in myin:lines() do n=n+1 if n>539 and n<550 then myout:write(line.."\n") end end myout:close() myin:close() os.execute("g++ -o test test.cpp") os.execute("./test > tmp") local file=assert(io.open("tmp","r")) local t = file:read("*all") tex.print(t) \stopluacode ___ 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://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___