extracting word count from a *.words file
Hello all, Here is another question. Consider this test file: \starttext \setupspellchecking[state=start,method=2] \ctxlua{languages.words.threshold=3} \input knuth \stoptext Typesetting this file produces a word list 'test.words' which ends like this: ["threshold"]=1, ["total"]=122, ["version"]=1, } Is there a way to extract the value for ["total"] ('122' in this case) so that I can use that value somewhere else, e.g. in a project file where I want to present a word count. Thanks for a pointer! Jelle
On 2012-04-20 Jelle Huisman
Is there a way to extract the value for ["total"] ('122' in this case) so that I can use that value somewhere else, e.g. in a project file where I want to present a word count.
I used the word count some time ago. Here's the code I used. I have no idea what has changed since and if it still works. \startluacode userdata = userdata or { } function userdata.wordcount(listname) filename = file.addsuffix(tex.jobname,"words") if lfs.isfile(filename) then local w = dofile(filename) if w then if type(w.categories[listname]) == "table" then context(w.categories[listname].total) else context(w.total) end context.par() end end end \stopluacode \def\wordcount{% \dosingleempty\dowordcount} \def\dowordcount[#1]{% \ctxlua{userdata.wordcount("#1")}} \starttext % Set up the word count \ctxlua{languages.words.threshold=2} \setupspellchecking [state=start, method=2] \setupspellchecking [list=foo] \startsection [title=Foo] Foo Bar \stopsection \setupspellchecking [list=lorem] \startsection [title=Lorem] Lorem ipsum dolor sit \stopsection \setupspellchecking [list=stop] \startsubject [title=Statistics] Words in Foo: \wordcount [foo] Words in Lorem: \wordcount [lorem] \stopsubject \stoptext Marco
On 04/20/2012 04:52 PM, Marco wrote:
On 2012-04-20 Jelle Huisman
wrote: Is there a way to extract the value for ["total"] ('122' in this case) so that I can use that value somewhere else, e.g. in a project file where I want to present a word count.
I used the word count some time ago. Here's the code I used. I have no idea what has changed since and if it still works.
Marco, It looks like the code still works, thanks for sharing it. Jelle
Hi again, On 2012-04-20 16:32, Jelle Huisman wrote:
Hello all,
Here is another question. Consider this test file:
\starttext \setupspellchecking[state=start,method=2] \ctxlua{languages.words.threshold=3} \input knuth \stoptext
Typesetting this file produces a word list 'test.words' which ends like this:
["threshold"]=1, ["total"]=122, ["version"]=1, }
Is there a way to extract the value for ["total"] ('122' in this case) so that I can use that value somewhere else, e.g. in a project file where I want to present a word count.
The “.words”-file is well formed Lua code, so you can just integrate it as a table: ········································································ \define\wordcount{%%% Displays word count. This document consists of \startluacode local data = dofile"\jobname.words" %% Load data of _previous_ pass context(data.total) %% access the requested field \stopluacode \space words.% } \starttext \setupspellchecking[state=start,method=2] \ctxlua{languages.words.threshold=3} \input knuth \hairline \wordcount %% call to the macro \stoptext ········································································
Thanks for a pointer!
Thanks as well, btw, I didn’t know the word count facility yet! Philipp
Jelle ___________________________________________________________________________________ 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 ___________________________________________________________________________________
-- () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments
On 04/20/2012 04:53 PM, Philipp Gesang wrote:
Hi again,
On 2012-04-20 16:32, Jelle Huisman wrote:
Hello all,
Here is another question. Consider this test file:
\starttext \setupspellchecking[state=start,method=2] \ctxlua{languages.words.threshold=3} \input knuth \stoptext
Typesetting this file produces a word list 'test.words' which ends like this:
["threshold"]=1, ["total"]=122, ["version"]=1, }
Is there a way to extract the value for ["total"] ('122' in this case) so that I can use that value somewhere else, e.g. in a project file where I want to present a word count.
The “.words”-file is well formed Lua code, so you can just integrate it as a table:
Thank you, Philip, this is a clean solution. Jelle
participants (3)
-
Jelle Huisman
-
Marco
-
Philipp Gesang