%% %% Ein Beispiel der DANTE-Edition %% %% 1. Auflage %% %% %% Copyright (C) 2013 Herbert Voss %% %% It may be distributed and/or modified under the conditions %% of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% %% See http://www.latex-project.org/lppl.txt for details. %% %% %% ==== % Show page(s) 1 %% %% \documentclass[]{exaarticle} \pagestyle{empty} \setlength\textwidth{352.81416pt} \setlength\parindent{0pt} \usepackage[margin=1cm]{geometry} \usepackage[ngerman]{babel} %StartShownPreambleCommands \usepackage{luacode,multicol} \begin{luacode*} out=assert(io.open("target/CP/xlist3.nodes","w")) local n=node.types() function printnode(head) while head do if head.id==8 then out:write(head.id..","..head.subtype) -- ein whatsits else out:write(string.format("%3d",head.id)) end if head.id==37 then out:write("\"",string.char(head.char),"\" ->") else out:write(" ->") end if head.next == nil then out:write("nil") else out:write(string.format("%3d",head.next.id)) end out:write(" ("..n[head.id].."->") if head.next==nil then out:write("nil)\n") else out:write(n[head.next.id]..")\n") end if head.id==0 or head.id==1 then printnode(head.head) -- Rekursion end head=head.next end return true end \end{luacode*} %StopShownPreambleCommands \begin{document} \parbox{5cm}{% \directlua{luatexbase.add_to_callback("post_linebreak_filter",printnode,"printnode")}% Jetzt soll \hbox{hier ein} langer Text angegeben werden, dessen Knotenliste wir betrachten.\par Rot->Zeilenanfang\par Grun->Wortende\par Blau->Absatzende \directlua{luatexbase.remove_from_callback("post_linebreak_filter","printnode")} \directlua{out:close()}} \newread\reader \openin\reader=target/CP/xlist3.nodes\relax\ttfamily \begin{multicols*}{3} \loop \readline\reader to \data \unless\ifeof\reader \data\par \repeat \end{multicols*} \closein\reader \end{document}