From 7cf60286cb69e8b5ffc47c06bdc9a18bb941e306 Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Wed, 1 May 2013 18:34:44 +0200 Subject: add feature related functionality to auxlib --- tests/pln-aux-1.tex | 4 +++ tests/pln-aux-2.tex | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 tests/pln-aux-2.tex (limited to 'tests') diff --git a/tests/pln-aux-1.tex b/tests/pln-aux-1.tex index f33ef21..a504850 100644 --- a/tests/pln-aux-1.tex +++ b/tests/pln-aux-1.tex @@ -1,4 +1,8 @@ \input luaotfload.sty + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% usage for glyph tests +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \baselineskip=17.28pt \font\iwonaregular=name:iwona at 14.4pt diff --git a/tests/pln-aux-2.tex b/tests/pln-aux-2.tex new file mode 100644 index 0000000..62192a5 --- /dev/null +++ b/tests/pln-aux-2.tex @@ -0,0 +1,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 -- cgit v1.2.3