Show the hyphenation points

From LuaTeXWiki
Revision as of 16:35, 11 January 2011 by Patrick (talk | contribs) (show the disc nodes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This LaTeX example adds a function to the post_linebreak_filter callback. The function iterates through all the nodes in the paragraph (and descends into the vlist and hlist nodes) and inserts a small rule where the discretionary nodes are.

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{fontspec}
\directlua{
show_hyph = function(head)
  while head do
    if head.id == 0 or head.id == 1 then % hlist, vlist
      show_hyph(head.list) % should be head.head in a newer luatex than 0.64
    elseif head.id == 7 then             % disc
      local n = node.new("whatsit","pdf_literal")
      n.mode = 0
      n.data = "q 0.3 w 0 2 m 0 7 l S Q"
      n.next = head.next
      n.prev = head
      head.next = n
      head = n
    end
  head = head.next
  end
  return true
end
luatexbase.add_to_callback("post_linebreak_filter",show_hyph,"show_hyph")

}

\begin{document}
\begin{minipage}{5cm}
\blindtext
\end{minipage}
\end{document}