summaryrefslogtreecommitdiff
path: root/info/examples/luaintro/04-04-9.lualtx
diff options
context:
space:
mode:
Diffstat (limited to 'info/examples/luaintro/04-04-9.lualtx')
-rw-r--r--info/examples/luaintro/04-04-9.lualtx64
1 files changed, 64 insertions, 0 deletions
diff --git a/info/examples/luaintro/04-04-9.lualtx b/info/examples/luaintro/04-04-9.lualtx
new file mode 100644
index 0000000000..58da9fa9a8
--- /dev/null
+++ b/info/examples/luaintro/04-04-9.lualtx
@@ -0,0 +1,64 @@
+%%
+%% 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[ngerman]{babel}
+\usepackage{luacode}
+\begin{luacode*}
+function markNode(color)
+ local w=node.new("whatsit","pdf_literal")
+ w.data=string.format("q "..color.."RG 2 w 0 -0.1 m 0 10 l S Q")
+ return w
+end
+\end{luacode*}
+%StartShownPreambleCommands
+
+\begin{luacode*}
+function markList(List)
+ for n in node.traverse(List) do
+ if n.id==1 then markList(List.head)
+ elseif n.id==0 then -- Zeilenanfang gefunden
+ n.head=node.insert_before(n.head, n.head, markNode("1 0 0"))
+ for m in node.traverse(n.head) do
+ if m.id==10 and m.prev.id==37 then -- Wortende gefunden
+ m=node.insert_before(n.head, m, markNode("0 1 0"))
+ end
+ if m.id == 12 then -- Absatzende gefunden
+ m = node.insert_before(n.head, m, markNode("0 0 1"))
+ end
+ if m.id == 7 then -- Trennmöglichkeit gefunden
+ m = node.insert_before(n.head, m, markNode("[2]1 d 1 0 1"))
+ end end end end
+ return true
+end
+\end{luacode*}
+%StopShownPreambleCommands
+\begin{document}
+\parbox{5cm}{%
+\directlua{luatexbase.add_to_callback("post_linebreak_filter",markList,"markList")}%
+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","markList")}
+\end{document}