%#!lualatex \documentclass{article} \batchmode \usepackage{luaotfload,booktabs,array,luacode,longtable} \usepackage[scale=0.8]{geometry} \errorstopmode \ifdefined\myfontname\else {\newlinechar=`@ \message{@Name of the font to test = } \read-1 to\myfontname \global\let\myfontname\myfontname \message{@}} \fi \font\test=\myfontname\space at 12pt {\test\begin{luacode} ident = fonts.hashes.identifiers[font.current()] \end{luacode} } \def\FMT#1#2{{\oalign{\test\char#1\crcr\rm\tiny\hss#2\hss\crcr}}} \def\OUT#1{\leavevmode\hbox to 7em{{\test\char"#1}\ ({\tt U+#1})\hss}}%" \begin{document} {\noindent\Large\bf \myfontname\\\null\hfill (% \directlua{tex.sprint(ident.fullname)}% )} \bigskip \baselineskip18pt \begin{luacode} local t = ident.shared.rawdata t = t and t.resources t = t and t.variants local ivs, ivsi = {}, {} for i,v in pairs(t) do if i>=0xE0100 then for j,w in pairs(v) do if not ivs[j] then table.insert(ivsi,j); ivs[j]=ivs[j] or {}; end table.insert(ivs[j],{i-0xE0100,w}) end end end local sort = table.sort local sortfn = function (a,b) return a[1]