%% 
%%  Ein Beispiel der DANTE-Edition
%%  
%%  1. Auflage
%% 
%% 
%%  Copyright (C) 2014 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,2,3
%% 
%% 
\documentclass[]{exaarticle2}
\pagestyle{empty}
\setlength\textwidth{115.5155pt}
\setlength{\parindent}{0em}
\usepackage[paper=a6,pagesize,DIV15]{typearea}
%StartShownPreambleCommands
\usepackage{fontspec,luacode}
\newfontface\LMML{Latin Modern Mono Light Cond}
\begin{luacode}
local teststring = "Lua\\LaTeX~--~Eine Einführung."
function printFontDemo(fontname)
  local starttime = os.gettimeofday ()
  local foundname = file.replacesuffix (config.luaotfload.paths.index_path_lua, "luc")
  local fh = io.open (foundname, "rb")
  local chunk = fh:read"*all"
  fh:close()
  local code = load (chunk, "b")
  data = code()
  local fnA = string.lower(fontname)
  local a = {}
  local b = {}
--  print(table.serialize(data.mappings[1]))
  for i, v in ipairs(data.mappings) do
    m, n = string.find(string.lower(v.familyname),fnA)
    if m then
      a[v.fontname] = v.familyname
      b[#b + 1] = v.fontname
    end
    print(i, tostring(v.familyname))
  end
  table.sort(b)
  for i, v in ipairs(b) do
    tex.print("\\parbox{0.21\\linewidth}{\\LMML\\footnotesize")
    tex.print(-2, a[v])
    tex.print("\\\\ \\scriptsize")
    tex.print(-2, v)
    tex.print("}\\parbox{0.79\\linewidth}{\\raggedright\\fontspec{" .. v .. "}")
    tex.print(teststring)
    tex.print("}\\\\[2pt]")
  end
end
\end{luacode}
%StopShownPreambleCommands
\begin{document}
\directlua{printFontDemo("LatinModern")}
\end{document}
