summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/context-version.pdfbin4168 -> 4170 bytes
-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/font-map.lua60
-rw-r--r--tex/context/base/mkiv/lpdf-res.lua2
-rw-r--r--tex/context/base/mkiv/meta-imp-clp.mkiv2
-rw-r--r--tex/context/base/mkiv/meta-imp-grid.mkiv63
-rw-r--r--tex/context/base/mkiv/page-set.mkiv72
-rw-r--r--tex/context/base/mkiv/spac-ver.mkiv11
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin9080 -> 9033 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin258716 -> 258720 bytes
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua34
13 files changed, 143 insertions, 107 deletions
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 9a9ee1f36..97cb0c64f 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index b1cd92589..796a0d948 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.01.13 15:10}
+\newcontextversion{2016.01.14 09:55}
%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 98172700f..96c9558c8 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.01.13 15:10}
+\edef\contextversion{2016.01.14 09:55}
\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 e5bf9e9c1..d08c61eac 100644
--- a/tex/context/base/mkiv/font-con.lua
+++ b/tex/context/base/mkiv/font-con.lua
@@ -683,7 +683,7 @@ function constructors.scale(tfmdata,specification)
chr.unicode = isunicode
chr.tounicode = tounicode(isunicode)
-- in luatex > 0.85 we can do this:
- -- chr.tounicode = isunicode
+-- chr.tounicode = isunicode
end
if hasquality then
-- we could move these calculations elsewhere (saves calculations)
diff --git a/tex/context/base/mkiv/font-map.lua b/tex/context/base/mkiv/font-map.lua
index 78e5435a5..a91e5234f 100644
--- a/tex/context/base/mkiv/font-map.lua
+++ b/tex/context/base/mkiv/font-map.lua
@@ -80,12 +80,11 @@ local f_double = formatters["%04X%04X"]
-- local tounicodes = table.setmetatableindex(function(t,unicode)
-- local s
--- if unicode < 0x10000 then
+-- if unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
-- s = f_single(unicode)
--- elseif unicode < 0x1FFFFFFF then
--- s = f_double(floor(unicode/1024),unicode%1024+0xDC00)
-- else
--- s = false
+-- unicode = unicode - 0x10000
+-- s = f_double(floor(unicode/1024)+0xD800,unicode%1024+0xDC00)
-- end
-- t[unicode] = s
-- return s
@@ -140,12 +139,11 @@ local f_double = formatters["%04X%04X"]
-- end
local function tounicode16(unicode,name)
- if unicode < 0x10000 then
+ if unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
return f_single(unicode)
- elseif unicode < 0x1FFFFFFFF then
- return f_double(floor(unicode/1024),unicode%1024+0xDC00)
else
- report_fonts("can't convert %a in %a into tounicode",unicode,name)
+ unicode = unicode - 0x10000
+ return f_double(floor(unicode/1024)+0xD800,unicode%1024+0xDC00)
end
end
@@ -153,13 +151,11 @@ local function tounicode16sequence(unicodes,name)
local t = { }
for l=1,#unicodes do
local u = unicodes[l]
- if u < 0x10000 then
+ if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then
t[l] = f_single(u)
- elseif unicode < 0x1FFFFFFFF then
- t[l] = f_double(floor(u/1024),u%1024+0xDC00)
else
- report_fonts ("can't convert %a in %a into tounicode",u,name)
- return
+ u = u - 0x10000
+ t[l] = f_double(floor(u/1024)+0xD800,u%1024+0xDC00)
end
end
return concat(t)
@@ -170,23 +166,20 @@ local function tounicode(unicode,name)
local t = { }
for l=1,#unicode do
local u = unicode[l]
- if u < 0x10000 then
+ if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then
t[l] = f_single(u)
- elseif u < 0x1FFFFFFFF then
- t[l] = f_double(floor(u/1024),u%1024+0xDC00)
else
- report_fonts ("can't convert %a in %a into tounicode",u,name)
- return
+ u = u - 0x10000
+ t[l] = f_double(floor(u/1024)+0xD800,u%1024+0xDC00)
end
end
return concat(t)
else
- if unicode < 0x10000 then
+ if unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
return f_single(unicode)
- elseif unicode < 0x1FFFFFFFF then
- return f_double(floor(unicode/1024),unicode%1024+0xDC00)
else
- report_fonts("can't convert %a in %a into tounicode",unicode,name)
+ unicode = unicode - 0x10000
+ return f_double(floor(unicode/1024)+0xD800,unicode%1024+0xDC00)
end
end
end
@@ -196,7 +189,8 @@ local function fromunicode16(str)
return tonumber(str,16)
else
local l, r = match(str,"(....)(....)")
- return (tonumber(l,16))*0x400 + tonumber(r,16) - 0xDC00
+ -- return (tonumber(l,16))*0x400 + tonumber(r,16) - 0xDC00
+ return 0x10000 + (tonumber(l,16)-0xD800)*0x400 + tonumber(r,16) - 0xDC00
end
end
@@ -214,26 +208,6 @@ end
-- return lpegmatch(p,str)
-- end
--- This is quite a bit faster but at the cost of some memory but if we
--- do this we will also use it elsewhere so let's not follow this route
--- now. I might use this method in the plain variant (no caching there)
--- but then I need a flag that distinguishes between code branches.
---
--- local cache = { }
---
--- function mappings.tounicode16(unicode)
--- local s = cache[unicode]
--- if not s then
--- if unicode < 0x10000 then
--- s = format("%04X",unicode)
--- else
--- s = format("%04X%04X",unicode/0x400+0xD800,unicode%0x400+0xDC00)
--- end
--- cache[unicode] = s
--- end
--- return s
--- end
-
mappings.makenameparser = makenameparser
mappings.tounicode = tounicode
mappings.tounicode16 = tounicode16
diff --git a/tex/context/base/mkiv/lpdf-res.lua b/tex/context/base/mkiv/lpdf-res.lua
index d13fc798e..ca092c772 100644
--- a/tex/context/base/mkiv/lpdf-res.lua
+++ b/tex/context/base/mkiv/lpdf-res.lua
@@ -22,7 +22,7 @@ local useboxresource = tex.useboxresource
local getboxresource = tex.getboxresourcedimensions
function codeinjections.registerboxresource(n)
- return saveboxresource(n,nil,lpdf.collectedresources,true) -- direct
+ return saveboxresource(n,nil,lpdf.collectedresources(),true) -- direct, todo: accept functions as attr/resources
end
function codeinjections.restoreboxresource(index)
diff --git a/tex/context/base/mkiv/meta-imp-clp.mkiv b/tex/context/base/mkiv/meta-imp-clp.mkiv
index 5c9206dee..89886b389 100644
--- a/tex/context/base/mkiv/meta-imp-clp.mkiv
+++ b/tex/context/base/mkiv/meta-imp-clp.mkiv
@@ -1,5 +1,5 @@
%D \module
-%D [ file=meta-clp,
+%D [ file=meta-imp-clp,
%D version=2000.07.06,
%D title=\METAPOST\ Graphics,
%D subtitle=Clipping,
diff --git a/tex/context/base/mkiv/meta-imp-grid.mkiv b/tex/context/base/mkiv/meta-imp-grid.mkiv
new file mode 100644
index 000000000..9208a3dae
--- /dev/null
+++ b/tex/context/base/mkiv/meta-imp-grid.mkiv
@@ -0,0 +1,63 @@
+%D \module
+%D [ file=meta-imp-grid,
+%D version=2016.01.08,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Grid Tracing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startMPextensions
+ color mfun_grid_lgc[] ;
+ numeric mfun_grid_lgi ;
+ mfun_grid_lgc[1] := red ;
+ mfun_grid_lgc[2] := green ;
+ mfun_grid_lgc[3] := blue ;
+ mfun_grid_lgi := 1 ;
+\stopMPextensions
+
+\startuseMPgraphic{linegrid}
+ % if unknown mfun_grid_lgi :
+ % color mfun_grid_lgc[] ;
+ % numeric mfun_grid_lgi ;
+ % mfun_grid_lgc[1] := red ;
+ % mfun_grid_lgc[2] := green ;
+ % mfun_grid_lgc[3] := blue ;
+ % mfun_grid_lgi := 1 ;
+ % elseif mfun_grid_lgi = 3 :
+ if mfun_grid_lgi = 3 :
+ mfun_grid_lgi := 1 ;
+ else :
+ mfun_grid_lgi := mfun_grid_lgi + 1 ;
+ fi ;
+ draw image (
+ save f, t ;
+ pair f, t ;
+ f := (0,-2*LineHeight) ;
+ t := (0, 2*LineHeight) ;
+ for i=ypart f - eps step LineHeight/5 until ypart t + eps:
+ draw (-EmWidth,i) -- (0,i) ;
+ endfor ;
+ draw f -- t ;
+ draw (-EmWidth,0) -- (EmWidth,0) ;
+ % ) shifted (-mfun_grid_lgi*EmWidth/3,0) withcolor mfun_grid_lgc[mfun_grid_lgi] ;
+ ) shifted (-EmWidth/2,0) withcolor mfun_grid_lgc[mfun_grid_lgi] ;
+ setbounds currentpicture to origin -- cycle ;
+\stopuseMPgraphic
+
+\unexpanded\def\showlinegrid{\dontleavehmode\smash{\useMPgraphic{linegrid}}}
+
+\continueifinputfile{meta-imp-grid.mkiv}
+
+\starttext
+
+\showlinegrid \input tufte \par
+\showlinegrid \input tufte \par
+\showlinegrid \input ward \par
+\showlinegrid \input ward \par
+
+\stoptext
diff --git a/tex/context/base/mkiv/page-set.mkiv b/tex/context/base/mkiv/page-set.mkiv
index 98548b3aa..6a3d550bd 100644
--- a/tex/context/base/mkiv/page-set.mkiv
+++ b/tex/context/base/mkiv/page-set.mkiv
@@ -2172,7 +2172,7 @@
% links rechts => odd, even, n, named
-\definesystemvariable {mt} % MulTicolumn
+\installcorenamespace{columnsetarea}
\unexpanded\def\definecolumntextarea
{\dotripleempty\dodefinecolumntextarea}
@@ -2187,11 +2187,11 @@
{\definecolumntextarea[#1][\v!right][\c!type=#2,#3]}
{\definecolumntextarea[#1][\v!left ][\c!type=#2,#3]}}
{\presetlocalframed
- [\??mt#1#2]%
+ [\??columnsetarea#1#2]%
\processaction[#2] % \doglobal voorkomt stack build up
[ \v!left=>\doglobal\addtocommalist{#1}\columnleftareas,
\v!right=>\doglobal\addtocommalist{#1}\columnrightareas]%
- \getparameters[\??mt#1#2]
+ \getparameters[\??columnsetarea#1#2]
[\c!x=1,\c!y=1,\c!nx=1,\c!ny=1,\c!clipoffset=2\lineheight,
\c!leftoffset=\zeropoint,\c!rightoffset=\zeropoint,
\c!offset=\v!overlay,\c!strut=\v!no,\c!frame=\v!off,
@@ -2212,18 +2212,18 @@
{\doifelseoddpage
{\setupcolumntextarea[#1][\v!right][#3]}
{\setupcolumntextarea[#1][\v!left][#3]}}
- {\getparameters[\??mt#1#2][#3]}}%
+ {\getparameters[\??columnsetarea#1#2][#3]}}%
\else
\setupcolumntextarea[#1][\v!next][#2]%
\fi}
\def\docheckcolumnsetareapage#1#2%
- {\ifnum\getvalue{\??mt#1\c!page}>\plusone
- \doifelsevalue{\??mt#1\c!type}\v!fixed
- {\ifnum\columnsetpage=\getvalue{\??mt#1\c!page}\relax
+ {\ifnum\getvalue{\??columnsetarea#1\c!page}>\plusone
+ \doifelsevalue{\??columnsetarea#1\c!type}\v!fixed
+ {\ifnum\columnsetpage=\getvalue{\??columnsetarea#1\c!page}\relax
\donetrue\else\donefalse
\fi}
- {\ifnum\columnsetpage<\getvalue{\??mt#1\c!page}\relax
+ {\ifnum\columnsetpage<\getvalue{\??columnsetarea#1\c!page}\relax
\donefalse\else\donetrue
\fi}%
\else
@@ -2243,7 +2243,7 @@
\ifdone
\donefalse
\processaction
- [\getvalue{\??mt##1#2\c!state}]
+ [\getvalue{\??columnsetarea##1#2\c!state}]
[ \v!start=>\donetrue,
\v!repeat=>\donetrue,
\s!unknown=>\doperformtest\commalistelement\donetrue\donefalse]%
@@ -2254,8 +2254,8 @@
\def\dodoinitializecolumntextareas#1#2%
{\doOTRSETsetgridcells
{\copy\placeholderboxd}
- {\getvalue{\??mt#1#2\c!x }}{\getvalue{\??mt#1#2\c!y }}
- {\getvalue{\??mt#1#2\c!nx}}{\getvalue{\??mt#1#2\c!ny}}
+ {\getvalue{\??columnsetarea#1#2\c!x }}{\getvalue{\??columnsetarea#1#2\c!y }}
+ {\getvalue{\??columnsetarea#1#2\c!nx}}{\getvalue{\??columnsetarea#1#2\c!ny}}
{\copy\placeholderboxd}}
\unexpanded\def\placecolumntextareas
@@ -2273,7 +2273,7 @@
\ifdone
\donefalse
\processaction
- [\getvalue{\??mt##1#2\c!state}]
+ [\getvalue{\??columnsetarea##1#2\c!state}]
[ \v!start=>\donetrue\doglobal\removefromcommalist{##1}#1,
\v!repeat=>\donetrue,
\s!unknown=>\doperformtest\commalistelement\donetrue\donefalse]%
@@ -2300,7 +2300,7 @@
% beware, we have clipping offsets of 2\lineheight by default
\def\columntextareaparameter#1%
- {\csname\??mt\currentcolumntestarea#1\endcsname}
+ {\csname\??columnsetarea\currentcolumntestarea#1\endcsname}
\def\dodoplacecolumntextareas#1#2%
{\def\currentcolumntestarea{#1#2}%
@@ -2321,7 +2321,7 @@
%
\setbox\scratchbox\vbox
{\donetrue\localframed
- [\??mt\currentcolumntestarea]
+ [\??columnsetarea\currentcolumntestarea]
[\c!location=,% new (*)
\c!width=\!!widtha,\c!height=\!!heighta,\c!lines=]
{\columntextareaparameter\empty{}}}% messy
@@ -2377,13 +2377,13 @@
\def\dosetupcolumntextareatext[#1][#2][#3]%
{\ifthirdargument
\doifelse{#2}\v!both
- {\setvalue{\??mt#1\v!left }{#3}%
- \setvalue{\??mt#1\v!right}{#3}}
+ {\setvalue{\??columnsetarea#1\v!left }{#3}%
+ \setvalue{\??columnsetarea#1\v!right}{#3}}
{\doifelse{#2}\v!next
{\doifelseoddpage
- {\setvalue{\??mt#1\v!right}{#3}}%
- {\setvalue{\??mt#1\v!left }{#3}}}%
- {\setvalue{\??mt#1#2}{#3}}}%
+ {\setvalue{\??columnsetarea#1\v!right}{#3}}%
+ {\setvalue{\??columnsetarea#1\v!left }{#3}}}%
+ {\setvalue{\??columnsetarea#1#2}{#3}}}%
\else
\setupcolumntextareatext[#1][\v!next][{#2}]%
\fi}
@@ -2437,13 +2437,15 @@
\d_strc_float_temp_width
\fi}
+\installcorenamespace{columnsetspan}
+
\unexpanded\def\definecolumnsetspan
{\dodoubleempty\dodefinecolumnsetspan}
\def\dodefinecolumnsetspan[#1][#2]%
{%\ifsecondargument
\defineframedtext % we can have a parent
- [cs:#1]
+ [\??columnsetspan#1]
[\c!frame=\v!off,
\c!before=,
\c!after=,
@@ -2469,7 +2471,7 @@
\def\dosetupcolumnsetspan[#1][#2]%
{\ifsecondargument
- \setupframedtexts[cs:#1][#2]%
+ \setupframedtexts[\??columnsetspan#1][#2]%
\else
\setupcolumnsetspan[\s!default][#1]%
\fi}
@@ -2490,13 +2492,13 @@
\nofcolumns\plusone
\mofcolumns\plusone
\fi
- \setupframedtexts[cs:#1]
+ \setupframedtexts[\??columnsetspan#1]
[\c!width=\columnsetspanhsize,
\c!linecorrection=\v!off,
\c!depthcorrection=\v!off,
#2]%
% determine widths
- \!!countc\namedframedtextparameter{cs:#1}\c!n
+ \!!countc\namedframedtextparameter{\??columnsetspan#1}\c!n
% \!!countd\numexpr(\nofcolumns-\mofcolumns+\plusone)%
\!!countd\nofcolumns
% n <= n of columns
@@ -2504,16 +2506,16 @@
\advance\!!countd -\mofcolumns
\advance\!!countd \plusone
% n <= n of available columns (alternative a)
- \doif{\namedframedtextparameter{cs:#1}\c!alternative}\v!a
+ \doif{\namedframedtextparameter{\??columnsetspan#1}\c!alternative}\v!a
{\ifnum\!!countc>\!!countd \!!countc\!!countd \fi}%
% here it all starts
\setcolumnsetspanhsize\mofcolumns\!!countc % a/b used
\hsize\columnsetspanhsize
\setbox\scratchbox\vbox\bgroup
- \pack_framed_text_start{cs:#1}[\v!none]% geen nils placement
+ \pack_framed_text_start{\??columnsetspan#1}[\v!none]% geen nils placement
% spoils spacing : \vskip-\struttotal\par\verticalstrut\par
\ifnum\columnsetlevel>\zerocount
- \namedframedtextparameter{cs:#1}\c!before
+ \namedframedtextparameter{\??columnsetspan#1}\c!before
\fi
\unexpanded\def\stopcolumnsetspan{\dostopcolumnsetspan{#1}}}
@@ -2523,8 +2525,8 @@
\kern-2\struttotal
\verticalstrut
\ifnum\columnsetlevel>\zerocount
- \doifsomething{\namedframedtextparameter{cs:#1}\c!after}
- {\namedframedtextparameter{cs:#1}\c!after
+ \doifsomething{\namedframedtextparameter{\??columnsetspan#1}\c!after}
+ {\namedframedtextparameter{\??columnsetspan#1}\c!after
\kern\zeropoint}% otherwise blanks disappear, better be a switch
\else
\endgraf
@@ -2533,7 +2535,7 @@
\egroup
\setbox\scratchbox\frozenhbox to \hsize
{\dontcomplain
- \alignedline{\namedframedtextparameter{cs:#1}\c!location}\v!middle{\lower\strutdepth\box\scratchbox}}%
+ \alignedline{\namedframedtextparameter{\??columnsetspan#1}\c!location}\v!middle{\lower\strutdepth\box\scratchbox}}%
\dp\scratchbox\zeropoint % else wrong snap insidefloat
%
% to be tested first (strange in grid mode)
@@ -2541,7 +2543,7 @@
% \setbox\scratchbox\frozenhbox to \hsize
% {\dontcomplain
% \alignstrutmode\zerocount
-% \alignedline{\namedframedtextparameter{cs:#1}\c!plaats}\v!midden
+% \alignedline{\namedframedtextparameter{\??columnsetspan#1}\c!plaats}\v!midden
% {\box\scratchbox}}%
%
\ifinsidefloat
@@ -2549,23 +2551,23 @@
\else\ifnum\columnsetlevel>\zerocount
% we only set \columnsetspacing when asked for, else bottom problems
% don't change this any more (test naw)
- \columnslotspacing\namedframedtextparameter{cs:#1}\c!nlines\relax
+ \columnslotspacing\namedframedtextparameter{\??columnsetspan#1}\c!nlines\relax
% todo: nboven/onder
%\OTRSETstoreincolumnslotHERE\scratchbox
- \edef\floatmethod{\namedframedtextparameter{cs:#1}\c!default}%
+ \edef\floatmethod{\namedframedtextparameter{\??columnsetspan#1}\c!default}%
\@EA\uppercasestring\floatmethod\to\floatmethod
% todo : \v!here -> here enzovoorts
\OTRSETstoreincolumnslot\floatmethod\scratchbox
- \checknextindentation[\namedframedtextparameter{cs:#1}\c!indentnext]%
+ \checknextindentation[\namedframedtextparameter{\??columnsetspan#1}\c!indentnext]%
\else
% of course we needed a one-column fall back for tm; brrr, the box has now too
% much height (try \ruledvbox); don't change this without testing techniek
\scratchdimen\ht\scratchbox
\advance\scratchdimen-\strutdp
\ht\scratchbox\scratchdimen
- \namedframedtextparameter{cs:#1}\c!before
+ \namedframedtextparameter{\??columnsetspan#1}\c!before
\snaptogrid\vbox{\box\scratchbox}%
- \namedframedtextparameter{cs:#1}\c!after
+ \namedframedtextparameter{\??columnsetspan#1}\c!after
\fi\fi
\egroup
\endgraf}
diff --git a/tex/context/base/mkiv/spac-ver.mkiv b/tex/context/base/mkiv/spac-ver.mkiv
index ee30cb264..c54606451 100644
--- a/tex/context/base/mkiv/spac-ver.mkiv
+++ b/tex/context/base/mkiv/spac-ver.mkiv
@@ -579,7 +579,7 @@
\fi
\fi
\ifdim\pagegoal<\maxdimen
- %\blank[\v!white,\the\d_spac_lines_correction_before]% \blank[\v!white]\dotopbaselinecorrection
+ % \blank[\v!white,\the\d_spac_lines_correction_before]% \blank[\v!white]\dotopbaselinecorrection
\directcheckedvspacing{\v!white,\the\d_spac_lines_correction_before}% \blank[\v!white]\dotopbaselinecorrection
\fi
\nointerlineskip % new
@@ -594,13 +594,16 @@
\fi
\box\scratchbox
\endgraf
- %\blank[\the\d_spac_lines_correction_after]% \dobotbaselinecorrection
- \directcheckedvspacing{\the\d_spac_lines_correction_after}% \dobotbaselinecorrection
+ %
+ % eventually i'll get it right ... (i also need to check all whitespace code elsewhere)
+ %
+ % \blank[\the\d_spac_lines_correction_after]% \dobotbaselinecorrection
+ % \directcheckedvspacing{\the\d_spac_lines_correction_after}% \dobotbaselinecorrection
+ \directcheckedvspacing{\v!white,\the\d_spac_lines_correction_after}% \dobotbaselinecorrection
% \allowbreak % new, otherwise problems when many in a row
\prevdepth\strutdp
\spac_lines_action_around}
-
\let\stoplinecorrection \spac_lines_stop_correction
\let\stoplocallinecorrection\spac_lines_stop_correction
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index d3b1d9571..0950af5fd 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 a5fac22ed..f3c2a95fd 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.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 5f138d407..c1e2902c6 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 : 01/13/16 15:10:24
+-- merge date : 01/14/16 09:55:22
do -- begin closure to overcome local limits and interference
@@ -5489,25 +5489,22 @@ end
local f_single=formatters["%04X"]
local f_double=formatters["%04X%04X"]
local function tounicode16(unicode,name)
- if unicode<0x10000 then
+ if unicode<0xD7FF or (unicode>0xDFFF and unicode<=0xFFFF) then
return f_single(unicode)
- elseif unicode<0x1FFFFFFFF then
- return f_double(floor(unicode/1024),unicode%1024+0xDC00)
else
- report_fonts("can't convert %a in %a into tounicode",unicode,name)
+ unicode=unicode-0x10000
+ return f_double(floor(unicode/1024)+0xD800,unicode%1024+0xDC00)
end
end
local function tounicode16sequence(unicodes,name)
local t={}
for l=1,#unicodes do
local u=unicodes[l]
- if u<0x10000 then
+ if u<0xD7FF or (u>0xDFFF and u<=0xFFFF) then
t[l]=f_single(u)
- elseif unicode<0x1FFFFFFFF then
- t[l]=f_double(floor(u/1024),u%1024+0xDC00)
else
- report_fonts ("can't convert %a in %a into tounicode",u,name)
- return
+ u=u-0x10000
+ t[l]=f_double(floor(u/1024)+0xD800,u%1024+0xDC00)
end
end
return concat(t)
@@ -5517,23 +5514,20 @@ local function tounicode(unicode,name)
local t={}
for l=1,#unicode do
local u=unicode[l]
- if u<0x10000 then
+ if u<0xD7FF or (u>0xDFFF and u<=0xFFFF) then
t[l]=f_single(u)
- elseif u<0x1FFFFFFFF then
- t[l]=f_double(floor(u/1024),u%1024+0xDC00)
else
- report_fonts ("can't convert %a in %a into tounicode",u,name)
- return
+ u=u-0x10000
+ t[l]=f_double(floor(u/1024)+0xD800,u%1024+0xDC00)
end
end
return concat(t)
else
- if unicode<0x10000 then
+ if unicode<0xD7FF or (unicode>0xDFFF and unicode<=0xFFFF) then
return f_single(unicode)
- elseif unicode<0x1FFFFFFFF then
- return f_double(floor(unicode/1024),unicode%1024+0xDC00)
else
- report_fonts("can't convert %a in %a into tounicode",unicode,name)
+ unicode=unicode-0x10000
+ return f_double(floor(unicode/1024)+0xD800,unicode%1024+0xDC00)
end
end
end
@@ -5542,7 +5536,7 @@ local function fromunicode16(str)
return tonumber(str,16)
else
local l,r=match(str,"(....)(....)")
- return (tonumber(l,16))*0x400+tonumber(r,16)-0xDC00
+ return 0x10000+(tonumber(l,16)-0xD800)*0x400+tonumber(r,16)-0xDC00
end
end
mappings.makenameparser=makenameparser