From ad6c001890494bd0432aaf76940b38a997042c03 Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Thu, 31 Mar 2016 20:15:47 +0200 Subject: 2016-03-31 19:50:00 --- tex/context/base/context-version.pdf | Bin 4164 -> 4258 bytes tex/context/base/mkiv/back-pdf.lua | 24 ++ tex/context/base/mkiv/back-pdf.mkiv | 151 ++++++++--- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/core-sys.lua | 4 +- tex/context/base/mkiv/lpdf-fmt.lua | 2 +- tex/context/base/mkiv/lpdf-ini.lua | 138 ++++------- tex/context/base/mkiv/lpdf-mis.lua | 7 + tex/context/base/mkiv/lpdf-xmp.lua | 145 +++++++---- tex/context/base/mkiv/mult-prm.lua | 6 +- tex/context/base/mkiv/status-files.pdf | Bin 9123 -> 9286 bytes tex/context/base/mkiv/status-lua.pdf | Bin 267230 -> 267495 bytes tex/context/base/mkiv/syst-ini.mkiv | 20 +- tex/context/base/mkiv/tabl-tbl.mkiv | 276 +-------------------- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- tex/generic/context/luatex/luatex-pdf.tex | 9 +- 17 files changed, 321 insertions(+), 467 deletions(-) (limited to 'tex') diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 1a94bdf92..e8a938c9d 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/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 "" 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 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index 0ab85b2c0..e9e7ae6af 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf 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 -- cgit v1.2.3