%D \module %D [ file=s-mat-20.mkiv, %D version=2012.12.05, %D title=\CONTEXT\ Style File, %D subtitle=Math Tracing Macros, %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. \startluacode local tables = utilities.tables.definedtable("math","tracing","spacing","tables") tables.styleaxis = { "ord", "op", "bin", "rel", "open", "close", "punct", "inner", } tables.parameters = { "quad", "axis", "operatorsize", "overbarkern", "overbarrule", "overbarvgap", "underbarkern", "underbarrule", "underbarvgap", "radicalkern", "radicalrule", "radicalvgap", "radicaldegreebefore", "radicaldegreeafter", "radicaldegreeraise", "stackvgap", "stacknumup", "stackdenomdown", "fractionrule", "fractionnumvgap", "fractionnumup", "fractiondenomvgap", "fractiondenomdown", "fractiondelsize", "limitabovevgap", "limitabovebgap", "limitabovekern", "limitbelowvgap", "limitbelowbgap", "limitbelowkern", "underdelimitervgap", "underdelimiterbgap", "overdelimitervgap", "overdelimiterbgap", "subshiftdrop", "supshiftdrop", "subshiftdown", "subsupshiftdown", "subtopmax", "supshiftup", "supbottommin", "supsubbottommax", "subsupvgap", "spaceafterscript", "connectoroverlapmin", } tables.styles = { "display", "text", "script", "scriptscript", } function tables.stripmu(str) str = string.gsub(str,"mu","") str = string.gsub(str," ","") str = string.gsub(str,"plus","+") str = string.gsub(str,"minus","-") return str end function tables.strippt(old) local new = string.gsub(old,"pt","") if new ~= old then new = string.format("%0.4f",tonumber(new)) end return new end function tables.showspacing() local styles = tables.styles local styleaxis = tables.styleaxis context.starttabulate { "|Tl|Tl|" .. string.rep("Tc|",(#styles*2)) } context.HL() context.NC() context.NC() context.NC() for i=1,#styles do context.bold(styles[i]) context.NC() context.bold("(cramped)") context.NC() end context.NR() context.HL() for i=1,#styleaxis do -- print(key,tex.getmath(key,"text")) local one = styleaxis[i] for j=1,#styleaxis do local two = styleaxis[j] context.NC() if j == 1 then context.bold(one) end context.NC() context.bold(two) context.NC() for i=1,#styles do context("\\ctxlua{context(math.tracing.spacing.tables.stripmu('\\the\\Umath%s%sspacing\\%sstyle'))}",one,two,styles[i]) context.NC() context("\\ctxlua{context(math.tracing.spacing.tables.stripmu('\\the\\Umath%s%sspacing\\cramped%sstyle'))}",one,two,styles[i]) context.NC() end context.NR() end end context.stoptabulate() end function tables.showparameters() local styles = tables.styles local parameters = tables.parameters context.starttabulate { "|l|" .. string.rep("Tc|",(#styles*2)) } context.HL() context.NC() context.NC() for i=1,#styles do context.bold(styles[i]) context.NC() context.bold("(cramped)") context.NC() end context.NR() context.HL() for i=1,#parameters do local parameter = parameters[i] -- print(parameter,tex.getmath(parameter,"text")) context.NC() context.type(parameter) context.NC() for i=1,#styles do context("\\ctxlua{context(math.tracing.spacing.tables.strippt('\\the\\Umath%s\\%sstyle'))}",parameter,styles[i]) context.NC() context("\\ctxlua{context(math.tracing.spacing.tables.strippt('\\the\\Umath%s\\cramped%sstyle'))}",parameter,styles[i]) context.NC() end context.NR() end context.stoptabulate() end \stopluacode \continueifinputfile{s-mat-20.mkiv} \setuplayout [width=middle, height=middle, backspace=1cm, topspace=1cm, footer=0pt, header=0pt] \setupbodyfont [dejavu,8pt] \starttext \ctxlua{math.tracing.spacing.tables.showspacing()} % \ctxlua{math.tracing.spacing.tables.showparameters()} \stoptext