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
|
-- Copyright 2018--2019 Marcel Krueger
--
-- This work may be distributed and/or modified under the
-- conditions of the LaTeX Project Public License, either version 1.3c
-- of this license or (at your option) any later version.
-- The latest version of this license is in
-- http://www.latex-project.org/lppl.txt
-- and version 1.3 or later is part of all distributions of LaTeX
-- version 2005/12/01 or later.
--
-- This work has the LPPL maintenance status `maintained'.
--
-- The Current Maintainer of this work is Marcel Krueger
--
function fontawesome5_analyze_current_font(fontid)
local specialnames = {
["500px"]=true,
h1=true,
h2=true,
h3=true,
wifi=true,
["wifi-1"]=true,
["wifi-2"]=true,
signal=true,
["signal-1"]=true,
["signal-2"]=true,
["signal-3"]=true,
["signal-4"]=true,
["signal-alt-1"]=true,
["signal-alt-2"]=true,
["signal-alt-3"]=true,
["repeat"]=true,
["repeat-1"]=true,
["dice-d4"]=true,
["dice-d6"]=true,
["dice-d8"]=true,
["dice-d10"]=true,
["dice-d12"]=true,
["dice-d20"]=true,
}
for name, value in pairs(font.getfont(fontid).resources.unicodes) do
tex.sprint(
luatexbase.catcodetables.expl,
"\\exp_args:NNc\\tex_global:D\\tex_chardef:D{c__fontawesome_slot_" .. name .. '_char}' .. value .. '\\scan_stop:')
if not (
('-alt' == string.sub(name, -4))
or specialnames[name]
or value < 256
) then
tex.sprint(
luatexbase.registernumber("CatcodeTableExpl"),
"\\cs_gset_protected:Npn"
.. string.gsub('\\fa-' .. name, '-(%w)', string.upper)
.. "{\\faPreselectedIcon{" .. name .. "}}")
end
end
end
|