From 0d26f9ebc9ba7dca60bf49c5de8ca6c1c197c608 Mon Sep 17 00:00:00 2001 From: Marius Date: Thu, 26 Dec 2013 14:00:26 +0200 Subject: beta 2013.12.26 12:50 --- tex/context/base/char-ini.lua | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4110 -> 4120 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/font-col.lua | 3 +- tex/context/base/math-act.lua | 81 +++++++++++++++------ tex/context/base/status-files.pdf | Bin 24627 -> 24644 bytes tex/context/base/status-lua.pdf | Bin 228242 -> 228341 bytes tex/context/base/strc-num.mkiv | 20 +++++ tex/context/base/x-set-11.mkiv | 22 +++--- tex/context/interface/cont-cs.xml | 4 +- tex/context/interface/cont-de.xml | 4 +- tex/context/interface/cont-en.xml | 4 +- tex/context/interface/cont-fr.xml | 4 +- tex/context/interface/cont-it.xml | 4 +- tex/context/interface/cont-nl.xml | 4 +- tex/context/interface/cont-pe.xml | 4 +- tex/context/interface/cont-ro.xml | 4 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 19 files changed, 113 insertions(+), 53 deletions(-) diff --git a/tex/context/base/char-ini.lua b/tex/context/base/char-ini.lua index d2236f871..ac47760f3 100644 --- a/tex/context/base/char-ini.lua +++ b/tex/context/base/char-ini.lua @@ -382,7 +382,7 @@ end) function characters.getrange(name) -- used in font fallback definitions (name or range) local range = blocks[name] if range then - return range.first, range.last, range.description + return range.first, range.last, range.description, range.gaps end name = gsub(name,'"',"0x") -- goodie: tex hex notation local start, stop = match(name,"^(.-)[%-%:](.-)$") diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 1940f7f0f..d16ccaa6a 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.12.24 17:52} +\newcontextversion{2013.12.26 12:50} %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/context-version.pdf b/tex/context/base/context-version.pdf index 131d44aee..52e5898dc 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 8f92ff528..eeebd2afe 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.12.24 17:52} +\edef\contextversion{2013.12.26 12:50} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/font-col.lua b/tex/context/base/font-col.lua index b15997cba..f5e17f1da 100644 --- a/tex/context/base/font-col.lua +++ b/tex/context/base/font-col.lua @@ -89,7 +89,7 @@ function collections.define(name,font,ranges,details) details = settings_to_hash(details) -- todo, combine per font start/stop as arrays for s in gmatch(ranges,"[^, ]+") do - local start, stop, description = characters.getrange(s) + local start, stop, description, gaps = characters.getrange(s) if start and stop then if trace_collecting then if description then @@ -113,6 +113,7 @@ function collections.define(name,font,ranges,details) font = font, start = start, stop = stop, + gaps = gaps, offset = offset, rscale = tonumber (details.rscale) or 1, force = toboolean(details.force,true), diff --git a/tex/context/base/math-act.lua b/tex/context/base/math-act.lua index fc63a0090..879480dce 100644 --- a/tex/context/base/math-act.lua +++ b/tex/context/base/math-act.lua @@ -601,6 +601,47 @@ blocks["digitsextendedarabicindic"] = { first = 0x006F0, last = 0x006F -- symbolsb : 0x02901 -- supplemental : 0x02A00 +-- from mathematics.gaps: + +blocks["lowercaseitalic"].gaps = { + [0x1D455] = 0x0210E, -- ℎ h +} + +blocks["uppercasescript"].gaps = { + [0x1D49D] = 0x0212C, -- ℬ script B + [0x1D4A0] = 0x02130, -- ℰ script E + [0x1D4A1] = 0x02131, -- ℱ script F + [0x1D4A3] = 0x0210B, -- ℋ script H + [0x1D4A4] = 0x02110, -- ℐ script I + [0x1D4A7] = 0x02112, -- ℒ script L + [0x1D4A8] = 0x02133, -- ℳ script M + [0x1D4AD] = 0x0211B, -- ℛ script R +} + +blocks["lowercasescript"].gaps = { + [0x1D4BA] = 0x0212F, -- ℯ script e + [0x1D4BC] = 0x0210A, -- ℊ script g + [0x1D4C4] = 0x02134, -- ℴ script o +} + +blocks["uppercasefraktur"].gaps = { + [0x1D506] = 0x0212D, -- ℭ fraktur C + [0x1D50B] = 0x0210C, -- ℌ fraktur H + [0x1D50C] = 0x02111, -- ℑ fraktur I + [0x1D515] = 0x0211C, -- ℜ fraktur R + [0x1D51D] = 0x02128, -- ℨ fraktur Z +} + +blocks["uppercasedoublestruck"].gaps = { + [0x1D53A] = 0x02102, -- ℂ bb C + [0x1D53F] = 0x0210D, -- ℍ bb H + [0x1D545] = 0x02115, -- ℕ bb N + [0x1D547] = 0x02119, -- ℙ bb P + [0x1D548] = 0x0211A, -- ℚ bb Q + [0x1D549] = 0x0211D, -- ℝ bb R + [0x1D551] = 0x02124, -- ℤ bb Z +} + -- todo: tounicode function mathematics.injectfallbacks(target,original) @@ -635,6 +676,7 @@ function mathematics.injectfallbacks(target,original) local name = definition.font local start = definition.start local stop = definition.stop + local gaps = definition.gaps local check = definition.check local force = definition.force local rscale = definition.rscale or 1 @@ -643,29 +685,26 @@ function mathematics.injectfallbacks(target,original) local index = #fonts + 1 fonts[index] = { id = id, size = size } local chars = fontchars[id] - if check then - for unicode = start, stop do - local unic = unicode + offset - start - if not chars[unicode] then - -- not in font - elseif force or (not done[unic] and not characters[unic]) then - if trace_collecting then - report_math("remapping math character, vector %a, font %a, character %C, %s",fallbacks,name,unic,"checked") - end - characters[unic] = copiedglyph(target,characters,chars,unicode,index) - done[unic] = true + local function remap(unic,unicode,gap) + local unic = unicode + offset - start + if check and not chars[unicode] then + -- not in font + elseif force or (not done[unic] and not characters[unic]) then + if trace_collecting then + report_math("remapping math character, vector %a, font %a, character %C%s%s", + fallbacks,name,unic,check and ", checked",gap and ", gap plugged") end + characters[unic] = copiedglyph(target,characters,chars,unicode,index) + done[unic] = true end - else - for unicode = start, stop do - local unic = unicode + offset - start - if force or (not done[unic] and not characters[unic]) then - if trace_collecting then - report_math("remapping math character, vector %a, font %a, character %C, %s",fallbacks,name,unic,"unchecked") - end - characters[unic] = copiedglyph(target,characters,chars,unicode,index) - done[unic] = true - end + end + for unicode = start, stop do + local unic = unicode + offset - start + remap(unic,unicode,false) + end + if gaps then + for unic, unicode in next, gaps do + remap(unic,unicode,true) end end end diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 59f96fc11..452f01086 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 99338da8c..c20926051 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-num.mkiv b/tex/context/base/strc-num.mkiv index 679dd0532..2fa8b0e9a 100644 --- a/tex/context/base/strc-num.mkiv +++ b/tex/context/base/strc-num.mkiv @@ -744,4 +744,24 @@ % \unexpanded\def#7##1% register % {\normalexpanded{#5{\the#5\edef\noexpand\currentcounter{##1}\noexpand\the\everysetupcounter}}}} +%D For good old times (easier to explain in manuals): +%D +%D \starttyping +%D \setcounter[userpage][9] +%D \setupcounter[userpage][number=9] +%D \setupuserpagenumber[number=9] +%D \stoptyping + +% needs testing: we might have conflicts with mixins +% +% \appendtoks +% \ifx\currentcounter\empty \else +% \edef\p_number{\counterparameter\c!number}% +% \ifx\p_number\empty \else +% \strc_counters_set\currentcounter\p_number +% \letcounterparameter\c!number\empty +% \fi +% \fi +% \to \everysetupcounter + \protect \endinput diff --git a/tex/context/base/x-set-11.mkiv b/tex/context/base/x-set-11.mkiv index a8e62542b..372e3a8ef 100644 --- a/tex/context/base/x-set-11.mkiv +++ b/tex/context/base/x-set-11.mkiv @@ -337,11 +337,11 @@ \defineregister [texmacro] - [texmacros] +% [texmacros] \definesorting [texcommand] - [texcommands] +% [texcommands] \setupsorting [texcommand] @@ -390,6 +390,7 @@ \startxmlsetups xml:setups:register \xmlsetup{#1}{xml:setups:assemblename} + % not really needed if we just use setups \expanded{\texcommand[stp:x:\currentSETUPfullname]{#1}} \stopxmlsetups @@ -404,7 +405,7 @@ \xmlregisterdocumentsetup{setups}{xml:setups:basics} -\def\loadsetups{\complexorsimple\loadsetups} +\unexpanded\def\loadsetups{\complexorsimple\loadsetups} \let\loadedsetups\empty % we load more setups, setups: @@ -416,7 +417,7 @@ {\doonlyonce{setups:#1} {\doglobal\prependtocommalist{setups:#1}\loadedsetups % last overloads first \xmlloadonly{setups:#1}{#1}{setups}% - \xmlfilter{setups:#1}{interface/command/command(xml:setups:register)}}}} % qualified path saves > 50% runtime + \xmlfilter{setups:#1}{/interface/command/command(xml:setups:register)}}}} % qualified path saves > 50% runtime \newif\ifshortsetup @@ -448,7 +449,7 @@ % {\xmlfilterlist{\loadedsetups}{interface/command[@name='#1']/command(xml:setups:typeset)}} \def\showsetupindeed#1% - {\xmlfilterlist{\loadedsetups}{interface/command['#1' == (@type=='environment' and 'start' or '') .. @name]/command(xml:setups:typeset)}} + {\xmlfilterlist{\loadedsetups}{/interface/command['#1' == (@type=='environment' and 'start' or '') .. @name]/command(xml:setups:typeset)}} \unexpanded\def\placesetup {\placelistofsorts[texcommand][\c!criterium=\v!used]} \unexpanded\def\placeallsetups{\placelistofsorts[texcommand][\c!criterium=\v!all ]} @@ -480,10 +481,9 @@ \doif {\xmlatt{#1}{generated}} {yes} { \ttsl } - \doifelse {\xmlatt{#1}{type}} {environment} { - \tex{\e!start} - } { - \tex{} + \letterbackslash + \doif {\xmlatt{#1}{type}} {environment} { + \e!start } \xmlfilter{#1}{/sequence/first()} \ignorespaces @@ -530,7 +530,7 @@ \startxmlsetups xml:setups:resolve \ignorespaces - \xmlfilterlist{\loadedsetups}{interface/define[@name='\xmlatt{#1}{name}']/first()} + \xmlfilterlist{\loadedsetups}{/interface/define[@name='\xmlatt{#1}{name}']/first()} \stopxmlsetups %D This is the first pass; here we generate the top line. @@ -661,7 +661,7 @@ \secondSETUPcolumn { \c!setup!text!{\getmessage{setup}{inherits}} \enspace - \tex{} + \letterbackslash \xmlatt{#1}{name} } {} \ignorespaces diff --git a/tex/context/interface/cont-cs.xml b/tex/context/interface/cont-cs.xml index bd7dadddf..afaacb709 100644 --- a/tex/context/interface/cont-cs.xml +++ b/tex/context/interface/cont-cs.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml index 7b120082e..e9771d07a 100644 --- a/tex/context/interface/cont-de.xml +++ b/tex/context/interface/cont-de.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml index a20ac37da..f00215596 100644 --- a/tex/context/interface/cont-en.xml +++ b/tex/context/interface/cont-en.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml index bfb5c82f4..1cd7fa33a 100644 --- a/tex/context/interface/cont-fr.xml +++ b/tex/context/interface/cont-fr.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml index 2ede93e69..d9fe0ac97 100644 --- a/tex/context/interface/cont-it.xml +++ b/tex/context/interface/cont-it.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml index c4ad23ba9..685033f81 100644 --- a/tex/context/interface/cont-nl.xml +++ b/tex/context/interface/cont-nl.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/context/interface/cont-pe.xml b/tex/context/interface/cont-pe.xml index b4e221171..434a328e8 100644 --- a/tex/context/interface/cont-pe.xml +++ b/tex/context/interface/cont-pe.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml index 1dbc8fb85..31ef5d920 100644 --- a/tex/context/interface/cont-ro.xml +++ b/tex/context/interface/cont-ro.xml @@ -10311,10 +10311,10 @@ - + - + diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 177324145..099e0657d 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 : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 12/24/13 17:52:44 +-- merge date : 12/26/13 12:50:38 do -- begin closure to overcome local limits and interference -- cgit v1.2.3