1if not modules then modules = { } end modules ['s-fonts-vectors'] = { 2 version = 1.001, 3 comment = "companion to s-fonts-vectors.mkiv", 4 author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", 5 copyright = "PRAGMA ADE / ConTeXt Development Team", 6 license = "see context related readme files" 7} 8 9moduledata.fonts = moduledata.fonts or { } 10moduledata.fonts.protrusions = moduledata.fonts.protrusions or { } 11moduledata.fonts.expansions = moduledata.fonts.expansions or { } 12 13local NC, NR = context.NC, context.NR 14 15local classes = fonts.protrusions.classes 16local vectors = fonts.protrusions.vectors 17 18function moduledata.fonts.protrusions.showvector(specification) 19 specification = interfaces.checkedspecification(specification) 20 local vector = vectors[specification.name or "?"] 21 if vector then 22 context.blank() 23 context.startcolumns { n = specification.columns or 3, balance="yes" } 24 context.starttabulate { "|T||cw(.5em)||" } 25 for unicode, values in table.sortedhash(vector) do 26 NC() context("%U",unicode) 27 NC() context("%.02f",values[1]) 28 NC() context("%c",unicode) 29 NC() context("%.02f",values[2]) 30 NC() NR() 31 end 32 context.stoptabulate() 33 context.stopcolumns() 34 context.blank() 35 end 36end 37 38function moduledata.fonts.protrusions.showclass(specification) 39 specification = interfaces.checkedspecification(specification) 40 local class = specification.name and classes[specification.name] 41 local classes = class and { class} or classes 42 context.starttabulate { "|l|l|r|r|r|" } 43 NC() context.bold("name") 44 NC() context.bold("vector") 45 NC() context.bold("factor") 46 NC() context.bold("left") 47 NC() context.bold("right") 48 NC() NR() 49 for name, class in table.sortedhash(classes) do 50 NC() context(name) 51 NC() context(class.vector) 52 NC() context("%.02f",class.factor) 53 NC() context("%.02f",class.left) 54 NC() context("%.02f",class.right) 55 NC() NR() 56 end 57 context.stoptabulate() 58end 59 60local classes = fonts.expansions.classes 61local vectors = fonts.expansions.vectors 62 63function moduledata.fonts.expansions.showvector(specification) 64 specification = interfaces.checkedspecification(specification) 65 local vector = vectors[specification.name or "?"] 66 if vector then 67 context.blank() 68 context.startcolumns { n = specification.columns or 3, balance="yes" } 69 context.starttabulate { "|T|cw(.5em)||" } 70 for unicode, value in table.sortedhash(vector) do 71 NC() context("%U",unicode) 72 NC() context("%c",unicode) 73 NC() context("%.02f",value) 74 NC() NR() 75 end 76 context.stoptabulate() 77 context.stopcolumns() 78 context.blank() 79 end 80end 81 82function moduledata.fonts.expansions.showclass(specification) 83 specification = interfaces.checkedspecification(specification) 84 local class = specification.name and classes[specification.name] 85 local classes = class and { class} or classes 86 context.starttabulate { "|l|l|r|r|r|" } 87 NC() context.bold("name") 88 NC() context.bold("vector") 89 NC() context.bold("step") 90 NC() context.bold("factor") 91 NC() context.bold("stretch") 92 NC() context.bold("shrink") 93 NC() NR() 94 for name, class in table.sortedhash(classes) do 95 NC() context(name) 96 NC() context(class.vector) 97 NC() context("%.02f",class.step) 98 NC() context("%.02f",class.factor) 99 NC() context("% 2i",class.stretch) 100 NC() context("% 2i",class.shrink) 101 NC() NR() 102 end 103 context.stoptabulate() 104end 105 |