From 6359695c65028baeb2296bd4b2e0c41a34dd8f0e Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Thu, 5 Oct 2017 17:04:18 +0200 Subject: 2017-10-05 16:30:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/font-oto.lua | 14 ++++- tex/context/base/mkiv/math-act.lua | 4 +- tex/context/base/mkiv/publ-imp-default.lua | 2 + tex/context/base/mkiv/publ-imp-default.mkvi | 2 +- tex/context/base/mkiv/status-files.pdf | Bin 25710 -> 25743 bytes tex/context/base/mkiv/status-lua.pdf | Bin 426091 -> 426111 bytes tex/context/base/mkiv/strc-itm.mkvi | 6 +++ tex/context/base/mkiv/tabl-tbl.mkiv | 60 +++++++++++++++++++-- tex/context/fonts/mkiv/stix-two-math.lfg | 36 +++++++++++++ tex/context/interface/mkiv/i-context.pdf | Bin 818486 -> 818629 bytes tex/context/interface/mkiv/i-readme.pdf | Bin 60766 -> 60766 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 15 ++++-- 16 files changed, 130 insertions(+), 17 deletions(-) (limited to 'tex') diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 57b49b8a1..f4d801b6d 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.10.02 10:34} +\newcontextversion{2017.10.05 16:25} %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 56884db5e..c9dfd1494 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.10.02 10:34} +\edef\contextversion{2017.10.05 16:25} %D For those who want to use this: diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 79b80846a..9441154c3 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.10.02 10:34} +\newcontextversion{2017.10.05 16:25} %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 2a8d1ab60..5a6eabb3f 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.10.02 10:34} +\edef\contextversion{2017.10.05 16:25} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/mkiv/font-oto.lua b/tex/context/base/mkiv/font-oto.lua index 8faad27e1..4b986bd3b 100644 --- a/tex/context/base/mkiv/font-oto.lua +++ b/tex/context/base/mkiv/font-oto.lua @@ -404,7 +404,7 @@ local function initializehashes(tfmdata) -- already done end -local function checkmathreplacements(tfmdata,fullname) +local function checkmathreplacements(tfmdata,fullname,fixitalics) if tfmdata.mathparameters then local characters = tfmdata.characters local changed = tfmdata.changed @@ -418,6 +418,16 @@ local function checkmathreplacements(tfmdata,fullname) local n = u.next local v = u.vert_variants local h = u.horiz_variants + if fixitalics then + -- quite some warnings on stix ... + local ui = u.italic + if ui and not r.italic then + if trace_preparing then + report_prepare("using %i units of italic correction from %C for %U",ui,unicode,replacement) + end + r.italic = ui -- print(ui,ri) + end + end if n and not r.next then if trace_preparing then report_prepare("forcing %s for %C substituted by %U","incremental step",unicode,replacement) @@ -498,7 +508,7 @@ local function featuresinitializer(tfmdata,value) end -- if substitutionsdone then - checkmathreplacements(tfmdata,fullname) + checkmathreplacements(tfmdata,fullname,features.fixitalics) end -- registerbasehash(tfmdata) diff --git a/tex/context/base/mkiv/math-act.lua b/tex/context/base/mkiv/math-act.lua index 826669a3d..5d33031cf 100644 --- a/tex/context/base/mkiv/math-act.lua +++ b/tex/context/base/mkiv/math-act.lua @@ -177,9 +177,9 @@ local function applytweaks(when,target,original) local goodie = goodies[i] local mathematics = goodie.mathematics local tweaks = mathematics and mathematics.tweaks - if tweaks then + if type(tweaks) == "table" then tweaks = tweaks[when] - if tweaks then + if type(tweaks) == "table" then if trace_defining then report_math("tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when) end diff --git a/tex/context/base/mkiv/publ-imp-default.lua b/tex/context/base/mkiv/publ-imp-default.lua index 28f5bb316..f77121c16 100644 --- a/tex/context/base/mkiv/publ-imp-default.lua +++ b/tex/context/base/mkiv/publ-imp-default.lua @@ -101,6 +101,7 @@ return { "title", "keywords", "journal", "volume", "number", "pages", + "note", }, }, book = { @@ -118,6 +119,7 @@ return { "keywords", "publisher", "address", "editionset", + "note", }, }, }, diff --git a/tex/context/base/mkiv/publ-imp-default.mkvi b/tex/context/base/mkiv/publ-imp-default.mkvi index 564bfcf4e..22638c900 100644 --- a/tex/context/base/mkiv/publ-imp-default.mkvi +++ b/tex/context/base/mkiv/publ-imp-default.mkvi @@ -46,7 +46,7 @@ [\s!default:\s!cite] [\s!default] [\c!alternative=num, - [\c!compress=\v!yes, + \c!compress=\v!yes, \c!sorttype=normal, \c!authorconversion=\v!name] diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index f25ca8f25..02750e284 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 8dcafa533..e9d4ff0e2 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/base/mkiv/strc-itm.mkvi b/tex/context/base/mkiv/strc-itm.mkvi index a28193415..d69a75af0 100644 --- a/tex/context/base/mkiv/strc-itm.mkvi +++ b/tex/context/base/mkiv/strc-itm.mkvi @@ -410,8 +410,14 @@ \settrue\c_strc_itemgroups_pack \fi} +\def\strc_itemgroups_process_set_option_unpack + {\ifcase\c_strc_itemgroups_nesting\else + \setfalse\c_strc_itemgroups_pack + \fi} + \setvalue{\??itemgroupkeyword\!!zerocount }{} % ignore 0 \setvalue{\??itemgroupkeyword\v!packed }{\strc_itemgroups_process_set_option_pack} +\setvalue{\??itemgroupkeyword\v!unpacked }{\strc_itemgroups_process_set_option_unpack} \setvalue{\??itemgroupkeyword\v!intro }{\settrue\c_strc_itemgroups_intro} % here? not set to false \setvalue{\??itemgroupkeyword\v!autointro }{\settrue\c_strc_itemgroups_auto_intro} \setvalue{\??itemgroupkeyword\v!broad }{\ifx\itemgroupfirst\empty diff --git a/tex/context/base/mkiv/tabl-tbl.mkiv b/tex/context/base/mkiv/tabl-tbl.mkiv index 401e82fec..28baf7f5d 100644 --- a/tex/context/base/mkiv/tabl-tbl.mkiv +++ b/tex/context/base/mkiv/tabl-tbl.mkiv @@ -168,6 +168,7 @@ \newcount \c_tabl_tabulate_plines_min \newcount \c_tabl_tabulate_plines_max \newcount \c_tabl_tabulate_max_colorcolumn +\newcount \c_tabl_tabulate_max_vrulecolumn \newcount \c_tabl_tabulate_repeathead \newcount \c_tabl_tabulate_noflines \newcount \c_tabl_tabulate_totalnoflines @@ -244,6 +245,7 @@ \installcorenamespace{tabulateheader} \installcorenamespace{tabulatealigning} \installcorenamespace{tabulatepreamble} +\installcorenamespace{tabulatevrule} \installcorenamespace{tabulatehead} \installcorenamespace{tabulatefoot} @@ -1428,10 +1430,22 @@ % normal columns: +% \def\tabl_tabulate_column_normal#1#2% +% {\unskip +% \aligntab +% \ifconditional\c_tabl_tabulate_equal\tabulateequalpos\else\tabulatenormalpos\fi +% \aligntab +% \global\c_tabl_tabulate_kind#1% +% \global\c_tabl_tabulate_type#2% +% \aligntab} + \def\tabl_tabulate_column_normal#1#2% {\unskip \aligntab \ifconditional\c_tabl_tabulate_equal\tabulateequalpos\else\tabulatenormalpos\fi + \ifnum\c_tabl_tabulate_column>\c_tabl_tabulate_max_vrulecolumn\else + \tabl_tabulate_column_vrule_setup + \fi \aligntab \global\c_tabl_tabulate_kind#1% \global\c_tabl_tabulate_type#2% @@ -1450,6 +1464,10 @@ % ruled columns +\def\tabl_tabulate_column_vruled_preset + {\global\let\m_tabl_tabulate_vrule_color_local\m_tabl_tabulate_vrule_color_default + \global\d_tabl_tabulate_vrulethickness_local\d_tabl_tabulate_vrulethickness_default} + \def\tabl_tabulate_column_vruled#1#2% {\unskip % 0-n %\ifnum\c_tabl_tabulate_column=\plusone @@ -1457,12 +1475,17 @@ %\else\ifnum\c_tabl_tabulate_column=\c_tabl_tabulate_nofcolumns % \global\c_tabl_tabulate_has_rule_spec_last\plusone %\fi\fi - \global\let\m_tabl_tabulate_vrule_color_local\m_tabl_tabulate_vrule_color_default - \global\d_tabl_tabulate_vrulethickness_local\d_tabl_tabulate_vrulethickness_default + \ifnum\c_tabl_tabulate_column>\c_tabl_tabulate_max_vrulecolumn + \global\c_tabl_tabulate_max_vrulecolumn\c_tabl_tabulate_column + \fi \doifelsefastoptionalcheck{\tabl_tabulate_column_vruled_yes#1#2}{\tabl_tabulate_column_vruled_nop#1#2}} +\def\tabl_tabulate_column_vrule_setup + {\begincsname\??tabulatevrule\the\c_tabl_tabulate_column\endcsname} + \def\tabl_tabulate_column_vruled_nop - {\tabl_tabulate_column_normal} + {\expandafter\glet\csname\??tabulatevrule\the\c_tabl_tabulate_column\endcsname\tabl_tabulate_column_vruled_preset + \tabl_tabulate_column_normal} \def\tabl_tabulate_column_vruled_step#1% {\doifelsenumber{#1} @@ -1470,9 +1493,36 @@ {\xdef\m_tabl_tabulate_vrule_color_local{#1}}} \def\tabl_tabulate_column_vruled_yes#1#2[#3]% - {\rawprocesscommalist[#3]\tabl_tabulate_column_vruled_step + {\expandafter\gdef\csname\??tabulatevrule\the\c_tabl_tabulate_column\endcsname + {\tabl_tabulate_column_vruled_preset + \rawprocesscommalist[#3]\tabl_tabulate_column_vruled_step}% \tabl_tabulate_column_normal#1#2} +\def\tabl_tabulate_vrule_reset + {\ifcase\c_tabl_tabulate_max_vrulecolumn\else + \tabl_tabulate_vrule_reset_indeed + \fi} + +\def\tabl_tabulate_vrule_reset_indeed + {\dofastloopcs\c_tabl_tabulate_max_vrulecolumn\tabl_tabulate_vrule_reset_step + \global\c_tabl_tabulate_max_vrulecolumn\zerocount} + +\def\tabl_tabulate_vrule_reset_step % undefined or relax + {\global\expandafter\let\csname\??tabulatevrule\the\fastloopindex\endcsname\undefined} + +\appendtoks + \tabl_tabulate_vrule_reset +\to \t_tabl_tabulate_every_after_row + +% sometimes more efficient: +% +% \def\tabl_tabulate_column_vruled_yes#1#2[#3]% +% {\rawprocesscommalist[#3]\tabl_tabulate_column_vruled_step +% \expandafter\xdef\csname\??tabulatevrule\the\c_tabl_tabulate_column\endcsname +% {\global\d_tabl_tabulate_vrulethickness_local\the\d_tabl_tabulate_vrulethickness_default +% \noexpand\xdef\noexpand\m_tabl_tabulate_vrule_color_local{\m_tabl_tabulate_vrule_color_local}}% +% \tabl_tabulate_column_normal#1#2} + \def\tabl_tabulate_column_vruled_normal {\vrule\s!width\d_tabl_tabulate_vrulethickness\relax} @@ -1636,7 +1686,7 @@ \ifnum\c_tabl_tabulate_column>\c_tabl_tabulate_max_colorcolumn \global\c_tabl_tabulate_max_colorcolumn\c_tabl_tabulate_column \fi - \setxvalue{\??tabulatecolor\the\c_tabl_tabulate_column}{#1}% + \global\expandafter\xdef\csname\??tabulatecolor\the\c_tabl_tabulate_column\endcsname{#1}% \hbox \thealignbackgroundcolorattr{#1}{}% pack ? \endgroup} diff --git a/tex/context/fonts/mkiv/stix-two-math.lfg b/tex/context/fonts/mkiv/stix-two-math.lfg index ded97f92e..7652796a9 100644 --- a/tex/context/fonts/mkiv/stix-two-math.lfg +++ b/tex/context/fonts/mkiv/stix-two-math.lfg @@ -1,3 +1,32 @@ +-- Bah, I really hate these patches especially because one needs to make +-- sure that they are still valid when the font gets updated. So, let's +-- do it runtime (not in the cached copy) and issue a warning every run. +-- As we cannot rely on version numbers (if we have more patches) we +-- check for values instead. +-- +-- This font also has inconsistent italics in smalelr sizes which we can +-- fix in a more general way but I'm not sure if we want that. + +local function fix_italic(target,original,name,value,factor) + local m = target.parameters.mathsize + local u = original.resources.unicodes[name] + if m and u then + local c = target.characters[u] + if c then + local i = c.italic + if i then + local d = original.descriptions[u] + if d and d.math.italic == value then + if m then + logs.report("patching font","fixing italic correction of %U at math size %i by %0.3f",u,m,factor) + c.italic = factor * i + end + end + end + end + end +end + return { name = "stix-two-math", version = "1.00", @@ -21,6 +50,13 @@ return { -- todo = { feature = 'ss14', value = 1, comment = "" }, circled = { feature = 'ss16', value = 1, comment = "Mathematical Alternative Circled Operators" }, }, + tweaks = { + aftercopying = { + function(target,original) + fix_italic(target,original,"uni222B.updsp",80,3) + end, + }, + }, }, } diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf index 456f9e620..802270a96 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 2af2fc801..c9cc4fc32 100644 Binary files a/tex/context/interface/mkiv/i-readme.pdf and b/tex/context/interface/mkiv/i-readme.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 7cd7b442b..f84adbf43 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 : 10/02/17 10:34:56 +-- merge date : 10/05/17 16:25:14 do -- begin closure to overcome local limits and interference @@ -20803,7 +20803,7 @@ local function preparepositionings(tfmdata,feature,value,validlookups,lookuplist end local function initializehashes(tfmdata) end -local function checkmathreplacements(tfmdata,fullname) +local function checkmathreplacements(tfmdata,fullname,fixitalics) if tfmdata.mathparameters then local characters=tfmdata.characters local changed=tfmdata.changed @@ -20817,6 +20817,15 @@ local function checkmathreplacements(tfmdata,fullname) local n=u.next local v=u.vert_variants local h=u.horiz_variants + if fixitalics then + local ui=u.italic + if ui and not r.italic then + if trace_preparing then + report_prepare("using %i units of italic correction from %C for %U",ui,unicode,replacement) + end + r.italic=ui + end + end if n and not r.next then if trace_preparing then report_prepare("forcing %s for %C substituted by %U","incremental step",unicode,replacement) @@ -20893,7 +20902,7 @@ local function featuresinitializer(tfmdata,value) end end if substitutionsdone then - checkmathreplacements(tfmdata,fullname) + checkmathreplacements(tfmdata,fullname,features.fixitalics) end registerbasehash(tfmdata) end -- cgit v1.2.3