Code : Tout sélectionner
\documentclass{article}
\usepackage{luacode,lipsum,xcolor}
\begin{luacode}
wordnumber = 0
function countwords(head)
for glyph in node.traverse_glyph(head) do
if glyph.next.id == node.id("glue") then
wordnumber = wordnumber+1
end
end
wordnumber = wordnumber+1
return head
end
function printwordnumber()
texio.write_nl("wordnumber=" .. wordnumber)
end
luatexbase.add_to_callback("pre_linebreak_filter",countwords,"countwords")
luatexbase.add_to_callback("stop_run",printwordnumber,"printwordnumber")
\end{luacode}
\AtEndDocument{\par\vfill\hfill\textcolor{red}{[wordnumber=\directlua{tex.sprint(wordnumber) wordnumber=wordnumber-1}]}}
\begin{document}
\lipsum[1-4]
\end{document}