summaryrefslogtreecommitdiff
path: root/tex/context/base
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2013-01-02 18:40:25 +0200
committerMarius <mariausol@gmail.com>2013-01-02 18:40:25 +0200
commitc67041351da8f66abcefbfcbbeb7b750b9cf4a52 (patch)
tree7ad66d035eac95bc7e4bf8dca1cf1cd3b78b52cb /tex/context/base
parentf8d3835211dbbac2ed31376d655642571db52f4e (diff)
downloadcontext-c67041351da8f66abcefbfcbbeb7b750b9cf4a52.tar.gz
beta 2013.01.02 17:15
Diffstat (limited to 'tex/context/base')
-rw-r--r--tex/context/base/attr-ini.mkiv1
-rw-r--r--tex/context/base/buff-ini.lua15
-rw-r--r--tex/context/base/buff-ini.mkii12
-rw-r--r--tex/context/base/buff-ini.mkiv19
-rw-r--r--tex/context/base/char-def.lua209
-rw-r--r--tex/context/base/cont-new.mkii2
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4131 -> 4141 bytes
-rw-r--r--tex/context/base/context-version.pngbin40605 -> 39746 bytes
-rw-r--r--tex/context/base/context.mkii2
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/grph-inc.lua13
-rw-r--r--tex/context/base/grph-inc.mkiv12
-rw-r--r--tex/context/base/l-table.lua1
-rw-r--r--tex/context/base/math-act.lua54
-rw-r--r--tex/context/base/math-arr.mkiv48
-rw-r--r--tex/context/base/math-frc.mkiv40
-rw-r--r--tex/context/base/math-ini.lua19
-rw-r--r--tex/context/base/math-ini.mkiv16
-rw-r--r--tex/context/base/node-bck.lua163
-rw-r--r--tex/context/base/node-bck.mkiv26
-rw-r--r--tex/context/base/node-res.lua6
-rw-r--r--tex/context/base/pack-bck.mkvi3
-rw-r--r--tex/context/base/pack-box.mkiv2
-rw-r--r--tex/context/base/s-fnt-31.mkiv2
-rw-r--r--tex/context/base/status-files.pdfbin24676 -> 24705 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin208248 -> 208436 bytes
-rw-r--r--tex/context/base/tabl-tbl.mkiv48
-rw-r--r--tex/context/base/task-ini.lua2
-rw-r--r--tex/context/base/trac-vis.mkiv25
-rw-r--r--tex/context/base/type-imp-latinmodern.mkiv4
-rw-r--r--tex/context/base/type-imp-texgyre.mkiv4
32 files changed, 534 insertions, 218 deletions
diff --git a/tex/context/base/attr-ini.mkiv b/tex/context/base/attr-ini.mkiv
index 377960f9f..ac210c98e 100644
--- a/tex/context/base/attr-ini.mkiv
+++ b/tex/context/base/attr-ini.mkiv
@@ -91,6 +91,7 @@
\definesystemattribute [penalty]
\definesystemattribute [transparency] [public]
\definesystemattribute [background] [public]
+\definesystemattribute [alignbackground] [public]
\definesystemattribute [colorintent] [public]
\definesystemattribute [negative] [public]
\definesystemattribute [effect] [public]
diff --git a/tex/context/base/buff-ini.lua b/tex/context/base/buff-ini.lua
index 3aa361297..3c26da28f 100644
--- a/tex/context/base/buff-ini.lua
+++ b/tex/context/base/buff-ini.lua
@@ -24,6 +24,8 @@ local P, Cs, patterns, lpegmatch = lpeg.P, lpeg.Cs, lpeg.patterns, lpeg.match
local variables = interfaces.variables
local settings_to_array = utilities.parsers.settings_to_array
+local v_yes = variables.yes
+
local catcodenumbers = catcodes.numbers
local ctxcatcodes = catcodenumbers.ctxcatcodes
@@ -233,7 +235,7 @@ end
-- The optional prefix hack is there for the typesetbuffer feature and
-- in mkii we needed that (this hidden feature is used in a manual).
-local function prepared(name,list) -- list is optional
+local function prepared(name,list,prefix) -- list is optional
if not list or list == "" then
list = name
end
@@ -244,7 +246,12 @@ local function prepared(name,list) -- list is optional
if content == "" then
content = "empty buffer"
end
- return tex.jobname .. "-" .. name .. ".tmp", content
+ if prefix then
+ local name = file.addsuffix(name,"tmp")
+ return tex.jobname .. "-" .. name, content
+ else
+ return name, content
+ end
end
local capsule = "\\starttext\n%s\n\\stoptext\n"
@@ -267,8 +274,8 @@ function commands.runbuffer(name,list,encapsulate)
end
end
-function commands.savebuffer(list,name) -- name is optional
- local name, content = prepared(name,list)
+function commands.savebuffer(list,name,prefix) -- name is optional
+ local name, content = prepared(name,list,prefix==v_yes)
io.savedata(name,content)
end
diff --git a/tex/context/base/buff-ini.mkii b/tex/context/base/buff-ini.mkii
index 40baaec93..7fdb89e45 100644
--- a/tex/context/base/buff-ini.mkii
+++ b/tex/context/base/buff-ini.mkii
@@ -126,8 +126,8 @@
\let\processnextbufferline\processnextbufferlineA
\fi}
{\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
- \@EA\defconvertedargument\@EA\beginofblock\@EA{\csname#3\endcsname}% we could use defconvertedcommand here (no \@EA)
- \@EA\defconvertedargument\@EA\endofblock \@EA{\csname#4\endcsname}% we could use defconvertedcommand here (no \@EA)
+ \expandafter\defconvertedargument\expandafter\beginofblock\expandafter{\csname#3\endcsname}% we could use defconvertedcommand here (no \expandafter)
+ \expandafter\defconvertedargument\expandafter\endofblock \expandafter{\csname#4\endcsname}% we could use defconvertedcommand here (no \expandafter)
\ifcase\buffernestmode
\let\processnextbufferline\processnextbufferlineB
\or
@@ -314,17 +314,17 @@
\ifnum\currentbufferparagraph>\zerocount
\expandafter\dostartbufferparagraph
\else
- \expandafter\gobbleoneargument
+ \expandafter\gobblebufferparagraph
\fi}
\def\filterbufferparagraph#1#2%
{\advance\currentbufferparagraph \plusone
\ifcase\currentbufferparagraph
- \@EA\gobblebufferparagraph
+ \expandafter\gobblebufferparagraph
\else
\doifinsetelse{\the\currentbufferparagraph}{#2}
- {\@EA\dostartbufferparagraph}
- {\@EA\fakebufferparagraph}%
+ {\expandafter\dostartbufferparagraph}
+ {\expandafter\fakebufferparagraph}%
\fi
{#1}}
diff --git a/tex/context/base/buff-ini.mkiv b/tex/context/base/buff-ini.mkiv
index 5f9d1d1e6..8160fa613 100644
--- a/tex/context/base/buff-ini.mkiv
+++ b/tex/context/base/buff-ini.mkiv
@@ -163,13 +163,28 @@
% x
% \stopbuffer
%
-% \savebuffer[x][temp.log]
+% \savebuffer[x] [temp] % gets name: jobname-temp.tmp
+% \savebufferinfile[x][temp.log] % gets name: temp.log
+
+\installcorenamespace{savebuffer}
+
+\installsetuponlycommandhandler \??savebuffer {savebuffer}
+
+\setupsavebuffer
+ [\c!list=,
+ \c!file=,
+ \c!prefix=\v!yes]
\unexpanded\def\savebuffer
{\dodoubleempty\buff_save}
\def\buff_save[#1][#2]%
- {\ctxcommand{savebuffer("#1","#2")}}
+ {\begingroup
+ \doifassignmentelse{#1}
+ {\setupcurrentsavebuffer[#1]}%
+ {\setupcurrentsavebuffer[\c!list=#1,\c!file=#2]}%
+ \ctxcommand{savebuffer("\directsavebufferparameter\c!list","\directsavebufferparameter\c!file","\directsavebufferparameter\c!prefix")}%
+ \endgroup}
%D Experimental: no expansion of commands in buffer!
diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua
index 7aa2609f4..29a325697 100644
--- a/tex/context/base/char-def.lua
+++ b/tex/context/base/char-def.lua
@@ -407,15 +407,6 @@ characters.data={
direction="cs",
linebreak="is",
mathclass="punctuation",
---mathspec={
--- {
--- class="punctuation",
--- },
--- {
--- class="ord",
--- name="mathcomma",
--- },
---},
unicodeslot=0x002C,
},
{
@@ -432,20 +423,13 @@ characters.data={
adobename="period",
category="po",
cjkwd="na",
+ comment="class needed for autopunctuation",
contextname="textperiod",
description="FULL STOP",
direction="cs",
linebreak="is",
- mathclass="ord",
mathclass="punctuation",
- comment = "class needed for autopunctuation",
mathspec={
--- {
--- class="ord",
--- },
--- {
--- class="punctuation",
--- },
{
class="punctuation",
name="ldotp",
@@ -607,14 +591,14 @@ characters.data={
direction="on",
linebreak="al",
mathspec={
- {
- class="relation",
- name="eq",
- },
- {
- class="relation",
- name="Relbar",
- },
+ {
+ class="relation",
+ name="eq",
+ },
+ {
+ class="relation",
+ name="Relbar",
+ },
},
unicodeslot=0x003D,
},
@@ -56627,7 +56611,7 @@ characters.data={
{
class="inner",
name="dots",
- }
+ },
},
specials={ "compat", 0x002E, 0x002E, 0x002E },
unicodeslot=0x2026,
@@ -57258,7 +57242,7 @@ characters.data={
direction="es",
linebreak="al",
mathclass="binary",
- mathname ="positivesign",
+ mathname="positivesign",
specials={ "super", 0x002B },
unicodeslot=0x207A,
},
@@ -57268,7 +57252,7 @@ characters.data={
direction="es",
linebreak="al",
mathclass="binary",
- mathname ="negativesign",
+ mathname="negativesign",
specials={ "super", 0x2212 },
unicodeslot=0x207B,
},
@@ -59318,6 +59302,7 @@ characters.data={
description="LEFTWARDS ARROW",
direction="on",
linebreak="ai",
+ matharrow="l",
mathfiller="leftarrowfill",
mathspec={
{
@@ -59347,6 +59332,7 @@ characters.data={
description="UPWARDS ARROW",
direction="on",
linebreak="ai",
+ matharrow="u",
mathclass="relation",
mathname="uparrow",
unicodeslot=0x2191,
@@ -59358,6 +59344,7 @@ characters.data={
description="RIGHTWARDS ARROW",
direction="on",
linebreak="ai",
+ matharrow="r",
mathfiller="rightarrowfill",
mathspec={
{
@@ -59387,6 +59374,7 @@ characters.data={
description="DOWNWARDS ARROW",
direction="on",
linebreak="ai",
+ matharrow="d",
mathclass="relation",
mathname="downarrow",
unicodeslot=0x2193,
@@ -59398,6 +59386,7 @@ characters.data={
description="LEFT RIGHT ARROW",
direction="on",
linebreak="ai",
+ matharrow="h",
mathclass="relation",
mathname="leftrightarrow",
unicodeslot=0x2194,
@@ -59409,6 +59398,7 @@ characters.data={
description="UP DOWN ARROW",
direction="on",
linebreak="ai",
+ matharrow="v",
mathclass="relation",
mathname="updownarrow",
unicodeslot=0x2195,
@@ -59462,6 +59452,7 @@ characters.data={
description="LEFTWARDS ARROW WITH STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="nleftarrow",
specials={ "char", 0x2190, 0x0338 },
@@ -59472,6 +59463,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="nrightarrow",
specials={ "char", 0x2192, 0x0338 },
@@ -59482,6 +59474,7 @@ characters.data={
description="LEFTWARDS WAVE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="leftwavearrow",
unicodeslot=0x219C,
@@ -59491,6 +59484,7 @@ characters.data={
description="RIGHTWARDS WAVE ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="rightwavearrow",
unicodeslot=0x219D,
@@ -59500,6 +59494,7 @@ characters.data={
description="LEFTWARDS TWO HEADED ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="twoheadleftarrow",
unicodeslot=0x219E,
@@ -59509,6 +59504,7 @@ characters.data={
description="UPWARDS TWO HEADED ARROW",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="relation",
mathname="twoheaduparrow",
unicodeslot=0x219F,
@@ -59518,6 +59514,7 @@ characters.data={
description="RIGHTWARDS TWO HEADED ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="twoheadrightarrow",
unicodeslot=0x21A0,
@@ -59527,6 +59524,7 @@ characters.data={
description="DOWNWARDS TWO HEADED ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="twoheaddownarrow",
unicodeslot=0x21A1,
@@ -59536,6 +59534,7 @@ characters.data={
description="LEFTWARDS ARROW WITH TAIL",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="leftarrowtail",
unicodeslot=0x21A2,
@@ -59545,6 +59544,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH TAIL",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="rightarrowtail",
unicodeslot=0x21A3,
@@ -59554,6 +59554,7 @@ characters.data={
description="LEFTWARDS ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="mapsfrom",
unicodeslot=0x21A4,
@@ -59563,6 +59564,7 @@ characters.data={
description="UPWARDS ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="relation",
mathname="mapsup",
unicodeslot=0x21A5,
@@ -59572,6 +59574,7 @@ characters.data={
description="RIGHTWARDS ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="mapsto",
unicodeslot=0x21A6,
@@ -59581,6 +59584,7 @@ characters.data={
description="DOWNWARDS ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="mapsdown",
unicodeslot=0x21A7,
@@ -59591,6 +59595,7 @@ characters.data={
description="UP DOWN ARROW WITH BASE",
direction="on",
linebreak="al",
+ matharrow="v",
mathclass="ord",
mathname="updownarrowbar",
unicodeslot=0x21A8,
@@ -59600,6 +59605,7 @@ characters.data={
description="LEFTWARDS ARROW WITH HOOK",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="hookleftarrow",
unicodeslot=0x21A9,
@@ -59609,6 +59615,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH HOOK",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="hookrightarrow",
unicodeslot=0x21AA,
@@ -59618,6 +59625,7 @@ characters.data={
description="LEFTWARDS ARROW WITH LOOP",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="looparrowleft",
unicodeslot=0x21AB,
@@ -59627,6 +59635,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH LOOP",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="looparrowright",
unicodeslot=0x21AC,
@@ -59636,6 +59645,7 @@ characters.data={
description="LEFT RIGHT WAVE ARROW",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="leftrightsquigarrow",
unicodeslot=0x21AD,
@@ -59645,6 +59655,7 @@ characters.data={
description="LEFT RIGHT ARROW WITH STROKE",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="nleftrightarrow",
specials={ "char", 0x2194, 0x0338 },
@@ -59655,6 +59666,7 @@ characters.data={
description="DOWNWARDS ZIGZAG ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="downzigzagarrow",
unicodeslot=0x21AF,
@@ -59664,6 +59676,7 @@ characters.data={
description="UPWARDS ARROW WITH TIP LEFTWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="relation",
mathname="Lsh",
unicodeslot=0x21B0,
@@ -59673,6 +59686,7 @@ characters.data={
description="UPWARDS ARROW WITH TIP RIGHTWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="relation",
mathname="Rsh",
unicodeslot=0x21B1,
@@ -59682,6 +59696,7 @@ characters.data={
description="DOWNWARDS ARROW WITH TIP LEFTWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="relation",
mathname="Ldsh",
unicodeslot=0x21B2,
@@ -59691,6 +59706,7 @@ characters.data={
description="DOWNWARDS ARROW WITH TIP RIGHTWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="relation",
mathname="Rdsh",
unicodeslot=0x21B3,
@@ -59700,6 +59716,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH CORNER DOWNWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="ord",
mathname="linefeed",
unicodeslot=0x21B4,
@@ -59711,6 +59728,7 @@ characters.data={
description="DOWNWARDS ARROW WITH CORNER LEFTWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="ord",
mathname="carriagereturn",
unicodeslot=0x21B5,
@@ -59749,6 +59767,7 @@ characters.data={
description="LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="barleftarrowrightarrowbar",
unicodeslot=0x21B9,
@@ -59875,6 +59894,7 @@ characters.data={
description="RIGHTWARDS ARROW OVER LEFTWARDS ARROW",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="rightleftarrows",
unicodeslot=0x21C4,
@@ -59885,6 +59905,7 @@ characters.data={
description="UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="relation",
mathname="updownarrows",
unicodeslot=0x21C5,
@@ -59895,6 +59916,7 @@ characters.data={
description="LEFTWARDS ARROW OVER RIGHTWARDS ARROW",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="leftrightarrows",
unicodeslot=0x21C6,
@@ -59904,6 +59926,7 @@ characters.data={
description="LEFTWARDS PAIRED ARROWS",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="leftleftarrows",
unicodeslot=0x21C7,
@@ -59913,6 +59936,7 @@ characters.data={
description="UPWARDS PAIRED ARROWS",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="relation",
mathname="upuparrows",
unicodeslot=0x21C8,
@@ -59922,6 +59946,7 @@ characters.data={
description="RIGHTWARDS PAIRED ARROWS",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="rightrightarrows",
unicodeslot=0x21C9,
@@ -59931,6 +59956,7 @@ characters.data={
description="DOWNWARDS PAIRED ARROWS",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="downdownarrows",
unicodeslot=0x21CA,
@@ -59959,6 +59985,7 @@ characters.data={
description="LEFTWARDS DOUBLE ARROW WITH STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="nLeftarrow",
specials={ "char", 0x21D0, 0x0338 },
@@ -59969,6 +59996,7 @@ characters.data={
description="LEFT RIGHT DOUBLE ARROW WITH STROKE",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="nLeftrightarrow",
specials={ "char", 0x21D4, 0x0338 },
@@ -59980,6 +60008,7 @@ characters.data={
description="RIGHTWARDS DOUBLE ARROW WITH STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="nRightarrow",
specials={ "char", 0x21D2, 0x0338 },
@@ -59991,6 +60020,7 @@ characters.data={
description="LEFTWARDS DOUBLE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="Leftarrow",
unicodeslot=0x21D0,
@@ -60001,6 +60031,7 @@ characters.data={
description="UPWARDS DOUBLE ARROW",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="relation",
mathname="Uparrow",
unicodeslot=0x21D1,
@@ -60012,6 +60043,7 @@ characters.data={
description="RIGHTWARDS DOUBLE ARROW",
direction="on",
linebreak="ai",
+ matharrow="r",
mathspec={
{
class="relation",
@@ -60030,6 +60062,7 @@ characters.data={
description="DOWNWARDS DOUBLE ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="Downarrow",
unicodeslot=0x21D3,
@@ -60041,6 +60074,7 @@ characters.data={
description="LEFT RIGHT DOUBLE ARROW",
direction="on",
linebreak="ai",
+ matharrow="h",
mathclass="relation",
mathname="Leftrightarrow",
unicodeslot=0x21D4,
@@ -60050,6 +60084,7 @@ characters.data={
description="UP DOWN DOUBLE ARROW",
direction="on",
linebreak="al",
+ matharrow="v",
mathclass="relation",
mathname="Updownarrow",
unicodeslot=0x21D5,
@@ -60095,6 +60130,7 @@ characters.data={
description="LEFTWARDS TRIPLE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="Lleftarrow",
unicodeslot=0x21DA,
@@ -60104,6 +60140,7 @@ characters.data={
description="RIGHTWARDS TRIPLE ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="Rrightarrow",
unicodeslot=0x21DB,
@@ -60113,6 +60150,7 @@ characters.data={
description="LEFTWARDS SQUIGGLE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="leftsquigarrow",
unicodeslot=0x21DC,
@@ -60140,6 +60178,7 @@ characters.data={
description="UPWARDS ARROW WITH DOUBLE STROKE",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="relation",
mathname="nHuparrow",
unicodeslot=0x21DE,
@@ -60150,6 +60189,7 @@ characters.data={
description="DOWNWARDS ARROW WITH DOUBLE STROKE",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="nHdownarrow",
unicodeslot=0x21DF,
@@ -60160,6 +60200,7 @@ characters.data={
description="LEFTWARDS DASHED ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="leftdasharrow",
unicodeslot=0x21E0,
@@ -60170,6 +60211,7 @@ characters.data={
description="UPWARDS DASHED ARROW",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="relation",
mathname="updasharrow",
unicodeslot=0x21E1,
@@ -60198,6 +60240,7 @@ characters.data={
description="DOWNWARDS DASHED ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="downdasharrow",
unicodeslot=0x21E3,
@@ -60208,6 +60251,7 @@ characters.data={
description="LEFTWARDS ARROW TO BAR",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="barleftarrow",
unicodeslot=0x21E4,
@@ -60218,6 +60262,7 @@ characters.data={
description="RIGHTWARDS ARROW TO BAR",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="rightarrowbar",
unicodeslot=0x21E5,
@@ -60228,6 +60273,7 @@ characters.data={
description="LEFTWARDS WHITE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="ord",
mathname="leftwhitearrow",
unicodeslot=0x21E6,
@@ -60239,6 +60285,7 @@ characters.data={
description="UPWARDS WHITE ARROW",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="ord",
mathname="upwhitearrow",
unicodeslot=0x21E7,
@@ -60249,6 +60296,7 @@ characters.data={
description="RIGHTWARDS WHITE ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="ord",
mathname="rightwhitearrow",
unicodeslot=0x21E8,
@@ -60259,6 +60307,7 @@ characters.data={
description="DOWNWARDS WHITE ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="ord",
mathname="downwhitearrow",
unicodeslot=0x21E9,
@@ -60276,6 +60325,7 @@ characters.data={
description="UPWARDS WHITE ARROW ON PEDESTAL",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="ord",
mathname="whitearrowupfrombar",
unicodeslot=0x21EB,
@@ -60341,6 +60391,7 @@ characters.data={
description="RIGHT ARROW WITH SMALL CIRCLE",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="circleonrightarrow",
unicodeslot=0x21F4,
@@ -60350,6 +60401,7 @@ characters.data={
description="DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW",
direction="on",
linebreak="al",
+ matharrow="m",
mathclass="relation",
mathname="downuparrows",
unicodeslot=0x21F5,
@@ -60359,6 +60411,7 @@ characters.data={
description="THREE RIGHTWARDS ARROWS",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="rightthreearrows",
unicodeslot=0x21F6,
@@ -60368,6 +60421,7 @@ characters.data={
description="LEFTWARDS ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="nvleftarrow",
unicodeslot=0x21F7,
@@ -60377,6 +60431,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="nvrightarrow",
unicodeslot=0x21F8,
@@ -60386,6 +60441,7 @@ characters.data={
description="LEFT RIGHT ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="nvleftrightarrow",
unicodeslot=0x21F9,
@@ -60395,6 +60451,7 @@ characters.data={
description="LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="nVleftarrow",
unicodeslot=0x21FA,
@@ -60404,6 +60461,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="nVrightarrow",
unicodeslot=0x21FB,
@@ -60413,6 +60471,7 @@ characters.data={
description="LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="nVleftrightarrow",
unicodeslot=0x21FC,
@@ -60422,6 +60481,7 @@ characters.data={
description="LEFTWARDS OPEN-HEADED ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="leftarrowtriangle",
unicodeslot=0x21FD,
@@ -60431,6 +60491,7 @@ characters.data={
description="RIGHTWARDS OPEN-HEADED ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="rightarrowtriangle",
unicodeslot=0x21FE,
@@ -60440,6 +60501,7 @@ characters.data={
description="LEFT RIGHT OPEN-HEADED ARROW",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="leftrightarrowtriangle",
unicodeslot=0x21FF,
@@ -60652,11 +60714,9 @@ characters.data={
[0x2212]={
adobename="minus",
category="sm",
---comment="the mathclass is needed for mathsymbol remapping",
description="MINUS SIGN",
direction="es",
linebreak="pr",
---mathclass="binary",
mathspec={
{
class="binary",
@@ -63263,7 +63323,7 @@ characters.data={
description="LEFT CEILING",
direction="on",
linebreak="al",
- mathspec = {
+ mathspec={
{
class="open",
name="lceil",
@@ -63271,7 +63331,7 @@ characters.data={
{
class="open",
name="lceiling",
- }
+ },
},
mirror=0x2309,
unicodeslot=0x2308,
@@ -63281,7 +63341,7 @@ characters.data={
description="RIGHT CEILING",
direction="on",
linebreak="al",
- mathspec = {
+ mathspec={
{
class="close",
name="rceil",
@@ -63289,7 +63349,7 @@ characters.data={
{
class="close",
name="rceiling",
- }
+ },
},
mirror=0x2308,
unicodeslot=0x2309,
@@ -72720,6 +72780,7 @@ characters.data={
description="UPWARDS QUADRUPLE ARROW",
direction="on",
linebreak="al",
+ matharrow="u",
unicodeslot=0x27F0,
},
[0x27F1]={
@@ -72727,6 +72788,7 @@ characters.data={
description="DOWNWARDS QUADRUPLE ARROW",
direction="on",
linebreak="al",
+ matharrow="v",
unicodeslot=0x27F1,
},
[0x27F2]={
@@ -72748,6 +72810,7 @@ characters.data={
description="RIGHT ARROW WITH CIRCLED PLUS",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x27F4,
},
[0x27F5]={
@@ -72755,6 +72818,7 @@ characters.data={
description="LONG LEFTWARDS ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="longleftarrow",
unicodeslot=0x27F5,
@@ -72764,6 +72828,7 @@ characters.data={
description="LONG RIGHTWARDS ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="longrightarrow",
unicodeslot=0x27F6,
@@ -72773,6 +72838,7 @@ characters.data={
description="LONG LEFT RIGHT ARROW",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="longleftrightarrow",
unicodeslot=0x27F7,
@@ -72782,6 +72848,7 @@ characters.data={
description="LONG LEFTWARDS DOUBLE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="Longleftarrow",
unicodeslot=0x27F8,
@@ -72791,6 +72858,7 @@ characters.data={
description="LONG RIGHTWARDS DOUBLE ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="Longrightarrow",
unicodeslot=0x27F9,
@@ -72800,6 +72868,7 @@ characters.data={
description="LONG LEFT RIGHT DOUBLE ARROW",
direction="on",
linebreak="al",
+ matharrow="h",
mathclass="relation",
mathname="Longleftrightarrow",
unicodeslot=0x27FA,
@@ -72809,6 +72878,7 @@ characters.data={
description="LONG LEFTWARDS ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="longmapsfrom",
unicodeslot=0x27FB,
@@ -72818,6 +72888,7 @@ characters.data={
description="LONG RIGHTWARDS ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="longmapsto",
unicodeslot=0x27FC,
@@ -72827,6 +72898,7 @@ characters.data={
description="LONG LEFTWARDS DOUBLE ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="Longmapsfrom",
unicodeslot=0x27FD,
@@ -72836,6 +72908,7 @@ characters.data={
description="LONG RIGHTWARDS DOUBLE ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="Longmapsto",
unicodeslot=0x27FE,
@@ -72845,6 +72918,7 @@ characters.data={
description="LONG RIGHTWARDS SQUIGGLE ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="longrightsquigarrow",
unicodeslot=0x27FF,
@@ -74646,6 +74720,7 @@ characters.data={
description="RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2900,
},
[0x2901]={
@@ -74653,6 +74728,7 @@ characters.data={
description="RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2901,
},
[0x2902]={
@@ -74660,6 +74736,7 @@ characters.data={
description="LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2902,
},
[0x2903]={
@@ -74667,6 +74744,7 @@ characters.data={
description="RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2903,
},
[0x2904]={
@@ -74674,6 +74752,7 @@ characters.data={
description="LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="h",
unicodeslot=0x2904,
},
[0x2905]={
@@ -74681,6 +74760,7 @@ characters.data={
description="RIGHTWARDS TWO-HEADED ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2905,
},
[0x2906]={
@@ -74688,6 +74768,7 @@ characters.data={
description="LEFTWARDS DOUBLE ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="Mapsfrom",
unicodeslot=0x2906,
@@ -74697,6 +74778,7 @@ characters.data={
description="RIGHTWARDS DOUBLE ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="Mapsto",
unicodeslot=0x2907,
@@ -74706,6 +74788,7 @@ characters.data={
description="DOWNWARDS ARROW WITH HORIZONTAL STROKE",
direction="on",
linebreak="al",
+ matharrow="d",
unicodeslot=0x2908,
},
[0x2909]={
@@ -74713,6 +74796,7 @@ characters.data={
description="UPWARDS ARROW WITH HORIZONTAL STROKE",
direction="on",
linebreak="al",
+ matharrow="u",
unicodeslot=0x2909,
},
[0x290A]={
@@ -74720,6 +74804,7 @@ characters.data={
description="UPWARDS TRIPLE ARROW",
direction="on",
linebreak="al",
+ matharrow="u",
mathclass="relation",
mathname="Uuparrow",
unicodeslot=0x290A,
@@ -74729,6 +74814,7 @@ characters.data={
description="DOWNWARDS TRIPLE ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
mathclass="relation",
mathname="Ddownarrow",
unicodeslot=0x290B,
@@ -74738,6 +74824,7 @@ characters.data={
description="LEFTWARDS DOUBLE DASH ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
mathclass="relation",
mathname="dashedleftarrow",
unicodeslot=0x290C,
@@ -74747,6 +74834,7 @@ characters.data={
description="RIGHTWARDS DOUBLE DASH ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="dashedrightarrow",
unicodeslot=0x290D,
@@ -74756,6 +74844,7 @@ characters.data={
description="LEFTWARDS TRIPLE DASH ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x290E,
},
[0x290F]={
@@ -74763,6 +74852,7 @@ characters.data={
description="RIGHTWARDS TRIPLE DASH ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x290F,
},
[0x2910]={
@@ -74770,6 +74860,7 @@ characters.data={
description="RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2910,
},
[0x2911]={
@@ -74777,6 +74868,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH DOTTED STEM",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="dottedrightarrow",
unicodeslot=0x2911,
@@ -74786,6 +74878,7 @@ characters.data={
description="UPWARDS ARROW TO BAR",
direction="on",
linebreak="al",
+ matharrow="u",
unicodeslot=0x2912,
},
[0x2913]={
@@ -74793,6 +74886,7 @@ characters.data={
description="DOWNWARDS ARROW TO BAR",
direction="on",
linebreak="al",
+ matharrow="d",
unicodeslot=0x2913,
},
[0x2914]={
@@ -74800,6 +74894,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2914,
},
[0x2915]={
@@ -74807,6 +74902,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2915,
},
[0x2916]={
@@ -74814,6 +74910,7 @@ characters.data={
description="RIGHTWARDS TWO-HEADED ARROW WITH TAIL",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
mathname="twoheadrightarrowtail",
unicodeslot=0x2916,
@@ -74823,6 +74920,7 @@ characters.data={
description="RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
mathclass="relation",
unicodeslot=0x2917,
},
@@ -74831,6 +74929,7 @@ characters.data={
description="RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2918,
},
[0x2919]={
@@ -74838,6 +74937,7 @@ characters.data={
description="LEFTWARDS ARROW-TAIL",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2919,
},
[0x291A]={
@@ -74845,6 +74945,7 @@ characters.data={
description="RIGHTWARDS ARROW-TAIL",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x291A,
},
[0x291B]={
@@ -74852,6 +74953,7 @@ characters.data={
description="LEFTWARDS DOUBLE ARROW-TAIL",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x291B,
},
[0x291C]={
@@ -74859,6 +74961,7 @@ characters.data={
description="RIGHTWARDS DOUBLE ARROW-TAIL",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x291C,
},
[0x291D]={
@@ -74866,6 +74969,7 @@ characters.data={
description="LEFTWARDS ARROW TO BLACK DIAMOND",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x291D,
},
[0x291E]={
@@ -74873,6 +74977,7 @@ characters.data={
description="RIGHTWARDS ARROW TO BLACK DIAMOND",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x291E,
},
[0x291F]={
@@ -74880,6 +74985,7 @@ characters.data={
description="LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x291F,
},
[0x2920]={
@@ -74887,6 +74993,7 @@ characters.data={
description="RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2920,
},
[0x2921]={
@@ -75032,6 +75139,7 @@ characters.data={
description="WAVE ARROW POINTING DIRECTLY RIGHT",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2933,
},
[0x2934]={
@@ -75039,6 +75147,7 @@ characters.data={
description="ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
unicodeslot=0x2934,
},
[0x2935]={
@@ -75046,6 +75155,7 @@ characters.data={
description="ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
unicodeslot=0x2935,
},
[0x2936]={
@@ -75053,6 +75163,7 @@ characters.data={
description="ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
unicodeslot=0x2936,
},
[0x2937]={
@@ -75060,6 +75171,7 @@ characters.data={
description="ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS",
direction="on",
linebreak="al",
+ matharrow="m",
unicodeslot=0x2937,
},
[0x2938]={
@@ -75067,6 +75179,7 @@ characters.data={
description="RIGHT-SIDE ARC CLOCKWISE ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2938,
},
[0x2939]={
@@ -75074,6 +75187,7 @@ characters.data={
description="LEFT-SIDE ARC ANTICLOCKWISE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2939,
},
[0x293A]={
@@ -75109,6 +75223,7 @@ characters.data={
description="LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x293E,
},
[0x293F]={
@@ -75116,6 +75231,7 @@ characters.data={
description="LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x293F,
},
[0x2940]={
@@ -75158,6 +75274,7 @@ characters.data={
description="RIGHTWARDS ARROW WITH PLUS BELOW",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2945,
},
[0x2946]={
@@ -75165,6 +75282,7 @@ characters.data={
description="LEFTWARDS ARROW WITH PLUS BELOW",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2946,
},
[0x2947]={
@@ -75186,6 +75304,7 @@ characters.data={
description="UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE",
direction="on",
linebreak="al",
+ matharrow="u",
unicodeslot=0x2949,
},
[0x294A]={
@@ -75459,6 +75578,7 @@ characters.data={
description="RIGHT DOUBLE ARROW WITH ROUNDED HEAD",
direction="on",
linebreak="al",
+ matharrow="r",
unicodeslot=0x2970,
},
[0x2971]={
@@ -76352,6 +76472,7 @@ characters.data={
description="BLACK DIAMOND WITH DOWN ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
unicodeslot=0x29EA,
},
[0x29EB]={
@@ -76366,6 +76487,7 @@ characters.data={
description="WHITE CIRCLE WITH DOWN ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
unicodeslot=0x29EC,
},
[0x29ED]={
@@ -76373,6 +76495,7 @@ characters.data={
description="BLACK CIRCLE WITH DOWN ARROW",
direction="on",
linebreak="al",
+ matharrow="d",
unicodeslot=0x29ED,
},
[0x29EE]={
@@ -76689,6 +76812,7 @@ characters.data={
description="INTEGRAL WITH LEFTWARDS ARROW WITH HOOK",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2A17,
},
[0x2A18]={
@@ -78822,6 +78946,7 @@ characters.data={
description="LEFT ARROW WITH SMALL CIRCLE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B30,
},
[0x2B31]={
@@ -78829,6 +78954,7 @@ characters.data={
description="THREE LEFTWARDS ARROWS",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B31,
},
[0x2B32]={
@@ -78836,6 +78962,7 @@ characters.data={
description="LEFT ARROW WITH CIRCLED PLUS",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B32,
},
[0x2B33]={
@@ -78843,6 +78970,7 @@ characters.data={
description="LONG LEFTWARDS SQUIGGLE ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B33,
},
[0x2B34]={
@@ -78850,6 +78978,7 @@ characters.data={
description="LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B34,
},
[0x2B35]={
@@ -78857,6 +78986,7 @@ characters.data={
description="LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B35,
},
[0x2B36]={
@@ -78864,6 +78994,7 @@ characters.data={
description="LEFTWARDS TWO-HEADED ARROW FROM BAR",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B36,
},
[0x2B37]={
@@ -78871,6 +79002,7 @@ characters.data={
description="LEFTWARDS TWO-HEADED TRIPLE DASH ARROW",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B37,
},
[0x2B38]={
@@ -78878,6 +79010,7 @@ characters.data={
description="LEFTWARDS ARROW WITH DOTTED STEM",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B38,
},
[0x2B39]={
@@ -78885,6 +79018,7 @@ characters.data={
description="LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B39,
},
[0x2B3A]={
@@ -78892,6 +79026,7 @@ characters.data={
description="LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B3A,
},
[0x2B3B]={
@@ -78899,6 +79034,7 @@ characters.data={
description="LEFTWARDS TWO-HEADED ARROW WITH TAIL",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B3B,
},
[0x2B3C]={
@@ -78906,6 +79042,7 @@ characters.data={
description="LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B3C,
},
[0x2B3D]={
@@ -78913,6 +79050,7 @@ characters.data={
description="LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B3D,
},
[0x2B3E]={
@@ -78927,6 +79065,7 @@ characters.data={
description="WAVE ARROW POINTING DIRECTLY LEFT",
direction="on",
linebreak="al",
+ matharrow="l",
unicodeslot=0x2B3F,
},
[0x2B40]={
@@ -187524,4 +187663,4 @@ characters.data={
linebreak="cm",
unicodeslot=0xE01EF,
},
-}
+} \ No newline at end of file
diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii
index 5b48a4659..715248cf8 100644
--- a/tex/context/base/cont-new.mkii
+++ b/tex/context/base/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2012.12.28 20:30}
+\newcontextversion{2013.01.02 17:15}
%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/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index 6786ccdff..7ba158ebe 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{2012.12.28 20:30}
+\newcontextversion{2013.01.02 17:15}
%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 9e36f1a86..2f9457faa 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-version.png b/tex/context/base/context-version.png
index db588f664..1096ae7fe 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii
index 373a90814..5b0a96ea7 100644
--- a/tex/context/base/context.mkii
+++ b/tex/context/base/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.12.28 20:30}
+\edef\contextversion{2013.01.02 17:15}
%D For those who want to use this:
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index 07c42064e..381f0e07b 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -25,7 +25,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2012.12.28 20:30}
+\edef\contextversion{2013.01.02 17:15}
%D For those who want to use this:
diff --git a/tex/context/base/grph-inc.lua b/tex/context/base/grph-inc.lua
index d58221fe7..aee90d2c1 100644
--- a/tex/context/base/grph-inc.lua
+++ b/tex/context/base/grph-inc.lua
@@ -411,9 +411,13 @@ local callstack = { }
function figures.initialize(request)
local figuredata = new()
if request then
- -- request.width/height are strings and are only used when no natural dimensions
- -- can be determined; at some point the handlers might set them to numbers instead
- -- local w, h = tonumber(request.width), tonumber(request.height)
+ -- request.width/height are strings and are only used when no natural dimensions
+ -- can be determined; at some point the handlers might set them to numbers instead
+ local w = tonumber(request.width) or 0
+ local h = tonumber(request.height) or 0
+ request.width = w > 0 and w or nil
+ request.height = h > 0 and h or nil
+ --
request.page = math.max(tonumber(request.page) or 1,1)
request.size = img.checksize(request.size)
request.object = request.object == variables.yes
@@ -422,10 +426,9 @@ function figures.initialize(request)
request.cache = request.cache ~= "" and request.cache
request.prefix = request.prefix ~= "" and request.prefix
request.format = request.format ~= "" and request.format
- -- request.width = (w and w > 0) or false
- -- request.height = (h and h > 0) or false
table.merge(figuredata.request,request)
end
+ -- inspect(figuredata)
return figuredata
end
diff --git a/tex/context/base/grph-inc.mkiv b/tex/context/base/grph-inc.mkiv
index 70b7f8df2..54d024b85 100644
--- a/tex/context/base/grph-inc.mkiv
+++ b/tex/context/base/grph-inc.mkiv
@@ -294,6 +294,10 @@
\the\everyexternalfigurechecks
%
\the\t_grph_include_local_settings
+ %
+ \edef\p_width {\externalfigureparameter\c!width}%
+ \edef\p_height{\externalfigureparameter\c!height}%
+ %
\dostarttagged\t!image\empty
\ctxlua{figures.push {
name = "\p_grph_include_name",
@@ -314,8 +318,12 @@
resolution = "\externalfigureparameter\c!resolution",
color = "\internalspotcolorparent{\externalfigureparameter\c!color}", % hack is needed
["repeat"] = "\externalfigureparameter\c!repeat",
- width = "\externalfigureparameter\c!width", % can be crap
- height = "\externalfigureparameter\c!height", % can be crap
+ \ifx\p_width\empty \else
+ width = \number\dimexpr\p_width,
+ \fi
+ \ifx\p_height\empty \else
+ height = \number\dimexpr\p_height,
+ \fi
} }%
\ctxlua{figures.identify()}%
% also mode: checkpresense only
diff --git a/tex/context/base/l-table.lua b/tex/context/base/l-table.lua
index b668281a8..8a2a9cad5 100644
--- a/tex/context/base/l-table.lua
+++ b/tex/context/base/l-table.lua
@@ -1020,4 +1020,3 @@ function table.sorted(t,...)
sort(t,...)
return t -- still sorts in-place
end
-
diff --git a/tex/context/base/math-act.lua b/tex/context/base/math-act.lua
index 9894fa172..71b9353d5 100644
--- a/tex/context/base/math-act.lua
+++ b/tex/context/base/math-act.lua
@@ -11,6 +11,8 @@ if not modules then modules = { } end modules ['math-act'] = {
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
local report_math = logs.reporter("mathematics","initializing")
+local context = context
+local commands = commands
local mathematics = mathematics
local sequencers = utilities.sequencers
@@ -204,3 +206,55 @@ mathematics.tweaks = tweaks
function tweaks.fixbadprime(target,original)
target.characters[0xFE325] = target.characters[0x2032]
end
+
+-- helpers
+
+local setmetatableindex = table.setmetatableindex
+local family_font = node.family_font
+
+local fontcharacters = fonts.hashes.characters
+local extensibles = utilities.storage.allocate()
+fonts.hashes.extensibles = extensibles
+
+local function extensiblecode(font,unicode)
+ local characters = fontcharacters[font]
+ local chardata = characters[unicode]
+ if not chardata then
+ return 0
+ end
+ local next = chardata.next
+ while next do
+ chardata = characters[next]
+ next = chardata.next
+ end
+ if chardata.horiz_variants then
+ if chardata.vert_variants then
+ return 4
+ else
+ return 1
+ end
+ elseif chardata.vert_variants then
+ return 2
+ else
+ return 0
+ end
+end
+
+setmetatableindex(extensibles,function(extensibles,font)
+ local codes = { }
+ setmetatableindex(codes, function(codes,unicode)
+ local code = extensiblecode(font,unicode)
+ codes[unicode] = code
+ return code
+ end)
+ extensibles[font] = codes
+ return codes
+end)
+
+function mathematics.extensiblecode(family,unicode)
+ return extensibles[family_font(family or 0)][unicode]
+end
+
+function commands.extensiblecode(family,unicode)
+ context(extensibles[family_font(family or 0)][unicode])
+end
diff --git a/tex/context/base/math-arr.mkiv b/tex/context/base/math-arr.mkiv
index a9d9591a3..179e4de8a 100644
--- a/tex/context/base/math-arr.mkiv
+++ b/tex/context/base/math-arr.mkiv
@@ -40,48 +40,9 @@
% \smash-%
% $}
-\def\math_stylebuilders_fract#1#2#3#4#5#6#7%
- {\begingroup
- \mathsurround\zeropoint
- \setbox0\hbox{$#1 #6$}%
- \setbox2\hbox{$#1 #7$}%
- \dimen0\wd\ifdim\wd2>\wd0 2\else 0\fi
- \setbox4\hbox to \dimen0{\leaders\hbox{#4}\hss#5}%
- \mathord{\vcenter{{\offinterlineskip
- \hbox to \dimen0{\hss\box0\hss}%
- \kern\ht4%
- \hbox to \dimen0{\hss\copy4\hss}%
- \kern\ht4%
- \hbox to \dimen0{\hss\box2\hss}}}}%
- \endgroup}
-
-\def\math_stylebuilders_sqrt#1#2#3#4#5%
- {\begingroup
- \mathsurround\zeropoint
- \setbox0\hbox{$#1 #5$}%
- \ht0\dimexpr1.05\ht0+\onepoint\relax
- \dp0\dimexpr1.05\dp0+\onepoint\relax
- \setbox4\hbox to \wd0{\mr#2\leaders\hbox{#3}\hfill#4}%
- \delimitershortfall\zeropoint
- \nulldelimiterspace\zeropoint
- \setbox2\hbox{$\left\delimiter"0270370 \vrule \s!height\ht0 \s!depth \dp0 \s!width\zeropoint\right.$}% is this the right code point?
- \mathord{\vcenter{\hbox{\copy2\rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}%
- \endgroup}
-
-\def\mthfrac#1#2#3#4#5{\mathchoice
- {\math_stylebuilders_frac\displaystyle \textface {#1}{#2}{#3}{#4}{#5}}%
- {\math_stylebuilders_frac\textstyle \textface {#1}{#2}{#3}{#4}{#5}}%
- {\math_stylebuilders_frac\scriptstyle \scriptface {#1}{#2}{#3}{#4}{#5}}%
- {\math_stylebuilders_frac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}}
-
-\def\mthsqrt#1#2#3{\mathchoice
- {\math_stylebuilders_sqrt\displaystyle \textface{#1}{#2}{#3}}%
- {\math_stylebuilders_sqrt\textstyle \textface{#1}{#2}{#3}}%
- {\math_stylebuilders_sqrt\scriptstyle \textface{#1}{#2}{#3}}%
- {\math_stylebuilders_sqrt\scriptscriptstyle\textface{#1}{#2}{#3}}}
-
-%D We next define extensible arrows. Extensible arrows are arrows that change their
-%D length according to the width of the text to be placed above and below the arrow.
+%D Extensible arrows are arrows that change their length according to the width of
+%D the text to be placed above and below the arrow.
+%D
%D Since we need to define a lot of arrows, we first define some helper macros. The
%D basic idea is to measure the width of the box to be placed above and below the
%D arrow, and make the \quote {body} of the arrow as long as the bigger of the two
@@ -398,8 +359,7 @@
%D \macros{definemathoverarrow,defineunderarrow}
%D
-%D These macros for define math-overarrows are adapted from \filename
-%D {amsmath.sty}
+%D These macros for define math-overarrows are adapted from \filename {amsmath.sty}
\unexpanded\def\definemathoverarrow
{\dotripleargument\math_arrows_define_over}
diff --git a/tex/context/base/math-frc.mkiv b/tex/context/base/math-frc.mkiv
index 17879cbe0..8aa78196b 100644
--- a/tex/context/base/math-frc.mkiv
+++ b/tex/context/base/math-frc.mkiv
@@ -147,6 +147,46 @@
% I guess that it can be done with tweaking luatex's math parameters.
% Otherwise I'll write something from scratch.
+% \def\math_stylebuilders_frac#1#2#3#4#5#6#7%
+% {\begingroup
+% \mathsurround\zeropoint
+% \setbox0\hbox{$#1 #6$}%
+% \setbox2\hbox{$#1 #7$}%
+% \dimen0\wd\ifdim\wd2>\wd0 2\else 0\fi
+% \setbox4\hbox to \dimen0{\leaders\hbox{#4}\hss#5}%
+% \mathord{\vcenter{{\offinterlineskip
+% \hbox to \dimen0{\hss\box0\hss}%
+% \kern\ht4%
+% \hbox to \dimen0{\hss\copy4\hss}%
+% \kern\ht4%
+% \hbox to \dimen0{\hss\box2\hss}}}}%
+% \endgroup}
+%
+% \def\math_stylebuilders_sqrt#1#2#3#4#5%
+% {\begingroup
+% \mathsurround\zeropoint
+% \setbox0\hbox{$#1 #5$}%
+% \ht0\dimexpr1.05\ht0+\onepoint\relax
+% \dp0\dimexpr1.05\dp0+\onepoint\relax
+% \setbox4\hbox to \wd0{\mr#2\leaders\hbox{#3}\hfill#4}%
+% \delimitershortfall\zeropoint
+% \nulldelimiterspace\zeropoint
+% \setbox2\hbox{$\left\delimiter"0270370 \vrule \s!height\ht0 \s!depth \dp0 \s!width\zeropoint\right.$}% is this the right code point?
+% \mathord{\vcenter{\hbox{\copy2\rlap{\raise\dimexpr\ht2-\ht4\relax\copy4}\copy0}}}%
+% \endgroup}
+%
+% \def\mthfrac#1#2#3#4#5{\mathchoice
+% {\math_stylebuilders_frac\displaystyle \textface {#1}{#2}{#3}{#4}{#5}}%
+% {\math_stylebuilders_frac\textstyle \textface {#1}{#2}{#3}{#4}{#5}}%
+% {\math_stylebuilders_frac\scriptstyle \scriptface {#1}{#2}{#3}{#4}{#5}}%
+% {\math_stylebuilders_frac\scriptscriptstyle\scriptscriptface{#1}{#2}{#3}{#4}{#5}}}
+%
+% \def\mthsqrt#1#2#3{\mathchoice
+% {\math_stylebuilders_sqrt\displaystyle \textface{#1}{#2}{#3}}%
+% {\math_stylebuilders_sqrt\textstyle \textface{#1}{#2}{#3}}%
+% {\math_stylebuilders_sqrt\scriptstyle \textface{#1}{#2}{#3}}%
+% {\math_stylebuilders_sqrt\scriptscriptstyle\textface{#1}{#2}{#3}}}
+
\unexpanded\def\mthfrac#1#2#3{[mthfrac: #1 #2 #3]}
\unexpanded\def\mthsqrt#1#2#3{[mthsqrt: #1 #2 #3]}
diff --git a/tex/context/base/math-ini.lua b/tex/context/base/math-ini.lua
index 46c366c3e..af9a8495e 100644
--- a/tex/context/base/math-ini.lua
+++ b/tex/context/base/math-ini.lua
@@ -85,10 +85,21 @@ local codes = allocate {
variable = 7, [7] = "variable",
}
-mathematics.classes = classes
-mathematics.codes = codes
------------.accents = codes
-mathematics.families = families
+local arrowtypes = allocate {
+ l = "left",
+ r = "right",
+ u = "up",
+ d = "down",
+ h = "horizontal", -- double : lr or rl
+ v = "vertical", -- double : ud or du
+ m = "mixed",
+}
+
+mathematics.arrowtypes = arrowtypes
+mathematics.classes = classes
+mathematics.codes = codes
+-----------.accents = codes
+mathematics.families = families
classes.alphabetic = classes.alpha
classes.unknown = classes.nothing
diff --git a/tex/context/base/math-ini.mkiv b/tex/context/base/math-ini.mkiv
index 1e78ff492..58650595f 100644
--- a/tex/context/base/math-ini.mkiv
+++ b/tex/context/base/math-ini.mkiv
@@ -1161,9 +1161,13 @@
\let\m_math_text_choice_face \relax
-\def\math_text_choice#1% if needed we can get rid of the normalize (predo in font code)
+% \def\math_text_choice#1% if needed we can get rid of the normalize (predo in font code)
+% {\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}%
+% \hbox{\font_basics_switchtobodyfont\m_math_text_choice_face#1}}
+
+\def\math_text_choice% if needed we can get rid of the normalize (predo in font code)
{\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}%
- \hbox{\font_basics_switchtobodyfont\m_math_text_choice_face#1}}
+ \hbox\bgroup\font_basics_switchtobodyfont\m_math_text_choice_face\let\next}
%D Safeguard against redefinitions:
@@ -1265,4 +1269,12 @@
\unexpanded\def\smallmathsymbol#1%
{\mathematics{\mathbin{\normalexpanded{\raise.15\exheight\hbox{$\triggermathstyle{\the\numexpr\normalmathstyle+2\relax}#1$}}}}}
+% this should be a primitive:
+
+% \def\mathextensiblecode#1#2%
+% {\cldcontext{mathematics.extensiblecode(\number#1,\number#2)}}
+
+\def\mathextensiblecode#1#2% should be a primitive
+ {\ctxcommand{extensiblecode(\number#1,\number#2)}}
+
\protect \endinput
diff --git a/tex/context/base/node-bck.lua b/tex/context/base/node-bck.lua
index a0044eb78..35fdd3a36 100644
--- a/tex/context/base/node-bck.lua
+++ b/tex/context/base/node-bck.lua
@@ -11,69 +11,116 @@ if not modules then modules = { } end modules ['node-bck'] = {
local attributes, nodes, node = attributes, nodes, node
-local nodecodes = nodes.nodecodes
+local nodecodes = nodes.nodecodes
+local listcodes = nodes.listcodes
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local glyph_code = nodecodes.glyph
+local cell_code = listcodes.cell
-local has_attribute = node.has_attribute
-local set_attribute = node.set_attribute
-local traverse = node.traverse
+local has_attribute = node.has_attribute
+local set_attribute = node.set_attribute
+local traverse = node.traverse
+local traverse_id = node.traverse_id
-local nodepool = nodes.pool
-local tasks = nodes.tasks
+local nodepool = nodes.pool
+local tasks = nodes.tasks
-local new_rule = nodepool.rule
-local new_glue = nodepool.glue
+local new_rule = nodepool.rule
+local new_glue = nodepool.glue
-local a_color = attributes.private('color')
-local a_transparency = attributes.private('transparency')
-local a_colorspace = attributes.private('colormodel')
-local a_background = attributes.private('background')
+local a_color = attributes.private('color')
+local a_transparency = attributes.private('transparency')
+local a_colorspace = attributes.private('colormodel')
+local a_background = attributes.private('background')
+local a_alignbackground = attributes.private('alignbackground')
-local function add_backgrounds(head)
- local id = head.id
- if id == vlist_code or id == hlist_code then
- local current = head.list
- while current do
- local id = current.id
- if id == hlist_code then -- and current.list
+local function add_backgrounds(head) -- rather old code .. to be redone
+ local current = head
+ while current do
+ local id = current.id
+ if id == hlist_code or id == vlist_code then
+ local list = current.list
+ if list then
+ local head = add_backgrounds(list)
+ if head then
+ current.list = head
+ list = head
+ end
+ end
+ local width = current.width
+ if width > 0 then
local background = has_attribute(current,a_background)
if background then
-- direct to hbox
-- colorspace is already set so we can omit that and stick to color
local mode = has_attribute(current,a_colorspace)
if mode then
- local glue = new_glue(-current.width)
- local rule = new_rule(current.width,current.height,current.depth)
+ local height = current.height
+ local depth = current.depth
+ local skip = id == hlist_code and width or (height + depth)
+ local glue = new_glue(-skip)
+ local rule = new_rule(width,height,depth)
local color = has_attribute(current,a_color)
local transparency = has_attribute(current,a_transparency)
- set_attribute(rule,a_colorspace, mode)
+ set_attribute(rule,a_colorspace,mode)
if color then
- set_attribute(rule,a_color, color)
+ set_attribute(rule,a_color,color)
end
if transparency then
set_attribute(rule,a_transparency,transparency)
end
rule.next = glue
- glue.next = current.list
+ glue.prev = rule
+ glue.next = list
+ list.prev = glue
current.list = rule
end
- else
- -- temporary hack for aligments
- local list, background, found = current.list, nil, nil
- for l in traverse(list) do
- background = has_attribute(l,a_background)
- if background then
- found = l
- break
- end
- end
+ end
+ end
+ end
+ current = current.next
+ end
+ return head, true
+end
+
+local function add_alignbackgrounds(head)
+ local current = head
+ while current do
+ local id = current.id
+ if id == hlist_code then
+ local list = current.list
+ if not list then
+ -- no need to look
+ elseif current.subtype == cell_code then
+ local background = nil
+ local found = nil
+ -- for l in traverse(list) do
+ -- background = has_attribute(l,a_alignbackground)
+ -- if background then
+ -- found = l
+ -- break
+ -- end
+ -- end
+ -- we know that it's a fake hlist (could be user node)
+ -- but we cannot store tables in user nodes yet
+ for l in traverse_id(hpack_code,list) do
+ background = has_attribute(l,a_alignbackground)
if background then
+ found = l
+ end
+ break
+ end
+ --
+ if background then
+ -- current has subtype 5 (cell)
+ local width = current.width
+ if width > 0 then
local mode = has_attribute(found,a_colorspace)
if mode then
- local glue = new_glue(-current.width)
- local rule = new_rule(current.width,current.height,current.depth)
+ local glue = new_glue(-width)
+ local rule = new_rule(width,current.height,current.depth)
local color = has_attribute(found,a_color)
local transparency = has_attribute(found,a_transparency)
set_attribute(rule,a_colorspace, mode)
@@ -84,43 +131,29 @@ local function add_backgrounds(head)
set_attribute(rule,a_transparency,transparency)
end
rule.next = glue
+ glue.prev = rule
glue.next = list
+ list.prev = glue
current.list = rule
end
- else
- add_backgrounds(current)
- end
- end
- elseif id == vlist_code then -- and current.list
- -- direct to vbox
- local background = has_attribute(current,a_background)
- if background then
- local mode = has_attribute(current,a_colorspace)
- if mode then
- local glue = new_glue(-current.height-current.depth)
- local rule = new_rule(current.width,current.height,current.depth)
- local color = has_attribute(current,a_color)
- local transparency = has_attribute(current,a_transparency)
- set_attribute(rule,a_colorspace, mode)
- if color then
- set_attribute(rule,a_color, color)
- end
- if transparency then
- set_attribute(rule,a_transparency,transparency)
- end
- rule.next = glue
- glue.next = current.list
- current.list = rule
end
end
- add_backgrounds(current)
+ else
+ add_alignbackgrounds(list)
+ end
+ elseif id == vlist_code then
+ local list = current.list
+ if list then
+ add_alignbackgrounds(list)
end
- current = current.next
end
+ current = current.next
end
return head, true
end
-nodes.handlers.backgrounds = add_backgrounds
+nodes.handlers.backgrounds = add_backgrounds
+nodes.handlers.alignbackgrounds = add_alignbackgrounds
tasks.appendaction("shipouts","normalizers","nodes.handlers.backgrounds")
+tasks.appendaction("shipouts","normalizers","nodes.handlers.alignbackgrounds")
diff --git a/tex/context/base/node-bck.mkiv b/tex/context/base/node-bck.mkiv
index 858bd40b7..25739c560 100644
--- a/tex/context/base/node-bck.mkiv
+++ b/tex/context/base/node-bck.mkiv
@@ -13,8 +13,9 @@
\writestatus{loading}{ConTeXt Node Support / Backgrounds}
-%D This is first attempt to replacing backgrounds in a few
-%D tables mechanisms.
+%D This is first attempt to replacing backgrounds in a few tables
+%D mechanisms. When used more frequently, we can store the color
+%D spec in the attribute.
\unprotect
@@ -24,6 +25,10 @@
{\ctxlua{nodes.tasks.enableaction("shipouts","nodes.handlers.backgrounds")}%
\glet\node_backgrounds_boxes_initialize\donothing}
+\def\node_backgrounds_align_initialize % will move to lua
+ {\ctxlua{nodes.tasks.enableaction("shipouts","nodes.handlers.alignbackgrounds")}%
+ \glet\node_backgrounds_align_initialize\donothing}
+
% \backgroundvbox[green] {\input tufte } \par
% \backgroundvbox[blue] {\input ward } \par
% \backgroundvbox[red] {\input knuth } \par
@@ -38,7 +43,7 @@
\def\thecolorattr#1%
{attr \colormodelattribute \attribute\colormodelattribute
- attr \colorattribute \csname\??colorattribute #1\endcsname
+ attr \colorattribute \csname\??colorattribute#1\endcsname
attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized
\def\backgroundcolorattr#1%
@@ -49,10 +54,16 @@
\fi\fi}
\def\thebackgroundcolorattr#1%
- {attr \backgroundattribute \plusone
- attr \colormodelattribute \attribute\colormodelattribute
- attr \colorattribute \csname\??colorattribute#1\endcsname
- attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized
+ {attr \backgroundattribute \plusone
+ attr \colormodelattribute \attribute\colormodelattribute
+ attr \colorattribute \csname\??colorattribute#1\endcsname
+ attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized
+
+\def\thealignbackgroundcolorattr#1%
+ {attr \alignbackgroundattribute \plusone
+ attr \colormodelattribute \attribute\colormodelattribute
+ attr \colorattribute \csname\??colorattribute#1\endcsname
+ attr \transparencyattribute \thetransparencyattribute{#1} } % can be optimized
\unexpanded\def\backgroundhbox{\node_backgrounds_boxes_add\hbox}
\unexpanded\def\backgroundvbox{\node_backgrounds_boxes_add\vbox}
@@ -84,7 +95,6 @@
% \thebackgroundcolorattr{#2}%
% \fi\fi}
-
% \def\backgroundvbox[#1]{\vbox \backgroundcolorattr{#1}}
% \def\backgroundvtop[#1]{\vtop \backgroundcolorattr{#1}}
% \def\backgroundhbox[#1]{\hbox \backgroundcolorattr{#1}}
diff --git a/tex/context/base/node-res.lua b/tex/context/base/node-res.lua
index 2933fc86d..45f8d54f4 100644
--- a/tex/context/base/node-res.lua
+++ b/tex/context/base/node-res.lua
@@ -360,7 +360,7 @@ end
function pool.userlist(id,list)
local n = copy_node(user_l)
if list then
- n.user_id, n.value =id, list
+ n.user_id, n.value = id, list
else
n.value = id
end
@@ -370,7 +370,7 @@ end
function pool.userstring(id,str)
local n = copy_node(user_s)
if str then
- n.user_id, n.value =id, str
+ n.user_id, n.value = id, str
else
n.value = id
end
@@ -380,7 +380,7 @@ end
function pool.usertokens(id,tokens)
local n = copy_node(user_t)
if tokens then
- n.user_id, n.value =id, tokens
+ n.user_id, n.value = id, tokens
else
n.value = id
end
diff --git a/tex/context/base/pack-bck.mkvi b/tex/context/base/pack-bck.mkvi
index 57d0ee456..72eafd282 100644
--- a/tex/context/base/pack-bck.mkvi
+++ b/tex/context/base/pack-bck.mkvi
@@ -240,8 +240,7 @@
%D \macros
%D {backgroundline}
%D
-%D For the moment an undocumented feature, but a candidate
-%D for going public.
+%D For the moment an undocumented feature, but a candidate for going public.
\unexpanded\def\backgroundline[#color]%
{\dontleavehmode
diff --git a/tex/context/base/pack-box.mkiv b/tex/context/base/pack-box.mkiv
index bcdb93875..5829657d7 100644
--- a/tex/context/base/pack-box.mkiv
+++ b/tex/context/base/pack-box.mkiv
@@ -171,7 +171,7 @@
\def\pack_boxes_collector[#1][#2]% todo: keep reference point
{\pack_boxes_collector_check_box{#1}%
\ifconditional\c_pack_boxes_collector_valid_box
- \setupcurrentcollector[#2]
+ \setupcurrentcollector[#2]%
\expandafter\pack_boxes_collector_yes
\else
\expandafter\pack_boxes_collector_nop
diff --git a/tex/context/base/s-fnt-31.mkiv b/tex/context/base/s-fnt-31.mkiv
index 171f991db..24f7f2d7e 100644
--- a/tex/context/base/s-fnt-31.mkiv
+++ b/tex/context/base/s-fnt-31.mkiv
@@ -168,7 +168,7 @@ end
"cambria.ttc(Cambria Math)",
"xits-math.otf",
"stixmath-regular.otf",
- "lmmath-regular",
+ -- "lmmath-regular",
-- "LMMath10-Regular@lmroman10-math",
-- "pxmath@px-math",
-- "lucida-math.otf",
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 95940634b..1b49714f1 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 3563789f6..8f3f83604 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/tabl-tbl.mkiv b/tex/context/base/tabl-tbl.mkiv
index a8e2a0309..03e716e40 100644
--- a/tex/context/base/tabl-tbl.mkiv
+++ b/tex/context/base/tabl-tbl.mkiv
@@ -185,7 +185,6 @@
\newconditional \c_tabl_tabulate_handlepbreak \settrue\c_tabl_tabulate_handlepbreak
\newconditional \c_tabl_tabulate_autorulespacing \settrue\c_tabl_tabulate_autorulespacing
\newconditional \c_tabl_tabulate_someamble
-\newconditional \c_tabl_tabulate_has_colors
\newconditional \c_tabl_tabulate_tolerant_break
\newconditional \c_tabl_tabulate_splitoff_whitespace
\newconditional \c_tabl_tabulate_pwidth_set
@@ -805,9 +804,9 @@
\ifconditional\c_tabl_tabulate_splitoff_whitespace
\tabl_tabulate_check_whitespace
\fi
+ \tabl_tabulate_color_repeat % needs to end up in a cell
\setbox\b_tabl_tabulate\hbox to \wd\b_tabl_tabulate
- {\tabl_tabulate_color_repeat
- \hss\tabl_tabulate_hook_yes{\box\b_tabl_tabulate}\hss}%
+ {\hss\tabl_tabulate_hook_yes{\box\b_tabl_tabulate}\hss}%
\tabl_tabulate_normalize_splitline
\box\b_tabl_tabulate}
@@ -1485,54 +1484,56 @@
% \starttabulate[||p||]
% \NC test \NC test \NC test \NC \NR
-% \NC test \NC[green] \input tufte \NC[yellow] test \NC \NR
+% \NC test \CC[green] \input tufte \CC[yellow] test \NC \NR
% \NC test \NC test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
-% \NC[blue] test \NC[red] test \NC test \NC \NR
+% \CC[blue] test \CC[red] test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
-% \NC test \NC test \NC[gray] test \NC \NR
+% \NC test \NC test \CC[gray] test \NC \NR
% \NC test \NC test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
-% \NC[blue] test \NC test \NC test \NC \NR
+% \CC[blue] test \NC test \NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
-% \NC test \NC test \NC[magenta] test \NC \NR
+% \NC test \NC test \CC[magenta] test \NC \NR
% \NC test \NC test \NC test \NC \NR
-% \NC test \NC[cyan] \dorecurse{10}{\input ward }\NC test \NC \NR
+% \NC test \CC[cyan] \dorecurse{10}{\input ward }\NC test \NC \NR
% \NC test \NC test \NC test \NC \NR
-% \NC test \NC[yellow] test \NC test \NC \NR
+% \NC test \CC[yellow] test \NC test \NC \NR
% \stoptabulate
\unexpanded\def\tabl_tabulate_color_set#1% we could store the attributes at the cost of a lua call
{\begingroup
- \node_backgrounds_boxes_initialize % name might change
+ \node_backgrounds_align_initialize % name might change
+ \global\let\tabl_tabulate_color_repeat\tabl_tabulate_color_repeat_second
\global\settrue\c_tabl_tabulate_has_colors
\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}%
- \attribute\backgroundattribute\plusone
- \dousecolorparameter{#1}\strut\char\zerocount % hack
+ %\attribute\alignbackgroundattribute\plusone
+ %\dousecolorparameter{#1}\char\zerocount\strut % hack
+ \hbox \thealignbackgroundcolorattr{#1}{}%
\endgroup}
\def\tabl_tabulate_color_repeat_second % for split off lines
{\begingroup
- \ifcsname\??tabulatecolor\the\c_tabl_tabulate_column\endcsname
- \attribute\backgroundattribute\plusone
- \expandafter\dousecolorparameter\csname\??tabulatecolor\the\c_tabl_tabulate_column\endcsname\strut\char\zerocount % hack
+ \scratchcounter\numexpr\c_tabl_tabulate_column-\plusone\relax % ugly !
+ \ifcsname\??tabulatecolor\the\scratchcounter\endcsname
+ %\expandafter\dousecolorparameter\csname\??tabulatecolor\the\scratchcounter\endcsname
+ %\strut\char\zerocount % hack
+ \hbox \thealignbackgroundcolorattr{\csname\??tabulatecolor\the\scratchcounter\endcsname}{}%
\fi
\endgroup}
\let\tabl_tabulate_color_repeat\relax
\appendtoks
- \ifconditional\c_tabl_tabulate_has_colors
- \let\tabl_tabulate_color_repeat\tabl_tabulate_color_repeat_second
- \fi
-\to \t_tabl_tabulate_initializers_second
+ \let\tabl_tabulate_color_repeat\relax
+\to \everytabulate
\def\tabl_tabulate_color_reset
{\ifcase\c_tabl_tabulate_max_colorcolumn\else
@@ -1552,10 +1553,6 @@
\tabl_tabulate_color_reset
\to \t_tabl_tabulate_every_after_row
-\appendtoks
- \global\setfalse\c_tabl_tabulate_has_colors
-\to \everytabulate
-
% \def\tabl_tabulate_register_par_options_indeed
% {\iftrialtypesetting \else
% \registerparoptions
@@ -2088,7 +2085,8 @@
\d_tabl_tabulate_width\zeropoint
\tabl_tabulate_initialize_boxes\c_tabl_tabulate_columns
\t_tabl_tabulate_preamble\expandafter{\the\t_tabl_tabulate_preamble
- \aligntab\alignmark\alignmark\global\advance\c_tabl_tabulate_column\plusone
+ \aligntab\alignmark\alignmark
+ \global\advance\c_tabl_tabulate_column\plusone % maybe just set it already
}%
\t_tabl_tabulate_dummy\expandafter{\the\t_tabl_tabulate_dummy
\NC\unskip\unskip\crcr\tabl_tabulate_flush_collected % no count
diff --git a/tex/context/base/task-ini.lua b/tex/context/base/task-ini.lua
index a4f56c2d0..292db8a08 100644
--- a/tex/context/base/task-ini.lua
+++ b/tex/context/base/task-ini.lua
@@ -59,6 +59,7 @@ appendaction("shipouts", "normalizers", "nodes.shifts.handler")
appendaction("shipouts", "normalizers", "structures.tags.handler") -- disabled
appendaction("shipouts", "normalizers", "nodes.handlers.accessibility") -- disabled
appendaction("shipouts", "normalizers", "nodes.handlers.backgrounds") -- disabled
+appendaction("shipouts", "normalizers", "nodes.handlers.alignbackgrounds") -- disabled
-- appendaction("shipouts", "normalizers", "nodes.handlers.export") -- disabled
@@ -136,6 +137,7 @@ disableaction("shipouts", "structures.tags.handler")
disableaction("shipouts", "nodes.visualizers.handler")
disableaction("shipouts", "nodes.handlers.accessibility")
disableaction("shipouts", "nodes.handlers.backgrounds")
+disableaction("shipouts", "nodes.handlers.alignbackgrounds")
disableaction("shipouts", "nodes.handlers.cleanuppage")
disableaction("shipouts", "nodes.references.handler")
diff --git a/tex/context/base/trac-vis.mkiv b/tex/context/base/trac-vis.mkiv
index 0e4993853..2ec48f375 100644
--- a/tex/context/base/trac-vis.mkiv
+++ b/tex/context/base/trac-vis.mkiv
@@ -81,6 +81,31 @@
\ctxlua{nodes.visualizers.setfont()}%
\endgroup}
+%D New (these might also be a visualizers):
+
+\definecolor[f:r:t][a=1,t=.25,r=1]
+\definecolor[f:g:t][a=1,t=.25,g=1]
+\definecolor[f:b:t][a=1,t=.25,b=1]
+\definecolor[f:c:t][a=1,t=.25,c=1]
+\definecolor[f:m:t][a=1,t=.25,m=1]
+\definecolor[f:y:t][a=1,t=.25,y=1]
+\definecolor[f:k:t][a=1,t=.25,k=1]
+
+% \def\node_backgrounds_boxes_add#1[#2]%
+% {\node_backgrounds_boxes_initialize
+% #1\backgroundcolorattr{#2}}
+
+\def\syst_visualizers_filled_hbox#1%
+ {\node_backgrounds_boxes_initialize\hbox\backgroundcolorattr{#1}}
+
+\unexpanded\def\filledhboxr{\syst_visualizers_filled_hbox{f:r:t}}
+\unexpanded\def\filledhboxg{\syst_visualizers_filled_hbox{f:g:t}}
+\unexpanded\def\filledhboxb{\syst_visualizers_filled_hbox{f:b:t}}
+\unexpanded\def\filledhboxc{\syst_visualizers_filled_hbox{f:c:t}}
+\unexpanded\def\filledhboxm{\syst_visualizers_filled_hbox{f:m:t}}
+\unexpanded\def\filledhboxy{\syst_visualizers_filled_hbox{f:y:t}}
+\unexpanded\def\filledhboxk{\syst_visualizers_filled_hbox{f:k:t}}
+
%D Overload:
% \def\spac_struts_vide_hbox
diff --git a/tex/context/base/type-imp-latinmodern.mkiv b/tex/context/base/type-imp-latinmodern.mkiv
index 4a692f8b3..f17f46e7d 100644
--- a/tex/context/base/type-imp-latinmodern.mkiv
+++ b/tex/context/base/type-imp-latinmodern.mkiv
@@ -170,8 +170,8 @@
\starttypescript [\s!math] [modern,latin-modern]
\loadfontgoodies[lm]
- \definefontsynonym [LMMathRoman-Regular] [\v!file:lmmath-regular.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=lm]
- \definefontsynonym [LMMathRoman-Bold] [\v!file:lmmath-regular.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=lm]
+ \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=lm]
+ \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math-regular.otf] [\s!features=\s!math\mathsizesuffix,\s!goodies=lm]
\stoptypescript
\starttypescript [modern-designsize-virtual]
diff --git a/tex/context/base/type-imp-texgyre.mkiv b/tex/context/base/type-imp-texgyre.mkiv
index c0fb7cec0..c404729a2 100644
--- a/tex/context/base/type-imp-texgyre.mkiv
+++ b/tex/context/base/type-imp-texgyre.mkiv
@@ -217,7 +217,7 @@
\starttypescript [\s!math][times,termes][\s!all]
\loadfontgoodies[texgyre]
- \definefontsynonym[\s!MathRoman][file:texgyretermesmath-regular.otf][\s!features=\s!math\mathsizesuffix]
+ \definefontsynonym[\s!MathRoman][file:texgyre-termes-math-regular.otf][\s!features=\s!math\mathsizesuffix]
\stoptypescript
\stoptypescriptcollection
@@ -244,7 +244,7 @@
\starttypescript [\s!math][palatino,pagella][\s!all]
\loadfontgoodies[texgyre]
- \definefontsynonym[\s!MathRoman][file:texgyrepagellamath-regular.otf][\s!features=\s!math\mathsizesuffix]
+ \definefontsynonym[\s!MathRoman][file:texgyre-pagella-math-regular.otf][\s!features=\s!math\mathsizesuffix]
\stoptypescript
\stoptypescriptcollection