diff options
author | Marius <mariausol@gmail.com> | 2013-05-14 00:20:25 +0300 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2013-05-14 00:20:25 +0300 |
commit | 86bd4f60148236a4713cb3654cbfa0fceed727ff (patch) | |
tree | 36870ef5efb6429deaa7f215c4acb249f0bbc6af | |
parent | 5dfe20ad3addaa59321312156eb368a37b27bb4a (diff) | |
download | context-86bd4f60148236a4713cb3654cbfa0fceed727ff.tar.gz |
beta 2013.05.13 23:17
21 files changed, 434 insertions, 104 deletions
diff --git a/context/data/scite/lexers/data/scite-context-data-context.lua b/context/data/scite/lexers/data/scite-context-data-context.lua index 08188f985..1c74aba9b 100644 --- a/context/data/scite/lexers/data/scite-context-data-context.lua +++ b/context/data/scite/lexers/data/scite-context-data-context.lua @@ -1,4 +1,4 @@ return { ["constants"]={ "zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive", "plussix", "plusseven", "pluseight", "plusnine", "plusten", "plussixteen", "plushundred", "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxdimen", "scaledpoint", "thousandpoint", "points", "halfpoint", "zeroskip", "zeromuskip", "onemuskip", "pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi", "normalpagebox", "endoflinetoken", "outputnewlinechar", "emptytoks", "empty", "undefined", "voidbox", "emptybox", "emptyvbox", "emptyhbox", "bigskipamount", "medskipamount", "smallskipamount", "fmtname", "fmtversion", "texengine", "texenginename", "texengineversion", "luatexengine", "pdftexengine", "xetexengine", "unknownengine", "etexversion", "pdftexversion", "xetexversion", "xetexrevision", "activecatcode", "bgroup", "egroup", "endline", "conditionaltrue", "conditionalfalse", "attributeunsetvalue", "uprotationangle", "rightrotationangle", "downrotationangle", "leftrotationangle", "inicatcodes", "ctxcatcodes", "texcatcodes", "notcatcodes", "txtcatcodes", "vrbcatcodes", "prtcatcodes", "nilcatcodes", "luacatcodes", "tpacatcodes", "tpbcatcodes", "xmlcatcodes", "escapecatcode", "begingroupcatcode", "endgroupcatcode", "mathshiftcatcode", "alignmentcatcode", "endoflinecatcode", "parametercatcode", "superscriptcatcode", "subscriptcatcode", "ignorecatcode", "spacecatcode", "lettercatcode", "othercatcode", "activecatcode", "commentcatcode", "invalidcatcode", "tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode", "spaceasciicode", "hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode", "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode", "leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode", "lessthanasciicode", "morethanasciicode", "doublecommentsignal", "atsignasciicode", "exclamationmarkasciicode", "questionmarkasciicode", "doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode", "primeasciicode", "activemathcharcode", "activetabtoken", "activeformfeedtoken", "activeendoflinetoken", "batchmodecode", "nonstopmodecode", "scrollmodecode", "errorstopmodecode", "bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode", "vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode", "discretionarygroupcode", "insertgroupcode", "vcentergroupcode", "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode", "vadjustgroupcode", "charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode", "adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode", "gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode", "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode", "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode", "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode", "fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink", "fontexheight", "fontemwidth", "fontextraspace", "slantperpoint", "interwordspace", "interwordstretch", "interwordshrink", "exheight", "emwidth", "extraspace", "mathsupdisplay", "mathsupnormal", "mathsupcramped", "mathsubnormal", "mathsubcombined", "mathaxisheight", "startmode", "stopmode", "startnotmode", "stopnotmode", "startmodeset", "stopmodeset", "doifmode", "doifmodeelse", "doifnotmode", "startallmodes", "stopallmodes", "startnotallmodes", "stopnotallmodes", "doifallmodes", "doifallmodeselse", "doifnotallmodes", "startenvironment", "stopenvironment", "environment", "startcomponent", "stopcomponent", "component", "startproduct", "stopproduct", "product", "startproject", "stopproject", "project", "starttext", "stoptext", "startnotext", "stopnotext", "startdocument", "stopdocument", "documentvariable", "setupdocument", "startmodule", "stopmodule", "usemodule", "usetexmodule", "useluamodule", "startTEXpage", "stopTEXpage", "enablemode", "disablemode", "preventmode", "globalenablemode", "globaldisablemode", "globalpreventmode", "pushmode", "popmode", "typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix", "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode", "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode", "constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument", "continueifinputfile", "luastringsep", "!!bs", "!!es" }, - ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "doifelsecommandhandler", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchcounter", "globalscratchcounter", "scratchdimen", "globalscratchdimen", "scratchskip", "globalscratchskip", "scratchmuskip", "globalscratchmuskip", "scratchtoks", "globalscratchtoks", "scratchbox", "globalscratchbox", "availablehsize", "localhsize", "setlocalhsize", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "doifinset", "doifnotinset", "doifinsetelse", "doifnextcharelse", "doifnextoptionalelse", "doifnextbgroupelse", "doifnextparenthesiselse", "doiffastoptionalcheckelse", "doifundefinedelse", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifdimensionelse", "doifnumberelse", "doifnumber", "doifnotnumber", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifinstringelse", "doifassignmentelse", "docheckassignment", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protected", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "newconstant", "setnewconstant", "newconditional", "settrue", "setfalse", "setconstant", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "strut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "begstrut", "endstrut", "lineheight", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "uncramped", "cramped", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expdoifelse", "expdoif", "expdoifnot", "expdoifcommonelse", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "carryoverpar", "Umathbotaccent" }, + ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "doifelsecommandhandler", "doifnotcommandhandler", "doifcommandhandler", "newmode", "setmode", "resetmode", "newsystemmode", "setsystemmode", "resetsystemmode", "pushsystemmode", "popsystemmode", "booleanmodevalue", "newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif", "newlanguage", "newfamily", "newfam", "newhelp", "then", "begcsname", "firstargumentfalse", "firstargumenttrue", "secondargumentfalse", "secondargumenttrue", "thirdargumentfalse", "thirdargumenttrue", "fourthargumentfalse", "fourthargumenttrue", "fifthargumentfalse", "fifthsargumenttrue", "sixthargumentfalse", "sixtsargumenttrue", "doglobal", "dodoglobal", "redoglobal", "resetglobal", "donothing", "dontcomplain", "forgetall", "donetrue", "donefalse", "htdp", "unvoidbox", "hfilll", "vfilll", "mathbox", "mathlimop", "mathnolop", "mathnothing", "mathalpha", "currentcatcodetable", "defaultcatcodetable", "catcodetablename", "newcatcodetable", "startcatcodetable", "stopcatcodetable", "startextendcatcodetable", "stopextendcatcodetable", "pushcatcodetable", "popcatcodetable", "restorecatcodes", "setcatcodetable", "letcatcodecommand", "defcatcodecommand", "uedcatcodecommand", "hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg", "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", "filledhboxb", "filledhboxr", "filledhboxg", "filledhboxc", "filledhboxm", "filledhboxy", "filledhboxk", "scratchcounter", "globalscratchcounter", "scratchdimen", "globalscratchdimen", "scratchskip", "globalscratchskip", "scratchmuskip", "globalscratchmuskip", "scratchtoks", "globalscratchtoks", "scratchbox", "globalscratchbox", "availablehsize", "localhsize", "setlocalhsize", "nextbox", "dowithnextbox", "dowithnextboxcs", "dowithnextboxcontent", "dowithnextboxcontentcs", "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchhsize", "scratchvsize", "scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset", "scratchxposition", "scratchyposition", "scratchtopoffset", "scratchbottomoffset", "scratchleftoffset", "scratchrightoffset", "scratchcounterone", "scratchcountertwo", "scratchcounterthree", "scratchdimenone", "scratchdimentwo", "scratchdimenthree", "scratchskipone", "scratchskiptwo", "scratchskipthree", "scratchmuskipone", "scratchmuskiptwo", "scratchmuskipthree", "scratchtoksone", "scratchtokstwo", "scratchtoksthree", "scratchboxone", "scratchboxtwo", "scratchboxthree", "scratchnx", "scratchny", "scratchmx", "scratchmy", "scratchunicode", "scratchleftskip", "scratchrightskip", "scratchtopskip", "scratchbottomskip", "doif", "doifnot", "doifelse", "doifinset", "doifnotinset", "doifinsetelse", "doifnextcharelse", "doifnextoptionalelse", "doifnextbgroupelse", "doifnextparenthesiselse", "doiffastoptionalcheckelse", "doifundefinedelse", "doifdefinedelse", "doifundefined", "doifdefined", "doifelsevalue", "doifvalue", "doifnotvalue", "doifnothing", "doifsomething", "doifelsenothing", "doifsomethingelse", "doifvaluenothing", "doifvaluesomething", "doifelsevaluenothing", "doifdimensionelse", "doifnumberelse", "doifnumber", "doifnotnumber", "doifcommonelse", "doifcommon", "doifnotcommon", "doifinstring", "doifnotinstring", "doifinstringelse", "doifassignmentelse", "docheckassignment", "tracingall", "tracingnone", "loggingall", "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "normalspace", "executeifdefined", "singleexpandafter", "doubleexpandafter", "tripleexpandafter", "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", "wait", "writestatus", "define", "defineexpandable", "redefine", "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", "installcorenamespace", "getvalue", "setvalue", "setevalue", "setgvalue", "setxvalue", "letvalue", "letgvalue", "resetvalue", "undefinevalue", "ignorevalue", "setuvalue", "setuevalue", "setugvalue", "setuxvalue", "globallet", "glet", "udef", "ugdef", "uedef", "uxdef", "checked", "unique", "getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters", "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter", "processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist", "processaction", "processallactions", "processfirstactioninset", "processallactionsinset", "unexpanded", "expanded", "startexpanded", "stopexpanded", "protected", "protect", "unprotect", "firstofoneargument", "firstoftwoarguments", "secondoftwoarguments", "firstofthreearguments", "secondofthreearguments", "thirdofthreearguments", "firstoffourarguments", "secondoffourarguments", "thirdoffourarguments", "fourthoffourarguments", "firstoffivearguments", "secondoffivearguments", "thirdoffivearguments", "fourthoffivearguments", "fifthoffivearguments", "firstofsixarguments", "secondofsixarguments", "thirdofsixarguments", "fourthofsixarguments", "fifthofsixarguments", "sixthofsixarguments", "firstofoneunexpanded", "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "dowith", "newconstant", "setnewconstant", "newconditional", "settrue", "setfalse", "setconstant", "newmacro", "setnewmacro", "newfraction", "newsignal", "dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty", "dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument", "dosinglegroupempty", "dodoublegroupempty", "dotriplegroupempty", "doquadruplegroupempty", "doquintuplegroupempty", "permitspacesbetweengroups", "dontpermitspacesbetweengroups", "nopdfcompression", "maximumpdfcompression", "normalpdfcompression", "modulonumber", "dividenumber", "getfirstcharacter", "doiffirstcharelse", "startnointerference", "stopnointerference", "twodigits", "threedigits", "strut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "begstrut", "endstrut", "lineheight", "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing", "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing", "opordspacing", "opopspacing", "opbinspacing", "oprelspacing", "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing", "binordspacing", "binopspacing", "binbinspacing", "binrelspacing", "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing", "relordspacing", "relopspacing", "relbinspacing", "relrelspacing", "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing", "openordspacing", "openopspacing", "openbinspacing", "openrelspacing", "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing", "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing", "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing", "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing", "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing", "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing", "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing", "normalreqno", "startimath", "stopimath", "normalstartimath", "normalstopimath", "startdmath", "stopdmath", "normalstartdmath", "normalstopdmath", "uncramped", "cramped", "triggermathstyle", "mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette", "mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox", "mathtext", "setmathsmalltextbox", "setmathtextbox", "triggerdisplaystyle", "triggertextstyle", "triggerscriptstyle", "triggerscriptscriptstyle", "triggeruncrampedstyle", "triggercrampedstyle", "triggersmallstyle", "triggeruncrampedsmallstyle", "triggercrampedsmallstyle", "triggerbigstyle", "triggeruncrampedbigstyle", "triggercrampedbigstyle", "luaexpr", "expdoifelse", "expdoif", "expdoifnot", "expdoifcommonelse", "expdoifinsetelse", "ctxdirectlua", "ctxlatelua", "ctxsprint", "ctxwrite", "ctxcommand", "ctxdirectcommand", "ctxlatecommand", "ctxreport", "ctxlua", "luacode", "lateluacode", "directluacode", "registerctxluafile", "ctxloadluafile", "luaversion", "luamajorversion", "luaminorversion", "ctxluacode", "luaconditional", "luaexpanded", "startluaparameterset", "stopluaparameterset", "luaparameterset", "definenamedlua", "obeylualines", "obeyluatokens", "startluacode", "stopluacode", "startlua", "stoplua", "carryoverpar", "Umathbotaccent" }, }
\ No newline at end of file diff --git a/context/data/scite/scite-context-data-context.properties b/context/data/scite/scite-context-data-context.properties index 65e7887c6..0de70e9c5 100644 --- a/context/data/scite/scite-context-data-context.properties +++ b/context/data/scite/scite-context-data-context.properties @@ -136,44 +136,44 @@ sixthofsixarguments firstofoneunexpanded gobbleoneargument gobbletwoarguments go gobblefourarguments gobblefivearguments gobblesixarguments gobblesevenarguments gobbleeightarguments \ gobbleninearguments gobbletenarguments gobbleoneoptional gobbletwooptionals gobblethreeoptionals \ gobblefouroptionals gobblefiveoptionals dorecurse doloop exitloop \ -dostepwiserecurse recurselevel recursedepth dofastloopcs newconstant \ -setnewconstant newconditional settrue setfalse setconstant \ -newmacro setnewmacro newfraction newsignal dosingleempty \ -dodoubleempty dotripleempty doquadrupleempty doquintupleempty dosixtupleempty \ -doseventupleempty dosingleargument dodoubleargument dotripleargument doquadrupleargument \ -doquintupleargument dosixtupleargument doseventupleargument dosinglegroupempty dodoublegroupempty \ -dotriplegroupempty doquadruplegroupempty doquintuplegroupempty permitspacesbetweengroups dontpermitspacesbetweengroups \ -nopdfcompression maximumpdfcompression normalpdfcompression modulonumber dividenumber \ -getfirstcharacter doiffirstcharelse startnointerference stopnointerference twodigits \ -threedigits strut setstrut strutbox strutht \ -strutdp strutwd struthtdp begstrut endstrut \ -lineheight ordordspacing ordopspacing ordbinspacing ordrelspacing \ -ordopenspacing ordclosespacing ordpunctspacing ordinnerspacing opordspacing \ -opopspacing opbinspacing oprelspacing opopenspacing opclosespacing \ -oppunctspacing opinnerspacing binordspacing binopspacing binbinspacing \ -binrelspacing binopenspacing binclosespacing binpunctspacing bininnerspacing \ -relordspacing relopspacing relbinspacing relrelspacing relopenspacing \ -relclosespacing relpunctspacing relinnerspacing openordspacing openopspacing \ -openbinspacing openrelspacing openopenspacing openclosespacing openpunctspacing \ -openinnerspacing closeordspacing closeopspacing closebinspacing closerelspacing \ -closeopenspacing closeclosespacing closepunctspacing closeinnerspacing punctordspacing \ -punctopspacing punctbinspacing punctrelspacing punctopenspacing punctclosespacing \ -punctpunctspacing punctinnerspacing innerordspacing inneropspacing innerbinspacing \ -innerrelspacing inneropenspacing innerclosespacing innerpunctspacing innerinnerspacing \ -normalreqno startimath stopimath normalstartimath normalstopimath \ -startdmath stopdmath normalstartdmath normalstopdmath uncramped \ -cramped triggermathstyle mathstylefont mathsmallstylefont mathstyleface \ -mathsmallstyleface mathstylecommand mathpalette mathstylehbox mathstylevbox \ -mathstylevcenter mathstylevcenteredhbox mathstylevcenteredvbox mathtext setmathsmalltextbox \ -setmathtextbox triggerdisplaystyle triggertextstyle triggerscriptstyle triggerscriptscriptstyle \ -triggeruncrampedstyle triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle triggercrampedsmallstyle \ -triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle luaexpr expdoifelse \ -expdoif expdoifnot expdoifcommonelse expdoifinsetelse ctxdirectlua \ -ctxlatelua ctxsprint ctxwrite ctxcommand ctxdirectcommand \ -ctxlatecommand ctxreport ctxlua luacode lateluacode \ -directluacode registerctxluafile ctxloadluafile luaversion luamajorversion \ -luaminorversion ctxluacode luaconditional luaexpanded startluaparameterset \ -stopluaparameterset luaparameterset definenamedlua obeylualines obeyluatokens \ -startluacode stopluacode startlua stoplua carryoverpar \ -Umathbotaccent +dostepwiserecurse recurselevel recursedepth dofastloopcs dowith \ +newconstant setnewconstant newconditional settrue setfalse \ +setconstant newmacro setnewmacro newfraction newsignal \ +dosingleempty dodoubleempty dotripleempty doquadrupleempty doquintupleempty \ +dosixtupleempty doseventupleempty dosingleargument dodoubleargument dotripleargument \ +doquadrupleargument doquintupleargument dosixtupleargument doseventupleargument dosinglegroupempty \ +dodoublegroupempty dotriplegroupempty doquadruplegroupempty doquintuplegroupempty permitspacesbetweengroups \ +dontpermitspacesbetweengroups nopdfcompression maximumpdfcompression normalpdfcompression modulonumber \ +dividenumber getfirstcharacter doiffirstcharelse startnointerference stopnointerference \ +twodigits threedigits strut setstrut strutbox \ +strutht strutdp strutwd struthtdp begstrut \ +endstrut lineheight ordordspacing ordopspacing ordbinspacing \ +ordrelspacing ordopenspacing ordclosespacing ordpunctspacing ordinnerspacing \ +opordspacing opopspacing opbinspacing oprelspacing opopenspacing \ +opclosespacing oppunctspacing opinnerspacing binordspacing binopspacing \ +binbinspacing binrelspacing binopenspacing binclosespacing binpunctspacing \ +bininnerspacing relordspacing relopspacing relbinspacing relrelspacing \ +relopenspacing relclosespacing relpunctspacing relinnerspacing openordspacing \ +openopspacing openbinspacing openrelspacing openopenspacing openclosespacing \ +openpunctspacing openinnerspacing closeordspacing closeopspacing closebinspacing \ +closerelspacing closeopenspacing closeclosespacing closepunctspacing closeinnerspacing \ +punctordspacing punctopspacing punctbinspacing punctrelspacing punctopenspacing \ +punctclosespacing punctpunctspacing punctinnerspacing innerordspacing inneropspacing \ +innerbinspacing innerrelspacing inneropenspacing innerclosespacing innerpunctspacing \ +innerinnerspacing normalreqno startimath stopimath normalstartimath \ +normalstopimath startdmath stopdmath normalstartdmath normalstopdmath \ +uncramped cramped triggermathstyle mathstylefont mathsmallstylefont \ +mathstyleface mathsmallstyleface mathstylecommand mathpalette mathstylehbox \ +mathstylevbox mathstylevcenter mathstylevcenteredhbox mathstylevcenteredvbox mathtext \ +setmathsmalltextbox setmathtextbox triggerdisplaystyle triggertextstyle triggerscriptstyle \ +triggerscriptscriptstyle triggeruncrampedstyle triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle \ +triggercrampedsmallstyle triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle luaexpr \ +expdoifelse expdoif expdoifnot expdoifcommonelse expdoifinsetelse \ +ctxdirectlua ctxlatelua ctxsprint ctxwrite ctxcommand \ +ctxdirectcommand ctxlatecommand ctxreport ctxlua luacode \ +lateluacode directluacode registerctxluafile ctxloadluafile luaversion \ +luamajorversion luaminorversion ctxluacode luaconditional luaexpanded \ +startluaparameterset stopluaparameterset luaparameterset definenamedlua obeylualines \ +obeyluatokens startluacode stopluacode startlua stoplua \ +carryoverpar Umathbotaccent diff --git a/tex/context/base/cldf-bas.lua b/tex/context/base/cldf-bas.lua index 298b374f0..08d881271 100644 --- a/tex/context/base/cldf-bas.lua +++ b/tex/context/base/cldf-bas.lua @@ -72,7 +72,7 @@ function context.egroup() end function context.space() - context(" ") + context("\\space") -- no " " as that gets intercepted end function context.hrule(w,h,d,dir) diff --git a/tex/context/base/cont-fil.mkiv b/tex/context/base/cont-fil.mkiv index db09cee3e..0b239a977 100644 --- a/tex/context/base/cont-fil.mkiv +++ b/tex/context/base/cont-fil.mkiv @@ -73,6 +73,8 @@ \definefilesynonym [pre-cycle] [pre-22] \definefilesynonym [pre-super] [pre-23] +\definefilesynonym [pre-41] [present-tiles] + %definefilesynonym [pre-more] [pre-24] %definefilesynonym [pre-more] [pre-25] \definefilesynonym [pre-more] [pre-26] diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index a9356bb2b..cf920d0e6 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.05.12 22:16} +\newcontextversion{2013.05.13 23:17} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf Binary files differindex 66a6ac062..1fd737dca 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index d84524f28..ae05c55f3 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.05.12 22:16} +\edef\contextversion{2013.05.13 23:17} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/font-chk.lua b/tex/context/base/font-chk.lua index 9e7e31aff..1b89366fd 100644 --- a/tex/context/base/font-chk.lua +++ b/tex/context/base/font-chk.lua @@ -49,7 +49,7 @@ local action = false -- to tfmdata.properties ? -local function onetimemessage(font,char,message) +local function onetimemessage(font,char,message) -- char == false returns table local tfmdata = fontdata[font] local shared = tfmdata.shared local messages = shared.messages @@ -62,7 +62,9 @@ local function onetimemessage(font,char,message) category = { } messages[message] = category end - if not category[char] then + if char == false then + return table.sortedkeys(category) + elseif not category[char] then report_fonts("char %U in font %a with id %a: %s",char,tfmdata.properties.fullname,font,message) category[char] = true end @@ -189,8 +191,15 @@ registerotffeature { } } +fonts.loggers.add_placeholders = function(id) addmissingsymbols(fontdata[id or true]) end fonts.loggers.category_to_placeholder = mapping +function commands.getplaceholderchar(name) + local id = font.current() + addmissingsymbols(fontdata[id]) + context(fonts.helpers.getprivatenode(fontdata[id],name)) +end + function checkers.missing(head) local lastfont, characters, found = nil, nil, nil for n in traverse_id(glyph_code,head) do -- faster than while loop so we delay removal @@ -251,9 +260,48 @@ function checkers.missing(head) return head, false end +local relevant = { "missing (will be deleted)", "missing (will be flagged)", "missing" } + +function checkers.getmissing(id) + if id then + local list = checkers.getmissing(font.current()) + if list then + local _, list = next(checkers.getmissing(font.current())) + return list + else + return { } + end + else + local t = { } + for id, d in next, fontdata do + local shared = d.shared + local messages = shared.messages + if messages then + local tf = t[d.properties.filename] or { } + for i=1,#relevant do + local tm = messages[relevant[i]] + if tm then + tf = table.merged(tf,tm) + end + end + if next(tf) then + t[d.properties.filename] = tf + end + end + end + for k, v in next, t do + t[k] = table.sortedkeys(v) + end + return t + end +end + +local tracked = false + trackers.register("fonts.missing", function(v) if v then enableaction("processors","fonts.checkers.missing") + tracked = true else disableaction("processors","fonts.checkers.missing") end @@ -265,15 +313,47 @@ end) function commands.checkcharactersinfont() enableaction("processors","fonts.checkers.missing") + tracked = true end function commands.removemissingcharacters() enableaction("processors","fonts.checkers.missing") action = "remove" + tracked = true end function commands.replacemissingcharacters() enableaction("processors","fonts.checkers.missing") action = "replace" otffeatures.defaults.missing = true + tracked = true end + +local report_characters = logs.reporter("fonts","characters") +local report_character = logs.reporter("missing") + +local logsnewline = logs.newline +local logspushtarget = logs.pushtarget +local logspoptarget = logs.poptarget + +luatex.registerstopactions(function() + if tracked then + local collected = checkers.getmissing() + if next(collected) then + logspushtarget("logfile") + for filename, list in table.sortedhash(collected) do + logsnewline() + report_characters("start missing characters: %s",filename) + logsnewline() + for i=1,#list do + local u = list[i] + report_character("%U %c %s",u,u,chardata[u].description) + end + logsnewline() + report_characters("stop missing characters") + logsnewline() + end + logspoptarget() + end + end +end) diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua index 05124bc78..2e960114e 100644 --- a/tex/context/base/mult-low.lua +++ b/tex/context/base/mult-low.lua @@ -265,7 +265,7 @@ return { "gobbleoneargument", "gobbletwoarguments", "gobblethreearguments", "gobblefourarguments", "gobblefivearguments", "gobblesixarguments", "gobblesevenarguments", "gobbleeightarguments", "gobbleninearguments", "gobbletenarguments", "gobbleoneoptional", "gobbletwooptionals", "gobblethreeoptionals", "gobblefouroptionals", "gobblefiveoptionals", -- - "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", + "dorecurse", "doloop", "exitloop", "dostepwiserecurse", "recurselevel", "recursedepth", "dofastloopcs", "dowith", -- "newconstant", "setnewconstant", "newconditional", "settrue", "setfalse", "setconstant", "newmacro", "setnewmacro", "newfraction", diff --git a/tex/context/base/s-fonts-missing.mkiv b/tex/context/base/s-fonts-missing.mkiv index ef45383a0..ec22e185b 100644 --- a/tex/context/base/s-fonts-missing.mkiv +++ b/tex/context/base/s-fonts-missing.mkiv @@ -13,55 +13,114 @@ \startluacode - moduledata.fonts = moduledata.fonts or { } - moduledata.fonts.tracers = moduledata.fonts.tracers or { } - moduledata.fonts.tracers.missing = moduledata.fonts.tracers.missing or { } - - function moduledata.fonts.tracers.missing.legend() - local c = fonts.hashes.identifiers[font.current()] - local p = c.properties.privates - if p then - context.starttabulate { "|Tl|c|c|" } - context.NC() - context.bold("name") - context.NC() - context.bold("character") - context.NC() - context.bold("node") - context.NC() - context.NR() - for k, v in table.sortedhash(p) do + moduledata.fonts = moduledata.fonts or { } + moduledata.fonts.missing = moduledata.fonts.missing or { } + + function moduledata.fonts.missing.legend(id) + local c = fonts.hashes.identifiers[id or font.current()] + local privates = c.properties.privates + if privates then + local categories = table.swapped(fonts.loggers.category_to_placeholder) + -- context.starttabulate { "|l|c|c|l|" } + context.starttabulate { "|l|c|l|" } context.NC() - context(k) + context.bold("name") context.NC() - context.dontleavehmode() - context.char(v) + context.bold("symbol") context.NC() - context.dontleavehmode() - commands.getprivatechar(k) + -- context.bold("node") + -- context.NC() + context.bold("category") context.NC() context.NR() - end + context.HL() + for k, v in table.sortedhash(privates) do + local tag = characters.categorytags[categories[k]] + if tag and tag ~= "" then + context.NC() + context(k) + context.NC() + context.dontleavehmode() + context.char(v) + context.NC() + -- context.dontleavehmode() + -- commands.getprivatechar(k) + -- context.NC() + context(string.lower(tag)) + context.NC() + context.NR() + end + end context.stoptabulate() end end + function moduledata.fonts.missing.characters() + local collected = fonts.checkers.getmissing() + for filename, list in table.sortedhash(collected) do + if #list > 0 then + context.starttabulate { "|l|l|" } + context.NC() + context.bold("filename") + context.NC() + context(file.basename(filename)) + context.NC() + context.NR() + context.NC() + context.bold("missing") + context.NC() + context(#list) + context.NC() + context.NR() + context.stoptabulate() + context.starttabulate { "|l|c|l|" } + for i=1,#list do + local u = list[i] + context.NC() + context("%U",u) + context.NC() + context.char(u) + context.NC() + context(characters.data[u].description) + context.NC() + context.NR() + end + context.stoptabulate() + end + end + end + \stopluacode -\def\ModuleFontsTracersMissingLegend - {\ctxlua{moduledata.fonts.tracers.missing.legend()}} +\definefontfeature[missing][missing=yes] + +\unexpanded\def\showmissingcharacterslegend + {\begingroup + \definedfont[Mono*missing]% else no privates added + \ctxlua{moduledata.fonts.missing.legend()}% + \endgroup} + +\unexpanded\def\showmissingcharacters + {\begingroup + \definedfont[Mono*missing]% else no privates added + \ctxlua{moduledata.fonts.missing.characters()}% + \endgroup} \continueifinputfile{s-fonts-missing.mkiv} -\enabletrackers[fonts.missing=replace] % the sooner, the more efficient +% the sooner, the more efficient, see log for details -% \usemodule[art-01] +% \enabletrackers[fonts.missing=replace] % \definefontfeature[default][default][missing=yes] % automatically when enabled +% \usemodule[art-01] + \starttext - \ModuleFontsTracersMissingLegend + \showmissingcharacterslegend + + \page ½ ⅓ ¼ ⅕ ⅙ ⅛ @@ -75,5 +134,13 @@ end \stopluacode + \page + + \bf ½ ⅓ ¼ ⅕ ⅙ ⅛ + + \page + + \showmissingcharacters + \stoptext diff --git a/tex/context/base/s-fonts-tables.lua b/tex/context/base/s-fonts-tables.lua index 3cf1286a7..442fadfef 100644 --- a/tex/context/base/s-fonts-tables.lua +++ b/tex/context/base/s-fonts-tables.lua @@ -12,11 +12,10 @@ local sortedkeys = table.sortedkeys local format = string.format local concat = table.concat -moduledata.fonts = moduledata.fonts or { } -moduledata.fonts.tracers = moduledata.fonts.tracers or { } -moduledata.fonts.tracers.tables = moduledata.fonts.tracers.tables or { } +moduledata.fonts = moduledata.fonts or { } +moduledata.fonts.tables = moduledata.fonts.tables or { } -local tabletracers = moduledata.fonts.tracers.tables +local tabletracers = moduledata.fonts.tables local digits = { dflt = { @@ -175,7 +174,7 @@ function tabletracers.parameters(nesting) typeset(tfmdata.parameters,fonts.constructors.keys.parameters,nesting) end -function tabletracers.positionalfeatures() +function tabletracers.positionings() local tfmdata = fonts.hashes.identifiers[font.current()] local resources = tfmdata.resources if resources then @@ -207,7 +206,7 @@ end local dynamics = true -function tabletracers.substitutionfeatures() +function tabletracers.substitutions() local tfmdata = fonts.hashes.identifiers[font.current()] local resources = tfmdata.resources if resources then @@ -304,12 +303,12 @@ function tabletracers.all(settings) -- not interfaced tabletracers.parameters() context.stopsubject() - context.startsubject { title = "Positional features" } - tabletracers.positionalfeatures() + context.startsubject { title = "Positioning features" } + tabletracers.positionings() context.stopsubject() context.startsubject { title = "Substitution features" } - tabletracers.substitutionfeatures() + tabletracers.substitutions() context.stopsubject() if title then diff --git a/tex/context/base/s-fonts-tables.mkiv b/tex/context/base/s-fonts-tables.mkiv index efe1500fb..07e80377c 100644 --- a/tex/context/base/s-fonts-tables.mkiv +++ b/tex/context/base/s-fonts-tables.mkiv @@ -11,12 +11,19 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -% todo: make a mtxrun --script --font <name> option +% todo: make a mtxrun --script font <name> option \registerctxluafile{s-fonts-tables}{} -\def\ModuleFontsTracersTablesAll[#1]% - {\ctxlua{moduledata.fonts.tracers.tables.all("#1")}} +\unexpanded\def\showfonttables[#1]% + {\begingroup + \ctxlua{moduledata.fonts.tables.all("#1")}% currently not interfaced + \endgroup} + +\unexpanded\def\showfontproperties {\ctxlua{moduledata.fonts.tables.properties ()}} +\unexpanded\def\showfontparameters {\ctxlua{moduledata.fonts.tables.parameters ()}} +\unexpanded\def\showfontpositionings {\ctxlua{moduledata.fonts.tables.positionings ()}} +\unexpanded\def\showfontsubstitutions{\ctxlua{moduledata.fonts.tables.substitutions()}} \continueifinputfile{s-fonts-tables.mkiv} @@ -26,5 +33,5 @@ [cambria] \starttext - \ModuleFontsTracersTablesAll[title=Cambria] + \showfonttables[title=Cambria] \stoptext diff --git a/tex/context/base/s-math-extensibles.mkiv b/tex/context/base/s-math-extensibles.mkiv new file mode 100644 index 000000000..7400d6564 --- /dev/null +++ b/tex/context/base/s-math-extensibles.mkiv @@ -0,0 +1,145 @@ +%D \module +%D [ file=s-math-extensibles.mkiv, +%D version=2013.02.03, +%D title=\CONTEXT\ Style File, +%D subtitle=Math Stackers Checking, +%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 provides a macro that will typeset a table of (horizontal) +%D extensibles including some tracing. You can set up the \type {demo} +%D stacker category to tweak things. +%D +%D \starttyping +%D \showmathextensibles[alternative=a|b] +%D \stoptyping + +\startmodule[mat-14] + +\unprotect + +\definemathstackers + [demo] + [math] + [\c!offset=\v!max] + +\installcorenamespace{modulemathextensibles} +\installcorenamespace{modulemathextensiblesalternative} + +\installdirectsetuphandler \??modulemathextensibles {modulemathextensibles} + +\setupmodulemathextensibles + [\c!alternative=\v!a] + +\unexpanded\def\showmathextensibles + {\dosingleempty\module_math_extensibles_show_all} + +\def\module_math_extensibles_show_all[#1]% + {\begingroup + \setupcurrentmodulemathextensibles[#1]% + \expandnamespacevalue\??modulemathextensiblesalternative\c!alternative\v!a + \endgroup} + +\def\modulemathextensiblesalternativea#1#2#3% + {\NC U+#1 + \NC \filledhboxm{\math{\char"#1}} + \NC \hbox{\math{\mathextensible[demo]{"#1}{top}{bottom}}} + \NC \hbox{\math{\mathextensible[demo]{"#1}{}{bottom}}} + \NC \hbox{\math{\mathextensible[demo]{"#1}{top}{}}} + \NC \nohyphens \veryraggedright #2 + \NC\NR} + +\setvalue{\??modulemathextensiblesalternative\v!a}% + {\enabletrackers[math.stackers.texts] + \starttabulate[|Tl|l|l|l|l|Tp|] + \ctxlua { moduledata.math.extensibles.show { + command = "modulemathextensiblesalternativea", + } } + \stoptabulate + \disabletrackers[math.stackers.texts]} + +\def\modulemathextensiblesalternativeb#1#2#3% + {\NC U+#1 + \NC \math{\char"#1} + \NC \nohyphens \veryraggedright #3 + \NC \NR} + +\setvalue{\??modulemathextensiblesalternative\v!b}% + {\enabletrackers[math.stackers.texts] + \starttabulate[|Tl|l|Tp|] + \ctxlua { moduledata.math.extensibles.show { + command = "modulemathextensiblesalternativeb", + sparse = true, + } } + \stoptabulate + \disabletrackers[math.stackers.texts]} + +\startluacode + moduledata.math = moduledata.math or { } + moduledata.math.extensibles = moduledata.math.extensibles or { } + + function moduledata.math.extensibles.show(settings) + local command = settings.command + local sparse = settings.sparse + for k, v in table.sortedhash(characters.data) do + local mathextensible = v.mathextensible + if mathextensible == "r" or mathextensible == "l" or mathextensible == "h" then + local names = { } + local mathname = v.mathname + if mathname then + names[#names+1] = v.mathclass .. ":" .. mathname + end + local mathspec = v.mathspec + if mathspec then + for i=1,#mathspec do + local v = mathspec[i] + names[#names+1] = v.class .. ":" .. v.name + end + end + local mathfiller = v.mathfiller + if mathfiller then + names[#names+1] = "filler:" .. mathfiller + end + if not sparse or #names > 0 then + context[command](string.format("%04X",k),v.description,table.concat(names," ")) + end + end + end + end +\stopluacode + +\protect + +\stopmodule + +\continueifinputfile{s-math-extensibles.mkiv} + +\setuplayout + [width=middle, + height=middle, + footer=0cm, + backspace=1.5cm, + topspace=1.5cm] + +\setuphead[chapter][style=\bfc] +\setuphead[section][style=\bfa] + +\starttext + + \dowith {a,b} { + + \page \title {Latin Modern} \showmathextensibles[alternative=#1] + \page \setupbodyfont[pagella] \title {Pagella} \showmathextensibles[alternative=#1] + \page \setupbodyfont[termes] \title {Termes} \showmathextensibles[alternative=#1] + \page \setupbodyfont[dejavu] \title {Xits} \showmathextensibles[alternative=#1] + \page \setupbodyfont[cambria] \title {Cambria} \showmathextensibles[alternative=#1] + \page \setupbodyfont[lucidaot] \title {Lucida} \showmathextensibles[alternative=#1] + + } + +\stoptext diff --git a/tex/context/base/s-pre-41.mkiv b/tex/context/base/s-present-tiles.mkiv index c0465934c..80ea5249f 100644 --- a/tex/context/base/s-pre-41.mkiv +++ b/tex/context/base/s-present-tiles.mkiv @@ -1,8 +1,8 @@ %D \module -%D [ file=s-pre-41, +%D [ file=s-present-tiles, % was s-pre-41 %D version=2013.03.24, %D title=\CONTEXT\ Style File, -%D subtitle=Presentation Environment 41, +%D subtitle=Presentation Environment Tiles, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] @@ -288,7 +288,7 @@ \setupdocument [before=\directsetup{document:titlepage}] -\continueifinputfile{s-pre-41.mkiv} +\continueifinputfile{s-present-tiles.mkiv} \startdocument[title=Whatever We\\Want Here,subtitle=Whatever We\\Want There] diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf Binary files differindex a5e888b2c..7e3205cf4 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf Binary files differindex b65354c6b..9f572c8d8 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf diff --git a/tex/context/base/status-mkiv.lua b/tex/context/base/status-mkiv.lua index 95139d1d4..62df5806f 100644 --- a/tex/context/base/status-mkiv.lua +++ b/tex/context/base/status-mkiv.lua @@ -4262,7 +4262,7 @@ return { { category = "lua", filename = "s-fonts-tables", - status = "todo", + status = "okay", }, { category = "lua", @@ -5306,12 +5306,12 @@ return { { category = "mkiv", filename = "s-fonts-missing", - status = "todo", + status = "okay", }, { category = "mkiv", filename = "s-fonts-tables", - status = "todo", + status = "okay", }, { category = "mkvi", @@ -5380,6 +5380,11 @@ return { }, { category = "mkiv", + filename = "s-math-extensibles", + status = "okay", + }, + { + category = "mkiv", filename = "s-mod-00", status = "todo", }, @@ -5524,6 +5529,11 @@ return { status = "todo", }, { + category = "mkiv", + filename = "s-present-tiles", + status = "okay", + }, + { category = "tex", filename = "s-pre-50", status = "todo", diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv index 6ed0b4fee..a590d0b65 100644 --- a/tex/context/base/syst-aux.mkiv +++ b/tex/context/base/syst-aux.mkiv @@ -3494,6 +3494,19 @@ \global\advance\outerrecurse \minusone } %D \macros +%D {dowith} +%D +%D Here's a loop over whatever is in a list: +%D +%D \starttyping +%D \dowith{a,b,c}{[#1]} +%D \stoptyping + +\unexpanded\def\dowith#1#2% + {\def\syst_helpers_with##1{#2}% + \normalexpanded{\processcommalist[#1]}\syst_helpers_with} + +%D \macros %D {doloop,exitloop} %D %D Sometimes loops are not determined by counters, but by diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index f814bdb95..c6cadc909 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 05/12/13 22:16:22 +-- merge date : 05/13/13 23:17:22 do -- begin closure to overcome local limits and interference diff --git a/tex/generic/context/luatex/luatex-fonts.lua b/tex/generic/context/luatex/luatex-fonts.lua index 29bfd5b40..89592fcac 100644 --- a/tex/generic/context/luatex/luatex-fonts.lua +++ b/tex/generic/context/luatex/luatex-fonts.lua @@ -7,19 +7,25 @@ if not modules then modules = { } end modules ['luatex-fonts'] = { } -- The following code isolates the generic context code from already defined or to be defined --- namespaces. This is the reference loader for plain, but the generic code is also used in --- luaotfload (which is is a file meant for latex) and that used to be maintained by Khaled --- Hosny. We do our best to keep the interface as clean as possible. +-- namespaces. This is the reference loader for plain tex. This generic code is also used in +-- luaotfload which is a low level lualatex opentype font loader but somehow has gotten a bit +-- too generic name / prefix, originally set up and maintained by Khaled Hosny. Currently that +-- set of derived files is maintained by a larger team lead by Philipp Gesang so when there are +-- issues with this code in latex, you can best contact him. It might make sense then to first +-- check if context has the same issue. We do our best to keep the interface as clean as possible. -- -- The code base is rather stable now, especially if you stay away from the non generic code. All -- relevant data is organized in tables within the main table of a font instance. There are a few -- places where in context other code is plugged in, but this does not affect the core code. Users -- can (given that their macro package provides this option) access the font data (characters, --- descriptions, properties, parameters, etc) of this main table. +-- descriptions, properties, parameters, etc) of this main table. The documentation is part of +-- context. There is also a manual for the helper libraries (maintained as part of the cld manuals). -- -- Future versions will probably have some more specific context code removed, like tracing and -- obscure hooks, so that we have a more efficient version (and less files too). So, don't depend --- too much on low level code that is meant for context as it can change without notice. +-- too much on low level code that is meant for context as it can change without notice. We might +-- also add more helper code here, but that depends to what extend metatex (sidetrack of context) +-- evolves into a low level layer (depends on time, as usual). utf = utf or unicode.utf8 @@ -185,8 +191,9 @@ if non_generic_context.luatex_fonts.skip_loading ~= true then -- The font database file (if used at all) must be put someplace visible for kpse and is not shared -- with context. The mtx-fonts script can be used to genate this file (using the --names option). - -- in 2013/14 we will merge/move some generic files into luatex-fonts-* files (copies) so that - -- intermediate updates of context not interfere; we can then also use the general merger + -- In 2013/14 I will merge/move some generic files into luatex-fonts-* files (copies) so that + -- intermediate updates of context not interfere. We can then also use the general merger and + -- consider stripping debug code. loadmodule('font-ini.lua') loadmodule('font-con.lua') diff --git a/tex/generic/context/luatex/luatex-math.tex b/tex/generic/context/luatex/luatex-math.tex index 966f2ddec..ab304b974 100644 --- a/tex/generic/context/luatex/luatex-math.tex +++ b/tex/generic/context/luatex/luatex-math.tex @@ -1165,7 +1165,7 @@ \the\everymathit -% a couple of definitions: +% a couple of definitions (we could also use \mathchardef): \def\acute {\Umathaccent"0"0"0000B4 } \def\acwopencirclearrow {\Umathchar "3"0"0021BA } |