summaryrefslogtreecommitdiff
path: root/tests/pln-aux-2.tex
blob: 62192a52c5ea07370ec274adb4ee940bba27adc8 (plain)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
\input luaotfload.sty
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% script, features, and language
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\font\minionregular=file:MinionPro_Regular.otf  at 9pt
\font\biolinum=file:LinBiolinum_R.otf  at 9pt
\font\cmuregular=file:cmunrm.otf  at 9pt

%% (1) luaotfload.aux.provides_script(font_id, script)
%%      #1 defined font; #2 OT script tag
\def\providesscript[#1][#2]{%
  \bgroup#1%
  let’s see whether \detokenize{#1} has script #2:
  \directlua{
    local aux = luaotfload.aux
    local succ = aux.provides_script(font.current(), [[#2]])
    if succ then tex.sprint"true" else tex.sprint"false" end
  }%
  \egroup
  \endgraf%
}

\providesscript [\minionregular][latn]%% Latin
\providesscript      [\biolinum][latn]
\providesscript    [\cmuregular][latn]
\providesscript [\minionregular][cyrl]%% Cyrillic
\providesscript      [\biolinum][cyrl]
\providesscript    [\cmuregular][cyrl]
\providesscript [\minionregular][tibt]%% Tibetan
\providesscript      [\biolinum][tibt]
\providesscript    [\cmuregular][tibt]

\hrule % --------------------------------------------------------------

%% (2) luaotfload.aux.provides_language(font_id, script, language)
%%      #1 defined font; #2 OT script tag; #3 OT language tag
\def\provideslanguage[#1][#2][#3]{%
  \bgroup#1%
  let’s see whether \detokenize{#1} supports language #3 for script #2:
  \directlua{
    local aux = luaotfload.aux
    local succ = aux.provides_language(font.current(), [[#2]], [[#3]])
    if succ then tex.sprint"true" else tex.sprint"false" end
  }%
  \egroup
  \endgraf%
}

\provideslanguage [\minionregular][latn][nld]%% Latin/Dutch
\provideslanguage      [\biolinum][latn][nld]
\provideslanguage    [\cmuregular][latn][nld]
\provideslanguage [\minionregular][latn][deu]%% Latin/German
\provideslanguage      [\biolinum][latn][deu]
\provideslanguage    [\cmuregular][latn][deu]
\provideslanguage [\minionregular][cyrl][rus]%% Cyrillic/Russian
\provideslanguage      [\biolinum][cyrl][rus]
\provideslanguage    [\cmuregular][cyrl][rus]
\provideslanguage [\minionregular][cyrl][klm]%% Cyrillic/Kalmyk
\provideslanguage      [\biolinum][cyrl][klm]
\provideslanguage    [\cmuregular][cyrl][klm]
\provideslanguage [\minionregular][cyrl][srb]%% Cyrillic/Serbian
\provideslanguage      [\biolinum][cyrl][srb]
\provideslanguage    [\cmuregular][cyrl][srb]
\provideslanguage [\minionregular][tibt][tib]%% Tibetan
\provideslanguage      [\biolinum][tibt][tib]
\provideslanguage    [\cmuregular][tibt][tib]

\hrule % --------------------------------------------------------------

%% (3) luaotfload.aux.provides_feature(
%%                      font_id, script, language, feature)
%%      #1 defined font;    #2 OT script tag;
%%      #3 OT language tag; #4 OT feature
\def\providesfeature[#1][#2][#3][#4]{%this is getting ridiculous
  \bgroup#1%
  let’s see whether \detokenize{#1} supports feature #4 for the
  combination of script #2 with language #3:
  \directlua{
    local aux = luaotfload.aux
    local succ = aux.provides_feature(
      font.current(), [[#2]], [[#3]], [[#4]])
    if succ then tex.sprint"true" else tex.sprint"false" end
  }%
  \egroup
  \endgraf%
}

\providesfeature [\minionregular][latn][nld][liga]%% Latin/Dutch
\providesfeature      [\biolinum][latn][nld][liga]
\providesfeature    [\cmuregular][latn][nld][liga]
\providesfeature [\minionregular][latn][deu][liga]%% Latin/German
\providesfeature      [\biolinum][latn][deu][liga]
\providesfeature    [\cmuregular][latn][deu][liga]
\providesfeature [\minionregular][cyrl][srb][liga]%% Cyrillic/Serbian
\providesfeature      [\biolinum][cyrl][srb][liga]
\providesfeature    [\cmuregular][cyrl][srb][liga]
\providesfeature [\minionregular][tibt][tib][liga]%% Tibetan
\providesfeature      [\biolinum][tibt][tib][liga]
\providesfeature    [\cmuregular][tibt][tib][liga]

\bye