From 044365a4f17208925ebff5f8749c91571ed947ed Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 26 May 2014 14:56:00 +0200 Subject: beta 2014.05.26 14:56 --- .../lexers/data/scite-context-data-context.lua | 4 +- .../context/lexers/scite-context-lexer-bibtex.lua | 25 +- .../context/lexers/scite-context-lexer-dummy.lua | 35 ++ .../context/scite-context-data-context.properties | 254 ++++---- context/data/scite/context/scite-ctx.lua | 21 +- doc/context/manuals/allkind/mkiv-publications.pdf | Bin 300242 -> 299800 bytes doc/context/manuals/allkind/mkiv-publications.tex | 33 + scripts/context/lua/mtxrun.lua | 8 +- scripts/context/stubs/mswin/mtxrun.lua | 8 +- scripts/context/stubs/unix/mtxrun | 8 +- scripts/context/stubs/win64/mtxrun.lua | 8 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4280 -> 4286 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/core-env.mkiv | 30 + tex/context/base/data-env.lua | 2 + tex/context/base/lang-lab.lua | 24 +- tex/context/base/lang-txt.lua | 125 ++++ tex/context/base/luat-mac.lua | 2 +- tex/context/base/math-ali.mkiv | 2 +- tex/context/base/mult-low.lua | 5 +- tex/context/base/pack-rul.mkiv | 3 +- tex/context/base/publ-dat.lua | 3 + tex/context/base/publ-imp-apa.bib | 29 + tex/context/base/publ-imp-apa.mkiv | 547 ----------------- tex/context/base/publ-imp-apa.mkvi | 678 +++++++++++++++++++++ tex/context/base/publ-ini.lua | 1 + tex/context/base/publ-ini.mkiv | 112 +++- tex/context/base/spac-chr.mkiv | 1 + tex/context/base/spac-ver.lua | 10 + tex/context/base/status-files.pdf | Bin 24583 -> 24603 bytes tex/context/base/status-lua.pdf | Bin 244467 -> 244468 bytes tex/context/base/syst-aux.mkiv | 2 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- web2c/contextcnf.lua | 4 +- 35 files changed, 1251 insertions(+), 739 deletions(-) create mode 100644 context/data/scite/context/lexers/scite-context-lexer-dummy.lua create mode 100644 tex/context/base/publ-imp-apa.bib delete mode 100644 tex/context/base/publ-imp-apa.mkiv create mode 100644 tex/context/base/publ-imp-apa.mkvi diff --git a/context/data/scite/context/lexers/data/scite-context-data-context.lua b/context/data/scite/context/lexers/data/scite-context-data-context.lua index aeee8590f..1980fb936 100644 --- a/context/data/scite/context/lexers/data/scite-context-data-context.lua +++ b/context/data/scite/context/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", "ctdcatcodes", "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", "startmodeset", "stopmodeset", "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", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "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", "lefttorightmark", "righttoleftmark", "breakablethinspace", "nobreakspace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace" }, - ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "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", "strippedcsname", "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", "ruledmbox", "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", "normalbaselineskip", "normallineskip", "normallineskiplimit", "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", "doifnextoptionalcselse", "doiffastoptionalcheckelse", "doifnextbgroupelse", "doifnextbgroupcselse", "doifnextparenthesiselse", "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", "getuvalue", "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", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "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", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "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", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "carryoverpar", "assumelongusagecs", "Umathbotaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "lefttoright", "righttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath" }, + ["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", "ctdcatcodes", "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", "startmodeset", "stopmodeset", "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", "setupmodule", "currentmoduleparameter", "moduleparameter", "everystarttext", "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", "lefttorightmark", "righttoleftmark", "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", "zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj", "optionalspace" }, + ["helpers"]={ "startsetups", "stopsetups", "startxmlsetups", "stopxmlsetups", "startluasetups", "stopluasetups", "starttexsetups", "stoptexsetups", "startrawsetups", "stoprawsetups", "startlocalsetups", "stoplocalsetups", "starttexdefinition", "stoptexdefinition", "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", "texdefinition", "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", "strippedcsname", "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", "ruledmbox", "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", "normalbaselineskip", "normallineskip", "normallineskiplimit", "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", "doifnextoptionalcselse", "doiffastoptionalcheckelse", "doifnextbgroupelse", "doifnextbgroupcselse", "doifnextparenthesiselse", "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", "nbsp", "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", "getuvalue", "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", "setconstant", "setconstantvalue", "newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "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", "leftorright", "offinterlineskip", "oninterlineskip", "nointerlineskip", "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", "startctxfunction", "stopctxfunction", "ctxfunction", "startctxfunctiondefinition", "stopctxfunctiondefinition", "carryoverpar", "assumelongusagecs", "Umathbotaccent", "righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop", "rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop", "autodirhbox", "autodirvbox", "autodirvtop", "lefttoright", "righttoleft", "synchronizelayoutdirection", "synchronizedisplaydirection", "synchronizeinlinedirection", "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath" }, } \ No newline at end of file diff --git a/context/data/scite/context/lexers/scite-context-lexer-bibtex.lua b/context/data/scite/context/lexers/scite-context-lexer-bibtex.lua index 88b070e5e..ebcd7cbc6 100644 --- a/context/data/scite/context/lexers/scite-context-lexer-bibtex.lua +++ b/context/data/scite/context/lexers/scite-context-lexer-bibtex.lua @@ -17,7 +17,7 @@ local patterns = context.patterns local token = lexer.token local exact_match = lexer.exact_match -local bibtexlexer = lexer.new("xml","scite-context-lexer-xml") +local bibtexlexer = lexer.new("bib","scite-context-lexer-bibtex") local whitespace = bibtexlexer.whitespace local escape, left, right = P("\\"), P('{'), P('}') @@ -45,8 +45,11 @@ local spaces = space^1 local equal = P("=") local keyword = (R("az","AZ","09") + S("@_:-"))^1 -local s_quoted = ((escape*single) + spaces^1 + (1-single))^0 -local d_quoted = ((escape*double) + spaces^1 + (1-double))^0 +----- s_quoted = ((escape*single) + spaces + (1-single))^0 +----- d_quoted = ((escape*double) + spaces + (1-double))^0 +local s_quoted = ((escape*single) + (1-single))^0 +local d_quoted = ((escape*double) + (1-double))^0 + local balanced = patterns.balanced local t_spacing = token(whitespace, space^1) @@ -119,6 +122,22 @@ local t_rest = token("default",anything) -- -- function OnOpen(filename) editor:Colourise(1,editor.TextLength) end -- or is it 0? +-- somehow lexing fails on this more complex lexer when we insert something, there is no +-- backtracking to whitespace when we have no embedded lexer, so we fake one ... this works +-- to some extend but not in all cases (e.g. editing inside line fails) .. maybe i need to +-- patch the dll ... (better not) + +local dummylexer = lexer.load("scite-context-lexer-dummy","bib-dum") + +local dummystart = token("embedded",P("\001")) -- an unlikely to be used character +local dummystop = token("embedded",P("\002")) -- an unlikely to be used character + +lexer.embed_lexer(bibtexlexer,dummylexer,dummystart,dummystop) + +-- maybe we need to define each functional block as lexer (some 4) so i'll do that when +-- this issue is persistent ... maybe consider making a local lexer options (not load, +-- just lexer.new or so) .. or maybe do the reverse, embed the main one in a dummy child + bibtexlexer._rules = { { "whitespace", t_spacing }, { "forget", t_forget }, diff --git a/context/data/scite/context/lexers/scite-context-lexer-dummy.lua b/context/data/scite/context/lexers/scite-context-lexer-dummy.lua new file mode 100644 index 000000000..9465561f3 --- /dev/null +++ b/context/data/scite/context/lexers/scite-context-lexer-dummy.lua @@ -0,0 +1,35 @@ +local info = { + version = 1.002, + comment = "scintilla lpeg lexer that triggers whitespace backtracking", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files", +} + +-- the lexer dll doesn't backtrack when there is no embedded lexer so +-- we need to trigger that, for instance in the bibtex lexer, but still +-- we get failed lexing + +local lexer = require("lexer") +local context = lexer.context +local patterns = context.patterns + +local token = lexer.token + +local dummylexer = lexer.new("dummy","scite-context-lexer-dummy") +local whitespace = dummylexer.whitespace + +local space = patterns.space +local nospace = (1-space) + +local t_spacing = token(whitespace, space ^1) +local t_rest = token("default", nospace^1) + +dummylexer._rules = { + { "whitespace", t_spacing }, + { "rest", t_rest }, +} + +dummylexer._tokenstyles = context.styleset + +return dummylexer diff --git a/context/data/scite/context/scite-context-data-context.properties b/context/data/scite/context/scite-context-data-context.properties index d709dbe51..329dc3dad 100644 --- a/context/data/scite/context/scite-context-data-context.properties +++ b/context/data/scite/context/scite-context-data-context.properties @@ -59,137 +59,137 @@ mathclosecode mathpunctcode mathalphacode mathinnercode mathnothingcode \ mathlimopcode mathnolopcode mathboxcode mathchoicecode mathaccentcode \ mathradicalcode constantnumber constantnumberargument constantdimen constantdimenargument \ constantemptyargument continueifinputfile luastringsep !!bs !!es \ -lefttorightmark righttoleftmark breakablethinspace nobreakspace narrownobreakspace \ -zerowidthnobreakspace ideographicspace ideographichalffillspace twoperemspace threeperemspace \ -fourperemspace fiveperemspace sixperemspace figurespace punctuationspace \ -hairspace zerowidthspace zerowidthnonjoiner zerowidthjoiner zwnj \ -zwj optionalspace +lefttorightmark righttoleftmark breakablethinspace nobreakspace nonbreakablespace \ +narrownobreakspace zerowidthnobreakspace ideographicspace ideographichalffillspace twoperemspace \ +threeperemspace fourperemspace fiveperemspace sixperemspace figurespace \ +punctuationspace hairspace zerowidthspace zerowidthnonjoiner zerowidthjoiner \ +zwnj zwj optionalspace keywordclass.context.helpers=\ startsetups stopsetups startxmlsetups stopxmlsetups \ startluasetups stopluasetups starttexsetups stoptexsetups startrawsetups \ stoprawsetups startlocalsetups stoplocalsetups starttexdefinition stoptexdefinition \ starttexcode stoptexcode startcontextcode stopcontextcode startcontextdefinitioncode \ -stopcontextdefinitioncode 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 \ -strippedcsname 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 ruledmbox 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 normalbaselineskip normallineskip \ -normallineskiplimit 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 doifnextoptionalcselse doiffastoptionalcheckelse doifnextbgroupelse doifnextbgroupcselse \ -doifnextparenthesiselse 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 getuvalue \ -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 setconstant setconstantvalue newconditional \ -settrue setfalse settruevalue setfalsevalue 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 \ -leftorright offinterlineskip oninterlineskip nointerlineskip 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 startctxfunction stopctxfunction ctxfunction \ -startctxfunctiondefinition stopctxfunctiondefinition carryoverpar assumelongusagecs Umathbotaccent \ -righttolefthbox lefttorighthbox righttoleftvbox lefttorightvbox righttoleftvtop \ -lefttorightvtop rtlhbox ltrhbox rtlvbox ltrvbox \ -rtlvtop ltrvtop autodirhbox autodirvbox autodirvtop \ -lefttoright righttoleft synchronizelayoutdirection synchronizedisplaydirection synchronizeinlinedirection \ -lesshyphens morehyphens nohyphens dohyphens Ucheckedstartdisplaymath \ -Ucheckedstopdisplaymath +stopcontextdefinitioncode texdefinition 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 strippedcsname 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 ruledmbox \ +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 normalbaselineskip \ +normallineskip normallineskiplimit 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 doifnextoptionalcselse doiffastoptionalcheckelse doifnextbgroupelse \ +doifnextbgroupcselse doifnextparenthesiselse 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 nbsp 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 getuvalue 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 setconstant \ +setconstantvalue newconditional settrue setfalse settruevalue \ +setfalsevalue 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 leftorright offinterlineskip oninterlineskip \ +nointerlineskip 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 startctxfunction \ +stopctxfunction ctxfunction startctxfunctiondefinition stopctxfunctiondefinition carryoverpar \ +assumelongusagecs Umathbotaccent righttolefthbox lefttorighthbox righttoleftvbox \ +lefttorightvbox righttoleftvtop lefttorightvtop rtlhbox ltrhbox \ +rtlvbox ltrvbox rtlvtop ltrvtop autodirhbox \ +autodirvbox autodirvtop lefttoright righttoleft synchronizelayoutdirection \ +synchronizedisplaydirection synchronizeinlinedirection lesshyphens morehyphens nohyphens \ +dohyphens Ucheckedstartdisplaymath Ucheckedstopdisplaymath diff --git a/context/data/scite/context/scite-ctx.lua b/context/data/scite/context/scite-ctx.lua index 24f5b34b8..a529b3ced 100644 --- a/context/data/scite/context/scite-ctx.lua +++ b/context/data/scite/context/scite-ctx.lua @@ -902,13 +902,16 @@ local textlists = { -- taken from sort-lan.lua "U", "V", "W", "X", "Y", "Z", }, fr = { - "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", - "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", - "u", "v", "w", "x", "y", "z", + "a", "æ", "b", "c", "ç", "d", "e", "è", "é", "ê", + "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", + "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", + "z", + + "A", "Æ", "B", "C", "Ç", "D", "E", "È", "É", "Ê", + "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", + "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", + "Z", - "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", - "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", - "U", "V", "W", "X", "Y", "Z", }, de = { "a", "ä", "b", "c", "d", "e", "f", "g", "h", "i", @@ -1169,12 +1172,12 @@ local textlists = { -- taken from sort-lan.lua "T", "U", "Ú", "Ü", "V", "W", "X", "Y", "Z", }, lt = { -- lithuanian - "a", "ą", "b", "c", ch, "č", "d", "e", "ę", "ė", + "a", "ą", "b", "c", "ch", "č", "d", "e", "ę", "ė", "f", "g", "h", "i", "į", "y", "j", "k", "l", "m", "n", "o", "p", "r", "s", "š", "t", "u", "ų", "ū", "v", "z", "ž", - "A", "Ą", "B", "C", CH, "Č", "D", "E", "Ę", "Ė", + "A", "Ą", "B", "C", "CH", "Č", "D", "E", "Ę", "Ė", "F", "G", "H", "I", "Į", "Y", "J", "K", "L", "M", "N", "O", "P", "R", "S", "Š", "T", "U", "Ų", "Ū", "V", "Z", "Ž", @@ -1389,7 +1392,7 @@ end function OnOpen(filename) -- print("opening: " .. filename .. " (size: " .. editor.TextLength .. ")") - editor:Colourise(1,editor.TextLength) + editor:Colourise(0,editor.TextLength) end -- output.LexerLanguage = "" diff --git a/doc/context/manuals/allkind/mkiv-publications.pdf b/doc/context/manuals/allkind/mkiv-publications.pdf index 04a63f126..93b389ada 100644 Binary files a/doc/context/manuals/allkind/mkiv-publications.pdf and b/doc/context/manuals/allkind/mkiv-publications.pdf differ diff --git a/doc/context/manuals/allkind/mkiv-publications.tex b/doc/context/manuals/allkind/mkiv-publications.tex index 04ed62744..87c1f863c 100644 --- a/doc/context/manuals/allkind/mkiv-publications.tex +++ b/doc/context/manuals/allkind/mkiv-publications.tex @@ -3,6 +3,29 @@ \setupbtxlistvariant [interaction=start] \setupbtxcitevariant [interaction=start] +% publisher +% organization +% school +% institution +% school +% institution +% publisher +% organization +% +% p +% pp +% pages +% edition +% Number (... in) +% number (... in) +% Volume (... of) +% volume (... of) +% in +% In +% Master's thesis +% PhD thesis +% Technical Report + % criterium: all + sorttype=cite => citex before rest % criterium: all + sorttype=database => database order % criterium: used @@ -1573,6 +1596,16 @@ some benefits but also some drawbacks. \stopchapter +\startchapter[title=APA files] + +Here are the possible fields per category for APA: + +\definebtxdataset[apadef] +\usebtxdataset[apadef][publ-imp-apa.bib] +\showbtxdatasetcompleteness[apadef] + +\stopchapter + \stopbodymatter \stoptext diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 5cb5c8d24..fbb2bcff2 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -12933,7 +12933,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-env"] = package.loaded["data-env"] or true --- original size: 8769, stripped down to: 6490 +-- original size: 8841, stripped down to: 6546 if not modules then modules={} end modules ['data-env']={ version=1.001, @@ -13050,10 +13050,12 @@ local relations=allocate { }, bib={ names={ 'bib' }, + variable='BIBINPUTS', suffixes={ 'bib' }, }, bst={ names={ 'bst' }, + variable='BSTINPUTS', suffixes={ 'bst' }, }, fontconfig={ @@ -16880,8 +16882,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 695180 --- stripped bytes : 246794 +-- original bytes : 695252 +-- stripped bytes : 246810 -- end library merge diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 5cb5c8d24..fbb2bcff2 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -12933,7 +12933,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-env"] = package.loaded["data-env"] or true --- original size: 8769, stripped down to: 6490 +-- original size: 8841, stripped down to: 6546 if not modules then modules={} end modules ['data-env']={ version=1.001, @@ -13050,10 +13050,12 @@ local relations=allocate { }, bib={ names={ 'bib' }, + variable='BIBINPUTS', suffixes={ 'bib' }, }, bst={ names={ 'bst' }, + variable='BSTINPUTS', suffixes={ 'bst' }, }, fontconfig={ @@ -16880,8 +16882,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 695180 --- stripped bytes : 246794 +-- original bytes : 695252 +-- stripped bytes : 246810 -- end library merge diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 5cb5c8d24..fbb2bcff2 100755 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -12933,7 +12933,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-env"] = package.loaded["data-env"] or true --- original size: 8769, stripped down to: 6490 +-- original size: 8841, stripped down to: 6546 if not modules then modules={} end modules ['data-env']={ version=1.001, @@ -13050,10 +13050,12 @@ local relations=allocate { }, bib={ names={ 'bib' }, + variable='BIBINPUTS', suffixes={ 'bib' }, }, bst={ names={ 'bst' }, + variable='BSTINPUTS', suffixes={ 'bst' }, }, fontconfig={ @@ -16880,8 +16882,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 695180 --- stripped bytes : 246794 +-- original bytes : 695252 +-- stripped bytes : 246810 -- end library merge diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua index 5cb5c8d24..fbb2bcff2 100644 --- a/scripts/context/stubs/win64/mtxrun.lua +++ b/scripts/context/stubs/win64/mtxrun.lua @@ -12933,7 +12933,7 @@ do -- create closure to overcome 200 locals limit package.loaded["data-env"] = package.loaded["data-env"] or true --- original size: 8769, stripped down to: 6490 +-- original size: 8841, stripped down to: 6546 if not modules then modules={} end modules ['data-env']={ version=1.001, @@ -13050,10 +13050,12 @@ local relations=allocate { }, bib={ names={ 'bib' }, + variable='BIBINPUTS', suffixes={ 'bib' }, }, bst={ names={ 'bst' }, + variable='BSTINPUTS', suffixes={ 'bst' }, }, fontconfig={ @@ -16880,8 +16882,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 695180 --- stripped bytes : 246794 +-- original bytes : 695252 +-- stripped bytes : 246810 -- end library merge diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index d4be2d713..17a4cc83d 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{2014.05.24 15:14} +\newcontextversion{2014.05.26 14:56} %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 index d6a93c511..ade42d03a 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 03ef02652..aa97b7490 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2014.05.24 15:14} +\edef\contextversion{2014.05.26 14:56} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/core-env.mkiv b/tex/context/base/core-env.mkiv index 75b65418f..fb91ba4e6 100644 --- a/tex/context/base/core-env.mkiv +++ b/tex/context/base/core-env.mkiv @@ -647,6 +647,36 @@ \expandafter\firstofoneargument \fi} +%D A few more (we could use a public test variable so that we only need +%D to expand once, assuming expandable variables): + +\letvalue{\??variables:}\empty + +\unexpanded\def\doifelseemptyvariable#1#2% + {\edef\m_syst_string_one{\csname\??variables\ifcsname\??variables#1:#2\endcsname#1:#2\else:\fi\endcsname}% + \ifx\m_syst_string_one\empty + \expandafter\firstoffourarguments + \else + \expandafter\secondoftwoarguments + \fi} + +\unexpanded\def\doifemptyvariable#1#2% + {\edef\m_syst_string_one{\csname\??variables\ifcsname\??variables#1:#2\endcsname#1:#2\else:\fi\endcsname}% + \ifx\m_syst_string_one\empty + \expandafter\firstofoneargument + \else + \expandafter\gobbleoneargument + \fi} + +\unexpanded\def\doifnotemptyvariable#1#2% + {\edef\m_syst_string_one{\csname\??variables\ifcsname\??variables#1:#2\endcsname#1:#2\else:\fi\endcsname}% + \ifx\m_syst_string_one\empty + \expandafter\gobbleoneargument + \else + \expandafter\firstofoneargument + \fi} + + \def\getvariabledefault#1#2% #3% can be command, so no ifcsname here {\executeifdefined{\??variables#1:#2}}% {#3} diff --git a/tex/context/base/data-env.lua b/tex/context/base/data-env.lua index 58a081506..90b031b0f 100644 --- a/tex/context/base/data-env.lua +++ b/tex/context/base/data-env.lua @@ -120,10 +120,12 @@ local relations = allocate { -- todo: handlers also here }, bib = { names = { 'bib' }, + variable = 'BIBINPUTS', suffixes = { 'bib' }, }, bst = { names = { 'bst' }, + variable = 'BSTINPUTS', suffixes = { 'bst' }, }, fontconfig = { diff --git a/tex/context/base/lang-lab.lua b/tex/context/base/lang-lab.lua index 91c258418..1540bc04e 100644 --- a/tex/context/base/lang-lab.lua +++ b/tex/context/base/lang-lab.lua @@ -30,19 +30,27 @@ end labels.split = split -local contextsprint = context.sprint +local contextsprint = context.sprint + +local f_setlabeltextpair = formatters["\\setlabeltextpair{%s}{%s}{%s}{%s}{%s}"] +local f_key_key = formatters["\\v!%s:\\v!%s"] +local f_key_raw = formatters["\\v!%s:%s"] +local f_raw_key = formatters["%s:\\v!%s"] +local f_raw_raw = formatters["%s:%s"] +local f_key = formatters["\\v!%s"] +local f_raw = formatters["%s"] local function definelanguagelabels(data,class,tag,rawtag) for language, text in next, data.labels do if text == "" then -- skip elseif type(text) == "table" then - contextsprint(prtcatcodes,"\\setlabeltextpair{",class,"}{",language,"}{",tag,"}{",text[1],"}{",text[2],"}") + contextsprint(prtcatcodes,f_setlabeltextpair(class,language,tag,text[1],text[2])) if trace_labels then report_labels("language %a, defining label %a as %a and %a",language,rawtag,text[1],text[2]) end else - contextsprint(prtcatcodes,"\\setlabeltextpair{",class,"}{",language,"}{",tag,"}{",text,"}{}") + contextsprint(prtcatcodes,f_setlabeltextpair(class,language,tag,text,"")) if trace_labels then report_labels("language %a, defining label %a as %a",language,rawtag,text) end @@ -62,17 +70,17 @@ function labels.define(class,name,prefixed) if second then if rawget(variables,first) then if rawget(variables,second) then - definelanguagelabels(data,class,formatters["\\v!%s:\\v!%s"](first,second),tag) + definelanguagelabels(data,class,f_key_key(first,second),tag) else - definelanguagelabels(data,class,formatters["\\v!%s:%s"](first,second),tag) + definelanguagelabels(data,class,f_key_raw(first,second),tag) end elseif rawget(variables,second) then - definelanguagelabels(data,class,formatters["%s:\\v!%s"](first,second),tag) + definelanguagelabels(data,class,f_raw_key(first,second),tag) else - definelanguagelabels(data,class,formatters["%s:%s"](first,second),tag) + definelanguagelabels(data,class,f_raw_raw(first,second),tag) end elseif rawget(variables,rawtag) then - definelanguagelabels(data,class,formatters["\\v!%s"](tag),tag) + definelanguagelabels(data,class,f_key(tag),tag) else definelanguagelabels(data,class,tag,tag) end diff --git a/tex/context/base/lang-txt.lua b/tex/context/base/lang-txt.lua index 4c3a3a985..e4935aa88 100644 --- a/tex/context/base/lang-txt.lua +++ b/tex/context/base/lang-txt.lua @@ -2630,4 +2630,129 @@ data.labels={ }, }, }, + btx = { + ["mastersthesis"] = { + labels = { + en = "Master's thesis", + fr = "Thèse de master (DEA, DESS, master)", + de = "Masterarbeit", + }, + }, + ["phdthesis"] = { + labels = { + en = "PhD thesis", + fr = "Thèse de doctorat", + de = "Dissertation", + }, + }, + ["technicalreport"] = { + labels = { + en = "Technical report", + fr = "Rapport technique", + de = "Technischer Bericht", + }, + }, + -- + ["editor"] = { + labels = { + en = "editor", + fr = "éditeur", + de = "Herausgeber", + }, + }, + ["editors"] = { + labels = { + en = "editors", + fr = "éditeurs", + de = "Herausgeber", + }, + }, + ["edition"] = { + labels = { + en = "edition", + fr = "édition", + de = "Auflage", + }, + }, + -- + ["volume"] = { + labels = { + en = "volume", + de = "Band", + }, + }, + ["Volume"] = { + labels = { + en = "Volume", + de = "Band", + }, + }, + ["number"] = { + labels = { + en = "number", + fr = "numéro", + de = "Numer", + }, + }, + ["Number"] = { + labels = { + en = "Number", + fr = "Numéro", + de = "Numer", + }, + }, + ["in"] = { + labels = { + en = "in", + fr = "dans", + de = "in", + }, + }, + ["of"] = { + labels = { + en = "of", + fr = "de", + de = "von", + }, + }, + -- + ["In"] = { + labels = { + en = "In", + fr = "Dans", + de = "In", + }, + }, + -- + ["p"] = { + labels = { + en = "p", + de = "S", + }, + }, + ["pp"] = { + labels = { + en = "pp", + de = "S", + }, + }, + ["pages"] = { + labels = { + en = "pages", + de = "Seiten", + }, + }, + -- + ["and"] = { + labels = { + en = "and", + de = "und", + }, + }, + ["others"] = { + labels = { + en = "et al.", + }, + }, + } } diff --git a/tex/context/base/luat-mac.lua b/tex/context/base/luat-mac.lua index 282dc8ce3..9c3f792dd 100644 --- a/tex/context/base/luat-mac.lua +++ b/tex/context/base/luat-mac.lua @@ -92,7 +92,7 @@ local nolong = 1 - longleft - longright local utf8character = P(1) * R("\128\191")^1 -- unchecked but fast local name = (R("AZ","az") + utf8character)^1 -local csname = (R("AZ","az") + S("@?!_") + utf8character)^1 +local csname = (R("AZ","az") + S("@?!_:-*") + utf8character)^1 local longname = (longleft/"") * (nolong^1) * (longright/"") local variable = P("#") * Cs(name + longname) local escapedname = escape * csname diff --git a/tex/context/base/math-ali.mkiv b/tex/context/base/math-ali.mkiv index 6bfde57b6..2ce2ae1df 100644 --- a/tex/context/base/math-ali.mkiv +++ b/tex/context/base/math-ali.mkiv @@ -605,7 +605,7 @@ {\iffirstargument \setupcurrentmathmatrix[#1]% \fi - \emptyhbox + % \emptyhbox % noted at 25-05-2014: what was that one doing here? it messed up spacing \math_matrix_align_method_analyze \mathmatrixleft \mathmatrixbox\bgroup diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua index dda4e5aad..2bae5a0b0 100644 --- a/tex/context/base/mult-low.lua +++ b/tex/context/base/mult-low.lua @@ -121,7 +121,7 @@ return { -- "lefttorightmark", "righttoleftmark", -- - "breakablethinspace", "nobreakspace", "narrownobreakspace", "zerowidthnobreakspace", + "breakablethinspace", "nobreakspace", "nonbreakablespace", "narrownobreakspace", "zerowidthnobreakspace", "ideographicspace", "ideographichalffillspace", "twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace", "figurespace", "punctuationspace", "hairspace", @@ -140,6 +140,7 @@ return { "starttexcode", "stoptexcode", "startcontextcode", "stopcontextcode", "startcontextdefinitioncode", "stopcontextdefinitioncode", + "texdefinition", -- "doifsetupselse", "doifsetups", "doifnotsetups", "setup", "setups", "texsetup", "xmlsetup", "luasetup", "directsetup", "doifelsecommandhandler","doifnotcommandhandler","doifcommandhandler", @@ -239,7 +240,7 @@ return { -- "removetoks", "appendtoks", "prependtoks", "appendtotoks", "prependtotoks", "to", -- - "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", + "endgraf", "endpar", "everyendpar", "reseteverypar", "finishpar", "empty", "null", "space", "quad", "enspace", "nbsp", "obeyspaces", "obeylines", "obeyedspace", "obeyedline", "normalspace", -- diff --git a/tex/context/base/pack-rul.mkiv b/tex/context/base/pack-rul.mkiv index 8fcf8f548..5bda9bb29 100644 --- a/tex/context/base/pack-rul.mkiv +++ b/tex/context/base/pack-rul.mkiv @@ -1385,7 +1385,7 @@ \fi} \unexpanded\def\pack_framed_finish - {\pack_framed_stop_orientation % hm, wrong place ! should rotate the result (after reshape) + {%\pack_framed_stop_orientation % hm, wrong place ! should rotate the result (after reshape) .. moved down \pack_framed_locator_before\p_framed_location \ifconditional\c_framed_has_format \ifx\p_framed_autowidth\v!force @@ -1417,6 +1417,7 @@ \ifx\p_framed_empty\v!yes \pack_framed_fake_box \fi + \pack_framed_stop_orientation % moved here at 2014-05-25 \iftrialtypesetting \else \edef\p_framed_region{\framedparameter\c!region}% \ifx\p_framed_region\v!yes % maybe later named diff --git a/tex/context/base/publ-dat.lua b/tex/context/base/publ-dat.lua index 6062d0d4c..fc810ed6b 100644 --- a/tex/context/base/publ-dat.lua +++ b/tex/context/base/publ-dat.lua @@ -484,6 +484,9 @@ function publications.load(dataset,filename,kind) filetype = file.suffix(filename) end local fullname = resolvers.findfile(filename,"bib") + if fullname == "" then + fullname = resolvers.findfile(filename) -- let's not be too picky + end if dataset.loaded[fullname] then -- will become better -- skip elseif fullname == "" then diff --git a/tex/context/base/publ-imp-apa.bib b/tex/context/base/publ-imp-apa.bib new file mode 100644 index 000000000..fe56719f8 --- /dev/null +++ b/tex/context/base/publ-imp-apa.bib @@ -0,0 +1,29 @@ +% The fields. + +@article {apa-article, + author = "...", + comment = "...", + crossref = "...", + editor = "...", + issue = "...", + journal = "...", + note = "...", + pages = "...", + title = "...", + volume = "...", + year = "...", +} + +@book {apa-book, + author = "...", + comment = "...", + chapter = "...", + crossref = "...", + editor = "...", + series = "...", + pages = "...", + publisher = "...", + volume = "...", + year = "...", +} + diff --git a/tex/context/base/publ-imp-apa.mkiv b/tex/context/base/publ-imp-apa.mkiv deleted file mode 100644 index 3f7b119af..000000000 --- a/tex/context/base/publ-imp-apa.mkiv +++ /dev/null @@ -1,547 +0,0 @@ -%D \module -%D [ file=publ-imp-apa, -%D version=2013.12.12, % based on bibl-apa.tex and later xml variant -%D title=APA bibliography style, -%D subtitle=Publications, -%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 therefore copyrighted -%D by \PRAGMA. See mreadme.pdf for details. - -% common - -% \loadbtxdefinitionfile[def] - -\startsetups btx:apa:common:wherefrom - \btxdoifelse {address} { - \getvariable{btx:temp}{left} - \btxdoifelse {country} { - \btxdoifelse {\getvariable{btx:temp}{label}} { - \btxflush{address}\btxcomma\btxflush{country}: \btxflush{\getvariable{btx:temp}{label}} - } { - \btxflush{address}\btxcomma\btxflush{country} - } - } { - \btxdoifelse {\getvariable{btx:temp}{label}} { - \btxflush{address}\btxcomma\btxflush{\getvariable{btx:temp}{label}} - } { - \btxflush{address} - } - } - \getvariable{btx:temp}{right} - } { - \btxdoifelse {country} { - \getvariable{btx:temp}{left} - \btxdoifelse {\getvariable{btx:temp}{label}} { - \btxflush{country}: \btxflush{\getvariable{btx:temp}{label}} - } { - \btxflush{country} - } - \getvariable{btx:temp}{right} - } { - \btxdoifelse {\getvariable{btx:temp}{label}} { - \getvariable{btx:temp}{left} - \btxflush{\getvariable{btx:temp}{label}} - \getvariable{btx:temp}{right} - } { - \getvariable{btx:temp}{otherwise} - } - } - } -\stopsetups - -% \setvariables[btx:temp][label=,left=,right=,otherwise=] - -\startsetups btx:apa:common:publisher - \begingroup - \setvariables[btx:temp][label=publisher]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:organization - \begingroup - \setvariables[btx:temp][label=organization]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:school - \begingroup - \setvariables[btx:temp][label=school]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:institution - \begingroup - \setvariables[btx:temp][label=institution]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:school:subsentence - \begingroup - \setvariables[btx:temp][label=school,left=\btxcomma,right=\btxperiod,otherwise=\btxperiod]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:institution:subsentence - \begingroup - \setvariables[btx:temp][label=institution,left=\btxcomma,right=\btxperiod,otherwise=\btxperiod]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:publisher:sentence - \begingroup - \setvariables[btx:temp][label=publisher,left=\btxspace,right=\btxperiod]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:organization:sentence - \begingroup - \setvariables[btx:temp][label=organization,left=\btxspace,right=\btxperiod]\relax - \btxsetup{btx:apa:common:wherefrom} - \endgroup -\stopsetups - -\startsetups btx:apa:common:title-and-series - \btxdoif {title} { - \btxflush{title} - \btxdoif {series} { - \btxlparent\btxflush{series}\btxrparent - } - \btxperiod - } -\stopsetups - -\startsetups btx:apa:common:title-it-and-series - \btxdoif {title} { - \bgroup\it\btxflush{title}\/\egroup - \btxdoif {series} { - \btxlparent\btxflush{series}\btxrparent - } - \btxperiod - } -\stopsetups - -\disablemode[btx:apa:edited-book] - -\startsetups btx:apa:common:author-and-year - \btxdoif {author} { - \btxflushauthor{author} - } - \btxdoif {year} { - \btxlparent\btxflush{year}\btxrparent - } - \btxperiod -\stopsetups - -\startsetups btx:apa:common:author-or-key-and-year - \btxdoifelse {author} { - \btxflushauthor{author} - } { - \btxdoif {key} { - \btxlbracket\btxsetup{btx:format:key}\btxrbracket - } - } - \btxdoif {year} { - \btxlparent\btxflush{year}\btxrparent - } - \btxperiod -\stopsetups - -\startsetups btx:apa:common:author-editors-crossref-year - \btxdoif {author} { - \btxflushauthor{author} - } { - \btxdoifelse {editor} { - \enablemode[btx:apa:edited-book] - \btxflushauthor{editor} - \btxcomma\btxsingularplural{editor}{editor}{editors} - } { - % weird period - \btxdoif {crossref} { - \btxlbracket\btxsetup{btx:format:crossref}\btxrbracket\btxperiod - } - } - } - \btxdoif {year} { - \btxlparent\btxflush{year}\btxrparent - } - \btxperiod -\stopsetups - -\startsetups btx:apa:common:editor-or-key-and-year - \btxdoifelse {editor} { - \enablemode[btx:apa:edited-book] - \btxflushauthor{editor} - \btxcomma\btxsingularplural{editor}{editor}{editors} - } { - \btxdoif {key} { - \btxlbracket\btxsetup{btx:format:key}\btxrbracket - } - } - \btxspace - \btxdoif {year} { - \btxlparent\btxflush{year}\btxrparent - } - \btxperiod -\stopsetups - -\startsetups btx:apa:common:note - \btxdoif {note} { - \btxspace\btxflush{note}\btxperiod - } -\stopsetups - -\startsetups btx:apa:common:comment - \btxdoif {comment} { - \btxspace\btxflush{comment}\btxperiod - } -\stopsetups - -\startsetups btx:apa:common:pages:p - \btxdoif {pages} { - \btxspace\btxflush{pages}\btxspace p\btxperiod - } -\stopsetups - -\startsetups btx:apa:common:pages:pp - \btxdoif {pages} { - \btxspace\btxflush{pages}\btxspace pp\btxperiod - } -\stopsetups - -\startsetups btx:apa:common:pages:pages - \btxdoif {pages} { - \btxcomma pages~\btxflush{pages} - } -\stopsetups - -\startsetups btx:apa:common:edition:sentense - \btxdoif {edition} { - \btxspace\btxflush{edition}\btxspace edition\btxperiod - } -\stopsetups - -% check when the next is used (no period) - -% \startsetups btx:apa:common:edition -% \btxdoif {edition} { -% \btxspace\btxflush{edition}\btxspace edition -% } -% \stopsetups - -% we can share more, todo - -% specific - -\startsetups btx:apa:article - \btxsetup{btx:apa:common:author-or-key-and-year} - \btxdoif {title} { - \btxflush{title}\btxperiod - } - \btxdoifelse {journal} { - \bgroup\it\btxflush{journal}\/\egroup - } { - \btxdoif {crossref} { - In\btxspace\btxflush{crossref} - } - } - \btxdoifelse {volume} { - \btxcomma\bgroup\it\btxflush{volume}\/\egroup - \btxdoif {issue} { - \btxlparent\btxflush{issue}\btxrparent - } - \btxdoif {pages} { - \btxcomma\btxflush{pages} - } - \btxperiod - } { - \btxsetup{btx:apa:common:pages:pp} - } - \btxsetup{btx:apa:common:note} - \btxsetup{btx:apa:common:comment} -\stopsetups - -\startsetups btx:apa:book - \btxsetup{btx:apa:common:author-editors-crossref-year} - \btxdoif {title} { - \bgroup\it\btxflush{title}\/\egroup - \doifmodeelse {btx:apa:edited-book} { - \btxdoifelse {volume} { - \btxspace Number\nonbreakablespace\btxflush{volume} - \btxdoifelse {series} { - \btxspace in\nonbreakablespace\btxflush{series}\btxperiod - } { - \btxdoifelse {crossref} { - \btxspace in\btxlbracket\btxsetup{btx:format:crossref}\btxrbracket - } { - \btxperiod - } - } - } { - \btxdoif {series} { - \btxspace\btxflush{series} - } - \btxperiod - } - } { - \btxdoifelse {crossref} { - \btxdoif {chapter} { - \btxcomma\btxflush{chapter} - } - \btxsetup{btx:apa:common:pages:pages} - \btxperiod - \btxdoif {volume} { - Volume\nonbreakablespace\btxflush{volume}\btxspace of\nonbreakablespace - } - } { - \btxdoif {volume} { - \btxcomma volume\nonbreakablespace\btxflush{volume} - \btxdoif {series} { - \btxspace of\nonbreakablespace\bgroup\it\btxflush{series}\/\egroup - } - \btxdoif {chapter} { - \btxcomma\btxflush{chapter} - } - \btxsetup{btx:apa:common:pages:pages} - } - \btxperiod - } - } - } - \btxsetup{btx:apa:common:edition:sentence} - \btxsetup{btx:apa:common:publisher:sentence} - \btxsetup{btx:apa:common:pages:p}% twice? - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:inbook - \btxsetup{btx:apa:common:author-editors-crossref-year} - \btxdoifelse {title} { - \bgroup\it\btxflush{title}\/\egroup - } { - \doifmodeelse {btx:apa:edited-book} { - \btxdoifelse {volume} { - \btxspace number\nonbreakablespace\btxflush{volume} - \btxdoifelse {series} { - \btxspace in\nonbreakablespace\btxflush{series}\btxperiod - } { - \btxdoifelse {crossref} { - \btxspace in\btxlbracket\btxsetup{btx:format:crossref}\btxrbracket - } { - \btxperiod - } - } - } { - \btxdoif {series} { - \btxspace\btxflush{series}\btxperiod - } - } - } { - \btxdoifelse {crossref} { - \btxdoif {chapter} { - \btxcomma\btxflush{chapter} - } - \btxsetup{btx:apa:common:pages:pages} - \btxdoif {volume} { - Volume\nonbreakablespace\btxflush{volume}\btxspace of\nonbreakablespace - } - \btxdoif {crossref} { - \btxlbracket\btxsetup{btx:format:crossref}\btxrbracket - } - } { - \btxdoif {volume} { - \btxcomma volume\nonbreakablespace\btxflush{volume} - \btxdoif {series} { - \btxspace of\nonbreakablespace\bgroup\it\btxflush{series}\/\egroup - } - \btxdoif {chapter} { - \btxcomma\btxflush{chapter} - } - \btxsetup{btx:apa:common:pages:pages} - \btxperiod - } - } - } - } - \btxspace - \btxsetup{btx:apa:common:edition:sentence} - \btxsetup{btx:apa:common:publisher} - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:booklet - \btxsetup{btx:apa:common:author-or-key-and-year} - \btxsetup{btx:apa:common:title-it-and-series} - \btxsetup{btx:apa:common:edition:sentence} - \btxsetup{btx:apa:common:publication:sentence} - \btxsetup{btx:apa:common:pages:p} - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:manual - \btxsetup{btx:apa:common:author-or-key-and-year} - \btxsetup{btx:apa:common:title-it-and-series} - \btxsetup{btx:apa:common:edition:sentence} - \btxsetup{btx:apa:common:organization:sentence} - \btxsetup{btx:apa:common:pages:p} - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:incollection - \btxsetup{btx:apa:common:author-and-year} - \btxdoif {arttitle} { - \btxflush{arttitle}\btxperiod - } - In\btxspace - \btxdoifelse {title} { - \btxflushauthor{editor}\btxcomma - \bgroup\it\btxflush{title}\/\egroup - \btxdoif {series} { - \btxdoif {volume} { - \btxcomma number\btxspace\btxflush{volume}\btxspace in - } - \btxspace\btxflush{series} - } - \btxdoif {chapter} { - \btxcomma\btxflush{chapter}\btxspace - } - \btxsetup{btx:apa:common:pages:pages} - \btxdoif {edition} { - \btxspace\btxflush{edition}\btxspace edition - } - \btxsetup{btx:apa:common:publisher:sentence} - } { - \btxdoif {crossref} { - \btxlbracket\btxsetup{btx:format:crossref}\btxrbracket - } - \btxdoif {chapter} { - \btxcomma\btxflush{chapter} - } - \btxspace - \btxsetup{btx:apa:common:pages:pages} - } - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:inproceedings - \btxsetup{btx:apa:common:author-and-year} - \btxdoif {arttitle} { - \btxflush{arttitle}\btxperiod - } - In\btxspace - \btxdoifelse {title} { - \btxdoif {editor} { - \btxflush{btx:apa:format:editors} - \btxcomma\btxsingularplural{editor}{editor}{editors}\btxcomma - } - \bgroup\it\btxflush{title}\/\egroup - \btxdoif {series} { - \btxdoif {volume} { - \btxcomma number~\btxflush{volume} in - } - \btxspace - \btxflush{series} - } - \btxdoif {chapter} { - \btxcomma\btxflush{chapter}\btxspace - } - \btxsetup{btx:apa:common:pages:pages} - \btxperiod - \btxsetup{btx:apa:common:organization:sentence} - } { - \btxdoif {crossref} { - \btxlbracket\btxsetup{btx:format:crossref}\btxrbracket - } - \btxdoif {chapter} { - \btxcomma\btxflush{chapter}\btxspace - } - \btxsetup{btx:apa:common:pages:pages} - \btxperiod - } - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:proceedings - \btxsetup{btx:apa:common:editor-or-key-and-year} - \btxdoif {title} { - \bgroup\it\btxflush{title}\/\egroup - \btxdoif {volume} { - \btxcomma number\btxspace\btxflush{volume}\btxspace in\btxspace - } - \btxdoif {chapter} { - \btxcomma\btxflush{chapter}\btxspace - } - \btxsetup{btx:apa:common:pages:pages} - \btxperiod - \btxsetup{btx:apa:common:organization:sentence} - } - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:common:thesis - \btxsetup{btx:apa:common:author-and-year} - \btxsetup{btx:apa:common:title-it-and-series} - \btxdoifelse {type} { - \btxflush{type} - } { - \getvariable{btx:temp}{label} - } - \btxsetup{btx:apa:common:school:subsentence} - \btxsetup{btx:apa:common:pages:p} - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:mastersthesis - \setvariables[btx:temp][label=Master's thesis] - \btxsetup{btx:apa:common:thesis} -\stopsetups - -\startsetups btx:apa:phdthesis - \setvariables[btx:temp][label=PhD thesis] - \btxsetup{btx:apa:common:thesis} -\stopsetups - -\startsetups btx:apa:techreport - \btxsetup{btx:apa:common:author-and-year} - \btxsetup{btx:apa:common:title-and-series} - \btxdoifelse {type} { - \btxflush{type} - \btxdoif {volume} { - \btxspace\btxflush{volume} - } - } { - \btxspace Technical Report - } - \btxsetup{btx:apa:common:institution:subsentence} - \btxsetup{btx:apa:common:pages:p} - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:misc - \btxsetup{btx:apa:common:author-and-year} - \btxsetup{btx:apa:common:title-and-series} - \btxsetup{btx:apa:common:publisher:sentence} - \btxsetup{btx:apa:common:pages:p} - \btxsetup{btx:apa:common:note} -\stopsetups - -\startsetups btx:apa:unpublished - \btxsetup{btx:apa:common:author-and-year} - \btxsetup{btx:apa:common:title-and-series} - \btxsetup{btx:apa:common:pages:p} - \btxdoif {type} { - \btxlparent\btxflush{type}\btxrparent - } - \btxsetup{btx:apa:common:note} -\stopsetups - -\endinput diff --git a/tex/context/base/publ-imp-apa.mkvi b/tex/context/base/publ-imp-apa.mkvi new file mode 100644 index 000000000..aa7f6ce6b --- /dev/null +++ b/tex/context/base/publ-imp-apa.mkvi @@ -0,0 +1,678 @@ +%D \module +%D [ file=publ-imp-apa, +%D version=2013.12.12, % based on bibl-apa.tex and later xml variant +%D title=APA bibliography style, +%D subtitle=Publications, +%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 therefore copyrighted +%D by \PRAGMA. See mreadme.pdf for details. + +% \loadbtxdefinitionfile[def] + +%D Instead of texdefinitions without arguments, we could have used setups but in my +%D editor the commands stand out better and it also saves an additional component +%D in the name (e.g. common:) because commands and setups have a different namespace. +%D +%D Sometimes we have verbose injections in an entry and these can be language +%D dependent, so we use labels. + +%D The variables control the shared code for which we use a tex definition with +%D one argument, specifying the field name. + +\setvariables + [btx:apa:publisher] + [left=\btxspace, + right=\btxperiod] + +\setvariables + [btx:apa:organization] + [left=\btxspace, + right=\btxperiod] + +\setvariables + [btx:apa:school] + [left=\btxcomma, + right=\btxperiod, + otherwise=\btxperiod] + +\setvariables + [btx:apa:institution] + [left=\btxcomma, + right=\btxperiod, + otherwise=\btxperiod] + +\starttexdefinition btx:apa:wherefrom #field + \btxdoifelse {address} { + \getvariable{btx:apa:\currentbtxcategory}{left} + \btxdoifelse {country} { + \btxflush{address} + \btxcomma + \btxflush{country} + \btxdoif {#field} { + \btxcolon + \btxflush{field} + } + } { + \btxflush{address} + \btxdoif {#field} { + \btxcomma + \btxflush{#field} + } + } + \getvariable{btx:apa:\currentbtxcategory}{right} + } { + \btxdoifelse {country} { + \getvariable{btx:apa:\currentbtxcategory}{left} + \btxflush{country} + \btxdoif {#field} { + \btxcolon + \btxflush{#field} + } + \getvariable{btx:apa:\currentbtxcategory}{right} + } { + \btxdoifelse {#field} { + \getvariable{btx:apa:#field}{left} + \btxflush{#field} + \getvariable{btx:apa:#field}{right} + } { + \getvariable{btx:apa:#field}{otherwise} + } + } + } +\stoptexdefinition + +\starttexdefinition btx:apa:italic #field + \begingroup + \it + \btxflush{#field} + \italiccorrection + \endgroup +\stoptexdefinition + +\starttexdefinition btx:apa:title-and-series + \btxdoif {title} { + \btxflush{title} + \btxdoif {series} { + \btxlparent + \btxflush{series} + \btxrparent + } + \btxperiod + } +\stoptexdefinition + +\starttexdefinition btx:apa:title-it-and-series + \btxdoif {title} { + \texdefinition{btx:apa:italic}{title} + \btxdoif {series} { + \btxlparent + \btxflush{series} + \btxrparent + } + \btxperiod + } +\stoptexdefinition + +\disablemode[btx:apa:edited-book] % hm, ugly + +\starttexdefinition btx:apa:author-and-year + \btxdoif {author} { + \btxflushauthor{author} + } + \btxdoif {year} { + \btxlparent + \btxflush{year} + \btxrparent + } + \btxperiod +\stoptexdefinition + +\starttexdefinition btx:apa:author-or-key-and-year + \btxdoifelse {author} { + \btxflushauthor{author} + } { + \btxdoif {key} { + \btxlbracket + \btxsetup{btx:format:key} + \btxrbracket + } + } + \btxdoif {year} { + \btxlparent + \btxflush{year} + \btxrparent + } + \btxperiod +\stoptexdefinition + +\starttexdefinition btx:apa:author-editors-crossref-year + \btxdoif {author} { + \btxflushauthor{author} + } { + \btxdoifelse {editor} { + \setmode{btx:apa:edited-book} + \btxflushauthor{editor} + \btxcomma + \btxsingularplural {editor} { + \btxlabeltext{editor} + } { + \btxlabeltext{editors} + } + } { + % weird period + \btxdoif {crossref} { + \btxlbracket + \btxsetup{btx:format:crossref} + \btxrbracket + \btxperiod + } + } + } + \btxdoif {year} { + \btxlparent + \btxflush{year} + \btxrparent + } + \btxperiod +\stoptexdefinition + +\starttexdefinition btx:apa:editor-or-key-and-year + \btxdoifelse {editor} { + \setmode{btx:apa:edited-book} + \btxflushauthor{editor} + \btxcomma + \btxsingularplural {editor} { + \btxlabeltext{editor} + } { + \btxlabeltext{editors} + } + } { + \btxdoif {key} { + \btxlbracket + \btxsetup{btx:format:key} + \btxrbracket + } + } + \btxspace + \btxdoif {year} { + \btxlparent + \btxflush{year} + \btxrparent + } + \btxperiod +\stoptexdefinition + +\starttexdefinition btx:apa:note + \btxdoif {note} { + \btxspace + \btxflush{note} + \btxperiod + } +\stoptexdefinition + +\starttexdefinition btx:apa:comment + \btxdoif {comment} { + \btxspace + \btxflush{comment} + \btxperiod + } +\stoptexdefinition + +\starttexdefinition btx:apa:pages:p + \btxdoif {pages} { + \btxspace + \btxflush{pages} + \btxspace + \btxlabeltext{p} + \btxperiod + } +\stoptexdefinition + +\starttexdefinition btx:apa:pages:pp + \btxdoif {pages} { + \btxspace + \btxflush{pages} + \btxspace + \btxlabeltext{pp} + \btxperiod + } +\stoptexdefinition + +\starttexdefinition btx:apa:pages:pages + \btxdoif {pages} { + \btxcomma + \btxlabeltext{pages} + \btxnbsp + \btxflush{pages} + } +\stoptexdefinition + +\starttexdefinition btx:apa:edition:sentense + \btxdoif {edition} { + \btxspace + \btxflush{edition} + \btxspace + \btxlabeltext{edition} + \btxperiod + } +\stoptexdefinition + +% check when the next is used (no period) + +% \starttexdefinition btx:apa:edition +% \btxdoif {edition} { +% \btxspace +% \btxflush{edition} +% \btxspace +% \btxlabeltext{edition} +% } +% \stoptexdefinition + +% specific + +\startsetups btx:apa:article + \texdefinition{btx:apa:author-or-key-and-year} + \btxdoif {title} { + \btxflush{title} + \btxperiod + } + \btxdoifelse {journal} { + \texdefinition{btx:apa:italic}{journal} + } { + \btxdoif {crossref} { + \btxlabeltext{In} + \btxspace + \btxflush{crossref} + } + } + \btxdoifelse {volume} { + \texdefinition{btx:apa:italic}{volume} + \btxdoif {issue} { + \btxlparent + \btxflush{issue} + \btxrparent + } + \btxdoif {pages} { + \btxcomma + \btxflush{pages} + } + \btxperiod + } { + \texdefinition{btx:apa:pages:pp} + } + \texdefinition{btx:apa:note} + \texdefinition{btx:apa:comment} +\stopsetups + +\startsetups btx:apa:book + \texdefinition{btx:apa:author-editors-crossref-year} + \btxdoif {title} { + \texdefinition{btx:apa:italic}{title} + \doifmodeelse {btx:apa:edited-book} { + \btxdoifelse {volume} { + \btxspace + \btxlabeltext{Number} + \btxnbsp + \btxflush{volume} + \btxdoifelse {series} { + \btxspace + \btxlabeltext{in} + \btxnbsp + \btxflush{series} + \btxperiod + } { + \btxdoifelse {crossref} { + \btxspace + \btxlabeltext{in} + \btxlbracket + \btxsetup{btx:format:crossref} + \btxrbracket + } { + \btxperiod + } + } + } { + \btxdoif {series} { + \btxspace + \btxflush{series} + } + \btxperiod + } + } { + \btxdoifelse {crossref} { + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + } + \texdefinition{btx:apa:pages:pages} + \btxperiod + \btxdoif {volume} { + \btxlabeltext{Volume} + \btxnbsp + \btxflush{volume} + \btxspace + \btxlabeltext{of} + \btxnbsp + } + } { + \btxdoif {volume} { + \btxcomma + \btxlabeltext{volume} + \btxnbsp + \btxflush{volume} + \btxdoif {series} { + \btxspace + \btxlabeltext{of} + \btxnbsp + \texdefinition{btx:apa:italic}{series} + } + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + } + \texdefinition{btx:apa:pages:pages} + } + \btxperiod + } + } + } + \texdefinition{btx:apa:edition:sentence} + \texdefinition{btx:apa:wherefrom}{publisher} + \texdefinition{btx:apa:pages:p}% twice? + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:inbook + \texdefinition{btx:apa:author-editors-crossref-year} + \btxdoifelse {title} { + \texdefinition{btx:apa:italic}{title} + } { + \doifmodeelse {btx:apa:edited-book} { + \btxdoifelse {volume} { + \btxspace + \btxlabeltext{number} + \btxnbsp + \btxflush{volume} + \btxdoifelse {series} { + \btxspace + \btxlabeltext{in} + \btxnbsp + \btxflush{series} + \btxperiod + } { + \btxdoifelse {crossref} { + \btxspace + \btxlabeltext{in} + \btxlbracket + \btxsetup{btx:format:crossref} + \btxrbracket + } { + \btxperiod + } + } + } { + \btxdoif {series} { + \btxspace + \btxflush{series} + \btxperiod + } + } + } { + \btxdoifelse {crossref} { + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + } + \texdefinition{btx:apa:pages:pages} + \btxdoif {volume} { + \btxlabeltext{Volume} + \btxnbsp + \btxflush{volume} + \btxspace + \btxlabeltext{of} + \btxnbsp + } + \btxdoif {crossref} { + \btxlbracket + \btxsetup{btx:format:crossref} + \btxrbracket + } + } { + \btxdoif {volume} { + \btxcomma + \btxlabeltext{volume} + \btxnbsp + \btxflush{volume} + \btxdoif {series} { + \btxspace + \btxlabeltext{of} + \btxnbsp + \texdefinition{btx:apa:italic}{series} + } + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + } + \texdefinition{btx:apa:pages:pages} + \btxperiod + } + } + } + } + \btxspace + \texdefinition{btx:apa:edition:sentence} + \texdefinition{btx:apa:wherefrom}{publisher} + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:booklet + \texdefinition{btx:apa:author-or-key-and-year} + \texdefinition{btx:apa:title-it-and-series} + \texdefinition{btx:apa:edition:sentence} + \texdefinition{btx:apa:publication:sentence} + \texdefinition{btx:apa:pages:p} + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:manual + \texdefinition{btx:apa:author-or-key-and-year} + \texdefinition{btx:apa:title-it-and-series} + \texdefinition{btx:apa:edition:sentence} + \texdefinition{btx:apa:wherefrom}{organization} + \texdefinition{btx:apa:pages:p} + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:incollection + \texdefinition{btx:apa:author-and-year} + \btxdoif {arttitle} { + \btxflush{arttitle}\btxperiod + } + \btxlabeltext{In}\btxspace + \btxdoifelse {title} { + \btxflushauthor{editor} + \btxcomma + \texdefinition{btx:apa:italic}{title} + \btxdoif {series} { + \btxdoif {volume} { + \btxcomma + \btxlabeltext{number} + \btxspace + \btxflush{volume} + \btxspace + \btxlabeltext{in} + } + \btxspace\btxflush{series} + } + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + \btxspace + } + \texdefinition{btx:apa:pages:pages} + \btxdoif {edition} { + \btxspace + \btxflush{edition} + \btxspace + \btxlabeltext{edition} + } + \texdefinition{btx:apa:wherefrom}{publisher} + } { + \btxdoif {crossref} { + \btxlbracket + \btxsetup{btx:format:crossref} + \btxrbracket + } + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + } + \btxspace + \texdefinition{btx:apa:pages:pages} + } + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:inproceedings + \texdefinition{btx:apa:author-and-year} + \btxdoif {arttitle} { + \btxflush{arttitle} + \btxperiod + } + \btxlabeltext{In}\btxspace + \btxdoifelse {title} { + \btxdoif {editor} { + \btxflush{btx:apa:format:editors} + \btxcomma + \btxsingularplural {editor} { + \btxlabeltext{editor} + } { + \btxlabeltext{editors} + } + \btxcomma + } + \texdefinition{btx:apa:italic}{title} + \btxdoif {series} { + \btxdoif {volume} { + \btxcomma + \btxlabeltext{number}\btxspace\btxflush{crossref} + \btxflush{volume} + \btxspace + \btxlabeltext{in} + } + \btxspace + \btxflush{series} + } + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + \btxspace + } + \texdefinition{btx:apa:pages:pages} + \btxperiod + \texdefinition{btx:apa:wherefrom}{organization} + } { + \btxdoif {crossref} { + \btxlbracket + \btxsetup{btx:format:crossref} + \btxrbracket + } + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + \btxspace + } + \texdefinition{btx:apa:pages:pages} + \btxperiod + } + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:proceedings + \texdefinition{btx:apa:editor-or-key-and-year} + \btxdoif {title} { + \texdefinition{btx:apa:italic}{title} + \btxdoif {volume} { + \btxcomma + \btxlabeltext{number} + \btxspace + \btxflush{volume} + \btxspace + \btxlabeltext{in} + \btxspace + } + \btxdoif {chapter} { + \btxcomma + \btxflush{chapter} + \btxspace + } + \texdefinition{btx:apa:pages:pages} + \btxperiod + \texdefinition{btx:apa:wherefrom}{organization} + } + \texdefinition{btx:apa:note} +\stopsetups + +\starttexdefinition btx:apa:thesis + \texdefinition{btx:apa:author-and-year} + \texdefinition{btx:apa:title-it-and-series} + \btxdoifelse {type} { + \btxflush{type} + } { + \btxlabeltext{\currentbtxcategory} + } + \texdefinition{btx:apa:wherefrom}{school} + \texdefinition{btx:apa:pages:p} + \texdefinition{btx:apa:note} +\stoptexdefinition + +\startsetups btx:apa:mastersthesis + \texdefinition{btx:apa:thesis} +\stopsetups + +\startsetups btx:apa:phdthesis + \texdefinition{btx:apa:thesis} +\stopsetups + +\startsetups btx:apa:techreport + \texdefinition{btx:apa:author-and-year} + \texdefinition{btx:apa:title-and-series} + \btxdoifelse {type} { + \btxflush{type} + \btxdoif {volume} { + \btxspace + \btxflush{volume} + } + } { + \btxspace + \btxlabeltext{technicalreport} + } + \texdefinition{btx:apa:wherefrom}{institution} + \texdefinition{btx:apa:pages:p} + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:misc + \texdefinition{btx:apa:author-and-year} + \texdefinition{btx:apa:title-and-series} + \texdefinition{btx:apa:wherefrom}{publisher} + \texdefinition{btx:apa:pages:p} + \texdefinition{btx:apa:note} +\stopsetups + +\startsetups btx:apa:unpublished + \texdefinition{btx:apa:author-and-year} + \texdefinition{btx:apa:title-and-series} + \texdefinition{btx:apa:pages:p} + \btxdoif {type} { + \btxlparent + \btxflush{type} + \btxrparent + } + \texdefinition{btx:apa:note} +\stopsetups + +\endinput diff --git a/tex/context/base/publ-ini.lua b/tex/context/base/publ-ini.lua index 054ed94ea..434728748 100644 --- a/tex/context/base/publ-ini.lua +++ b/tex/context/base/publ-ini.lua @@ -969,6 +969,7 @@ function lists.flushentries(dataset,sortvariant) else ctx_setvalue("currentbtxcombis","") end + ctx_setvalue("currentbtxcategory",entry.category or "unknown") ctx_btxhandlelistentry(tag) -- pass i instead and also pass 'placed' end end diff --git a/tex/context/base/publ-ini.mkiv b/tex/context/base/publ-ini.mkiv index 00eb445b1..61a84f496 100644 --- a/tex/context/base/publ-ini.mkiv +++ b/tex/context/base/publ-ini.mkiv @@ -51,11 +51,13 @@ \startcontextdefinitioncode -\def\s!btx {btx} -\def\s!cite {cite} -\def\s!list {list} -\def\v!btxcite{btxcite} -\def\v!btxlist{btxlist} +\def\s!btx {btx} +\def\s!cite {cite} +\def\s!list {list} +\def\v!btxcite {btxcite} +\def\v!btxlist {btxlist} + +\definelabelclass[btxlabel][2] % a dedicated construction mechanism @@ -289,13 +291,17 @@ %D Rendering. -\unexpanded\def\btxspace {\removeunwantedspaces\space} -\unexpanded\def\btxperiod {\removeunwantedspaces.\space} -\unexpanded\def\btxcomma {\removeunwantedspaces,\space} -\unexpanded\def\btxlparent {\removeunwantedspaces\space(} -\unexpanded\def\btxrparent {\removeunwantedspaces)\space} -\unexpanded\def\btxlbracket{\removeunwantedspaces\space[} -\unexpanded\def\btxrbracket{\removeunwantedspaces]\space} +\unexpanded\def\btxspace {\removeunwantedspaces\space} +\unexpanded\def\btxnobreakspace{\removeunwantedspaces\nobreakspace} % these two are the +\unexpanded\def\btxnbsp {\removeunwantedspaces\nbsp} % same anyway +\unexpanded\def\btxperiod {\removeunwantedspaces.\space} +\unexpanded\def\btxcomma {\removeunwantedspaces,\space} +\unexpanded\def\btxcolon {\removeunwantedspaces:\space} +\unexpanded\def\btxsemicolon {\removeunwantedspaces;\space} +\unexpanded\def\btxlparent {\removeunwantedspaces\space(} +\unexpanded\def\btxrparent {\removeunwantedspaces)\space} +\unexpanded\def\btxlbracket {\removeunwantedspaces\space[} +\unexpanded\def\btxrbracket {\removeunwantedspaces]\space} %D Rendering lists and citations. @@ -890,7 +896,8 @@ %D List helpers: -\def\currentbtxindex{0} +\let\currentbtxindex \!!zerocount +\let\currentbtxcategory\empty \unexpanded\def\btxlistvariant#1% was \currentbtxindex {\begingroup @@ -956,11 +963,11 @@ \c!setups=btx:cite:\btxcitevariantparameter\c!alternative, \c!alternative=num, \c!authorconversion=\v!normal, - \c!andtext={ and }, - \c!otherstext={ et al.}, + \c!andtext={ \btxlabeltext{and} }, + \c!otherstext={ \btxlabeltext{others}}, \c!pubsep={, }, - \c!lastpubsep={ and }, - \c!finalpubsep={ and }, + \c!lastpubsep={ \btxlabeltext{and} }, + \c!finalpubsep={ \btxlabeltext{and} }, \c!compress=\v!no, \c!inbetween={ }, \c!range=\endash, @@ -1087,8 +1094,8 @@ \setupbtxlistvariant [\c!namesep={, }, - \c!lastnamesep={ and }, - \c!finalnamesep={ and }, + \c!lastnamesep={ \btxlabeltext{and} }, + \c!finalnamesep={ \btxlabeltext{and} }, \c!firstnamesep={ }, \c!juniorsep={ }, \c!vonsep={ }, @@ -1098,7 +1105,7 @@ \c!surnamefirstnamesep={, }, \c!etallimit=5, \c!etaldisplay=5, - \c!etaltext={ et al.}, + \c!etaltext={ \btxlabeltext{others}}, \c!monthconversion=\v!number, \c!authorconversion=\v!normal] @@ -1127,3 +1134,68 @@ \loadbtxdefinitionfile[definitions] \protect + +% define in lang-txt.lua: +% +% \setupbtxlabeltext +% [en] +% [mastersthesis={Master's thesis}, +% phdthesis={PhD thesis}, +% technicalreport={Technical report}, +% editor=editor, +% editors=editors, +% edition=edition, +% volume=volume, +% Volume=Volume, +% number=number, +% Number=Number, +% in=in, +% of=of, +% In=In, +% p=p, +% pp=pp, +% pages=pages, +% and=and, +% others={et al.}] +% +% \setupbtxlabeltext +% [fr] +% [mastersthesis={Thèse de master (DEA, DESS, master)}, +% phdthesis={Thèse de doctorat}, +% technicalreport={Rapport technique}, +% editor=éditeur, +% editors=éditeurs, +% edition=édition, +% volume=volume, +% Volume=Volume, +% number=numéro, +% Number=Numéro, +% in=dans, +% of=de, +% In=Dans, +% p=p, +% pp=pp, +% pages=pages, +% and=et, +% others={et al.}] +% +% \setupbtxlabeltext +% [de] +% [mastersthesis={Masterarbeit}, +% phdthesis={Dissertation}, +% technicalreport={Technischer Bericht}, +% editor=Herausgeber, +% editors=Herausgeber, +% edition=Auflage, +% volume=Band, +% Volume=Band, +% number=Numer, +% Number=Numer, +% in=in, +% of=von, +% In=In, +% p=S, +% pp=S, +% pages=Seiten, +% and=und, +% others={et al.}] diff --git a/tex/context/base/spac-chr.mkiv b/tex/context/base/spac-chr.mkiv index f9dc6e16b..562fb940c 100644 --- a/tex/context/base/spac-chr.mkiv +++ b/tex/context/base/spac-chr.mkiv @@ -77,6 +77,7 @@ \let\zwnj\zerowidthnonjoiner \let\zwj \zerowidthjoiner +\let\nbsp\nobreakspace \chardef\optionalspace"1F % will be space unless before punctuation diff --git a/tex/context/base/spac-ver.lua b/tex/context/base/spac-ver.lua index d5a2b4d56..018881663 100644 --- a/tex/context/base/spac-ver.lua +++ b/tex/context/base/spac-ver.lua @@ -935,6 +935,11 @@ specialmethods[1] = function(start,penalty) end current = getprev(current) end + -- none found, so no reson to be special + if trace_specials then + report_specials(" context penalty, discarding") + end + return special_penalty_xxx end -- specialmethods[2] : always put something before and use that as to-be-changed @@ -1041,6 +1046,11 @@ setfield(head,"prev",nil) -- till we have 0.79 ** return remove_node(head, current, true) end +-- This will be replaces after 0.79 when we have a more robust look-back and +-- can look at the bigger picture. + +-- todo: look back and when a special is there before a list is seen penaltym keep ut + local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also pass tail if trace then reset_tracing(head) diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 8bb640e26..fdb2d6fac 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 48fa93f78..987caebd4 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv index 308e4b6fc..2288223af 100644 --- a/tex/context/base/syst-aux.mkiv +++ b/tex/context/base/syst-aux.mkiv @@ -3268,7 +3268,7 @@ \egroup -\unexpanded\def\texdefinition#1{\csname\ifcsname#1\endcsname#1\else donothing\fi\endcsname} +\unexpanded\def\texdefinition#1{\csname\ifcsname#1\endcsname#1\else donothing\fi\endcsname} % todo: a nop cs: char 0 or some corenamespace % This is a first variant, more might be added: diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index c72eb4439..4d20863ac 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/24/14 15:14:04 +-- merge date : 05/26/14 14:56:53 do -- begin closure to overcome local limits and interference diff --git a/web2c/contextcnf.lua b/web2c/contextcnf.lua index b9541a88e..abc141ec4 100644 --- a/web2c/contextcnf.lua +++ b/web2c/contextcnf.lua @@ -106,8 +106,8 @@ return { -- Not really used by MkIV so they might go away. - BIBINPUTS = ".;$TEXMF/bibtex/bib//", - BSTINPUTS = ".;$TEXMF/bibtex/bst//", + BIBINPUTS = ".;$TEXMF/bibtex/bib//;$TEXMF/tex/context//", + BSTINPUTS = ".;$TEXMF/bibtex/bst//;$TEXMF/tex/context//", -- Experimental -- cgit v1.2.3