summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2013-12-26 14:00:26 +0200
committerMarius <mariausol@gmail.com>2013-12-26 14:00:26 +0200
commit0d26f9ebc9ba7dca60bf49c5de8ca6c1c197c608 (patch)
tree9be42b4d714773c4b1ac9f42728ede04f6b3b5bd
parentf3cbe661ac115c29ab8c0674fc857d3331d5d4cc (diff)
downloadcontext-0d26f9ebc9ba7dca60bf49c5de8ca6c1c197c608.tar.gz
beta 2013.12.26 12:50
-rw-r--r--tex/context/base/char-ini.lua2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4110 -> 4120 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/font-col.lua3
-rw-r--r--tex/context/base/math-act.lua81
-rw-r--r--tex/context/base/status-files.pdfbin24627 -> 24644 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin228242 -> 228341 bytes
-rw-r--r--tex/context/base/strc-num.mkiv20
-rw-r--r--tex/context/base/x-set-11.mkiv22
-rw-r--r--tex/context/interface/cont-cs.xml4
-rw-r--r--tex/context/interface/cont-de.xml4
-rw-r--r--tex/context/interface/cont-en.xml4
-rw-r--r--tex/context/interface/cont-fr.xml4
-rw-r--r--tex/context/interface/cont-it.xml4
-rw-r--r--tex/context/interface/cont-nl.xml4
-rw-r--r--tex/context/interface/cont-pe.xml4
-rw-r--r--tex/context/interface/cont-ro.xml4
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
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
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files 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
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index 99338da8c..c20926051 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files 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:<name>
@@ -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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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 @@
</cd:sequence>
<cd:arguments>
<cd:keywords n="1">
- <cd:constant type="cd:text"/>
+ <cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords n="2">
- <cd:constant type="cd:name"/>
+ <cd:constant type="cd:text"/>
</cd:keywords>
<cd:assignments n="3" optional="yes">
<cd:parameter name="fallbacks">
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