diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv')
-rw-r--r-- | Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv new file mode 100644 index 00000000000..e9d0a21a296 --- /dev/null +++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-basics.mkiv @@ -0,0 +1,175 @@ +%D \module +%D [ file=s-fnt-01, +%D version=2006.10.10, % guess +%D title=\CONTEXT\ Style File, +%D subtitle=Listing Glyphs in Large Fonts, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D This module is just a check for \type {luatex-basics-prepare}. + +\usemodule[article] + +\setupbodyfont[9pt] + +\starttext + +\definefontfeature + [boundingbox] + [boundingbox=yes] + +\definefont + [TestFont] + [file:arialuni.ttf*boundingbox] + +\startluacode + +local data = characters.data + +local indicscripts = table.sorted { + "devanagari", + "kannada", + "malayalam", + "tamil", + "bengali", + "gurmukhi", + "gujarati", + "oriya", + "telugu", +} + +local arabicscripts = table.sorted { + "arabic", + "syriac", + "mandiac", + "nko", +} + +local allindic = true +local allarabic = true +local dotted = utf.char(0x25CC) + +local left = table.setmetatableindex ( + { r = dotted, b = dotted, t = dotted, s = dotted }, + function(t,k) local v = "" if k then t[k] = v end return v end +) + +local right = table.setmetatableindex ( + { l = dotted }, + function(t,k) local v = "" if k then t[k] = v end return v end +) + +for i=1,#indicscripts do + local script = indicscripts[i] + local first, last = characters.blockrange(script) + context.starttitle { title = script } + context.starttabulate { "|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tp|" } + context.FL() + context.BC() context("unicode") + context.BC() context("glyph") + context.BC() context("category") + context.BC() context("indic") + context.BC() context("mark") + context.BC() context("class") + context.BC() context("order") + context.BC() context("description") + context.NC() context.NR() + context.ML() + for i=first,last do + local d = data[i] + if d and d.unicodeslot then + local indic = d.indic + local category = d.category or "?" + local description = d.description + if not indic then + context.NC() context("\\red %U",i) + context.NC() context("\\red\\showstruts\\strut\\TestFont %c",i) + context.NC() context("\\red %s",category) + context.NC() + context.NC() + context.NC() + context.NC() + context.NC() context(description) + context.NC() context.NR() + else + local indicclass = d.indicclass + local indicmark = d.indicmark + local indicorder = d.indicorder + if allindic or indic == "d" or indicmark or indicclass or indicorder then + local l = left [indicmark] + local r = right[indicmark] + context.NC() context("%U",i) + context.NC() context("\\showstruts\\strut\\TestFont %s%c%s",l,i,r) + context.NC() context(category) + context.NC() context(indic or "?") + context.NC() context(indicmark or "") + context.NC() context(indicclass or "") + context.NC() context(indicorder or "") + context.NC() context(description) + context.NC() context.NR() + end + end + end + end + context.LL() + context.stoptabulate() + context.stoptitle() +end + +for i=1,#arabicscripts do + local script = arabicscripts[i] + local first, last = characters.blockrange(script) + context.starttitle { title = script } + context.starttabulate { "|Tc|Tc|Tc|Tc|Tp|" } + context.FL() + context.BC() context("unicode") + context.BC() context("glyph") + context.BC() context("category") + context.BC() context("arabic") + context.BC() context("description") + context.NC() context.NR() + context.ML() + for i=first,last do + local d = data[i] + if d and d.unicodeslot then + local arabic = d.arabic + local category = d.category or "" + local description = d.description or "" + if arabic then + context.NC() context("%U",i) + context.NC() context("\\showstruts\\strut\\TestFont %c",i) + context.NC() context(category) + context.NC() context(arabic) + context.NC() context(description) + context.NC() context.NR() + elseif allarabic then + context.NC() context("\\red %U",i) + context.NC() context("\\red\\showstruts\\strut\\TestFont %c",i) + context.NC() context("\\red %s",category) + context.NC() + context.NC() context("\\red %s",description) + context.NC() context.NR() + end + end + end + context.LL() + context.stoptabulate() + context.stoptitle() +end + +-- local olddata = io.loaddata("char-def.lua") +-- local preamble = string.gsub(olddata,"characters%.data%s*=%s*%{.*","") + +-- local newdata = table.serialize(data,"characters.data", { hexify = true, noquotes = true }) +-- local newdata = string.gsub(newdata,"%{%s+%[0xFE0E%]=\"text style\",%s+%[0xFE0F%]=\"emoji style\",%s+%}","variants_emoji") + +-- io.savedata("char-def-new.lua",newdata) + +\stopluacode + +\stoptext |