summaryrefslogtreecommitdiff
path: root/tex/context
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context')
-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/colo-ini.lua3
-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/context.mkxl4
-rw-r--r--tex/context/base/mkiv/driv-shp.lua13
-rw-r--r--tex/context/base/mkiv/hand-ini.mkxl111
-rw-r--r--tex/context/base/mkiv/mult-prm.lua5
-rw-r--r--tex/context/base/mkiv/pack-lyr.mkiv8
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26661 -> 26597 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin268220 -> 268220 bytes
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin893992 -> 894230 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin61165 -> 61165 bytes
14 files changed, 135 insertions, 17 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 92326c9fb..c6965809e 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{2019.11.29 21:47}
+\newcontextversion{2019.12.02 18:28}
%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 e5f3237d9..171e1555a 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{2019.11.29 21:47}
+\edef\contextversion{2019.12.02 18:28}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/colo-ini.lua b/tex/context/base/mkiv/colo-ini.lua
index cd2c19a75..d39e87878 100644
--- a/tex/context/base/mkiv/colo-ini.lua
+++ b/tex/context/base/mkiv/colo-ini.lua
@@ -510,6 +510,9 @@ local function defineprocesscolor(name,str,global,freeze) -- still inconsistent
colorset[name] = true-- maybe we can store more
end
+-- You cannot overload a local color so one then has to use some prefix, like
+-- mp:red. Kind of protection.
+
local function defineprocesscolordirect(settings)
if settings then
local name = settings.name
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 4c5925235..f0590d199 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2019.11.29 21:47}
+\newcontextversion{2019.12.02 18:28}
%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 a40bf3a14..3169d21f8 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -45,7 +45,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2019.11.29 21:47}
+\edef\contextversion{2019.12.02 18:28}
\edef\contextkind {beta}
%D Kind of special:
diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl
index ab1d2d6f8..5cf9188d4 100644
--- a/tex/context/base/mkiv/context.mkxl
+++ b/tex/context/base/mkiv/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2019.11.29 21:47}
+\edef\contextversion{2019.12.02 18:28}
\edef\contextkind {beta}
%D Kind of special:
@@ -211,7 +211,7 @@
\loadmarkfile{regi-ini}
\loadmarkfile{enco-ini}
-\loadmarkfile{hand-ini}
+\loadmkxlfile{hand-ini}
\loadmkxlfile{lang-ini} % LMTX
\loadmarkfile{lang-hyp} % also loads dis
diff --git a/tex/context/base/mkiv/driv-shp.lua b/tex/context/base/mkiv/driv-shp.lua
index 0137fb203..7340fe523 100644
--- a/tex/context/base/mkiv/driv-shp.lua
+++ b/tex/context/base/mkiv/driv-shp.lua
@@ -364,12 +364,13 @@ flush_character = function(current,font,char,factor,vfcommands,pos_h,pos_v,pos_r
local width, height, depth, naturalwidth
if current then
- width, height, depth, factor = getwhd(current,true)
- naturalwidth = width
- if factor ~= 0 then
- -- width = (1.0 + factor/1000000.0) * width
- width = width + width * factor/1000000.0
- -- width = width + width * 0.000001 * factor
+ naturalwidth, height, depth, factor = getwhd(current,true)
+ if factor == 0 then
+ width = naturalwidth
+ else
+ -- width = (1.0 + factor/1000000.0) * naturalwidth
+ width = naturalwidth + naturalwidth * factor/1000000.0
+ -- width = naturalwidth + naturalwidth * 0.000001 * factor
end
else
width = data.width or 0
diff --git a/tex/context/base/mkiv/hand-ini.mkxl b/tex/context/base/mkiv/hand-ini.mkxl
new file mode 100644
index 000000000..66da0585e
--- /dev/null
+++ b/tex/context/base/mkiv/hand-ini.mkxl
@@ -0,0 +1,111 @@
+%D \module
+%D [ file=hand-ini,
+%D version=2008.02.12,
+%D title=\CONTEXT\ Handling Macros,
+%D subtitle=Initialization,
+%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.
+
+%D Handling is implemented differently in \MKIV. Maybe I'll cook up
+%D some compatibility hack.
+
+% \definefontfeature[demo][default][mode=node,expansion=quality]
+% \definefontfeature[demo][default][mode=node,protrusion=pure]
+
+% experimental setup:
+%
+% \showframe \setupalign[hanging] \enabletrackers[fonts.protrusion]
+%
+% \definefontfeature[default] [default][mode=node,script=latn]
+% %definefontfeature[whatever][default][mode=node,lfbd=yes,rtbd=yes,script=latn]
+% \definefontfeature[whatever][default][mode=node,protrusion=quality]
+% \definefontfeature[whocares][default][mode=node,protrusion=yes,opbd=yes,script=latn] % left|right|yes
+%
+% \definedfont[fxlbi.otf*default] \input tufte 0123456789 \par \dorecurse{15}{1 2 3 4 5 6 7 8 9 0 } \par
+% \definedfont[fxlbi.otf*whatever] \input tufte 0123456789 \par \dorecurse{15}{1 2 3 4 5 6 7 8 9 0 } \par
+% \definedfont[fxlbi.otf*whocares] \input tufte 0123456789 \par \dorecurse{15}{1 2 3 4 5 6 7 8 9 0 } \par
+%
+% %definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn,featurefile=texgyrepagella-regularxx.fea]
+% \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn]
+%
+% \definedfont[texgyrepagella-regularxx.otf*whocares] \input tufte
+
+\unprotect
+
+%D New stuff.
+
+\unexpanded\def\setupfontexpansion {\dodoubleargument\font_expansion_setup }
+\unexpanded\def\setupfontprotrusion{\dodoubleargument\font_protrusion_setup}
+
+\def\font_expansion_setup [#1][#2]{\clf_setupfontexpansion {#1}{#2}}
+\def\font_protrusion_setup[#1][#2]{\clf_setupfontprotrusion{#1}{#2}}
+
+% \setupfontprotrusion[quality-upright][vector=quality]
+% \setupfontprotrusion[quality-slanted][vector=quality,right=1.5]
+
+\let\adjustspacing\relax \newcount\adjustspacing % a little bit protection
+\let\protrudechars\relax \newcount\protrudechars % a little bit protection
+
+% at some point we can introduce extreme expansion, i.e. \normaladjustspacing\plustwo
+
+% 0 = disabled
+% 1 = notused (thesis)
+% 2 = glyph + kern
+% 3 = glyph only
+
+\def\font_expansion_enable {\normaladjustspacing\plusthree}
+\def\font_expansion_enable_k{\normaladjustspacing\plustwo}
+\def\font_expansion_enable_n{\normaladjustspacing\plusone}
+\def\font_expansion_disable {\normaladjustspacing\zerocount}
+
+\def\font_protruding_enable_b{\normalprotrudechars\plusthree} % also deal with r2l (experimental lmtx)
+\def\font_protruding_enable {\normalprotrudechars\plustwo }
+\def\font_protruding_disable {\normalprotrudechars\zerocount}
+
+\appendtoks \font_expansion_disable \to \everyforgetall % Here or not here?
+\appendtoks \font_protruding_disable \to \everyforgetall % Here or not here?
+
+% \def\fonthandlingerror{\writestatus\m!fonts{font handling is replaced by features in mkiv}}
+%
+% \let\fonthandling\empty
+%
+% \unexpanded\def\startfonthandling #1{\fonthandlingerror\fonthandlingerror\gobbleuntil\stopfonthandling} % can't happen
+% \unexpanded\def\definefonthandling {\dotripleempty\dodefinefonthandling}
+% \unexpanded\def\setupfonthandling {\dodoubleempty\dosetupfonthandling }
+% \def\dodefinefonthandling[#1][#2][#3]{\fonthandlingerror}
+% \def\dosetupfonthandling [#1][#2]{\fonthandlingerror}
+% \def\usehandling [#1]{\fonthandlingerror}
+
+\installcorenamespace{expansion}
+
+\installcommandhandler \??expansion {expansion} \??expansion
+
+\appendtoks
+ \setuevalue{\??expansion:\currentexpansion}%
+ {\adjustspacingstep \expansionparameter\c!step\relax
+ \adjustspacingstretch\expansionparameter\c!stretch\relax
+ \adjustspacingshrink \expansionparameter\c!shrink\relax}%
+\to \everydefineexpansion
+
+\defineexpansion
+ [\c!step=1,
+ \c!stretch=40,
+ \c!shrink=20]
+
+% \defineexpansion
+% [myexpansion]
+% [\c!stretch=50,
+% \c!shrink=20]
+
+\unexpanded\def\setexpansion
+ {\dosingleempty\font_expansion_set}
+
+\unexpanded\def\font_expansion_set[#1]%
+ {\begincsname\??expansion:#1\endcsname}
+
+\protect \endinput
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 7b30b232e..d390f9c15 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -219,6 +219,9 @@ return {
"Uunderdelimiter",
"Uvextensible",
"adjustspacing",
+ "adjustspacingshrink",
+ "adjustspacingstep",
+ "adjustspacingstretch",
"aftergrouped",
"alignmark",
"aligntab",
@@ -320,7 +323,6 @@ return {
"matheqnogapstep",
"mathflattenmode",
"mathitalicsmode",
- "mathlimitsmode",
"mathnolimitsmode",
"matholdmode",
"mathpenaltiesmode",
@@ -692,6 +694,7 @@ return {
"omit",
"openin",
"or",
+ "ordlimits",
"orelse",
"outer",
"output",
diff --git a/tex/context/base/mkiv/pack-lyr.mkiv b/tex/context/base/mkiv/pack-lyr.mkiv
index 5112aed52..e952a73b9 100644
--- a/tex/context/base/mkiv/pack-lyr.mkiv
+++ b/tex/context/base/mkiv/pack-lyr.mkiv
@@ -584,22 +584,22 @@
\def\pack_layers_flush_double#1%
{\startoverlay
{\ifcsname\??layerbox\currentlayer\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
+ \ifvoid\lastnamedcs\else \chardef\b_layer_two\lastnamedcs
\pack_layers_flush_indeed\plusone\currentlayer\b_layer_two
\fi
\fi}%
{\ifcsname\??layerbox\currentlayer:\the\realpageno\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
+ \ifvoid\lastnamedcs\else \chardef\b_layer_two\lastnamedcs
\pack_layers_flush_indeed\zerocount{\currentlayer:\the\realpageno}\b_layer_two
\fi
\fi}%
{\ifcsname\??layerbox#1\currentlayer\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
+ \ifvoid\lastnamedcs\else \chardef\b_layer_two\lastnamedcs
\pack_layers_flush_indeed\plusone{#1\currentlayer}\b_layer_two
\fi
\fi}%
{\ifcsname\??layerbox#1\currentlayer:\the\realpageno\endcsname
- \ifvoid\lastnamedcss\else \chardef\b_layer_two\lastnamedcs
+ \ifvoid\lastnamedcs\else \chardef\b_layer_two\lastnamedcs
\pack_layers_flush_indeed\zerocount{#1\currentlayer:\the\realpageno}\b_layer_two
\fi
\fi}%
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 6cb5363b9..ebe7a3717 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 d8065f6bf..a9f5e7dbb 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/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 6e498dc8e..078c2dd7a 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 6a784061e..14396db1c 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ