summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/scite/context/scite-ctx.lua76
-rw-r--r--doc/context/documents/general/qrcs/setup-cs.pdfbin843492 -> 833609 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin841925 -> 831499 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin847112 -> 835950 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin838758 -> 829350 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin843096 -> 835751 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-cs.pdfbin359053 -> 358935 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-de.pdfbin438510 -> 438388 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-en.pdfbin356379 -> 356263 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-fr.pdfbin358911 -> 358807 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-it.pdfbin358228 -> 358110 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-nl.pdfbin357701 -> 357586 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-ro.pdfbin624938 -> 624829 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin836768 -> 825826 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-ro.pdfbin837869 -> 829455 bytes
-rw-r--r--doc/context/sources/general/fonts/fonts/fonts-extensions.tex17
-rw-r--r--doc/context/sources/general/fonts/fonts/fonts-tricks.tex86
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex.tex2
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/back-pdf.mkiv6
-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/font-con.lua2
-rw-r--r--tex/context/base/mkiv/luat-run.lua8
-rw-r--r--tex/context/base/mkiv/page-mix.lua32
-rw-r--r--tex/context/base/mkiv/page-mix.mkiv6
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin25634 -> 25626 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin251476 -> 252331 bytes
-rw-r--r--tex/context/base/mkiv/syst-ini.mkiv48
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin847112 -> 835950 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60773 -> 60775 bytes
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
-rw-r--r--tex/generic/context/luatex/luatex-pdf.tex40
34 files changed, 262 insertions, 71 deletions
diff --git a/context/data/scite/context/scite-ctx.lua b/context/data/scite/context/scite-ctx.lua
index ad768d73b..b0b1cc60e 100644
--- a/context/data/scite/context/scite-ctx.lua
+++ b/context/data/scite/context/scite-ctx.lua
@@ -827,18 +827,83 @@ local colors = { -- b g r
[8] = 0x4F4F4F, -- dark
}
--- SendEditor(SCI_COLOURISE, 0, -1) -- forces styling
+-- in principle, when we could inject some funny symbol that is nto part of the
+-- stream and/or use a different extra styling for each snippet then selection
+-- would work and rendering would look better too ... one problem is that a font
+-- rendering can collapse characters due to font features
+
+-- function OnChar(c)
+--
+-- cat = editor.CharAt
+--
+-- editor.CodePage = SC_CP_UTF8
+-- editor.Lexer = SCLEX_CONTAINER
+--
+-- if not bidi then
+-- bidi = require("context.scite-ctx-bidi")
+-- end
+--
+-- local line = editor:LineFromPosition(editor.CurrentPos)
+-- local str = editor:GetLine(line)
+-- local len = #str
+-- local bol = editor:PositionFromLine(line)
+--
+-- local t = { }
+-- local a = { }
+-- local n = 0
+-- local i = 0
+--
+-- local v
+-- while i < len do
+-- n = n + 1
+-- v, s = toutfcode(i)
+-- t[n] = v
+-- a[n] = s
+-- i = i + s
+-- end
+--
+-- local t = bidi.process(t)
+--
+-- local defaultcolor = mapping.l
+-- local mirrorcolor = 1
+--
+-- local lastcolor = -1
+-- local runlength = 0
+--
+-- editor:StartStyling(bol,INDICS_MASK)
+-- for i=1,n do
+-- local ti = t[i]
+-- local direction = ti.direction
+-- local mirror = t[i].mirror
+-- local color = (mirror and mirrorcolor) or (direction and mapping[direction]) or defaultcolor
+-- if color == lastcolor then
+-- runlength = runlength + a[i]
+-- else
+-- if runlength > 0 then
+-- editor:SetStyling(runlength,INDIC_STRIKE)
+-- end
+-- lastcolor = color
+-- runlength = a[i]
+-- end
+-- end
+-- if runlength > 0 then
+-- editor:SetStyling(runlength,INDIC_STRIKE)
+-- end
+-- editor:SetStyling(2,31)
+--
+-- dirty[props.FileNameExt] = true
+--
+-- end
function show_bidi()
cat = editor.CharAt
editor.CodePage = SC_CP_UTF8
+ editor.Lexer = SCLEX_CONTAINER
- editor.Lexer = SCLEX_CONTAINER
-
- for i=1,#colors do
- editor.StyleFore[i] = colors[i]
+ for i=1,#colors do -- 0,#colors
+ editor.StyleFore[i] = colors[i]
end
if not bidi then
@@ -899,6 +964,7 @@ function show_bidi()
end
editor:SetStyling(2,31)
+-- editor:StartStyling(0,31)
dirty[props.FileNameExt] = true
diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index 5bf40eedd..79755c1de 100644
--- a/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index e013bd08c..870abf15a 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 59d9ea0c1..1d8b2788a 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index 47280e636..80356c268 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index 50858a978..cf7967076 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
index 54bd74e36..a87569c5e 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
index bbd32c9e3..273d9a418 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
index d402b0401..632e7724d 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
index d7901af50..11fe1bca1 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
index bf52b6925..a21650aac 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
index ae4a83ae8..52a71db58 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
index e4046454c..f9aef80e4 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index 0746d404c..05d8b86c6 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index f9c650582..432c9324f 100644
--- a/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/doc/context/sources/general/fonts/fonts/fonts-extensions.tex b/doc/context/sources/general/fonts/fonts/fonts-extensions.tex
index 26b3d5f2d..5800f2c57 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-extensions.tex
+++ b/doc/context/sources/general/fonts/fonts/fonts-extensions.tex
@@ -797,6 +797,23 @@ We use the following example. The results are shown in \in {figure}
\getbuffer [example]
\stopplacefigure
+You can see what happens in \in {figure} [expansion:visualized].
+
+\startbuffer[example]
+ \setupalign[hz]
+ \enabletrackers[*expansion*]
+ \definefontfeature[boundingbox][boundingbox={frame,empty}]
+ \definedfont[Serif*default,quality,boundingbox @ 12.1pt]
+ \samplefile{sapolsky}\par
+ \disabletrackers[*expansion*]
+\stopbuffer
+
+\typebuffer[example]
+
+\startplacefigure[reference=expansion:visualized,title=The injected expansion kerns.]
+ \getbuffer [example]
+\stopplacefigure
+
\startsubsubject[title=Expansion and kerning]
When we expand glyphs we also need to look at the font kerns between them. In the
diff --git a/doc/context/sources/general/fonts/fonts/fonts-tricks.tex b/doc/context/sources/general/fonts/fonts/fonts-tricks.tex
index 86517bd57..b8903b5ed 100644
--- a/doc/context/sources/general/fonts/fonts/fonts-tricks.tex
+++ b/doc/context/sources/general/fonts/fonts/fonts-tricks.tex
@@ -299,4 +299,90 @@ The result is shown in \in {figure} [fig:alternativestyle]. Relevant commands ar
\stopsection
+\startsection[title={A virtual hack}]
+
+Here is some virtual trickery. A virtual font is just a font but instead of a
+character being a reference to a slot in a font (often via an index) it
+constructs a glyph from whatever characters, rules, displacements, inline \PDF\
+code, etc. We use them a lot deep down in \CONTEXT. The next example defines two
+characters represented by rules. This definition is about as minimalistic as
+reasonable and demonstrates how we can apply expansion (aka hz) to such a font.
+\footnote {You need \LUATEX\ 1.08 or later for this.} We store the font id (a
+number) in a macro. Watch how we don't refer to a glyph in a font. Because we
+don't specify its type as \type {virtual} we can leave out the \type {font}
+table. After all, we don't refer to real glyphs.
+
+\startbuffer
+\startluacode
+local d = 400000 -- just over 6pt
+local a = font.define {
+ characters = {
+ [string.byte("A")] =
+ {
+ width = d,
+ depth = d,
+ commands = { { "down", d }, { "rule", d, d } },
+ expansion_factor = 1000,
+ },
+ [string.byte("B")] =
+ {
+ width = d,
+ height = d,
+ commands = { { "rule", d, d } },
+ expansion_factor = 500,
+ },
+
+ },
+ parameters = {
+ space = 2*d,
+ space_stretch = d,
+ space_shrink = d,
+ },
+ stretch = 8,
+ shrink = 8,
+ step = 2,
+ name = "foo"
+}
+
+tex.count.scratchcounter = a
+\stopluacode
+
+\edef\MyFontID{\the\scratchcounter}
+\stopbuffer
+
+\typebuffer \getbuffer
+
+% \enabletrackers[*expans*]
+
+\startbuffer
+\startoverlay
+ {\vbox \bgroup
+ \setuptolerance[verytolerant,stretch]
+ \setfontid\MyFontID
+ \dorecurse{5}{ABABABABABABABABABABABABABABABABA }
+ \egroup}
+ {\vbox \bgroup
+ \normaladjustspacing2
+ \middlegray
+ \setuptolerance[verytolerant,stretch]
+ \setfontid\MyFontID
+ \dorecurse{5}{ABABABABABABABABABABABABABABABABA }
+ \egroup}
+\stopoverlay
+\stopbuffer
+
+We test this with some rather low level code and show the result in \in {figure}
+[fig:virtualhack]. Of course you will never define a font this way if only
+because we don't set important parameters and this version is not generic in the
+sense that it scales well. You can find better examples elsewhere in the manual
+and in the distribution.
+
+\typebuffer
+
+\startplacefigure[title={A virtual hack.},reference=fig:virtualhack]
+ \getbuffer
+\stopplacefigure
+
+\stopsection
+
\stopchapter
diff --git a/doc/context/sources/general/manuals/luatex/luatex.tex b/doc/context/sources/general/manuals/luatex/luatex.tex
index 33a2327c0..42e487bde 100644
--- a/doc/context/sources/general/manuals/luatex/luatex.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex.tex
@@ -44,7 +44,7 @@
\dontcomplain
\startdocument
- [status=beta,
+ [status=experimental,
version=1.07.0]
\startnotmode[*export]
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 87fafab33..f962c4cc0 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2018.02.09 00:04}
+\newcontextversion{2018.02.12 08:53}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 708e85fbc..bebdad69c 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.02.09 00:04}
+\edef\contextversion{2018.02.12 08:53}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/back-pdf.mkiv b/tex/context/base/mkiv/back-pdf.mkiv
index 00416e2dc..3b0dd7852 100644
--- a/tex/context/base/mkiv/back-pdf.mkiv
+++ b/tex/context/base/mkiv/back-pdf.mkiv
@@ -73,8 +73,8 @@
\unexpanded\def\pdffontattr {\unsupportedpdfprimitive\pdffontattr}
\unexpanded\def\pdfglyphtounicode{\unsupportedpdfprimitive\pdfglyphtounicode}
-\unexpanded\def\pdfannot{\clf_pdfannot}
-\unexpanded\def\pdfdest {\clf_pdfdest}
+\unexpanded\def\pdfannot {\clf_pdfannot}
+\unexpanded\def\pdfdest {\clf_pdfdest}
%D Here we do intercept (silently) what gets passed. One should use the \CONTEXT\
%D interfaces instead.
@@ -168,7 +168,7 @@
\normalprotected\def\pdfliteral {\pdfextension literal }
\normalprotected\def\pdfobj {\pdfextension obj }
- \def\pdflastobj {\pdffeedback lastobj}
+ \def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
\normalprotected\def\pdfrefobj {\pdfextension refobj }
\normalprotected\def\pdfrestore {\pdfextension restore\relax}
\normalprotected\def\pdfsave {\pdfextension save\relax}
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 83f7a4a50..115655526 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{2018.02.09 00:04}
+\newcontextversion{2018.02.12 08:53}
%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 95178bd97..cf9008203 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -41,7 +41,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.02.09 00:04}
+\edef\contextversion{2018.02.12 08:53}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/font-con.lua b/tex/context/base/mkiv/font-con.lua
index bad4140f3..86c98c16d 100644
--- a/tex/context/base/mkiv/font-con.lua
+++ b/tex/context/base/mkiv/font-con.lua
@@ -1083,7 +1083,7 @@ hashmethods.normal = function(list)
end
--[[ldx--
-<p>In principle we can share tfm tables when we are in node for a font, but then
+<p>In principle we can share tfm tables when we are in need for a font, but then
we need to define a font switch as an id/attr switch which is no fun, so in that
case users can best use dynamic features ... so, we will not use that speedup. Okay,
when we get rid of base mode we can optimize even further by sharing, but then we
diff --git a/tex/context/base/mkiv/luat-run.lua b/tex/context/base/mkiv/luat-run.lua
index f653e258f..2c3ba0b4d 100644
--- a/tex/context/base/mkiv/luat-run.lua
+++ b/tex/context/base/mkiv/luat-run.lua
@@ -133,7 +133,13 @@ callbacks.register('process_input_buffer', false, "actions perf
callbacks.register('process_output_buffer', false, "actions performed when writing data")
callbacks.register("pre_dump", pre_dump_actions, "lua related finalizers called before we dump the format") -- comes after \everydump
-callbacks.register("finish_synctex_callback", wrapup_synctex, "rename temporary synctex file")
+
+if LUATEXFUNCTIONALITY and LUATEXFUNCTIONALITY > 6505 then
+ callbacks.register("finish_synctex", wrapup_synctex, "rename temporary synctex file")
+ callbacks.register('wrapup_run', false, "actions performed after closing files")
+else
+ callbacks.register("finish_synctex_callback", wrapup_synctex, "rename temporary synctex file")
+end
-- an example:
diff --git a/tex/context/base/mkiv/page-mix.lua b/tex/context/base/mkiv/page-mix.lua
index b0e1783e4..107ac1410 100644
--- a/tex/context/base/mkiv/page-mix.lua
+++ b/tex/context/base/mkiv/page-mix.lua
@@ -69,6 +69,8 @@ local getpenalty = nuts.getpenalty
local getwidth = nuts.getwidth
local getheight = nuts.getheight
local getdepth = nuts.getdepth
+local traverse_id = nuts.traverse_id
+local traverse = nuts.traverse
local theprop = nuts.theprop
@@ -277,10 +279,14 @@ local function preparesplit(specification) -- a rather large function
if nofcolumns == 0 then
nofcolumns = 1
end
- local preheight = specification.preheight or 0
- local extra = specification.extra or 0
- local maxheight = specification.maxheight
- local optimal = originalheight/nofcolumns
+ local preheight = specification.preheight or 0
+ local extra = specification.extra or 0
+ local maxheight = specification.maxheight
+ local optimal = originalheight/nofcolumns
+ local noteheight = specification.noteheight or 0
+
+ maxheight = maxheight - noteheight
+
if specification.balance ~= v_yes then
optimal = maxheight
end
@@ -823,6 +829,23 @@ local function report_deltas(result,str)
report_state("%s, cycles %s, deltas % | t",str,result.cycle or 1,t)
end
+-- local function xxcollectinserts(h)
+-- local skips, total, order = 0, 0, 0
+-- print(h)
+-- if h then
+-- h = getlist(h)
+-- for n in traverse(h) do
+-- print(tonode(n))
+-- end
+-- for n in traverse_id(insert_code,h) do
+-- order = order + 1
+-- total = total + getheight(n)
+-- skips = skips + structures.notes.check_spacing(getsubtype(n),order)
+-- end
+-- end
+-- return skips, total
+-- end
+
local function setsplit(specification)
splitruns = splitruns + 1
if trace_state then
@@ -1023,6 +1046,7 @@ implement {
{ "box", "integer" },
{ "nofcolumns", "integer" },
{ "maxheight", "dimen" },
+ { "noteheight", "dimen" },
{ "step", "dimen" },
{ "cycles", "integer" },
{ "preheight", "dimen" },
diff --git a/tex/context/base/mkiv/page-mix.mkiv b/tex/context/base/mkiv/page-mix.mkiv
index 9fa80275a..684ebc585 100644
--- a/tex/context/base/mkiv/page-mix.mkiv
+++ b/tex/context/base/mkiv/page-mix.mkiv
@@ -665,10 +665,16 @@
\unexpanded\def\page_mix_routine_construct#1%
{\d_page_mix_max_height\mixedcolumnsparameter\c!maxheight % can have changed due to header=high
+ \ifconditional\c_page_mix_process_notes
+ \totalnoteheight\zeropoint
+ \else
+ \settotalinsertionheight
+ \fi
\clf_mixsetsplit
box \b_page_mix_collected
nofcolumns \c_page_mix_n_of_columns
maxheight \d_page_mix_max_height
+ noteheight \totalnoteheight
step \d_page_mix_balance_step
cycles \c_page_mix_balance_cycles
preheight \d_page_mix_preceding_height
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index f81e25bd6..c945f4539 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 ede502605..2f92e43e0 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 e76a53a02..4b5cc616b 100644
--- a/tex/context/base/mkiv/syst-ini.mkiv
+++ b/tex/context/base/mkiv/syst-ini.mkiv
@@ -1016,30 +1016,30 @@
% \chardef\pdfnotrapped = 256
% \chardef\pdfnoid = 512
-\def\pdftexversion {\pdffeedback version}
-\def\pdftexrevision {\pdffeedback revision}
-\def\pdflastlink {\pdffeedback lastlink}
-\def\pdfretval {\pdffeedback retval}
-\def\pdflastobj {\pdffeedback lastobj}
-\def\pdflastannot {\pdffeedback lastannot}
-\def\pdfxformname {\pdffeedback xformname}
-\def\pdfcreationdate {\pdffeedback creationdate}
-\def\pdffontname {\pdffeedback fontname}
-\def\pdffontobjnum {\pdffeedback fontobjnum}
-\def\pdffontsize {\pdffeedback fontsize}
-\def\pdfpageref {\pdffeedback pageref}
-\def\pdfcolorstackinit {\pdffeedback colorstackinit}
-
-\let\pdfxform \saveboxresource
-\let\pdflastxform \lastsavedboxresourceindex
-\let\pdfrefxform \useboxresource
-\let\pdfximage \saveimageresource
-\let\pdflastximage \lastsavedimageresourceindex
-\let\pdflastximagepages \lastsavedimageresourcepages
-\let\pdfrefximage \useimageresource
-\let\pdfsavepos \savepos
-\let\pdflastxpos \lastxpos
-\let\pdflastypos \lastypos
+\def\pdftexversion {\numexpr\pdffeedback version\relax}
+\def\pdftexrevision {\pdffeedback revision}
+\def\pdflastlink {\numexpr\pdffeedback lastlink\relax}
+\def\pdfretval {\numexpr\pdffeedback retval\relax}
+\def\pdflastobj {\numexpr\pdffeedback lastobj\relax}
+\def\pdflastannot {\numexpr\pdffeedback lastannot\relax}
+\def\pdfxformname {\numexpr\pdffeedback xformname\relax}
+\def\pdfcreationdate {\pdffeedback creationdate}
+\def\pdffontname {\numexpr\pdffeedback fontname\relax}
+\def\pdffontobjnum {\numexpr\pdffeedback fontobjnum\relax}
+\def\pdffontsize {\dimexpr\pdffeedback fontsize\relax}
+\def\pdfpageref {\numexpr\pdffeedback pageref\relax}
+\def\pdfcolorstackinit {\pdffeedback colorstackinit}
+
+\let\pdfxform \saveboxresource
+\let\pdflastxform \lastsavedboxresourceindex
+\let\pdfrefxform \useboxresource
+\let\pdfximage \saveimageresource
+\let\pdflastximage \lastsavedimageresourceindex
+\let\pdflastximagepages \lastsavedimageresourcepages
+\let\pdfrefximage \useimageresource
+\let\pdfsavepos \savepos
+\let\pdflastxpos \lastxpos
+\let\pdflastypos \lastypos
\edef\pdfcompresslevel {\pdfvariable compresslevel} \pdfcompresslevel \plusnine
\edef\pdfobjcompresslevel {\pdfvariable objcompresslevel} \pdfobjcompresslevel \plusone
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 59d9ea0c1..1d8b2788a 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 2f33ce421..a75adc464 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index b7af4225a..cab8b8331 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 : 02/09/18 00:04:37
+-- merge date : 02/12/18 08:53:04
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 372b3bf09..b698285e3 100644
--- a/tex/generic/context/luatex/luatex-pdf.tex
+++ b/tex/generic/context/luatex/luatex-pdf.tex
@@ -105,33 +105,19 @@
% converted
- %gdef\pdftexversion {\numexpr\pdffeedback version\relax}
- %gdef\pdftexrevision {\pdffeedback revision}
- %gdef\pdflastlink {\numexpr\pdffeedback lastlink\relax}
- %gdef\pdfretval {\numexpr\pdffeedback retval\relax}
- %gdef\pdflastobj {\numexpr\pdffeedback lastobj\relax}
- %gdef\pdflastannot {\numexpr\pdffeedback lastannot\relax}
- %gdef\pdfxformname {\numexpr\pdffeedback xformname\relax}
- %gdef\pdfcreationdate {\pdffeedback creationdate}
- %gdef\pdffontname {\numexpr\pdffeedback fontname\relax}
- %gdef\pdffontobjnum {\numexpr\pdffeedback fontobjnum\relax}
- %gdef\pdffontsize {\dimexpr\pdffeedback fontsize\relax}
- %gdef\pdfpageref {\numexpr\pdffeedback pageref\relax}
- %gdef\pdfcolorstackinit {\pdffeedback colorstackinit}
-
- \gdef\pdftexversion {\pdffeedback version}
- \gdef\pdftexrevision {\pdffeedback revision}
- \gdef\pdflastlink {\pdffeedback lastlink}
- \gdef\pdfretval {\pdffeedback retval}
- \gdef\pdflastobj {\pdffeedback lastobj}
- \gdef\pdflastannot {\pdffeedback lastannot}
- \gdef\pdfxformname {\pdffeedback xformname}
- \gdef\pdfcreationdate {\pdffeedback creationdate}
- \gdef\pdffontname {\pdffeedback fontname}
- \gdef\pdffontobjnum {\pdffeedback fontobjnum}
- \gdef\pdffontsize {\pdffeedback fontsize}
- \gdef\pdfpageref {\pdffeedback pageref}
- \gdef\pdfcolorstackinit {\pdffeedback colorstackinit}
+ \gdef\pdftexversion {\numexpr\pdffeedback version\relax}
+ \gdef\pdftexrevision {\pdffeedback revision}
+ \gdef\pdflastlink {\numexpr\pdffeedback lastlink\relax}
+ \gdef\pdfretval {\numexpr\pdffeedback retval\relax}
+ \gdef\pdflastobj {\numexpr\pdffeedback lastobj\relax}
+ \gdef\pdflastannot {\numexpr\pdffeedback lastannot\relax}
+ \gdef\pdfxformname {\numexpr\pdffeedback xformname\relax}
+ \gdef\pdfcreationdate {\pdffeedback creationdate}
+ \gdef\pdffontname {\numexpr\pdffeedback fontname\relax}
+ \gdef\pdffontobjnum {\numexpr\pdffeedback fontobjnum\relax}
+ \gdef\pdffontsize {\dimexpr\pdffeedback fontsize\relax}
+ \gdef\pdfpageref {\numexpr\pdffeedback pageref\relax}
+ \gdef\pdfcolorstackinit {\pdffeedback colorstackinit}
% registers