summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2017-08-15 13:12:53 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2017-08-15 13:12:53 +0200
commit7fbe8caaed88379118eb18afea42c0d75297fdca (patch)
tree3bef8ab7d37ac50a620efd02196ed3a3bded14c4 /tex
parentb2f0a60af9b448c65f70e2f54f37fc837f26dd7a (diff)
downloadcontext-7fbe8caaed88379118eb18afea42c0d75297fdca.tar.gz
2017-08-15 12:41:00
Diffstat (limited to 'tex')
-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/char-def.lua15
-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/math-ali.mkiv14
-rw-r--r--tex/context/base/mkiv/math-arr.mkiv2
-rw-r--r--tex/context/base/mkiv/math-noa.lua127
-rw-r--r--tex/context/base/mkiv/page-mul.mkiv2
-rw-r--r--tex/context/base/mkiv/page-one.mkiv2
-rw-r--r--tex/context/base/mkiv/page-set.mkiv4
-rw-r--r--tex/context/base/mkiv/page-txt.mkvi4
-rw-r--r--tex/context/base/mkiv/scrn-bar.mkvi6
-rw-r--r--tex/context/base/mkiv/scrn-hlp.mkvi2
-rw-r--r--tex/context/base/mkiv/scrn-wid.mkvi2
-rw-r--r--tex/context/base/mkiv/spac-ver.mkiv2
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin25770 -> 25767 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin426432 -> 426428 bytes
-rw-r--r--tex/context/base/mkiv/strc-flt.mkvi8
-rw-r--r--tex/context/base/mkiv/strc-ref.mkvi8
-rw-r--r--tex/context/base/mkiv/strc-ren.mkiv2
-rw-r--r--tex/context/base/mkiv/strc-sec.mkiv2
-rw-r--r--tex/context/base/mkiv/tabl-ntb.mkiv8
-rw-r--r--tex/context/base/mkiv/tabl-tab.mkiv4
-rw-r--r--tex/context/base/mkiv/typo-scr.mkiv10
-rw-r--r--tex/context/interface/mkiv/context-en.xml4
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin818372 -> 818428 bytes
-rw-r--r--tex/context/interface/mkiv/i-mathalignment.xml4
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60776 -> 60775 bytes
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
30 files changed, 173 insertions, 69 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 152d48973..492911707 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{2017.08.14 23:57}
+\newcontextversion{2017.08.15 12:35}
%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 f7c3ebd65..8028a2587 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{2017.08.14 23:57}
+\edef\contextversion{2017.08.15 12:35}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/char-def.lua b/tex/context/base/mkiv/char-def.lua
index 4efef117f..c35832cc3 100644
--- a/tex/context/base/mkiv/char-def.lua
+++ b/tex/context/base/mkiv/char-def.lua
@@ -63323,7 +63323,7 @@ characters.data={
mathclass="relation",
mathextensible="h",
mathname="Leftrightarrow",
- mathlist={ 0x3C, 0x3D, 0x3E },
+ mathlist={ 0x3C, 0x3D, 0x3D, 0x3E },
unicodeslot=0x21D4,
},
[0x21D5]={
@@ -64887,7 +64887,7 @@ characters.data={
description="NOT EQUAL TO",
direction="on",
linebreak="ai",
- mathlist={ 0x21, 0x3D },
+ mathlist={ 0x2F, 0x3D },
mathspec={
{
class="relation",
@@ -65125,7 +65125,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="ngeq",
- mathlist={ 0x2F, 0x3D, 0x3E },
+ mathlist={ 0x2F, 0x3E, 0x3D },
mirror=0x2270,
specials={ "char", 0x2265, 0x338 },
unicodeslot=0x2271,
@@ -66280,6 +66280,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="eqless",
+ mathlist={ 0x3D, 0x3C },
mirror=0x22DD,
unicodeslot=0x22DC,
},
@@ -66290,6 +66291,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="eqgtr",
+ mathlist={ 0x3D, 0x3E },
mirror=0x22DC,
unicodeslot=0x22DD,
},
@@ -76565,6 +76567,7 @@ characters.data={
mathclass="relation",
mathextensible="l",
mathname="longleftarrow",
+ mathlist={ 0x3C, 0x2212, 0x2212 },
unicodeslot=0x27F5,
},
[0x27F6]={
@@ -76577,6 +76580,7 @@ characters.data={
mathextensible="r",
mathfiller="rightarrowfill",
mathname="longrightarrow",
+ mathlist={ 0x2212, 0x2212, 0x3E },
mathparent=0x2192,
unicodeslot=0x27F6,
},
@@ -76590,6 +76594,7 @@ characters.data={
mathextensible="h",
mathfiller="leftrightarrowfill",
mathname="longleftrightarrow",
+ mathlist={ 0x3C, 0x2212, 0x2212, 0x3E },
mathparent=0x2190,
unicodeslot=0x27F7,
},
@@ -76628,7 +76633,7 @@ characters.data={
mathextensible="h",
mathfiller="Leftrightarrowfill",
mathname="Longleftrightarrow",
- mathlist={ 0x3C, 0x3D, 0x3D, 0x3E },
+ mathlist={ 0x3C, 0x3D, 0x3D, 0x3D, 0x3E },
unicodeslot=0x27FA,
},
[0x27FB]={
@@ -81520,6 +81525,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="lesseqqgtr",
+ mathlist={ 0x3C, 0x3D, 0x3E },
mirror=0x2A8C,
unicodeslot=0x2A8B,
},
@@ -81530,6 +81536,7 @@ characters.data={
linebreak="al",
mathclass="relation",
mathname="gtreqqless",
+ mathlist={ 0x3E, 0x3D, 0x3C },
mirror=0x2A8B,
unicodeslot=0x2A8C,
},
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 95b1ebaa0..a2bb4bb2b 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{2017.08.14 23:57}
+\newcontextversion{2017.08.15 12:35}
%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 6c68ae559..87dfa448f 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{2017.08.14 23:57}
+\edef\contextversion{2017.08.15 12:35}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/math-ali.mkiv b/tex/context/base/mkiv/math-ali.mkiv
index 7af5fab97..f251f0a77 100644
--- a/tex/context/base/mkiv/math-ali.mkiv
+++ b/tex/context/base/mkiv/math-ali.mkiv
@@ -358,12 +358,17 @@
\def\math_alignment_snap_start
{\ifgridsnapping
- \snaptogrid[\v!math]\vbox\bgroup
+ \edef\p_math_alignment_grid{\mathalignmentparameter\c!grid}%
+ \ifx\p_math_alignment_grid\v!no\else
+ \snaptogrid[\p_math_alignment_grid]\vbox\bgroup
+ \fi
\fi}
\def\math_alignment_snap_stop
{\ifgridsnapping
- \egroup
+ \ifx\p_math_alignment_grid\v!no\else
+ \egroup
+ \fi
\fi}
% end of experimental
@@ -376,10 +381,10 @@
\def\math_alignment_start_indeed[#1]%
{% \begingroup not permitted ($$...assignments...\halign... )
- \math_alignment_snap_start
\iffirstargument
\setupmathalignment[\currentmathalignment][#1]% bad! ungrouped
\fi
+ \math_alignment_snap_start
\the\everymathalignment
\c_math_eqalign_column\zerocount
\edef\p_math_alignment_number{\mathalignmentparameter\c!number}%
@@ -411,7 +416,8 @@
\setupmathalignment
[\c!n=2,
\c!m=1,
- \c!distance=\emwidth]
+ \c!distance=\emwidth,
+ \c!grid=\v!math]
\definemathalignment[align] % default case (this is what amstex users expect)
\definemathalignment[\v!mathalignment] % prefered case (this is cleaner, less clashing)
diff --git a/tex/context/base/mkiv/math-arr.mkiv b/tex/context/base/mkiv/math-arr.mkiv
index 28aad8ada..6a70f57b3 100644
--- a/tex/context/base/mkiv/math-arr.mkiv
+++ b/tex/context/base/mkiv/math-arr.mkiv
@@ -99,7 +99,7 @@
\ifdim\wd4=\dimen0\else
\setbox4\hbox to \dimen0{#3\displaystyle}%
\fi
- \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}\limits\normalsuperscript{\box0}\normalsubscript{\box2}}%
+ \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}\limits\normalsuperscript{\box0}\normalsubscript{\box2}}% pack ?
\endgroup}
\let\math_arrows_construct_single\math_arrows_construct
diff --git a/tex/context/base/mkiv/math-noa.lua b/tex/context/base/mkiv/math-noa.lua
index acd2c0dc6..048d51d1e 100644
--- a/tex/context/base/mkiv/math-noa.lua
+++ b/tex/context/base/mkiv/math-noa.lua
@@ -52,6 +52,7 @@ local trace_processing = false registertracker("math.processing", function
local trace_analyzing = false registertracker("math.analyzing", function(v) trace_analyzing = v end)
local trace_normalizing = false registertracker("math.normalizing", function(v) trace_normalizing = v end)
local trace_collapsing = false registertracker("math.collapsing", function(v) trace_collapsing = v end)
+local trace_fixing = false registertracker("math.fixing", function(v) trace_foxing = v end)
local trace_patching = false registertracker("math.patching", function(v) trace_patching = v end)
local trace_goodies = false registertracker("math.goodies", function(v) trace_goodies = v end)
local trace_variants = false registertracker("math.variants", function(v) trace_variants = v end)
@@ -68,6 +69,7 @@ local report_processing = logreporter("mathematics","processing")
local report_remapping = logreporter("mathematics","remapping")
local report_normalizing = logreporter("mathematics","normalizing")
local report_collapsing = logreporter("mathematics","collapsing")
+local report_fixing = logreporter("mathematics","fixing")
local report_patching = logreporter("mathematics","patching")
local report_goodies = logreporter("mathematics","goodies")
local report_variants = logreporter("mathematics","variants")
@@ -1680,12 +1682,12 @@ do
local function fixsupscript(parent,current,current_char,new_char)
if new_char ~= current_char and new_char ~= true then
setchar(current,new_char)
- if trace_collapsing then
- report_collapsing("fixing subscript, replacing supscript %U by %U",current_char,new_char)
+ if trace_fixing then
+ report_fixing("fixing subscript, replacing superscript %U by %U",current_char,new_char)
end
else
- if trace_collapsing then
- report_collapsing("fixing subscript, supscript %U",current_char)
+ if trace_fixing then
+ report_fixing("fixing subscript, superscript %U",current_char)
end
end
if options_supported then
@@ -1693,14 +1695,68 @@ do
end
end
- local function movesubscript(parent,current_nucleus,current_char,new_char)
+-- local function movesubscript(parent,current_nucleus,current_char,new_char)
+-- local prev = getprev(parent)
+-- if prev and getid(prev) == math_noad then
+-- local psup = getsup(prev)
+-- local psub = getsub(prev)
+-- if not psup and not psub then
+-- -- {f} {'}_n => f_n^'
+-- fixsupscript(prev,current_nucleus,current_char,new_char)
+-- local nucleus = getnucleus(parent)
+-- local sub = getsub(parent)
+-- setsup(prev,nucleus)
+-- setsub(prev,sub)
+-- local dummy = copy_node(nucleus)
+-- setchar(dummy,0)
+-- setnucleus(parent,dummy)
+-- setsub(parent)
+-- elseif not psup then
+-- -- {f} {'}_n => f_n^'
+-- fixsupscript(prev,current_nucleus,current_char,new_char)
+-- local nucleus = getnucleus(parent)
+-- setsup(prev,nucleus)
+-- local dummy = copy_node(nucleus)
+-- setchar(dummy,0)
+-- setnucleus(parent,dummy)
+-- end
+-- end
+-- end
+
+-- fixscripts[math_char] = function(pointer,what,n,parent,nested) -- todo: switch to turn in on and off
+-- if parent then
+-- local nucleus = getnucleus(parent)
+-- if getid(nucleus) == math_char then
+-- local sub = getsub(parent)
+-- local sup = getsup(parent)
+-- if sup and getid(sup) == math_char then
+-- local oldchar = getchar(sup)
+-- local newchar = movesub[oldchar]
+-- if newchar then
+-- fixsupscript(parent,sup,oldchar,newchar)
+-- end
+-- end
+-- if sub then
+-- local oldchar = getchar(nucleus)
+-- local newchar = movesub[oldchar]
+-- if newchar then
+-- movesubscript(parent,nucleus,oldchar,newchar)
+-- end
+-- end
+-- end
+-- end
+-- end
+
+ -- move this inline
+
+ local function movesubscript(parent,current_nucleus,oldchar,newchar)
local prev = getprev(parent)
if prev and getid(prev) == math_noad then
local psup = getsup(prev)
local psub = getsub(prev)
if not psup and not psub then
-- {f} {'}_n => f_n^'
- fixsupscript(prev,current_nucleus,current_char,new_char)
+ fixsupscript(prev,current_nucleus,oldchar,newchar)
local nucleus = getnucleus(parent)
local sub = getsub(parent)
setsup(prev,nucleus)
@@ -1711,7 +1767,7 @@ do
setsub(parent)
elseif not psup then
-- {f} {'}_n => f_n^'
- fixsupscript(prev,current_nucleus,current_char,new_char)
+ fixsupscript(prev,current_nucleus,oldchar,newchar)
local nucleus = getnucleus(parent)
setsup(prev,nucleus)
local dummy = copy_node(nucleus)
@@ -1723,24 +1779,47 @@ do
fixscripts[math_char] = function(pointer,what,n,parent,nested) -- todo: switch to turn in on and off
if parent then
- local nucleus = getnucleus(parent)
- if getid(nucleus) == math_char then
- local current_char = getchar(nucleus)
- local sub = getsub(parent)
- local sup = getsup(parent)
- if sup and getid(sup) == math_char then
- local oldchar = getchar(sup)
- local newchar = movesub[oldchar]
- if newchar then
- fixsupscript(parent,sup,oldchar,newchar)
- end
- end
- if sub then
- local oldchar = getchar(nucleus)
- local newchar = movesub[oldchar]
- if newchar then
- movesubscript(parent,nucleus,oldchar,newchar)
+ local oldchar = getchar(pointer)
+ local newchar = movesub[oldchar]
+ if newchar then
+ local nuc = getnucleus(parent)
+ if pointer == nuc then
+ local sub = getsub(pointer)
+ local sup = getsup(pointer)
+ if sub then
+ if sup then
+-- print("[char] sub sup")
+ else
+-- print("[char] sub ---")
+ end
+ elseif sup then
+-- print("[char] --- sup")
+ else
+ local prev = getprev(parent)
+ if prev and getid(prev) == math_noad then
+ local psub = getsub(prev)
+ local psup = getsup(prev)
+ if psub then
+ if psup then
+-- print("sub sup [char] --- ---")
+ else
+ -- {f} {'}_n => f_n^'
+-- print("sub --- [char] --- ---")
+ movesubscript(parent,nuc,oldchar,newchar)
+ end
+ elseif psup then
+-- print("--- sup [char] --- ---")
+ else
+ -- {f} {'}_n => f_n^'
+-- print("[char] --- ---")
+ movesubscript(parent,nuc,oldchar,newchar)
+ end
+ else
+-- print("no prev [char]")
+ end
end
+ else
+-- print("[char]")
end
end
end
diff --git a/tex/context/base/mkiv/page-mul.mkiv b/tex/context/base/mkiv/page-mul.mkiv
index fcad2c4c6..14b9eb992 100644
--- a/tex/context/base/mkiv/page-mul.mkiv
+++ b/tex/context/base/mkiv/page-mul.mkiv
@@ -15,6 +15,8 @@
% !!! there are some issues with hsize an vsize as well as flushing
% !!! floats but this module will be redone anyway
+%
+% can have some vpack and hpack
\writestatus{loading}{ConTeXt Page Macros / Simple Multi Column}
diff --git a/tex/context/base/mkiv/page-one.mkiv b/tex/context/base/mkiv/page-one.mkiv
index 180c63834..d113d3d54 100644
--- a/tex/context/base/mkiv/page-one.mkiv
+++ b/tex/context/base/mkiv/page-one.mkiv
@@ -380,7 +380,7 @@
\page_floats_flush\s!text{\the\numexpr\nofcollectedfloats-\recurselevel+1\relax}%
\fi
\ifdim\wd\floatbox>\makeupwidth % \hsize
- \hbox to \makeupwidth{\hss\box\floatbox\hss}%
+ \hpack to \makeupwidth{\hss\box\floatbox\hss}%
\else
\box\floatbox
\fi
diff --git a/tex/context/base/mkiv/page-set.mkiv b/tex/context/base/mkiv/page-set.mkiv
index 2cea31e1c..f3fa01696 100644
--- a/tex/context/base/mkiv/page-set.mkiv
+++ b/tex/context/base/mkiv/page-set.mkiv
@@ -14,6 +14,8 @@
% not yet mkiv! probably namespace issues with localframed (only one left)
%
% getnoflines vs getrawnoflines
+%
+% can have some vpack and hpack
% This is a rather old mechanism and we can best keep it as it is. If it gets
% replaced by a more modern solution, it will be an extra mechanism. So, we
@@ -410,7 +412,7 @@
\letcolumnsetparameter\c!height\!!heighta
\letcolumnsetparameter\c!lines \empty
\letcolumnsetparameter\c!region\currentcolumnset
- \setbox\scratchbox\hbox\inheritedcolumnsetframed{}% maybe \fastlocalframed
+ \setbox\scratchbox\hpack\inheritedcolumnsetframed{}% maybe \fastlocalframed
\wd\scratchbox\d_page_set_local_hsize
\ht\scratchbox\!!heighta
\ifcase\columndirection
diff --git a/tex/context/base/mkiv/page-txt.mkvi b/tex/context/base/mkiv/page-txt.mkvi
index 92d6d288b..e284d55b7 100644
--- a/tex/context/base/mkiv/page-txt.mkvi
+++ b/tex/context/base/mkiv/page-txt.mkvi
@@ -794,7 +794,7 @@
\ifx\p_strc_pagenumbers_width\empty
\box\scratchbox\tfskip
\else
- \hbox to \p_strc_pagenumbers_width{\box\scratchbox\hss}%
+ \hpack to \p_strc_pagenumbers_width{\box\scratchbox\hss}%
\fi
\fi
\endgroup}
@@ -807,7 +807,7 @@
\ifx\p_strc_pagenumbers_width\empty
\tfskip\box\scratchbox
\else
- \hbox to \p_strc_pagenumbers_width{\hss\box\scratchbox}%
+ \hpack to \p_strc_pagenumbers_width{\hss\box\scratchbox}%
\fi
\fi
\endgroup}
diff --git a/tex/context/base/mkiv/scrn-bar.mkvi b/tex/context/base/mkiv/scrn-bar.mkvi
index efb1a005b..7634398f8 100644
--- a/tex/context/base/mkiv/scrn-bar.mkvi
+++ b/tex/context/base/mkiv/scrn-bar.mkvi
@@ -201,7 +201,7 @@
\setupblackrules[\c!width=\scratchdimenone]%
\setbox\scratchbox\hbox to \d_scrn_bar_width
{\hskip2\emwidth
- \setbox\scratchbox\hbox{\blackrule[\c!color=\interactionbarparameter\c!backgroundcolor]}%
+ \setbox\scratchbox\hpack{\blackrule[\c!color=\interactionbarparameter\c!backgroundcolor]}%
\dorecurse\scratchcounter
{\hss\normalexpanded{\directgotodumbbox{\copy\scratchbox}[page(\the\numexpr\recurselevel*\lastpage/\scratchcounter\relax)]}}%
\hss
@@ -288,7 +288,7 @@
\d_scrn_bar_height \interactionbarparameter\c!height
\d_scrn_bar_depth \interactionbarparameter\c!depth
\scratchdimenone\d_scrn_bar_width
- \noindent\hbox{\scrn_bar_goto_x{\hskip\d_scrn_bar_distance}}%
+ \noindent\hbox{\scrn_bar_goto_x{\hskip\d_scrn_bar_distance}}% \hpack ?
}\fi}
\def\scrn_bar_alternative_e
@@ -302,7 +302,7 @@
\ifdim\scratchdimenone<\d_scrn_bar_distance
\scrn_bar_alternative_f
\else
- \noindent\hbox to \d_scrn_bar_width{\scrn_bar_goto_x{\hss}\unskip}%
+ \noindent\hbox to \d_scrn_bar_width{\scrn_bar_goto_x{\hss}\unskip}% \hpack ?
\fi
}\fi}
diff --git a/tex/context/base/mkiv/scrn-hlp.mkvi b/tex/context/base/mkiv/scrn-hlp.mkvi
index 7466e5687..a342221c3 100644
--- a/tex/context/base/mkiv/scrn-hlp.mkvi
+++ b/tex/context/base/mkiv/scrn-hlp.mkvi
@@ -114,7 +114,7 @@
\fi}
\def\scrn_help_register#text%
- {\setbox\b_scrn_help_box\hbox{\inheritedhelpframed{#text}}%
+ {\setbox\b_scrn_help_box\hbox{\inheritedhelpframed{#text}}% \hpack ?
\definesymbol
[\currenthelpname]
[\copy\b_scrn_help_box]%
diff --git a/tex/context/base/mkiv/scrn-wid.mkvi b/tex/context/base/mkiv/scrn-wid.mkvi
index d7351eb09..5b575edfb 100644
--- a/tex/context/base/mkiv/scrn-wid.mkvi
+++ b/tex/context/base/mkiv/scrn-wid.mkvi
@@ -598,7 +598,7 @@
option {#option}%
\relax
\let\objectoffset\zeropoint
- \setobject{IRO}{#tag}\hbox{\box\nextbox}%
+ \setobject{IRO}{#tag}\hpack{\box\nextbox}%
\egroup}%
\hbox}
diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv
index 229963997..4aa846dd0 100644
--- a/tex/context/base/mkiv/spac-ver.mkiv
+++ b/tex/context/base/mkiv/spac-ver.mkiv
@@ -1656,7 +1656,7 @@
\fi
\doifelsenothing{#1}{\spac_grids_snap_value_set\v!normal}{\spac_grids_snap_value_set{#1}}%
\clf_vspacingsnap\nextbox\attribute\snapmethodattribute\relax
- \ifvbox\nextbox\vbox\else\hbox\fi attr \snapmethodattribute \zerocount {\box\nextbox}% pack ?
+ \ifvbox\nextbox\vbox\else\hbox\fi attr \snapmethodattribute \zerocount {\box\nextbox}% *pack ?
\egroup}
\def\spac_grids_check_nop
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 25e1e37c9..4a5cf0260 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 3800d42ed..f3bc68b12 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/strc-flt.mkvi b/tex/context/base/mkiv/strc-flt.mkvi
index 4323b70da..7ddb168ca 100644
--- a/tex/context/base/mkiv/strc-flt.mkvi
+++ b/tex/context/base/mkiv/strc-flt.mkvi
@@ -1834,7 +1834,7 @@
\strc_floats_align_content{\box\b_strc_floats_content}%
\fi}%
\getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vbox to \noflines\lineheight{\unvbox\scratchbox}}
+ \vbox to \noflines\lineheight{\unvbox\scratchbox}} % \vpack ?
\def\strc_floats_build_box_bottom_stack_grid
{\dp\b_strc_floats_caption\strutdepth
@@ -1851,7 +1851,7 @@
\strc_floats_locate_text_float{\box\b_strc_floats_caption}%
\fi}%
\getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vbox to \noflines\lineheight{\unvbox\scratchbox}}
+ \vbox to \noflines\lineheight{\unvbox\scratchbox}} % \vpack ?
\def\strc_floats_build_box_top_stack_stretch
{\dp\b_strc_floats_caption\strutdepth
@@ -2051,14 +2051,14 @@
\forgetall
\postponenotes
\dontcomplain
- \setbox\b_strc_floats_content\vbox{\borderedfloatbox}%
+ \setbox\b_strc_floats_content\vbox{\borderedfloatbox}% \vpack >?
%\page_backgrounds_add_local_to_box\b_strc_floats_content
\ifnofloatcaption
\global\setbox\floatbox\vpack{\box\b_strc_floats_content}%
\else
\strc_floats_check_caption_content
\strc_floats_prepare_side_caption
- \setbox\b_strc_floats_caption\hbox{\floatcaptionparameter\c!command{\box\b_strc_floats_caption}}%
+ \setbox\b_strc_floats_caption\hbox{\floatcaptionparameter\c!command{\box\b_strc_floats_caption}}% \hpack ?
\moveboxontogrid\b_strc_floats_caption{\floatcaptionparameter\c!grid}\d_strc_floats_caption_height
%\page_backgrounds_add_local_to_box\b_strc_floats_caption
\strc_floats_build_side_box
diff --git a/tex/context/base/mkiv/strc-ref.mkvi b/tex/context/base/mkiv/strc-ref.mkvi
index 2cd08f437..da6416d92 100644
--- a/tex/context/base/mkiv/strc-ref.mkvi
+++ b/tex/context/base/mkiv/strc-ref.mkvi
@@ -495,13 +495,13 @@
{\scratchwidth \wd\nextbox
\scratchheight\ht\nextbox
\scratchdepth \dp\nextbox
- \setbox\nextbox\hbox
+ \setbox\nextbox\hbox % \hpack ?
{\framed[\c!frame=\v!off,#2]{\box\nextbox}}%
\strc_references_set_simple_reference{#1}%
- \setbox\nextbox\hbox attr \destinationattribute \currentdestinationattribute
+ \setbox\nextbox\hbox attr \destinationattribute \currentdestinationattribute % \hpack ?
{\strc_references_flush_destination_nodes
\box\nextbox}%
- \setbox\nextbox\hbox{\box\nextbox}%
+ \setbox\nextbox\hpack{\box\nextbox}%
\wd\nextbox\scratchwidth
\ht\nextbox\scratchheight
\dp\nextbox\scratchdepth
@@ -510,7 +510,7 @@
\def\strc_references_content_nop_finish#1#2%
{\strc_references_set_simple_reference{#1}%
- \hbox attr \destinationattribute \currentdestinationattribute
+ \hbox attr \destinationattribute \currentdestinationattribute % \hpack ?
{\strc_references_flush_destination_nodes
\box\nextbox}%
\egroup}
diff --git a/tex/context/base/mkiv/strc-ren.mkiv b/tex/context/base/mkiv/strc-ren.mkiv
index 93463b095..90ad2252d 100644
--- a/tex/context/base/mkiv/strc-ren.mkiv
+++ b/tex/context/base/mkiv/strc-ren.mkiv
@@ -151,7 +151,7 @@
\strc_rendering_stop_placement}
\unexpanded\def\strc_rendering_place_head_empty
- {\hbox \headreferenceattributes {\getheadsyncs}}
+ {\hbox\headreferenceattributes{\getheadsyncs}} % \hpack ?
%D \starttyping
%D \def\StretchedBox#1%
diff --git a/tex/context/base/mkiv/strc-sec.mkiv b/tex/context/base/mkiv/strc-sec.mkiv
index efed4d896..e976c2373 100644
--- a/tex/context/base/mkiv/strc-sec.mkiv
+++ b/tex/context/base/mkiv/strc-sec.mkiv
@@ -957,7 +957,7 @@
\setxvalue{\??hiddenheadsync\currenthead}%
{\noexpand\letgvalue{\??hiddenheadsync\currenthead}\relax
\noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
- \hbox\headreferenceattributes{}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
+ \hpack\headreferenceattributes{}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
\currentstructuresynchronize}} % and it's a node anyway
\def\synchronizehead #1{\csname\??hiddenheadsync#1\endcsname}
diff --git a/tex/context/base/mkiv/tabl-ntb.mkiv b/tex/context/base/mkiv/tabl-ntb.mkiv
index 276f85d31..7fdd1e5c9 100644
--- a/tex/context/base/mkiv/tabl-ntb.mkiv
+++ b/tex/context/base/mkiv/tabl-ntb.mkiv
@@ -1446,8 +1446,8 @@
% case: nc=maxcolumns
\else
\scratchdimen\tabl_ntb_get_hei{#1}%
- \setbox\scratchbox\hbox
- {\lower\ht\scratchbox\hbox{\raise\scratchdimen\box\scratchbox}}%
+ \setbox\scratchbox\hpack
+ {\lower\ht\scratchbox\hpack{\raise\scratchdimen\box\scratchbox}}%
\ht\scratchbox\scratchdimen
\fi
\dp\scratchbox\zeropoint
@@ -1656,10 +1656,10 @@
\ifmultipleTBLheads
\dorecurse\c_tabl_ntb_n_of_head_lines
{\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
- \setbox\tsplithead\vbox{\unvcopy\tsplithead\unvcopy\scratchbox}}%
+ \setbox\tsplithead\vbox{\unvcopy\tsplithead\unvcopy\scratchbox}}% \vpack ?
\dorecurse\c_tabl_ntb_n_of_next_lines
{\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
- \setbox\tsplitnext\vbox{\unvcopy\tsplitnext\unvcopy\scratchbox}}%
+ \setbox\tsplitnext\vbox{\unvcopy\tsplitnext\unvcopy\scratchbox}}% \vpack ?
\fi
\edef\p_spaceinbetween{\naturaltablelocalparameter\c!spaceinbetween}%
\ifx\p_spaceinbetween\empty\else
diff --git a/tex/context/base/mkiv/tabl-tab.mkiv b/tex/context/base/mkiv/tabl-tab.mkiv
index 76f7f76c3..54b18a385 100644
--- a/tex/context/base/mkiv/tabl-tab.mkiv
+++ b/tex/context/base/mkiv/tabl-tab.mkiv
@@ -1605,11 +1605,11 @@
\setbox\tsplitcontent\box#1%
\ifconditional\c_tabl_table_repeat_head \ifconditional\hassometablehead
\setbox\tsplithead\vsplit\tsplitcontent to \lineheight
- \setbox\tsplithead\vbox{\unvbox\tsplithead}%
+ \setbox\tsplithead\vbox{\unvbox\tsplithead}% \vpack ?
\fi \fi
\ifconditional\c_tabl_table_repeat_tail \ifconditional\hassometabletail
\setbox\tsplittail\vsplit\tsplitcontent to \lineheight
- \setbox\tsplittail\vbox{\unvbox\tsplittail}%
+ \setbox\tsplittail\vbox{\unvbox\tsplittail}% \vpack ?
\fi \fi
\ifinsidefloat\else
\def\tsplitbeforeresult{\startbaselinecorrection}%
diff --git a/tex/context/base/mkiv/typo-scr.mkiv b/tex/context/base/mkiv/typo-scr.mkiv
index 7b8d62dfb..d4881b80a 100644
--- a/tex/context/base/mkiv/typo-scr.mkiv
+++ b/tex/context/base/mkiv/typo-scr.mkiv
@@ -146,9 +146,9 @@
\setbox\plussix \hbox{\typo_scripts_lowhigh_low_high\raise\c!up \t!sup{#3}}%
\doif{#1}{\v!left}
{\ifdim\wd\plusfour<\wd\plussix
- \setbox\plusfour\hbox to \wd\plussix {\hss\box\plusfour}%
+ \setbox\plusfour\hpack to \wd\plussix {\hss\box\plusfour}%
\else
- \setbox\plussix \hbox to \wd\plusfour{\hss\box\plussix }%
+ \setbox\plussix \hpack to \wd\plusfour{\hss\box\plussix }%
\fi}%
\ifdim\wd\plusfour<\wd\plussix
\wd\plusfour\zeropoint
@@ -252,9 +252,9 @@
\fi
\fi
\relax
- \setbox\plustwo \hbox to \scratchdimen{\hss\lower\lowmidhighparameter\c!down\box\plustwo \hss}%
- \setbox\plusfour\hbox to \scratchdimen{\hss \box\plusfour\hss}%
- \setbox\plussix \hbox to \scratchdimen{\hss\raise\lowmidhighparameter\c!up \box\plussix \hss}%
+ \setbox\plustwo \hpack to \scratchdimen{\hss\lower\lowmidhighparameter\c!down\box\plustwo \hss}%
+ \setbox\plusfour\hpack to \scratchdimen{\hss \box\plusfour\hss}%
+ \setbox\plussix \hpack to \scratchdimen{\hss\raise\lowmidhighparameter\c!up \box\plussix \hss}%
\wd\plustwo \zeropoint
\wd\plusfour\zeropoint
\box\plusfour
diff --git a/tex/context/interface/mkiv/context-en.xml b/tex/context/interface/mkiv/context-en.xml
index b5137bb50..735e5f6de 100644
--- a/tex/context/interface/mkiv/context-en.xml
+++ b/tex/context/interface/mkiv/context-en.xml
@@ -21791,6 +21791,10 @@
<cd:constant type="bottom"/>
<cd:constant default="yes" type="normal"/>
</cd:parameter>
+ <cd:parameter name="grid">
+ <cd:constant default="yes" type="math"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 0399648d1..e41fad23a 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-mathalignment.xml b/tex/context/interface/mkiv/i-mathalignment.xml
index 40088d84f..c4154e084 100644
--- a/tex/context/interface/mkiv/i-mathalignment.xml
+++ b/tex/context/interface/mkiv/i-mathalignment.xml
@@ -45,6 +45,10 @@
<cd:constant type="bottom"/>
<cd:constant type="normal" default="yes"/>
</cd:parameter>
+ <cd:parameter name="grid">
+ <cd:constant type="math" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index cdae41a28..941475404 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 892f42014..ad9371829 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 : 08/14/17 23:57:26
+-- merge date : 08/15/17 12:35:38
do -- begin closure to overcome local limits and interference