From 4af09333cc14015426fc193878c1a35157207518 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 2 Dec 2019 18:57:49 +0100 Subject: 2019-12-02 18:38:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkiv/colo-ini.lua | 3 + tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/context.mkxl | 4 +- tex/context/base/mkiv/driv-shp.lua | 13 ++-- tex/context/base/mkiv/hand-ini.mkxl | 111 +++++++++++++++++++++++++++++++ tex/context/base/mkiv/mult-prm.lua | 5 +- tex/context/base/mkiv/pack-lyr.mkiv | 8 +-- tex/context/base/mkiv/status-files.pdf | Bin 26661 -> 26597 bytes tex/context/base/mkiv/status-lua.pdf | Bin 268220 -> 268220 bytes tex/context/interface/mkiv/i-context.pdf | Bin 893992 -> 894230 bytes tex/context/interface/mkiv/i-readme.pdf | Bin 61165 -> 61165 bytes 14 files changed, 135 insertions(+), 17 deletions(-) create mode 100644 tex/context/base/mkiv/hand-ini.mkxl (limited to 'tex/context') 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 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 d8065f6bf..a9f5e7dbb 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/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf index 6e498dc8e..078c2dd7a 100644 Binary files a/tex/context/interface/mkiv/i-context.pdf and b/tex/context/interface/mkiv/i-context.pdf differ diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf index 6a784061e..14396db1c 100644 Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ -- cgit v1.2.3