1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
%%
%% 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}
|