summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-tex.lua4
-rw-r--r--context/data/scite/context/scite-context-data-tex.properties122
-rw-r--r--doc/context/documents/general/manuals/luatex.pdfbin1025727 -> 1025813 bytes
-rw-r--r--doc/context/scripts/mkiv/context.html2
-rw-r--r--doc/context/scripts/mkiv/context.man6
-rw-r--r--doc/context/scripts/mkiv/context.xml6
-rw-r--r--doc/context/scripts/mkiv/mtx-context.html2
-rw-r--r--doc/context/scripts/mkiv/mtx-context.man6
-rw-r--r--doc/context/scripts/mkiv/mtx-context.xml6
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-modifications.tex5
-rw-r--r--scripts/context/lua/mtx-context.lua31
-rw-r--r--scripts/context/lua/mtx-context.xml6
-rw-r--r--tex/context/base/context-version.pdfbin4164 -> 4258 bytes
-rw-r--r--tex/context/base/mkiv/back-pdf.lua24
-rw-r--r--tex/context/base/mkiv/back-pdf.mkiv151
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/core-sys.lua4
-rw-r--r--tex/context/base/mkiv/lpdf-fmt.lua2
-rw-r--r--tex/context/base/mkiv/lpdf-ini.lua138
-rw-r--r--tex/context/base/mkiv/lpdf-mis.lua7
-rw-r--r--tex/context/base/mkiv/lpdf-xmp.lua145
-rw-r--r--tex/context/base/mkiv/mult-prm.lua6
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin9123 -> 9286 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin267230 -> 267495 bytes
-rw-r--r--tex/context/base/mkiv/syst-ini.mkiv20
-rw-r--r--tex/context/base/mkiv/tabl-tbl.mkiv276
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
-rw-r--r--tex/generic/context/luatex/luatex-pdf.tex9
29 files changed, 441 insertions, 543 deletions
diff --git a/context/data/scite/context/lexers/data/scite-context-data-tex.lua b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
index fbc5d0269..b1f189249 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-tex.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-tex.lua
@@ -3,7 +3,7 @@ return {
["etex"]={ "botmarks", "clubpenalties", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "detokenize", "dimexpr", "displaywidowpenalties", "eTeXVersion", "eTeXminorversion", "eTeXrevision", "eTeXversion", "everyeof", "firstmarks", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "ifcsname", "ifdefined", "iffontchar", "interactionmode", "interlinepenalties", "lastlinefit", "lastnodetype", "marks", "muexpr", "mutoglue", "numexpr", "pagediscards", "parshapedimen", "parshapeindent", "parshapelength", "predisplaydirection", "protected", "readline", "savinghyphcodes", "savingvdiscards", "scantokens", "showgroups", "showifs", "showtokens", "splitbotmarks", "splitdiscards", "splitfirstmarks", "topmarks", "tracingassigns", "tracinggroups", "tracingifs", "tracingnesting", "tracingscantokens", "unexpanded", "unless", "widowpenalties" },
["luatex"]={ "Uchar", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathcodenumdef", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Umiddle", "Uoverdelimiter", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Usubscript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "adjustspacing", "alignmark", "aligntab", "attribute", "attributedef", "bodydir", "boxdir", "catcodetable", "clearmarks", "copyfont", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "draftmode", "dviextension", "dvifeedback", "dvivariable", "efcode", "hjcode", "firstvalidlanguage", "fontid", "formatname", "gleaders", "hyphenationmin", "ifabsdim", "ifabsnum", "ifprimitive", "ignoreligaturesinfont", "initcatcodetable", "insertht", "lastsavedboxresourceindex", "lastsavedimageresourceindex", "lastsavedimageresourcepages", "lastxpos", "lastypos", "latelua", "leftghost", "leftmarginkern", "letcharcode", "letterspacefont", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "lpcode", "luaescapestring", "luatexbanner", "luatexrevision", "luatexversion", "luafunction", "mathdir", "mathdisplayskipmode", "matheqnogapstep", "mathoption", "mathscriptsmode", "mathstyle", "mathsurroundskip", "nokerns", "nohrule", "noligs", "nospaces", "novrule", "normaldeviate", "outputbox", "outputmode", "pagedir", "pageheight", "pagebottomoffset", "pageleftoffset", "pagerightoffset", "pagetopoffset", "pagewidth", "pardir", "pdfextension", "pdffeedback", "pdfvariable", "postexhyphenchar", "posthyphenchar", "preexhyphenchar", "prehyphenchar", "primitive", "protrudechars", "pxdimen", "randomseed", "rightghost", "rightmarginkern", "rpcode", "saveboxresource", "savecatcodetable", "saveimageresource", "savepos", "scantextokens", "setfontid", "setrandomseed", "suppressfontnotfounderror", "suppressifcsnameerror", "suppresslongerror", "suppressoutererror", "suppressmathparerror", "synctex", "tagcode", "textdir", "tracingfonts", "uniformdeviate", "useboxresource", "useimageresource", "vpack", "hpack", "tpack", "csstring", "begincsname", "lastnamedcs", "toksapp", "tokspre", "etoksapp", "etokspre" },
["omega"]={ "OmegaVersion", "bodydir", "chardp", "charht", "charit", "charwd", "leftghost", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "mathdir", "odelcode", "odelimiter", "omathaccent", "omathchar", "omathchardef", "omathcode", "oradical", "pagedir", "pageheight", "pagewidth", "pardir", "rightghost", "textdir" },
- ["pdftex"]={ "efcode", "expanded", "ifincsname", "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "leftmarginkern", "letterspacefont", "lpcode", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlineheight", "pdfeachlinedepth", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfxformmargin", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfignoreunknownimages", "pdfinclusionerrorlevel", "pdfignoreunknownimages", "pdfinfo", "pdfinfoid", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkmode", "pdfpkresolution", "pdfpkfixeddpi", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfsuppressptexinfo", "pdfsuppressoptionalinfo", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformname", "pdfxformresources", "pdfximage", "quitvmode", "rightmarginkern", "rpcode", "tagcode" },
- ["tex"]={ "-", "/", "AlephVersion", "Alephminorversion", "Alephrevision", "Alephversion", "OmegaVersion", "Omegaminorversion", "Omegarevision", "Omegaversion", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathcodenumdef", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Umiddle", "Uoverdelimiter", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Usubscript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "alignmark", "aligntab", "atop", "atopwithdelims", "attribute", "attributedef", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "bodydir", "botmark", "botmarks", "boundary", "box", "boxdir", "boxmaxdepth", "brokenpenalty", "catcode", "catcodetable", "char", "chardef", "cleaders", "clearmarks", "closein", "closeout", "clubpenalties", "clubpenalty", "copy", "copyfont", "count", "countdef", "cr", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "crcr", "csname", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "detokenize", "dimen", "dimendef", "dimexpr", "directlua", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalties", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "dviextension", "dvifeedback", "dvivariable", "eTeXVersion", "eTeXminorversion", "eTeXrevision", "eTeXversion", "edef", "efcode", "hjcode", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyeof", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "expanded", "expandglyphsinfont", "fam", "fi", "finalhyphendemerits", "firstmark", "firstmarks", "floatingpenalty", "font", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "fontdimen", "firstvalidlanguage", "fontid", "fontname", "formatname", "futurelet", "gdef", "gleaders", "global", "globaldefs", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifabsdim", "ifabsnum", "ifcase", "ifcat", "ifcsname", "ifdefined", "ifdim", "ifeof", "iffalse", "iffontchar", "ifhbox", "ifhmode", "ifincsname", "ifinner", "ifmmode", "ifnum", "ifodd", "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "ifprimitive", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignoreligaturesinfont", "ignorespaces", "immediate", "indent", "initcatcodetable", "input", "inputlineno", "insert", "insertpenalties", "interactionmode", "interlinepenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastlinefit", "lastnodetype", "lastpenalty", "lastsavedboxresourceindex", "lastsavedimageresourceindex", "lastsavedimageresourcepages", "lastskip", "lastxpos", "lastypos", "latelua", "lccode", "leaders", "left", "leftghost", "lefthyphenmin", "leftmarginkern", "leftskip", "leqno", "let", "letcharcode", "letterspacefont", "limits", "linepenalty", "lineskip", "lineskiplimit", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "long", "looseness", "lower", "lowercase", "lpcode", "luaescapestring", "luatexbanner", "luatexrevision", "luatexversion", "mag", "mark", "marks", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathdir", "mathdisplayskipmode", "matheqnogapstep", "mathinner", "mathop", "mathopen", "mathoption", "mathord", "mathpunct", "mathrel", "mathscriptsmode", "mathstyle", "mathsurroundskip", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "muexpr", "multiply", "muskip", "muskipdef", "mutoglue", "newlinechar", "noalign", "noboundary", "noexpand", "noindent", "nokerns", "nohrule", "noligs", "nospaces", "novrule", "nolimits", "nolocaldirs", "nolocalwhatsits", "nonscript", "nonstopmode", "normaldeviate", "nulldelimiterspace", "nullfont", "number", "numexpr", "odelcode", "odelimiter", "omathaccent", "omathchar", "omathchardef", "omathcode", "omit", "openin", "openout", "or", "oradical", "outer", "output", "outputbox", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagebottomoffset", "pagedepth", "pagedir", "pagediscards", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageheight", "pageleftoffset", "pagerightoffset", "pageshrink", "pagestretch", "pagetopoffset", "pagetotal", "pagewidth", "par", "pardir", "parfillskip", "parindent", "parshape", "parshapedimen", "parshapeindent", "parshapelength", "parskip", "patterns", "pausing", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlineheight", "pdfeachlinedepth", "pdfendlink", "pdfendthread", "pdfextension", "pdfvariable", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfxformmargin", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfignoreunknownimages", "pdfinfo", "pdfinfoid", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkmode", "pdfpkresolution", "pdfpkfixeddpi", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfsuppressptexinfo", "pdfsuppressoptionalinfo", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformname", "pdfxformresources", "pdfximage", "penalty", "postdisplaypenalty", "postexhyphenchar", "posthyphenchar", "predisplaydirection", "predisplaypenalty", "predisplaysize", "preexhyphenchar", "prehyphenchar", "pretolerance", "prevdepth", "prevgraf", "primitive", "protected", "pxdimen", "quitvmode", "radical", "raise", "randomseed", "read", "readline", "relax", "relpenalty", "right", "rightghost", "righthyphenmin", "rightmarginkern", "rightskip", "romannumeral", "rpcode", "saveboxresource", "saveimageresource", "savepos", "savecatcodetable", "savinghyphcodes", "savingvdiscards", "scantextokens", "scantokens", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setfontid", "setlanguage", "setrandomseed", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showgroups", "showifs", "showlists", "showthe", "showtokens", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "special", "splitbotmark", "splitbotmarks", "splitdiscards", "splitfirstmark", "splitfirstmarks", "splitmaxdepth", "splittopskip", "string", "suppressfontnotfounderror", "suppressifcsnameerror", "suppresslongerror", "suppressoutererror", "synctex", "tabskip", "tagcode", "textdir", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topmarks", "topskip", "tracingassigns", "tracingcommands", "tracingfonts", "tracinggroups", "tracingifs", "tracinglostchars", "tracingmacros", "tracingnesting", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingscantokens", "tracingstats", "uccode", "uchyph", "underline", "unexpanded", "unhbox", "unhcopy", "uniformdeviate", "unkern", "unless", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "useboxresource", "useimageresource", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalties", "widowpenalty", "write", "xdef", "xleaders", "xspaceskip", "year", "vpack", "hpack", "tpack", "csstring", "begincsname", "lastnamedcs", "toksapp", "tokspre", "etoksapp", "etokspre" },
+ ["pdftex"]={ "efcode", "expanded", "ifincsname", "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "leftmarginkern", "letterspacefont", "lpcode", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlineheight", "pdfeachlinedepth", "pdfendlink", "pdfendthread", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfxformmargin", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfignoreunknownimages", "pdfinclusionerrorlevel", "pdfignoreunknownimages", "pdfinfo", "pdfinfoomitdate", "pdftrailerid", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkmode", "pdfpkresolution", "pdfpkfixeddpi", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfsuppressptexinfo", "pdfsuppressoptionalinfo", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformname", "pdfxformresources", "pdfximage", "quitvmode", "rightmarginkern", "rpcode", "tagcode" },
+ ["tex"]={ "-", "/", "AlephVersion", "Alephminorversion", "Alephrevision", "Alephversion", "OmegaVersion", "Omegaminorversion", "Omegarevision", "Omegaversion", "Udelcode", "Udelcodenum", "Udelimiter", "Udelimiterover", "Udelimiterunder", "Uhextensible", "Uleft", "Umathaccent", "Umathaxis", "Umathbinbinspacing", "Umathbinclosespacing", "Umathbininnerspacing", "Umathbinopenspacing", "Umathbinopspacing", "Umathbinordspacing", "Umathbinpunctspacing", "Umathbinrelspacing", "Umathchar", "Umathcharclass", "Umathchardef", "Umathcharfam", "Umathcharnum", "Umathcharnumdef", "Umathcharslot", "Umathclosebinspacing", "Umathcloseclosespacing", "Umathcloseinnerspacing", "Umathcloseopenspacing", "Umathcloseopspacing", "Umathcloseordspacing", "Umathclosepunctspacing", "Umathcloserelspacing", "Umathcode", "Umathcodenum", "Umathcodenumdef", "Umathconnectoroverlapmin", "Umathfractiondelsize", "Umathfractiondenomdown", "Umathfractiondenomvgap", "Umathfractionnumup", "Umathfractionnumvgap", "Umathfractionrule", "Umathinnerbinspacing", "Umathinnerclosespacing", "Umathinnerinnerspacing", "Umathinneropenspacing", "Umathinneropspacing", "Umathinnerordspacing", "Umathinnerpunctspacing", "Umathinnerrelspacing", "Umathlimitabovebgap", "Umathlimitabovekern", "Umathlimitabovevgap", "Umathlimitbelowbgap", "Umathlimitbelowkern", "Umathlimitbelowvgap", "Umathopbinspacing", "Umathopclosespacing", "Umathopenbinspacing", "Umathopenclosespacing", "Umathopeninnerspacing", "Umathopenopenspacing", "Umathopenopspacing", "Umathopenordspacing", "Umathopenpunctspacing", "Umathopenrelspacing", "Umathoperatorsize", "Umathopinnerspacing", "Umathopopenspacing", "Umathopopspacing", "Umathopordspacing", "Umathoppunctspacing", "Umathoprelspacing", "Umathordbinspacing", "Umathordclosespacing", "Umathordinnerspacing", "Umathordopenspacing", "Umathordopspacing", "Umathordordspacing", "Umathordpunctspacing", "Umathordrelspacing", "Umathoverbarkern", "Umathoverbarrule", "Umathoverbarvgap", "Umathoverdelimiterbgap", "Umathoverdelimitervgap", "Umathpunctbinspacing", "Umathpunctclosespacing", "Umathpunctinnerspacing", "Umathpunctopenspacing", "Umathpunctopspacing", "Umathpunctordspacing", "Umathpunctpunctspacing", "Umathpunctrelspacing", "Umathquad", "Umathradicaldegreeafter", "Umathradicaldegreebefore", "Umathradicaldegreeraise", "Umathradicalkern", "Umathradicalrule", "Umathradicalvgap", "Umathrelbinspacing", "Umathrelclosespacing", "Umathrelinnerspacing", "Umathrelopenspacing", "Umathrelopspacing", "Umathrelordspacing", "Umathrelpunctspacing", "Umathrelrelspacing", "Umathskewedfractionhgap", "Umathskewedfractionvgap", "Umathspaceafterscript", "Umathstackdenomdown", "Umathstacknumup", "Umathstackvgap", "Umathsubshiftdown", "Umathsubshiftdrop", "Umathsubsupshiftdown", "Umathsubsupvgap", "Umathsubtopmax", "Umathsupbottommin", "Umathsupshiftdrop", "Umathsupshiftup", "Umathsupsubbottommax", "Umathunderbarkern", "Umathunderbarrule", "Umathunderbarvgap", "Umathunderdelimiterbgap", "Umathunderdelimitervgap", "Umiddle", "Uoverdelimiter", "Uradical", "Uright", "Uroot", "Uskewed", "Uskewedwithdelims", "Ustack", "Ustartdisplaymath", "Ustartmath", "Ustopdisplaymath", "Ustopmath", "Usubscript", "Usuperscript", "Uunderdelimiter", "Uvextensible", "above", "abovedisplayshortskip", "abovedisplayskip", "abovewithdelims", "accent", "adjdemerits", "advance", "afterassignment", "aftergroup", "alignmark", "aligntab", "atop", "atopwithdelims", "attribute", "attributedef", "badness", "baselineskip", "batchmode", "begingroup", "belowdisplayshortskip", "belowdisplayskip", "binoppenalty", "bodydir", "botmark", "botmarks", "boundary", "box", "boxdir", "boxmaxdepth", "brokenpenalty", "catcode", "catcodetable", "char", "chardef", "cleaders", "clearmarks", "closein", "closeout", "clubpenalties", "clubpenalty", "copy", "copyfont", "count", "countdef", "cr", "crampeddisplaystyle", "crampedscriptscriptstyle", "crampedscriptstyle", "crampedtextstyle", "crcr", "csname", "currentgrouplevel", "currentgrouptype", "currentifbranch", "currentiflevel", "currentiftype", "day", "deadcycles", "def", "defaulthyphenchar", "defaultskewchar", "delcode", "delimiter", "delimiterfactor", "delimitershortfall", "detokenize", "dimen", "dimendef", "dimexpr", "directlua", "discretionary", "displayindent", "displaylimits", "displaystyle", "displaywidowpenalties", "displaywidowpenalty", "displaywidth", "divide", "doublehyphendemerits", "dp", "dump", "dviextension", "dvifeedback", "dvivariable", "eTeXVersion", "eTeXminorversion", "eTeXrevision", "eTeXversion", "edef", "efcode", "hjcode", "else", "emergencystretch", "end", "endcsname", "endgroup", "endinput", "endlinechar", "eqno", "errhelp", "errmessage", "errorcontextlines", "errorstopmode", "escapechar", "everycr", "everydisplay", "everyeof", "everyhbox", "everyjob", "everymath", "everypar", "everyvbox", "exhyphenchar", "exhyphenpenalty", "expandafter", "expanded", "expandglyphsinfont", "fam", "fi", "finalhyphendemerits", "firstmark", "firstmarks", "floatingpenalty", "font", "fontchardp", "fontcharht", "fontcharic", "fontcharwd", "fontdimen", "firstvalidlanguage", "fontid", "fontname", "formatname", "futurelet", "gdef", "gleaders", "global", "globaldefs", "glueexpr", "glueshrink", "glueshrinkorder", "gluestretch", "gluestretchorder", "gluetomu", "halign", "hangafter", "hangindent", "hbadness", "hbox", "hfil", "hfill", "hfilneg", "hfuzz", "hoffset", "holdinginserts", "hrule", "hsize", "hskip", "hss", "ht", "hyphenation", "hyphenchar", "hyphenpenalty", "if", "ifabsdim", "ifabsnum", "ifcase", "ifcat", "ifcsname", "ifdefined", "ifdim", "ifeof", "iffalse", "iffontchar", "ifhbox", "ifhmode", "ifincsname", "ifinner", "ifmmode", "ifnum", "ifodd", "ifpdfabsdim", "ifpdfabsnum", "ifpdfprimitive", "ifprimitive", "iftrue", "ifvbox", "ifvmode", "ifvoid", "ifx", "ignoreligaturesinfont", "ignorespaces", "immediate", "indent", "initcatcodetable", "input", "inputlineno", "insert", "insertpenalties", "interactionmode", "interlinepenalties", "interlinepenalty", "jobname", "kern", "language", "lastbox", "lastkern", "lastlinefit", "lastnodetype", "lastpenalty", "lastsavedboxresourceindex", "lastsavedimageresourceindex", "lastsavedimageresourcepages", "lastskip", "lastxpos", "lastypos", "latelua", "lccode", "leaders", "left", "leftghost", "lefthyphenmin", "leftmarginkern", "leftskip", "leqno", "let", "letcharcode", "letterspacefont", "limits", "linepenalty", "lineskip", "lineskiplimit", "localbrokenpenalty", "localinterlinepenalty", "localleftbox", "localrightbox", "long", "looseness", "lower", "lowercase", "lpcode", "luaescapestring", "luatexbanner", "luatexrevision", "luatexversion", "mag", "mark", "marks", "mathaccent", "mathbin", "mathchar", "mathchardef", "mathchoice", "mathclose", "mathcode", "mathdir", "mathdisplayskipmode", "matheqnogapstep", "mathinner", "mathop", "mathopen", "mathoption", "mathord", "mathpunct", "mathrel", "mathscriptsmode", "mathstyle", "mathsurroundskip", "mathsurround", "maxdeadcycles", "maxdepth", "meaning", "medmuskip", "message", "middle", "mkern", "month", "moveleft", "moveright", "mskip", "muexpr", "multiply", "muskip", "muskipdef", "mutoglue", "newlinechar", "noalign", "noboundary", "noexpand", "noindent", "nokerns", "nohrule", "noligs", "nospaces", "novrule", "nolimits", "nolocaldirs", "nolocalwhatsits", "nonscript", "nonstopmode", "normaldeviate", "nulldelimiterspace", "nullfont", "number", "numexpr", "odelcode", "odelimiter", "omathaccent", "omathchar", "omathchardef", "omathcode", "omit", "openin", "openout", "or", "oradical", "outer", "output", "outputbox", "outputpenalty", "over", "overfullrule", "overline", "overwithdelims", "pagebottomoffset", "pagedepth", "pagedir", "pagediscards", "pagefilllstretch", "pagefillstretch", "pagefilstretch", "pagegoal", "pageheight", "pageleftoffset", "pagerightoffset", "pageshrink", "pagestretch", "pagetopoffset", "pagetotal", "pagewidth", "par", "pardir", "parfillskip", "parindent", "parshape", "parshapedimen", "parshapeindent", "parshapelength", "parskip", "patterns", "pausing", "pdfadjustspacing", "pdfannot", "pdfcatalog", "pdfcolorstack", "pdfcolorstackinit", "pdfcompresslevel", "pdfcopyfont", "pdfcreationdate", "pdfdecimaldigits", "pdfdest", "pdfdestmargin", "pdfdraftmode", "pdfeachlineheight", "pdfeachlinedepth", "pdfendlink", "pdfendthread", "pdfextension", "pdfvariable", "pdffirstlineheight", "pdffontattr", "pdffontexpand", "pdffontname", "pdffontobjnum", "pdffontsize", "pdfxformmargin", "pdfgamma", "pdfgentounicode", "pdfglyphtounicode", "pdfhorigin", "pdfignoreddimen", "pdfimageaddfilename", "pdfimageapplygamma", "pdfimagegamma", "pdfimagehicolor", "pdfimageresolution", "pdfincludechars", "pdfinclusioncopyfonts", "pdfinclusionerrorlevel", "pdfignoreunknownimages", "pdfinfo", "pdfinfoomitdate", "pdftrailerid", "pdfinsertht", "pdflastannot", "pdflastlinedepth", "pdflastlink", "pdflastobj", "pdflastxform", "pdflastximage", "pdflastximagepages", "pdflastxpos", "pdflastypos", "pdflinkmargin", "pdfliteral", "pdfmapfile", "pdfmapline", "pdfminorversion", "pdfnames", "pdfnoligatures", "pdfnormaldeviate", "pdfobj", "pdfobjcompresslevel", "pdfoutline", "pdfoutput", "pdfpageattr", "pdfpagebox", "pdfpageheight", "pdfpageref", "pdfpageresources", "pdfpagesattr", "pdfpagewidth", "pdfpkmode", "pdfpkresolution", "pdfpkfixeddpi", "pdfprimitive", "pdfprotrudechars", "pdfpxdimen", "pdfrandomseed", "pdfrefobj", "pdfrefxform", "pdfrefximage", "pdfreplacefont", "pdfrestore", "pdfretval", "pdfsave", "pdfsavepos", "pdfsetmatrix", "pdfsetrandomseed", "pdfstartlink", "pdfstartthread", "pdftexbanner", "pdftexrevision", "pdftexversion", "pdfsuppressptexinfo", "pdfsuppressoptionalinfo", "pdfthread", "pdfthreadmargin", "pdftracingfonts", "pdftrailer", "pdfuniformdeviate", "pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr", "pdfxformname", "pdfxformresources", "pdfximage", "penalty", "postdisplaypenalty", "postexhyphenchar", "posthyphenchar", "predisplaydirection", "predisplaypenalty", "predisplaysize", "preexhyphenchar", "prehyphenchar", "pretolerance", "prevdepth", "prevgraf", "primitive", "protected", "pxdimen", "quitvmode", "radical", "raise", "randomseed", "read", "readline", "relax", "relpenalty", "right", "rightghost", "righthyphenmin", "rightmarginkern", "rightskip", "romannumeral", "rpcode", "saveboxresource", "saveimageresource", "savepos", "savecatcodetable", "savinghyphcodes", "savingvdiscards", "scantextokens", "scantokens", "scriptfont", "scriptscriptfont", "scriptscriptstyle", "scriptspace", "scriptstyle", "scrollmode", "setbox", "setfontid", "setlanguage", "setrandomseed", "sfcode", "shipout", "show", "showbox", "showboxbreadth", "showboxdepth", "showgroups", "showifs", "showlists", "showthe", "showtokens", "skewchar", "skip", "skipdef", "spacefactor", "spaceskip", "span", "special", "splitbotmark", "splitbotmarks", "splitdiscards", "splitfirstmark", "splitfirstmarks", "splitmaxdepth", "splittopskip", "string", "suppressfontnotfounderror", "suppressifcsnameerror", "suppresslongerror", "suppressoutererror", "synctex", "tabskip", "tagcode", "textdir", "textfont", "textstyle", "the", "thickmuskip", "thinmuskip", "time", "toks", "toksdef", "tolerance", "topmark", "topmarks", "topskip", "tracingassigns", "tracingcommands", "tracingfonts", "tracinggroups", "tracingifs", "tracinglostchars", "tracingmacros", "tracingnesting", "tracingonline", "tracingoutput", "tracingpages", "tracingparagraphs", "tracingrestores", "tracingscantokens", "tracingstats", "uccode", "uchyph", "underline", "unexpanded", "unhbox", "unhcopy", "uniformdeviate", "unkern", "unless", "unpenalty", "unskip", "unvbox", "unvcopy", "uppercase", "useboxresource", "useimageresource", "vadjust", "valign", "vbadness", "vbox", "vcenter", "vfil", "vfill", "vfilneg", "vfuzz", "voffset", "vrule", "vsize", "vskip", "vsplit", "vss", "vtop", "wd", "widowpenalties", "widowpenalty", "write", "xdef", "xleaders", "xspaceskip", "year", "vpack", "hpack", "tpack", "csstring", "begincsname", "lastnamedcs", "toksapp", "tokspre", "etoksapp", "etokspre" },
["xetex"]={ "XeTeXversion" },
} \ No newline at end of file
diff --git a/context/data/scite/context/scite-context-data-tex.properties b/context/data/scite/context/scite-context-data-tex.properties
index 2cdcde6ab..fd4645d80 100644
--- a/context/data/scite/context/scite-context-data-tex.properties
+++ b/context/data/scite/context/scite-context-data-tex.properties
@@ -91,21 +91,21 @@ pdfendthread pdffirstlineheight pdffontattr pdffontexpand pdffontname \
pdffontobjnum pdffontsize pdfxformmargin pdfgamma pdfgentounicode \
pdfglyphtounicode pdfhorigin pdfignoreddimen pdfimageapplygamma pdfimagegamma \
pdfimagehicolor pdfimageresolution pdfincludechars pdfinclusioncopyfonts pdfignoreunknownimages \
-pdfinclusionerrorlevel pdfignoreunknownimages pdfinfo pdfinfoid pdfinsertht \
-pdflastannot pdflastlinedepth pdflastlink pdflastobj pdflastxform \
-pdflastximage pdflastximagepages pdflastxpos pdflastypos pdflinkmargin \
-pdfliteral pdfmapfile pdfmapline pdfminorversion pdfnames \
-pdfnoligatures pdfnormaldeviate pdfobj pdfobjcompresslevel pdfoutline \
-pdfoutput pdfpageattr pdfpagebox pdfpageheight pdfpageref \
-pdfpageresources pdfpagesattr pdfpagewidth pdfpkmode pdfpkresolution \
-pdfpkfixeddpi pdfprimitive pdfprotrudechars pdfpxdimen pdfrandomseed \
-pdfrefobj pdfrefxform pdfrefximage pdfreplacefont pdfrestore \
-pdfretval pdfsave pdfsavepos pdfsetmatrix pdfsetrandomseed \
-pdfstartlink pdfstartthread pdftexbanner pdftexrevision pdftexversion \
-pdfsuppressptexinfo pdfsuppressoptionalinfo pdfthread pdfthreadmargin pdftracingfonts \
-pdftrailer pdfuniformdeviate pdfuniqueresname pdfvorigin pdfxform \
-pdfxformattr pdfxformname pdfxformresources pdfximage quitvmode \
-rightmarginkern rpcode tagcode
+pdfinclusionerrorlevel pdfignoreunknownimages pdfinfo pdfinfoomitdate pdftrailerid \
+pdfinsertht pdflastannot pdflastlinedepth pdflastlink pdflastobj \
+pdflastxform pdflastximage pdflastximagepages pdflastxpos pdflastypos \
+pdflinkmargin pdfliteral pdfmapfile pdfmapline pdfminorversion \
+pdfnames pdfnoligatures pdfnormaldeviate pdfobj pdfobjcompresslevel \
+pdfoutline pdfoutput pdfpageattr pdfpagebox pdfpageheight \
+pdfpageref pdfpageresources pdfpagesattr pdfpagewidth pdfpkmode \
+pdfpkresolution pdfpkfixeddpi pdfprimitive pdfprotrudechars pdfpxdimen \
+pdfrandomseed pdfrefobj pdfrefxform pdfrefximage pdfreplacefont \
+pdfrestore pdfretval pdfsave pdfsavepos pdfsetmatrix \
+pdfsetrandomseed pdfstartlink pdfstartthread pdftexbanner pdftexrevision \
+pdftexversion pdfsuppressptexinfo pdfsuppressoptionalinfo pdfthread pdfthreadmargin \
+pdftracingfonts pdftrailer pdfuniformdeviate pdfuniqueresname pdfvorigin \
+pdfxform pdfxformattr pdfxformname pdfxformresources pdfximage \
+quitvmode rightmarginkern rpcode tagcode
keywordclass.tex.tex=\
- / AlephVersion Alephminorversion \
@@ -217,52 +217,52 @@ pdffirstlineheight pdffontattr pdffontexpand pdffontname pdffontobjnum \
pdffontsize pdfxformmargin pdfgamma pdfgentounicode pdfglyphtounicode \
pdfhorigin pdfignoreddimen pdfimageaddfilename pdfimageapplygamma pdfimagegamma \
pdfimagehicolor pdfimageresolution pdfincludechars pdfinclusioncopyfonts pdfinclusionerrorlevel \
-pdfignoreunknownimages pdfinfo pdfinfoid pdfinsertht pdflastannot \
-pdflastlinedepth pdflastlink pdflastobj pdflastxform pdflastximage \
-pdflastximagepages pdflastxpos pdflastypos pdflinkmargin pdfliteral \
-pdfmapfile pdfmapline pdfminorversion pdfnames pdfnoligatures \
-pdfnormaldeviate pdfobj pdfobjcompresslevel pdfoutline pdfoutput \
-pdfpageattr pdfpagebox pdfpageheight pdfpageref pdfpageresources \
-pdfpagesattr pdfpagewidth pdfpkmode pdfpkresolution pdfpkfixeddpi \
-pdfprimitive pdfprotrudechars pdfpxdimen pdfrandomseed pdfrefobj \
-pdfrefxform pdfrefximage pdfreplacefont pdfrestore pdfretval \
-pdfsave pdfsavepos pdfsetmatrix pdfsetrandomseed pdfstartlink \
-pdfstartthread pdftexbanner pdftexrevision pdftexversion pdfsuppressptexinfo \
-pdfsuppressoptionalinfo pdfthread pdfthreadmargin pdftracingfonts pdftrailer \
-pdfuniformdeviate pdfuniqueresname pdfvorigin pdfxform pdfxformattr \
-pdfxformname pdfxformresources pdfximage penalty postdisplaypenalty \
-postexhyphenchar posthyphenchar predisplaydirection predisplaypenalty predisplaysize \
-preexhyphenchar prehyphenchar pretolerance prevdepth prevgraf \
-primitive protected pxdimen quitvmode radical \
-raise randomseed read readline relax \
-relpenalty right rightghost righthyphenmin rightmarginkern \
-rightskip romannumeral rpcode saveboxresource saveimageresource \
-savepos savecatcodetable savinghyphcodes savingvdiscards scantextokens \
-scantokens scriptfont scriptscriptfont scriptscriptstyle scriptspace \
-scriptstyle scrollmode setbox setfontid setlanguage \
-setrandomseed sfcode shipout show showbox \
-showboxbreadth showboxdepth showgroups showifs showlists \
-showthe showtokens skewchar skip skipdef \
-spacefactor spaceskip span special splitbotmark \
-splitbotmarks splitdiscards splitfirstmark splitfirstmarks splitmaxdepth \
-splittopskip string suppressfontnotfounderror suppressifcsnameerror suppresslongerror \
-suppressoutererror synctex tabskip tagcode textdir \
-textfont textstyle the thickmuskip thinmuskip \
-time toks toksdef tolerance topmark \
-topmarks topskip tracingassigns tracingcommands tracingfonts \
-tracinggroups tracingifs tracinglostchars tracingmacros tracingnesting \
-tracingonline tracingoutput tracingpages tracingparagraphs tracingrestores \
-tracingscantokens tracingstats uccode uchyph underline \
-unexpanded unhbox unhcopy uniformdeviate unkern \
-unless unpenalty unskip unvbox unvcopy \
-uppercase useboxresource useimageresource vadjust valign \
-vbadness vbox vcenter vfil vfill \
-vfilneg vfuzz voffset vrule vsize \
-vskip vsplit vss vtop wd \
-widowpenalties widowpenalty write xdef xleaders \
-xspaceskip year vpack hpack tpack \
-csstring begincsname lastnamedcs toksapp tokspre \
-etoksapp etokspre
+pdfignoreunknownimages pdfinfo pdfinfoomitdate pdftrailerid pdfinsertht \
+pdflastannot pdflastlinedepth pdflastlink pdflastobj pdflastxform \
+pdflastximage pdflastximagepages pdflastxpos pdflastypos pdflinkmargin \
+pdfliteral pdfmapfile pdfmapline pdfminorversion pdfnames \
+pdfnoligatures pdfnormaldeviate pdfobj pdfobjcompresslevel pdfoutline \
+pdfoutput pdfpageattr pdfpagebox pdfpageheight pdfpageref \
+pdfpageresources pdfpagesattr pdfpagewidth pdfpkmode pdfpkresolution \
+pdfpkfixeddpi pdfprimitive pdfprotrudechars pdfpxdimen pdfrandomseed \
+pdfrefobj pdfrefxform pdfrefximage pdfreplacefont pdfrestore \
+pdfretval pdfsave pdfsavepos pdfsetmatrix pdfsetrandomseed \
+pdfstartlink pdfstartthread pdftexbanner pdftexrevision pdftexversion \
+pdfsuppressptexinfo pdfsuppressoptionalinfo pdfthread pdfthreadmargin pdftracingfonts \
+pdftrailer pdfuniformdeviate pdfuniqueresname pdfvorigin pdfxform \
+pdfxformattr pdfxformname pdfxformresources pdfximage penalty \
+postdisplaypenalty postexhyphenchar posthyphenchar predisplaydirection predisplaypenalty \
+predisplaysize preexhyphenchar prehyphenchar pretolerance prevdepth \
+prevgraf primitive protected pxdimen quitvmode \
+radical raise randomseed read readline \
+relax relpenalty right rightghost righthyphenmin \
+rightmarginkern rightskip romannumeral rpcode saveboxresource \
+saveimageresource savepos savecatcodetable savinghyphcodes savingvdiscards \
+scantextokens scantokens scriptfont scriptscriptfont scriptscriptstyle \
+scriptspace scriptstyle scrollmode setbox setfontid \
+setlanguage setrandomseed sfcode shipout show \
+showbox showboxbreadth showboxdepth showgroups showifs \
+showlists showthe showtokens skewchar skip \
+skipdef spacefactor spaceskip span special \
+splitbotmark splitbotmarks splitdiscards splitfirstmark splitfirstmarks \
+splitmaxdepth splittopskip string suppressfontnotfounderror suppressifcsnameerror \
+suppresslongerror suppressoutererror synctex tabskip tagcode \
+textdir textfont textstyle the thickmuskip \
+thinmuskip time toks toksdef tolerance \
+topmark topmarks topskip tracingassigns tracingcommands \
+tracingfonts tracinggroups tracingifs tracinglostchars tracingmacros \
+tracingnesting tracingonline tracingoutput tracingpages tracingparagraphs \
+tracingrestores tracingscantokens tracingstats uccode uchyph \
+underline unexpanded unhbox unhcopy uniformdeviate \
+unkern unless unpenalty unskip unvbox \
+unvcopy uppercase useboxresource useimageresource vadjust \
+valign vbadness vbox vcenter vfil \
+vfill vfilneg vfuzz voffset vrule \
+vsize vskip vsplit vss vtop \
+wd widowpenalties widowpenalty write xdef \
+xleaders xspaceskip year vpack hpack \
+tpack csstring begincsname lastnamedcs toksapp \
+tokspre etoksapp etokspre
keywordclass.tex.xetex=\
XeTeXversion
diff --git a/doc/context/documents/general/manuals/luatex.pdf b/doc/context/documents/general/manuals/luatex.pdf
index 07bd03751..64041ab40 100644
--- a/doc/context/documents/general/manuals/luatex.pdf
+++ b/doc/context/documents/general/manuals/luatex.pdf
Binary files differ
diff --git a/doc/context/scripts/mkiv/context.html b/doc/context/scripts/mkiv/context.html
index 087672e0a..3161eac72 100644
--- a/doc/context/scripts/mkiv/context.html
+++ b/doc/context/scripts/mkiv/context.html
@@ -82,6 +82,8 @@
<tr><th>--batchmode</th><td></td><td>run without stopping and do not show messages on the console</td></tr>
<tr><th>--nonstopmode</th><td></td><td>run without stopping</td></tr>
<tr><th>--synctex</th><td></td><td>run with synctex enabled (optional value: zipped, unzipped, 1, -1)</td></tr>
+ <tr><th>--nodates</th><td></td><td>omit runtime dates in pdf file</td></tr>
+ <tr><th>--trailerid</th><td></td><td>alternative trailer id (or constant one)</td></tr>
<tr><th/><td/><td/></tr>
<tr><th>--generate</th><td></td><td>generate file database etc. (as luatools does)</td></tr>
<tr><th>--paranoid</th><td></td><td>do not descend to .. and ../..</td></tr>
diff --git a/doc/context/scripts/mkiv/context.man b/doc/context/scripts/mkiv/context.man
index 5784fee83..f1c552832 100644
--- a/doc/context/scripts/mkiv/context.man
+++ b/doc/context/scripts/mkiv/context.man
@@ -113,6 +113,12 @@ run without stopping
.B --synctex
run with synctex enabled (optional value: zipped, unzipped, 1, -1)
.TP
+.B --nodates
+omit runtime dates in pdf file
+.TP
+.B --trailerid
+alternative trailer id (or constant one)
+.TP
.B --generate
generate file database etc. (as luatools does)
.TP
diff --git a/doc/context/scripts/mkiv/context.xml b/doc/context/scripts/mkiv/context.xml
index 46e586153..f5a674241 100644
--- a/doc/context/scripts/mkiv/context.xml
+++ b/doc/context/scripts/mkiv/context.xml
@@ -128,6 +128,12 @@
<flag name="synctex">
<short>run with synctex enabled (optional value: zipped, unzipped, 1, -1)</short>
</flag>
+ <flag name="nodates">
+ <short>omit runtime dates in pdf file</short>
+ </flag>
+ <flag name="trailerid">
+ <short>alternative trailer id (or constant one)</short>
+ </flag>
</subcategory>
<subcategory>
<flag name="generate">
diff --git a/doc/context/scripts/mkiv/mtx-context.html b/doc/context/scripts/mkiv/mtx-context.html
index 087672e0a..3161eac72 100644
--- a/doc/context/scripts/mkiv/mtx-context.html
+++ b/doc/context/scripts/mkiv/mtx-context.html
@@ -82,6 +82,8 @@
<tr><th>--batchmode</th><td></td><td>run without stopping and do not show messages on the console</td></tr>
<tr><th>--nonstopmode</th><td></td><td>run without stopping</td></tr>
<tr><th>--synctex</th><td></td><td>run with synctex enabled (optional value: zipped, unzipped, 1, -1)</td></tr>
+ <tr><th>--nodates</th><td></td><td>omit runtime dates in pdf file</td></tr>
+ <tr><th>--trailerid</th><td></td><td>alternative trailer id (or constant one)</td></tr>
<tr><th/><td/><td/></tr>
<tr><th>--generate</th><td></td><td>generate file database etc. (as luatools does)</td></tr>
<tr><th>--paranoid</th><td></td><td>do not descend to .. and ../..</td></tr>
diff --git a/doc/context/scripts/mkiv/mtx-context.man b/doc/context/scripts/mkiv/mtx-context.man
index 5784fee83..f1c552832 100644
--- a/doc/context/scripts/mkiv/mtx-context.man
+++ b/doc/context/scripts/mkiv/mtx-context.man
@@ -113,6 +113,12 @@ run without stopping
.B --synctex
run with synctex enabled (optional value: zipped, unzipped, 1, -1)
.TP
+.B --nodates
+omit runtime dates in pdf file
+.TP
+.B --trailerid
+alternative trailer id (or constant one)
+.TP
.B --generate
generate file database etc. (as luatools does)
.TP
diff --git a/doc/context/scripts/mkiv/mtx-context.xml b/doc/context/scripts/mkiv/mtx-context.xml
index 46e586153..f5a674241 100644
--- a/doc/context/scripts/mkiv/mtx-context.xml
+++ b/doc/context/scripts/mkiv/mtx-context.xml
@@ -128,6 +128,12 @@
<flag name="synctex">
<short>run with synctex enabled (optional value: zipped, unzipped, 1, -1)</short>
</flag>
+ <flag name="nodates">
+ <short>omit runtime dates in pdf file</short>
+ </flag>
+ <flag name="trailerid">
+ <short>alternative trailer id (or constant one)</short>
+ </flag>
</subcategory>
<subcategory>
<flag name="generate">
diff --git a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
index 81d90253f..00bfe87d9 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
@@ -539,8 +539,6 @@ primitives (for as far their functionality is still around) you now can do this:
\protected\def\pdfmapline {\pdfextension mapline }
\protected\def\pdftrailer {\pdfextension trailer }
\protected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
-\protected\def\pdfsuppressoptionalinfo{\pdfextension suppressoptionalinfo }
-\protected\def\pdfinfoid {\pdfextension infoid }
\stoptyping
The introspective primitives can be defined as:
@@ -596,6 +594,9 @@ The configuration related registers have become:
\edef\pdfxformattr {\pdfvariable xformattr}
\edef\pdfxformresources {\pdfvariable xformresources}
\edef\pdfpkmode {\pdfvariable pkmode}
+
+\edef\pdfsuppressoptionalinfo {\pdfvariable suppressoptionalinfo }
+\edef\pdftrailerid {\pdfvariable trailerid }
\stoptyping
The variables are internal ones, so they are anonymous. When you ask for the
diff --git a/scripts/context/lua/mtx-context.lua b/scripts/context/lua/mtx-context.lua
index c43e5a98c..7c64687b9 100644
--- a/scripts/context/lua/mtx-context.lua
+++ b/scripts/context/lua/mtx-context.lua
@@ -76,6 +76,8 @@ local application = logs.application {
-- ["shell-escape"] = true, -- enable \write18{SHELL COMMAND}
-- ["no-shell-escape"] = true, -- disable \write18{SHELL COMMAND}
-- ["shell-restricted"] = true, -- restrict \write18 to a list of commands given in texmf.cnf
+-- ["nodates"] = true, -- no production dates in pdf file
+-- ["trailerid"] = true, -- alternative trailer id
-- ["synctex"] = true, -- enable synctex
-- ["version"] = true, -- display version and exit
-- ["luaonly"] = true, -- run a lua file, then exit
@@ -591,6 +593,8 @@ function scripts.context.run(ctxdata,filename)
local a_keeptuc = getargument("keeptuc")
local a_keeplog = getargument("keeplog")
local a_export = getargument("export")
+ local a_nodates = getargument("nodates")
+ local a_trailerid = getargument("trailerid")
-- the following flag is not officially supported because i cannot forsee
-- side effects (so no bug reports please) .. we provide --sandbox that
@@ -750,21 +754,26 @@ function scripts.context.run(ctxdata,filename)
c_flags.usemodule = "timing"
end
--
- if not a_profile then
- -- okay
- elseif c_flags.directives then
- c_flags.directives = format("system.profile,%s",c_flags.directives)
- else
- c_flags.directives = "system.profile"
+ local directives = { }
+ --
+ if a_nodates then
+ directives[#directives+1] = "backend.nodates"
+ end
+ --
+ if a_trailerid then
+ directives[#directives+1] = format("backend.trailerid=%s",a_trailerid)
+ end
+ --
+ if a_profile then
+ directives[#directives+1] = "system.profile"
end
--
if a_synctex then
report("warning: synctex is enabled") -- can add upto 5% runtime
- if c_flags.directives then
- c_flags.directives = format("system.synctex=%s,%s",a_synctex,c_flags.directives)
- else
- c_flags.directives = format("system.synctex=%s",a_synctex)
- end
+ directives[#directives+1] = format("system.synctex=%s",a_synctex)
+ end
+ if #directives > 0 then
+ c_flags.directives = concat(directives,",")
end
--
-- kindofrun: 1:first run, 2:successive run, 3:once, 4:last of maxruns
diff --git a/scripts/context/lua/mtx-context.xml b/scripts/context/lua/mtx-context.xml
index 46e586153..f5a674241 100644
--- a/scripts/context/lua/mtx-context.xml
+++ b/scripts/context/lua/mtx-context.xml
@@ -128,6 +128,12 @@
<flag name="synctex">
<short>run with synctex enabled (optional value: zipped, unzipped, 1, -1)</short>
</flag>
+ <flag name="nodates">
+ <short>omit runtime dates in pdf file</short>
+ </flag>
+ <flag name="trailerid">
+ <short>alternative trailer id (or constant one)</short>
+ </flag>
</subcategory>
<subcategory>
<flag name="generate">
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 1a94bdf92..e8a938c9d 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/back-pdf.lua b/tex/context/base/mkiv/back-pdf.lua
index 5d007ed43..66ca89fb4 100644
--- a/tex/context/base/mkiv/back-pdf.lua
+++ b/tex/context/base/mkiv/back-pdf.lua
@@ -23,6 +23,7 @@ local scaninteger = scanners.integer
local scankeyword = scanners.keyword
local scanners = interfaces.scanners
+local implement = interfaces.implement
local outputfilename
@@ -145,3 +146,26 @@ scanners.pdfstartmirroring = function()
end
scanners.pdfstopmirroring = scanners.pdfstartmirroring
+
+-- todo, change the above to implement too --
+
+implement {
+ name = "setmapfile",
+ arguments = "string",
+ actions = pdf.setmapfile
+}
+
+implement {
+ name = "setmapfile",
+ arguments = "string",
+ actions = pdf.setmapline
+}
+
+implement {
+ name = "setpdfcompression",
+ arguments = { "integer", "integer" },
+ actions = function(c,o)
+ pdf.setcompresslevel(c)
+ pdf.setobjcompresslevel(o)
+ end
+}
diff --git a/tex/context/base/mkiv/back-pdf.mkiv b/tex/context/base/mkiv/back-pdf.mkiv
index 93e6af0b3..ab9e4160c 100644
--- a/tex/context/base/mkiv/back-pdf.mkiv
+++ b/tex/context/base/mkiv/back-pdf.mkiv
@@ -44,29 +44,124 @@
\outputmode \plusone \let\modeoutput \undefined \newcount\outputmode \outputmode \plusone
-%D These are already set:
-
-% \pdfhorigin 1in
-% \pdfvorigin \pdfhorigin
-
-%D These too and most of them will be protected as well:
-
-% \pdfminorversion \plusseven
-% \pdfgentounicode \plusone % \let\pdfgentounicode \undefined \newcount\pdfgentounicode
-% \pdfinclusioncopyfonts \plusone % \let\pdfinclusioncopyfonts \undefined \newcount\pdfinclusioncopyfonts
-% \pdfinclusionerrorlevel \zerocount % \let\pdfinclusionerrorlevel\undefined \newcount\pdfinclusionerrorlevel
-% \pdfdecimaldigits \plussix % \let\pdfdecimaldigits \undefined \newcount\pdfdecimaldigits
-% \pdfimageresolution 300
-% \pdfpkresolution 600
-
-%D Let's block these (we could share a dummy:
-
-\let\pdfcatalog \relax \newtoks\pdfcatalog
-\let\pdfinfo \relax \newtoks\pdfinfo
-\let\pdfnames \relax \newtoks\pdfnames
-\let\pdfpageresources\relax \newtoks\pdfpageresources
-\let\pdfpageattr \relax \newtoks\pdfpageattr
-\let\pdfpagesattr \relax \newtoks\pdfpagesattr
+%D Because we do a lot in \LUA\ and don't want interferences, we nil most of the
+%D \PDFTEX\ primitives. Of course one can always use the \type {\pdfvariable},
+%D \type {\pdfextension} and \type {\pdffeedback} primitives but it will probably
+%D have bad side effects.
+
+%D These are no-ops and don't even intercept what comes next. Maybe some day
+%D I'll write a parser that maps onto \CONTEXT.
+
+\let\pdfcolorstack \relax
+\let\pdfcolorstackinit \relax
+\let\pdfannot \relax
+\let\pdfstartlink \relax
+\let\pdfendlink \relax
+\let\pdfoutline \relax
+\let\pdfdest \relax
+\let\pdfthread \relax
+\let\pdfstartthread \relax
+\let\pdfendthread \relax
+\let\pdffontattr \relax
+\let\pdfglyphtounicode \relax
+
+%D Here we do intercept (silently) what gets passed. One should use the
+%D \CONTEXT\ interfaces instead.
+
+\let\pdfcatalog \relax \newtoks \pdfcatalog
+\let\pdfinfo \relax \newtoks \pdfinfo
+\let\pdfnames \relax \newtoks \pdfnames
+\let\pdftrailer \relax \newtoks \pdftrailer
+\let\pdfpageresources \relax \newtoks \pdfpageresources
+\let\pdfpageattr \relax \newtoks \pdfpageattr
+\let\pdfpagesattr \relax \newtoks \pdfpagesattr
+\let\pdfxformattr \relax \newtoks \pdfxformattr
+\let\pdfxformresources \relax \newtoks \pdfxformresources
+
+%D We use the \LUA\ interface (which then permits more control over
+%D possible pdf/x extensions).
+
+\let\pdfcompresslevel \relax \newcount\pdfcompresslevel
+\let\pdfobjcompresslevel\relax \newcount\pdfobjcompresslevel
+
+%D But we still provide:
+
+\unexpanded\def\nopdfcompression {\clf_setpdfcompression\zerocount\zerocount}
+\unexpanded\def\maximumpdfcompression{\clf_setpdfcompression\plusnine \plusnine }
+\unexpanded\def\normalpdfcompression {\clf_setpdfcompression\plusthree\plusthree}
+
+%D These might even become no-ops as we don't need them in \CONTEXT:
+
+\unexpanded\def\pdfmapfile#1{\clf_setmapfile{#1}}
+\unexpanded\def\pdfmapline#1{\clf_setmapline{#1}}
+
+%D We don't support these directives, at least not this way. If they are needed
+%D by third party modules we can provide some interface.
+
+\let\pdfcreationdate \relax \newtoks \pdfcreationdate
+\let\pdfdecimaldigits \relax \newcount\pdfdecimaldigits
+\let\pdfdestmargin \relax \newcount\pdfdestmargin
+\let\pdffontname \relax \newcount\pdffontname
+\let\pdffontobjnum \relax \newcount\pdffontobjnum
+\let\pdffontsize \relax \newcount\pdffontsize
+\let\pdfgamma \relax \newcount\pdfgamma
+\let\pdfgentounicode \relax \newcount\pdfgentounicode
+\let\pdfhorigin \relax \newcount\pdfhorigin
+\let\pdfignoreunknownimages \relax \newcount\pdfignoreunknownimages
+\let\pdfimageaddfilename \relax \newcount\pdfimageaddfilename
+\let\pdfimageapplygamma \relax \newcount\pdfimageapplygamma
+\let\pdfimagegamma \relax \newcount\pdfimagegamma
+\let\pdfimagehicolor \relax \newcount\pdfimagehicolor
+\let\pdfimageresolution \relax \newcount\pdfimageresolution
+\let\pdfincludechars \relax \newtoks \pdffontsize
+\let\pdfinclusioncopyfonts \relax \newcount\pdfinclusioncopyfonts
+\let\pdfinclusionerrorlevel \relax \newcount\pdfinclusionerrorlevel
+\let\pdfinfoomitdate \relax \newcount\pdfinfoomitdate
+\let\pdflastannot \relax \newcount\pdflastannot
+\let\pdflastlink \relax \newcount\pdflastlink
+\let\pdflinkmargin \relax \newcount\pdflinkmargin
+\let\pdfminorversion \relax \newcount\pdfminorversion
+\let\pdfpagebox \relax \newcount\pdfpagebox
+\let\pdfpageref \relax \newcount\pdfpageref
+\let\pdfpkfixeddpi \relax \newcount\pdfpkfixeddpi
+\let\pdfpkmode \relax \newtoks \pdfpkmode
+\let\pdfpkresolution \relax \newcount\pdfpkresolution
+\let\pdfretval \relax \newcount\pdfretval
+\let\pdfsuppressoptionalinfo \relax \newcount\pdfsuppressoptionalinfo
+\let\pdfsuppressptexinfo \relax \newcount\pdfsuppressptexinfo
+\let\pdftexrevision \relax \newcount\pdftexrevision
+\let\pdftexversion \relax \newcount\pdftexversion
+\let\pdfthreadmargin \relax \newcount\pdfthreadmargin
+\let\pdftrailerid \relax \newtoks \pdftrailerid
+\let\pdfuniqueresname \relax \newcount\pdfuniqueresname
+\let\pdfvorigin \relax \newcount\pdfvorigin
+\let\pdfxformmargin \relax \newcount\pdfxformmargin
+\let\pdfxformname \relax \newcount\pdfxformname
+
+%D These are still accepted but are normally not needed.
+
+\let\pdflastxform \lastsavedboxresourceindex
+\let\pdflastximage \lastsavedimageresourceindex
+\let\pdflastximagepages \lastsavedimageresourcepages
+\let\pdflastxpos \lastxpos
+\let\pdflastypos \lastypos
+\let\pdfrefxform \useboxresource
+\let\pdfrefximage \useimageresource
+\let\pdfsavepos \savepos
+\let\pdfxform \saveboxresource
+\let\pdfximage \saveimageresource
+
+%D For the moment we keep these as they are but they will become \LUA\
+%D calls eventually, after which we will nil the three \type {\pdf}
+%D interface primitives.
+
+\normalprotected\def\pdfliteral {\pdfextension literal }
+\normalprotected\def\pdfobj {\pdfextension obj }
+ \def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
+\normalprotected\def\pdfrefobj {\pdfextension refobj }
+\normalprotected\def\pdfrestore {\pdfextension restore\relax}
+\normalprotected\def\pdfsave {\pdfextension save\relax}
+\normalprotected\def\pdfsetmatrix{\pdfextension setmatrix }
%D This one can be consulted by users although the suffix is also
%D a system mode.
@@ -120,16 +215,6 @@
\def\pdfcolor #1{\clf_lpdf_color\numexpr\thecolorattribute{#1}\relax}
\let\PDFcolor\pdfcolor
-%D An example of usage is:
-
-\appendtoks % this will be moved to lua
- \pdfbackendsetinfo{ConTeXt.Version}{\contextversion}%
- \pdfbackendsetinfo{ConTeXt.Time} {\number\normalyear.\twodigits\normalmonth.\twodigits\normalday\space \twodigits\currenthour:\twodigits\currentminute}%
- \pdfbackendsetinfo{ConTeXt.Jobname}{\jobname}%
- \pdfbackendsetinfo{ConTeXt.Url} {www.pragma-ade.com}%
- \pdfbackendsetinfo{ConTeXt.Support}{contextgarden.net}%
-\to \everylastbackendshipout
-
%D Transformations
% rotation
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 12b23290e..8cfd414d0 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2016.03.31 09:55}
+\newcontextversion{2016.03.31 19:47}
%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/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index e6df46de3..7ffeea63d 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -39,7 +39,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2016.03.31 09:55}
+\edef\contextversion{2016.03.31 19:47}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/core-sys.lua b/tex/context/base/mkiv/core-sys.lua
index f688a1454..3e39fa9da 100644
--- a/tex/context/base/mkiv/core-sys.lua
+++ b/tex/context/base/mkiv/core-sys.lua
@@ -73,8 +73,8 @@ statistics.register("result saved in file", function()
local outputfilename = environment.outputfilename or environment.jobname or tex.jobname or "<unset>"
if (tex.pdfoutput or tex.outputmode) > 0 then
return format("%s.%s, compresslevel %s, objectcompresslevel %s",outputfilename,"pdf",
- tex.pdfcompresslevel or pdf.getcompresslevel(),
- tex.pdfobjcompresslevel or pdf.getobjcompresslevel()
+ pdf.getcompresslevel(),
+ pdf.getobjcompresslevel()
)
else
return format("%s.%s",outputfilename,"dvi") -- hard to imagine
diff --git a/tex/context/base/mkiv/lpdf-fmt.lua b/tex/context/base/mkiv/lpdf-fmt.lua
index 84e4f1c38..b1d9a4b0c 100644
--- a/tex/context/base/mkiv/lpdf-fmt.lua
+++ b/tex/context/base/mkiv/lpdf-fmt.lua
@@ -720,7 +720,7 @@ function codeinjections.setformat(s)
local majorversion = math.div(pdf_version,10)
local minorversion = math.mod(pdf_version,10)
local objectcompression = spec.object_compression and pdf_version >= 15
- local compresslevel = level or tex.pdfcompresslevel -- keep default
+ local compresslevel = level or pdf.getcompresslevel() -- keep default
local objectcompresslevel = (objectcompression and (level or pdf.getobjcompresslevel())) or 0
pdf.setcompresslevel (compresslevel)
pdf.setobjcompresslevel(objectcompresslevel)
diff --git a/tex/context/base/mkiv/lpdf-ini.lua b/tex/context/base/mkiv/lpdf-ini.lua
index 0d96abb7d..2149f4729 100644
--- a/tex/context/base/mkiv/lpdf-ini.lua
+++ b/tex/context/base/mkiv/lpdf-ini.lua
@@ -66,55 +66,14 @@ local two_strings = interfaces.strings[2]
local pdf = pdf
local factor = number.dimenfactors.bp
-if pdf.setinfo then
- -- table.setmetatablenewindex(pdf,function(t,k,v)
- -- report_blocked("'pdf.%s' is not supported",k)
- -- end)
- -- the getters are harmless
-end
-
do
local texget = tex.get
local texset = tex.set
- if pdf.setminorversion then
- function pdf.setmajorversion (n) texset("global","pdfmajorversion", n) end
- function pdf.getmajorversion ( ) return texget("pdfmajorversion") end
- else
- --
- function pdf.setmajorversion (n) texset("global","pdfmajorversion",n) end
- function pdf.setminorversion (n) texset("global","pdfminorversion",n) end
- function pdf.setcompresslevel (n) texset("global","pdfcompresslevel",n) end
- function pdf.setobjcompresslevel(n) texset("global","pdfobjcompresslevel",n) end
- --
- function pdf.getmajorversion ( ) return texget("pdfmajorversion") end
- function pdf.getminorversion ( ) return texget("pdfminorversion") end
- function pdf.getcompresslevel ( ) return texget("pdfcompresslevel") end
- function pdf.getobjcompresslevel( ) return texget("pdfobjcompresslevel") end
- end
-
-end
-
-if not pdf.setinfo then
- function pdf.setinfo (s) pdf.info = s end
- function pdf.setcatalog(s) pdf.catalog = s end
- function pdf.setnames (s) pdf.names = s end
- function pdf.settrailer(s) pdf.trailer = s end
-end
+ function pdf.setmajorversion (n) texset("global","pdfmajorversion", n) end
+ function pdf.getmajorversion ( ) return texget("pdfmajorversion") end
-if not pdf.getpos then
- function pdf.getpos () return pdf.h, pdf.v end
- function pdf.gethpos () return pdf.h end
- function pdf.getvpos () return pdf.v end
- function pdf.hasmatrix() return false end
- function pdf.getmatrix() return 1, 0, 0, 1, 0, 0 end
-end
-
-if not pdf.setpageresources then
- function pdf.setpageresources (s) pdf.pageresources = s end
- function pdf.setpageattributes (s) pdf.pageattributes = s end
- function pdf.setpagesattributes(s) pdf.pagesattributes = s end
end
local pdfsetinfo = pdf.setinfo
@@ -137,15 +96,6 @@ local pdfimmediateobject = pdf.immediateobj
local pdfdeferredobject = pdf.obj
local pdfreferenceobject = pdf.refobj
--- function pdf.setinfo () report_blocked("'pdf.%s' is not supported","setinfo") end -- use lpdf.addtoinfo etc
--- function pdf.setcatalog () report_blocked("'pdf.%s' is not supported","setcatalog") end
--- function pdf.setnames () report_blocked("'pdf.%s' is not supported","setnames") end
--- function pdf.settrailer () report_blocked("'pdf.%s' is not supported","settrailer") end
--- function pdf.setpageresources () report_blocked("'pdf.%s' is not supported","setpageresources") end
--- function pdf.setpageattributes () report_blocked("'pdf.%s' is not supported","setpageattributes") end
--- function pdf.setpagesattributes() report_blocked("'pdf.%s' is not supported","setpagesattributes") end
--- function pdf.registerannot () report_blocked("'pdf.%s' is not supported","registerannot") end
-
local function pdfdisablecommand(command)
pdf[command] = function() report_blocked("'pdf.%s' is not supported",command) end
end
@@ -637,47 +587,51 @@ function lpdf.escaped(str)
return lpegmatch(escaped,str) or str
end
-local p_null = { } setmetatable(p_null, mt_z)
-local p_true = { } setmetatable(p_true, mt_t)
-local p_false = { } setmetatable(p_false,mt_f)
+do
-local function pdfnull()
- return p_null
-end
+ local p_null = { } setmetatable(p_null, mt_z)
+ local p_true = { } setmetatable(p_true, mt_t)
+ local p_false = { } setmetatable(p_false,mt_f)
--- print(pdfboolean(false),pdfboolean(false,false),pdfboolean(false,true))
--- print(pdfboolean(true),pdfboolean(true,false),pdfboolean(true,true))
--- print(pdfboolean(nil,true),pdfboolean(nil,false))
+ pdfnull = function()
+ return p_null
+ end
-local function pdfboolean(b,default)
- if type(b) == "boolean" then
- return b and p_true or p_false
- else
- return default and p_true or p_false
+ pdfboolean = function(b,default)
+ if type(b) == "boolean" then
+ return b and p_true or p_false
+ else
+ return default and p_true or p_false
+ end
end
-end
-local r_zero = setmetatable({ 0 },mt_r)
+ -- print(pdfboolean(false),pdfboolean(false,false),pdfboolean(false,true))
+ -- print(pdfboolean(true),pdfboolean(true,false),pdfboolean(true,true))
+ -- print(pdfboolean(nil,true),pdfboolean(nil,false))
-local function pdfreference(r) -- maybe make a weak table
- if r and r ~= 0 then
- return setmetatable({ r },mt_r)
- else
- return r_zero
+ local r_zero = setmetatable({ 0 },mt_r)
+
+ pdfreference = function(r) -- maybe make a weak table
+ if r and r ~= 0 then
+ return setmetatable({ r },mt_r)
+ else
+ return r_zero
+ end
end
-end
-local v_zero = setmetatable({ 0 },mt_v)
-local v_empty = setmetatable({ "" },mt_v)
+ local v_zero = setmetatable({ 0 },mt_v)
+ local v_empty = setmetatable({ "" },mt_v)
-local function pdfverbose(t) -- maybe check for type
- if t == 0 then
- return v_zero
- elseif t == "" then
- return v_empty
- else
- return setmetatable({ t },mt_v)
+ pdfverbose = function(t) -- maybe check for type
+ if t == 0 then
+ return v_zero
+ elseif t == "" then
+ return v_empty
+ else
+ return setmetatable({ t },mt_v)
+ end
end
+
end
lpdf.stream = pdfstream -- THIS WILL PROBABLY CHANGE
@@ -1188,12 +1142,6 @@ function lpdf.limited(n,min,max,default)
end
end
--- lpdf.addtoinfo("ConTeXt.Version", environment.version)
--- lpdf.addtoinfo("ConTeXt.Time", os.date("%Y.%m.%d %H:%M")) -- :%S
--- lpdf.addtoinfo("ConTeXt.Jobname", environment.jobname)
--- lpdf.addtoinfo("ConTeXt.Url", "www.pragma-ade.com")
--- lpdf.addtoinfo("ConTeXt.Support", "contextgarden.net")
-
-- if not pdfreferenceobject then
--
-- local delayed = { }
@@ -1309,17 +1257,15 @@ end
-- interface
-local lpdfverbose = lpdf.verbose
-
implement { name = "lpdf_collectedresources", actions = { lpdf.collectedresources, context } }
implement { name = "lpdf_addtocatalog", arguments = two_strings, actions = lpdf.addtocatalog }
-implement { name = "lpdf_addtoinfo", arguments = two_strings, actions = lpdf.addtoinfo }
+implement { name = "lpdf_addtoinfo", arguments = two_strings, actions = function(a,b,c) lpdf.addtoinfo(a,b,c) end } -- gets adapted
implement { name = "lpdf_addtonames", arguments = two_strings, actions = lpdf.addtonames }
implement { name = "lpdf_addtopageattributes", arguments = two_strings, actions = lpdf.addtopageattributes }
implement { name = "lpdf_addtopagesattributes", arguments = two_strings, actions = lpdf.addtopagesattributes }
implement { name = "lpdf_addtopageresources", arguments = two_strings, actions = lpdf.addtopageresources }
-implement { name = "lpdf_adddocumentextgstate", arguments = two_strings, actions = function(a,b) lpdf.adddocumentextgstate (a,lpdfverbose(b)) end }
-implement { name = "lpdf_adddocumentcolorspace", arguments = two_strings, actions = function(a,b) lpdf.adddocumentcolorspace(a,lpdfverbose(b)) end }
-implement { name = "lpdf_adddocumentpattern", arguments = two_strings, actions = function(a,b) lpdf.adddocumentpattern (a,lpdfverbose(b)) end }
-implement { name = "lpdf_adddocumentshade", arguments = two_strings, actions = function(a,b) lpdf.adddocumentshade (a,lpdfverbose(b)) end }
+implement { name = "lpdf_adddocumentextgstate", arguments = two_strings, actions = function(a,b) lpdf.adddocumentextgstate (a,pdfverbose(b)) end }
+implement { name = "lpdf_adddocumentcolorspace", arguments = two_strings, actions = function(a,b) lpdf.adddocumentcolorspace(a,pdfverbose(b)) end }
+implement { name = "lpdf_adddocumentpattern", arguments = two_strings, actions = function(a,b) lpdf.adddocumentpattern (a,pdfverbose(b)) end }
+implement { name = "lpdf_adddocumentshade", arguments = two_strings, actions = function(a,b) lpdf.adddocumentshade (a,pdfverbose(b)) end }
diff --git a/tex/context/base/mkiv/lpdf-mis.lua b/tex/context/base/mkiv/lpdf-mis.lua
index 164e27c62..62713727d 100644
--- a/tex/context/base/mkiv/lpdf-mis.lua
+++ b/tex/context/base/mkiv/lpdf-mis.lua
@@ -206,6 +206,13 @@ local function setupidentity()
end
local id = lpdf.id()
addtoinfo("ID", pdfstring(id), id) -- needed for pdf/x
+ --
+ addtoinfo("ConTeXt.Version", environment.version)
+ addtoinfo("ConTeXt.Time", os.date("%Y-%m-%d %H:%M"))
+ addtoinfo("ConTeXt.Jobname", environment.jobname or tex.jobname)
+ addtoinfo("ConTeXt.Url", "www.pragma-ade.com")
+ addtoinfo("ConTeXt.Support", "contextgarden.net")
+ --
done = true
else
-- no need for a message
diff --git a/tex/context/base/mkiv/lpdf-xmp.lua b/tex/context/base/mkiv/lpdf-xmp.lua
index f372b3461..b8170319c 100644
--- a/tex/context/base/mkiv/lpdf-xmp.lua
+++ b/tex/context/base/mkiv/lpdf-xmp.lua
@@ -7,7 +7,7 @@ if not modules then modules = { } end modules ['lpdf-xmp'] = {
comment = "with help from Peter Rolf",
}
-local tostring = tostring
+local tostring, type = tostring, type
local format, random, char, gsub, concat = string.format, math.random, string.char, string.gsub, table.concat
local xmlfillin = xml.fillin
@@ -37,47 +37,105 @@ local xpacket = [[
local mapping = {
-- user defined keys (pdfx:)
- ["ConTeXt.Jobname"] = "rdf:Description/pdfx:ConTeXt.Jobname",
- ["ConTeXt.Time"] = "rdf:Description/pdfx:ConTeXt.Time",
- ["ConTeXt.Url"] = "rdf:Description/pdfx:ConTeXt.Url",
- ["ConTeXt.Version"] = "rdf:Description/pdfx:ConTeXt.Version",
- ["ID"] = "rdf:Description/pdfx:ID",
- ["PTEX.Fullbanner"] = "rdf:Description/pdfx:PTEX.Fullbanner",
+ ["ConTeXt.Jobname"] = { "context", "rdf:Description/pdfx:ConTeXt.Jobname" },
+ ["ConTeXt.Time"] = { "date", "rdf:Description/pdfx:ConTeXt.Time" },
+ ["ConTeXt.Url"] = { "context", "rdf:Description/pdfx:ConTeXt.Url" },
+ ["ConTeXt.Version"] = { "context", "rdf:Description/pdfx:ConTeXt.Version" },
+ ["ID"] = { "date", "rdf:Description/pdfx:ID" }, -- has date
+ ["PTEX.Fullbanner"] = { "metadata","rdf:Description/pdfx:PTEX.Fullbanner" },
-- Adobe PDF schema
- ["Keywords"] = "rdf:Description/pdf:Keywords",
- ["Producer"] = "rdf:Description/pdf:Producer",
- -- ["Trapped"] = "rdf:Description/pdf:Trapped", -- '/False' in /Info, but 'False' in XMP
+ ["Keywords"] = { "metadata","rdf:Description/pdf:Keywords" },
+ ["Producer"] = { "metadata","rdf:Description/pdf:Producer" },
+ -- ["Trapped"] = { "pdf", "rdf:Description/pdf:Trapped" }, -- '/False' in /Info, but 'False' in XMP
-- Dublin Core schema
- ["Author"] = "rdf:Description/dc:creator/rdf:Seq/rdf:li",
- ["Format"] = "rdf:Description/dc:format", -- optional, but nice to have
- ["Subject"] = "rdf:Description/dc:description/rdf:Alt/rdf:li",
- ["Title"] = "rdf:Description/dc:title/rdf:Alt/rdf:li",
+ ["Author"] = { "metadata","rdf:Description/dc:creator/rdf:Seq/rdf:li" },
+ ["Format"] = { "metadata","rdf:Description/dc:format" }, -- optional, but nice to have
+ ["Subject"] = { "metadata","rdf:Description/dc:description/rdf:Alt/rdf:li" },
+ ["Title"] = { "metadata","rdf:Description/dc:title/rdf:Alt/rdf:li" },
-- XMP Basic schema
- ["CreateDate"] = "rdf:Description/xmp:CreateDate",
- ["Creator"] = "rdf:Description/xmp:CreatorTool",
- ["MetadataDate"] = "rdf:Description/xmp:MetadataDate",
- ["ModifyDate"] = "rdf:Description/xmp:ModifyDate",
+ ["CreateDate"] = { "date", "rdf:Description/xmp:CreateDate" },
+ ["CreationDate"] = { "date", "rdf:Description/xmp:CreationDate" }, -- dummy
+ ["Creator"] = { "metadata","rdf:Description/xmp:CreatorTool" },
+ ["MetadataDate"] = { "date", "rdf:Description/xmp:MetadataDate" },
+ ["ModDate"] = { "date", "rdf:Description/xmp:ModDate" }, -- dummy
+ ["ModifyDate"] = { "date", "rdf:Description/xmp:ModifyDate" },
-- XMP Media Management schema
- ["DocumentID"] = "rdf:Description/xmpMM:DocumentID",
- ["InstanceID"] = "rdf:Description/xmpMM:InstanceID",
- ["RenditionClass"] = "rdf:Description/xmpMM:RenditionClass", -- PDF/X-4
- ["VersionID"] = "rdf:Description/xmpMM:VersionID", -- PDF/X-4
+ ["DocumentID"] = { "date", "rdf:Description/xmpMM:DocumentID" }, -- uuid
+ ["InstanceID"] = { "date", "rdf:Description/xmpMM:InstanceID" }, -- uuid
+ ["RenditionClass"] = { "pdf", "rdf:Description/xmpMM:RenditionClass" }, -- PDF/X-4
+ ["VersionID"] = { "pdf", "rdf:Description/xmpMM:VersionID" }, -- PDF/X-4
-- additional entries
-- PDF/X
- ["GTS_PDFXVersion"] = "rdf:Description/pdfxid:GTS_PDFXVersion",
+ ["GTS_PDFXVersion"] = { "pdf", "rdf:Description/pdfxid:GTS_PDFXVersion" },
-- optional entries
-- all what is visible in the 'document properties --> additional metadata' window
-- XMP Rights Management schema (optional)
- ["Marked"] = "rdf:Description/xmpRights:Marked",
- -- ["Owner"] = "rdf:Description/xmpRights:Owner/rdf:Bag/rdf:li", -- maybe useful (not visible)
- -- ["UsageTerms"] = "rdf:Description/xmpRights:UsageTerms", -- maybe useful (not visible)
- ["WebStatement"] = "rdf:Description/xmpRights:WebStatement",
+ ["Marked"] = { "pdf", "rdf:Description/xmpRights:Marked" },
+ -- ["Owner"] = { "metadata", "rdf:Description/xmpRights:Owner/rdf:Bag/rdf:li" }, -- maybe useful (not visible)
+ -- ["UsageTerms"] = { "metadata", "rdf:Description/xmpRights:UsageTerms" }, -- maybe useful (not visible)
+ ["WebStatement"] = { "metadata", "rdf:Description/xmpRights:WebStatement" },
-- Photoshop PDF schema (optional)
- ["AuthorsPosition"] = "rdf:Description/photoshop:AuthorsPosition",
- ["Copyright"] = "rdf:Description/photoshop:Copyright",
- ["CaptionWriter"] = "rdf:Description/photoshop:CaptionWriter",
+ ["AuthorsPosition"] = { "metadata", "rdf:Description/photoshop:AuthorsPosition" },
+ ["Copyright"] = { "metadata", "rdf:Description/photoshop:Copyright" },
+ ["CaptionWriter"] = { "metadata", "rdf:Description/photoshop:CaptionWriter" },
}
+pdf.setsuppressoptionalinfo(
+ 0 --
+ + 1 -- pdfnofullbanner
+ + 2 -- pdfnofilename
+ + 4 -- pdfnopagenumber
+ + 8 -- pdfnoinfodict
+ + 16 -- pdfnocreator
+ + 32 -- pdfnocreationdate
+ + 64 -- pdfnomoddate
+ + 128 -- pdfnoproducer
+ + 256 -- pdfnotrapped
+ -- + 512 -- pdfnoid
+)
+
+local included = table.setmetatableindex( {
+ context = true,
+ id = true,
+ metadata = true,
+ date = true,
+ id = true,
+ pdf = true,
+}, function(t,k)
+ return true
+end)
+
+directives.register("backend.nodates", function(v)
+ included.date = not v
+ if v then
+ report_info("no date/time information will be added to the PDF file")
+ end
+end)
+
+directives.register("backend.trailerid", function(v)
+ if v then
+ if toboolean(v) or v == "" then
+ v = "This file is processed by ConTeXt and LuaTeX."
+ else
+ v = tostring(v)
+ end
+ local h = md5.HEX(v)
+ report_info("using hashed trailer id %a (%a)",v,h)
+ pdf.settrailerid(format("[<%s> <%s>]",h,h))
+ end
+end)
+
+local function permitdetail(what)
+ local m = mapping[what]
+ if m then
+ return included[m[1]] and m[2]
+ else
+ return included[what]
+ end
+end
+
+lpdf.permitdetail = permitdetail
+
-- maybe some day we will load the xmp file at runtime
local xmp, xmpfile, xmpname = nil, nil, "lpdf-pdx.xml"
@@ -117,8 +175,8 @@ local function valid_xmp()
end
function lpdf.addxmpinfo(tag,value,check)
- local pattern = mapping[tag]
- if pattern then
+ local pattern = permitdetail(tag)
+ if type(pattern) == "string" then
xmlfillin(xmp or valid_xmp(),pattern,value,check)
end
end
@@ -129,14 +187,21 @@ local pdfaddtoinfo = lpdf.addtoinfo
local pdfaddxmpinfo = lpdf.addxmpinfo
function lpdf.addtoinfo(tag,pdfvalue,strvalue)
- pdfaddtoinfo(tag,pdfvalue)
- local value = strvalue or gsub(tostring(pdfvalue),"^%((.*)%)$","%1") -- hack
- if trace_info then
- report_info("set %a to %a",tag,value)
+ local pattern = permitdetail(tag)
+ if pattern then
+ pdfaddtoinfo(tag,pdfvalue)
+ end
+ if type(pattern) == "string" then
+ local value = strvalue or gsub(tostring(pdfvalue),"^%((.*)%)$","%1") -- hack
+ if trace_info then
+ report_info("set %a to %a",tag,value)
+ end
+ xmlfillin(xmp or valid_xmp(),pattern,value,check)
end
- pdfaddxmpinfo(tag,value)
end
+local pdfaddtoinfo = lpdf.addtoinfo -- used later
+
-- for the do-it-yourselvers
function lpdf.insertxmpinfo(pattern,whatever,prepend)
@@ -151,12 +216,6 @@ end
local t = { } for i=1,24 do t[i] = random() end
-if not pdf.getcompresslevel then
- pdf.getcompresslevel = function()
- return tex.pdfcompresslevel or tex.getcount("pdfcompresslevel")
- end
-end
-
local function flushxmpinfo()
commands.pushrandomseed()
commands.setrandomseed(os.time())
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 4ecc006d0..37983f9a4 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -420,7 +420,8 @@ return {
"pdfinclusionerrorlevel",
"pdfignoreunknownimages",
"pdfinfo",
- "pdfinfoid",
+ "pdfinfoomitdate",
+ "pdftrailerid",
"pdfinsertht",
"pdflastannot",
"pdflastlinedepth",
@@ -1044,7 +1045,8 @@ return {
"pdfinclusionerrorlevel",
"pdfignoreunknownimages",
"pdfinfo",
- "pdfinfoid",
+ "pdfinfoomitdate",
+ "pdftrailerid",
"pdfinsertht",
"pdflastannot",
"pdflastlinedepth",
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index f98bfdcb0..f0c78c1f1 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 0ab85b2c0..e9e7ae6af 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/syst-ini.mkiv b/tex/context/base/mkiv/syst-ini.mkiv
index fa8fd1162..2b665ee16 100644
--- a/tex/context/base/mkiv/syst-ini.mkiv
+++ b/tex/context/base/mkiv/syst-ini.mkiv
@@ -234,8 +234,7 @@
\let\newfam\newfamily
-
-\ifdefined\firstvalidlanguage \firstvalidlanguage\plusone \fi
+\firstvalidlanguage\plusone
% Watch out, for the moment we disable the check for already being defined
% later we will revert this but first all chardefs must be replaced.
@@ -981,10 +980,6 @@
\normalprotected\def\pdfmapline {\pdfextension mapline }
\normalprotected\def\pdftrailer {\pdfextension trailer }
\normalprotected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
-\normalprotected\gdef\pdfsuppressoptionalinfo {\pdfextension suppressoptionalinfo }
-\global \let\pdfsuppressptexinfo \pdfsuppressoptionalinfo
-\normalprotected\gdef\pdfinfoid {\pdfextension infoid }
-\normalprotected\gdef\pdfinfoomitdate {\pdfextension suppressoptionalinfo \numexpr32+64\relax}
% \chardef\pdfnofullbanner = 1
% \chardef\pdfnofilename = 2
@@ -1054,6 +1049,11 @@
\edef\pdfxformresources {\pdfvariable xformresources}
\edef\pdfpkmode {\pdfvariable pkmode}
+\edef\pdfsuppressoptionalinfo{\pdfvariable suppressoptionalinfo }
+\let \pdfsuppressptexinfo \pdfsuppressoptionalinfo
+\edef\pdftrailerid {\pdfvariable trailerid }
+\edef\pdfinfoomitdate {\pdfvariable suppressoptionalinfo \numexpr32+64\relax}
+
\normalprotected\def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount}
\normalprotected\def\maximumpdfcompression{\pdfobjcompresslevel\plusnine \pdfcompresslevel\plusnine }
\normalprotected\def\normalpdfcompression {\pdfobjcompresslevel\plusthree \pdfcompresslevel\plusthree}
@@ -1099,13 +1099,7 @@
\suppressmathparerror \plusone % \let\suppressmathparerror \relax
\suppressifcsnameerror\plusone % \let\suppressifcsnameerror\relax
-\ifdefined\matheqnogapstep % for now
- \matheqnogapstep \zerocount
-\fi
-
-%D New primitive:
-
-\ifdefined\hyphenationmin \else \newcount\hyphenationmin \fi
+\matheqnogapstep \zerocount % fr now
%D While cleaning this code up a bit I was listening to Heather Nova's \CD\ Redbird.
%D The first song on that \CD\ ends with a few lines suitable for ending this
diff --git a/tex/context/base/mkiv/tabl-tbl.mkiv b/tex/context/base/mkiv/tabl-tbl.mkiv
index 58e6b7108..36254cf1f 100644
--- a/tex/context/base/mkiv/tabl-tbl.mkiv
+++ b/tex/context/base/mkiv/tabl-tbl.mkiv
@@ -379,7 +379,7 @@
\unexpanded\def\tabl_tabulate_check_local_vrule_color_second#1%
{\relax
\ifx\m_tabl_tabulate_vrule_color_local\empty
- \gdef\m_tabl_tabulate_vrule_color{#1}%
+ \xdef\m_tabl_tabulate_vrule_color{#1}%
\else
\global\let\m_tabl_tabulate_vrule_color\m_tabl_tabulate_vrule_color_local
\global\let\m_tabl_tabulate_vrule_color_local\empty
@@ -427,95 +427,6 @@
\let\tabl_tabulate_hook_g\donothing
-% \def\tabl_tabulate_set_preamble_step#1#2% only makes sense for many tabulates
-% {\normalexpanded{\t_tabl_tabulate_preamble{\the\t_tabl_tabulate_preamble
-% \tabl_tabulate_check_local_vrule_thickness\constantdimenargument\d_tabl_tabulate_vrulethickness
-% \tabl_tabulate_check_local_vrule_color\constantemptyargument\m_tabl_tabulate_vrule_color
-% \tabl_tabulate_check_local_color\constantemptyargument\m_tabl_tabulate_color\constantnumberargument\c_tabl_tabulate_colorspan
-% \tabl_tabulate_color_side_right
-% \aligntab
-% \tabl_tabulate_column_vrule_inject
-% \tabl_tabulate_color_side_left
-% \tabl_tabulate_inject_pre_skip{\the\dimexpr\s_tabl_tabulate_pre}% get rid of plus
-% \alignmark\alignmark
-% \aligntab
-% \tabl_tabulate_color_side_both
-% \global\c_tabl_tabulate_colorspan\zerocount
-% \global\c_tabl_tabulate_column\constantnumber\c_tabl_tabulate_columns
-% \tabl_tabulate_hook_g
-% \tabl_tabulate_setups_check % unexpandable
-% \tabl_tabulate_hook_check % unexpandable
-% \ifzeropt\d_tabl_tabulate_width
-% \ifcase\c_tabl_tabulate_modus\else
-% \settrue\c_tabl_tabulate_automode
-% \fi
-% \else
-% \ifcase\c_tabl_tabulate_modus
-% \hbox to
-% \else
-% \hsize
-% \fi
-% \the\d_tabl_tabulate_width
-% \fi
-% \bgroup
-% \tabl_tabulate_bbskip
-% \bgroup % we cannot combine the if because a cell may have only one ##
-% \tabl_tabulate_hook_b
-% \c_tabl_tabulate_align\constantnumber\c_tabl_tabulate_align % needed in tag passing
-% \ifx\m_tabl_tabulate_alignment\empty \else
-% \spac_align_use_now{\m_tabl_tabulate_alignment}%
-% \fi
-% \noexpand\dostarttagged\noexpand\t!tabulatecell\noexpand\empty
-% \noexpand\dotagtabulatecell
-% \noexpand#1%
-% \ifconditional\c_tabl_tabulate_reshape
-% \tabl_tabulate_shaped_par_begin
-% \fi
-% \dotagtabulatesignal % empty cells .. todo (can be removed as soon as build)
-% \noexpand\ifnum\noexpand\c_tabl_tabulate_type=\plusone\noexpand\else
-% \the\t_tabl_tabulate_bmath % maybe later? can interfere with char 0
-% \the\t_tabl_tabulate_font
-% \the\t_tabl_tabulate_settings
-% \the\t_tabl_tabulate_before
-% \ifx\m_tabl_tabulate_text_color\empty
-% \expandafter\gobbleoneargument
-% \else
-% \expandafter\dofastcoloractivation
-% \fi\m_tabl_tabulate_text_color
-% \noexpand\fi
-% % grouping needs to be outside macros (or expandable), nice test
-% % example \NC \string \aligntab \NC which will fail otherwise (mk)
-% \bgroup
-% \tabl_tabulate_entry_before
-% \alignmark\alignmark
-% \tabl_tabulate_entry_after
-% \egroup
-% \noexpand\ifnum\noexpand\c_tabl_tabulate_type=\plusone\noexpand\else
-% \the\t_tabl_tabulate_after
-% \the\t_tabl_tabulate_emath
-% \noexpand\fi
-% \ifconditional\c_tabl_tabulate_reshape
-% \tabl_tabulate_shaped_par_end
-% \fi
-% \noexpand#2%
-% \tabl_tabulate_hook_e
-% \egroup
-% \egroup
-% \aligntab
-% \noexpand\dostoptagged
-% \tabl_tabulate_inject_post_skip{\the\dimexpr\s_tabl_tabulate_post}% get rid of plus
-% \alignmark\alignmark
-% }}%
-% \t_tabl_tabulate_dummy\expandafter{\the\t_tabl_tabulate_dummy\NC}%
-% \s_tabl_tabulate_pre.5\d_tabl_tabulate_unit\relax
-% \ifnum\c_tabl_tabulate_columns<\numexpr\c_tabl_tabulate_nofcolumns-\plusone\relax
-% \s_tabl_tabulate_post\s_tabl_tabulate_pre
-% \else
-% \s_tabl_tabulate_post\zeropoint
-% \fi
-% %\let\gettabulateexit\dogettabulateexit % still needed ?
-% \d_tabl_tabulate_width\zeropoint}
-
\def\tabl_tabulate_set_preamble_step#1#2% only makes sense for many tabulates
{\etoksapp\t_tabl_tabulate_preamble{%
\tabl_tabulate_check_local_vrule_thickness\constantdimenargument\d_tabl_tabulate_vrulethickness
@@ -887,24 +798,10 @@
\tabl_tabulate_set_width_simple
\fi}
-% \def\tabl_tabulate_set_last_entry#1% rulespec
-% {\global\let\m_tabl_tabulate_vrule_color\empty
-% \rawprocesscommalist[#1]\tabl_tabulate_set_vrule_command
-% \ifx\currenttabulationtrulespec\empty
-% \global\d_tabl_tabulate_vrulethickness\zeropoint
-% \else
-% \global\d_tabl_tabulate_vrulethickness\d_tabl_tabulate_vrulethickness_default
-% \rawprocesscommalist[#1]\tabl_tabulate_set_vrule_command
-% \fi
-% \normalexpanded{\t_tabl_tabulate_preamble{\the\t_tabl_tabulate_preamble
-% \tabl_tabulate_check_local_vrule_thickness\constantdimenargument\d_tabl_tabulate_vrulethickness
-% \tabl_tabulate_check_local_vrule_color\constantemptyargument\m_tabl_tabulate_vrule_color
-% \tabl_tabulate_column_vrule_inject}}%
-% }
-
\def\tabl_tabulate_set_last_entry#1% rulespec
- {\global\let\m_tabl_tabulate_vrule_color\empty
- \rawprocesscommalist[#1]\tabl_tabulate_set_vrule_command
+ {\global\let\m_tabl_tabulate_color\empty
+ \global\let\m_tabl_tabulate_vrule_color\empty
+ \edef\currenttabulationtrulespec{#1}%
\ifx\currenttabulationtrulespec\empty
\global\d_tabl_tabulate_vrulethickness\zeropoint
\else
@@ -914,8 +811,7 @@
\etoksapp\t_tabl_tabulate_preamble{%
\tabl_tabulate_check_local_vrule_thickness\constantdimenargument\d_tabl_tabulate_vrulethickness
\tabl_tabulate_check_local_vrule_color\constantemptyargument\m_tabl_tabulate_vrule_color
- \tabl_tabulate_column_vrule_inject}%
- }
+ \tabl_tabulate_column_vrule_inject}}
\let\settabulateentry \tabl_tabulate_set_entry % used at the lua end
\let\settabulatelastentry\tabl_tabulate_set_last_entry % used at the lua end
@@ -2153,166 +2049,6 @@
{\setlocalhsize
\hsize\localhsize}
-% \def\tabl_tabulate_process
-% {\c_tabl_tabulate_pass\plusone
-% \tabl_tabulate_check_full_content
-% \edef\v_tabl_tabulate_align{\executeifdefined{\??tabulatealigning\p_align}0}%
-% \s_tabl_tabulate_first.5\d_tabl_tabulate_unit
-% \s_tabl_tabulate_last\s_tabl_tabulate_first
-% \s_tabl_tabulate_pre\zeropoint
-% \s_tabl_tabulate_post\s_tabl_tabulate_first % was: \zeropoint
-% \global\c_tabl_tabulate_columns\zerocount
-% \global\c_tabl_tabulate_nofauto\zerocount
-% \global\c_tabl_tabulate_noflines\zerocount
-% \c_tabl_tabulate_totalnoflines\zerocount
-% \c_tabl_tabulate_minusnoflines\zerocount
-% \global\d_tabl_tabulate_width_p\zeropoint
-% \global\d_tabl_tabulate_width_w\zeropoint
-% \global\setfalse\c_tabl_tabulate_equal
-% \tabl_tabulate_pheight_reset
-% \tabskip\zeropoint
-% \ifinsidesplitfloat
-% \donetrue
-% \else\ifinsidefloat
-% \donefalse
-% \else
-% \donetrue
-% \fi\fi
-% \ifdone
-% \global\c_tabl_tabulate_repeathead\executeifdefined{\??tabulateheader\tabulationparameter\c!header}\zerocount
-% \else
-% \global\c_tabl_tabulate_repeathead\zerocount
-% \fi
-% %
-% \the\t_tabl_tabulate_initializers_first % collect more here
-% %
-% \glet\tabl_tabulate_flush_collected\empty
-% \ifdim\d_tabl_tabulate_margin>\zeropoint
-% \t_tabl_tabulate_preamble
-% {\aligntab
-% \tabl_tabulate_flush_indent
-% % \global\advance\c_tabl_tabulate_noflines\plusone
-% \strut
-% \alignmark\alignmark
-% \tabskip\d_tabl_tabulate_margin
-% \strut
-% \aligntab
-% \alignmark\alignmark
-% \tabskip\zeropoint}%
-% \else
-% \t_tabl_tabulate_preamble
-% {\aligntab
-% \tabl_tabulate_flush_indent
-% % \global\advance\c_tabl_tabulate_noflines\plusone
-% \strut
-% \alignmark\alignmark
-% \aligntab
-% \alignmark\alignmark
-% \tabskip\zeropoint}%
-% \fi
-% \d_tabl_tabulate_width\zeropoint
-% % these counters are set at the lua end
-% \c_tabl_tabulate_nofcolumns \zerocount
-% \c_tabl_tabulate_has_rule_spec_first\zerocount
-% \c_tabl_tabulate_has_rule_spec_last \zerocount
-% \clf_presettabulate{\detokenizedtabulationparameter\c!format}%
-% %
-% % \edef\totaltabulatecolumns{\the\numexpr3*\c_tabl_tabulate_columns+\plusfour}%
-% \d_tabl_tabulate_width\zeropoint
-% \tabl_tabulate_initialize_boxes\c_tabl_tabulate_columns
-% \t_tabl_tabulate_preamble\expandafter{\the\t_tabl_tabulate_preamble
-% \aligntab\alignmark\alignmark
-% \global\advance\c_tabl_tabulate_column\plusone % maybe just set it already
-% }%
-% \t_tabl_tabulate_dummy\expandafter{\the\t_tabl_tabulate_dummy
-% \NC\unskip\unskip\crcr\tabl_tabulate_flush_collected % no count
-% }%
-% \global\c_tabl_tabulate_column\zerocount
-% \tabl_tabulate_pheight_reset
-% \glet\tabl_tabulate_hook\tabl_tabulate_hook_yes
-% \ifx\p_indenting\v!no
-% \forgetparindent
-% \fi
-% \ifinsidefloat
-% \d_tabl_tabulate_indent\zeropoint
-% \else
-% \tabl_tabulate_set_local_hsize
-% \fi
-% \dontcomplain
-% \forgetall % hm, interference with preceding \forgetparindent probably bug, to be solved
-% \everypar\everytabulatepar
-% \setbox0\vbox % outside \if because of line counting
-% {\notesenabledfalse
-% \d_tabl_tabulate_indent\zeropoint
-% \settrialtypesetting % very important
-% \expandafter\halign\expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}}%
-% \ifnum\c_tabl_tabulate_nofauto>\zerocount
-% % so, even if the natural size is larger, in the final run, we force the calculated width
-% \d_tabl_tabulate_width\dimexpr\hsize-\wd0-\d_tabl_tabulate_width_p-\d_tabl_tabulate_width_w\relax
-% \ifnum\c_tabl_tabulate_nofauto>\zerocount
-% \divide\d_tabl_tabulate_width \c_tabl_tabulate_nofauto\relax
-% \fi
-% \fi
-% \ifconditional\c_tabl_tabulate_split
-% \splittopskip\strutht
-% \glet\tabl_tabulate_flush_collected_indeed\empty
-% \glet\tabl_tabulate_flush_collected\tabl_tabulate_flush_second
-% \fi
-% \c_tabl_tabulate_totalnoflines\c_tabl_tabulate_noflines
-% \c_tabl_tabulate_minusnoflines\numexpr\c_tabl_tabulate_noflines+\minusone\relax
-% \global\c_tabl_tabulate_noflines\zerocount
-% %
-% \c_tabl_tabulate_pass\plustwo % final pass
-% \the\t_tabl_tabulate_initializers_second % collect more here
-% %
-% \ifx\p_line\v!line
-% \let\HL\HR
-% \let\tabulateautoline\tabulateautorule
-% \let\tabulateline\tabulaterule
-% \fi
-% %
-% \ifcase\c_tabl_tabulate_repeathead
-% \ifinsidesplitfloat
-% \global\setbox\b_tabl_tabulate\vbox \bgroup
-% \else
-% \startframedcontent[\tabulationparameter\c!frame]%
-% \fi
-% \else
-% \global\setbox\b_tabl_tabulate\vbox \bgroup
-% \fi
-% %
-% \dostarttaggedchained\t!tabulate\empty\??tabulation
-% \dostarttagged\t!tabulaterow\empty
-% \setfalse\inhibitmargindata % new per 2012.06.13 ... really needed
-% \everycr\expandafter{\the\everycr\dostoptagged\dostarttagged\t!tabulaterow\empty}%
-% \expandafter\halign\expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}%
-% \dostoptagged
-% \dostoptagged
-% \ifhmode\par\prevdepth\strutdp\fi % nog eens beter, temporary hack
-% \ifx\p_distance\v!grid
-% \vskip-\strutdp % experimental tm-prikkels
-% \fi
-% %
-% \ifcase\c_tabl_tabulate_repeathead
-% \ifinsidesplitfloat
-% \egroup % box
-% \egroup % settings
-% \tabl_split_box\b_tabl_tabulate
-% \else
-% \stopframedcontent
-% \egroup
-% \fi
-% \else
-% \egroup % box
-% \egroup % settings
-% \tabl_split_box\b_tabl_tabulate
-% \fi
-% %
-% \ifinsidefloat \else
-% \tabulationparameter\c!after
-% \fi
-% \egroup} % whole thing
-
\def\tabl_tabulate_process
{\c_tabl_tabulate_pass\plusone
\tabl_tabulate_check_full_content
@@ -2445,7 +2181,7 @@
\dostarttagged\t!tabulaterow\empty
\setfalse\inhibitmargindata % new per 2012.06.13 ... really needed
\everycr\expandafter{\the\everycr\dostoptagged\dostarttagged\t!tabulaterow\empty}%
-% \toksapp\everycr{\dostoptagged\dostarttagged\t!tabulaterow\empty}%
+ % \toksapp\everycr{\dostoptagged\dostarttagged\t!tabulaterow\empty}%
\expandafter\halign\expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}%
\dostoptagged
\dostoptagged
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 35169f547..39ae24d0d 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 : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 03/31/16 09:55:34
+-- merge date : 03/31/16 19:47:51
do -- begin closure to overcome local limits and interference
diff --git a/tex/generic/context/luatex/luatex-pdf.tex b/tex/generic/context/luatex/luatex-pdf.tex
index e38f77c4c..81eb872ab 100644
--- a/tex/generic/context/luatex/luatex-pdf.tex
+++ b/tex/generic/context/luatex/luatex-pdf.tex
@@ -91,10 +91,6 @@
\protected\gdef\pdfmapline {\pdfextension mapline }
\protected\gdef\pdftrailer {\pdfextension trailer }
\protected\gdef\pdfglyphtounicode {\pdfextension glyphtounicode }
- \protected\gdef\pdfsuppressoptionalinfo {\pdfextension suppressoptionalinfo }
- \global \let \pdfsuppressptexinfo \pdfsuppressoptionalinfo
- \protected\gdef\pdfinfoid {\pdfextension infoid }
- \protected\gdef\pdfinfoomitdate {\pdfextension suppressoptionalinfo \numexpr32+64\relax}
\chardef\pdfnofullbanner = 1
\chardef\pdfnofilename = 2
@@ -161,6 +157,11 @@
\xdef\pdfxformresources {\pdfvariable xformresources}
\xdef\pdfpkmode {\pdfvariable pkmode}
+ \xdef\pdfsuppressoptionalinfo {\pdfvariable suppressoptionalinfo }
+ \global\let\pdfsuppressptexinfo \pdfsuppressoptionalinfo
+ \xdef\pdftrailerid {\pdfvariable trailerid }
+ \xdef\pdfinfoomitdate {\pdfvariable suppressoptionalinfo \numexpr32+64\relax}
+
% initializations
\global\pdfcompresslevel 9