From c67041351da8f66abcefbfcbbeb7b750b9cf4a52 Mon Sep 17 00:00:00 2001 From: Marius Date: Wed, 2 Jan 2013 18:40:25 +0200 Subject: beta 2013.01.02 17:15 --- tex/context/base/attr-ini.mkiv | 1 + tex/context/base/buff-ini.lua | 15 +- tex/context/base/buff-ini.mkii | 12 +- tex/context/base/buff-ini.mkiv | 19 +- tex/context/base/char-def.lua | 209 +++++++++++++++++---- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4131 -> 4141 bytes tex/context/base/context-version.png | Bin 40605 -> 39746 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/grph-inc.lua | 13 +- tex/context/base/grph-inc.mkiv | 12 +- tex/context/base/l-table.lua | 1 - tex/context/base/math-act.lua | 54 ++++++ tex/context/base/math-arr.mkiv | 48 +---- tex/context/base/math-frc.mkiv | 40 ++++ tex/context/base/math-ini.lua | 19 +- tex/context/base/math-ini.mkiv | 16 +- tex/context/base/node-bck.lua | 163 +++++++++------- tex/context/base/node-bck.mkiv | 26 ++- tex/context/base/node-res.lua | 6 +- tex/context/base/pack-bck.mkvi | 3 +- tex/context/base/pack-box.mkiv | 2 +- tex/context/base/s-fnt-31.mkiv | 2 +- tex/context/base/status-files.pdf | Bin 24676 -> 24705 bytes tex/context/base/status-lua.pdf | Bin 208248 -> 208436 bytes tex/context/base/tabl-tbl.mkiv | 48 +++-- tex/context/base/task-ini.lua | 2 + tex/context/base/trac-vis.mkiv | 25 +++ tex/context/base/type-imp-latinmodern.mkiv | 4 +- tex/context/base/type-imp-texgyre.mkiv | 4 +- tex/context/fonts/lm.lfg | 7 +- tex/context/fonts/texgyre.lfg | 11 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 3 +- 35 files changed, 550 insertions(+), 223 deletions(-) (limited to 'tex') 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 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-version.png b/tex/context/base/context-version.png index db588f664..1096ae7fe 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png 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 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 3563789f6..8f3f83604 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/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 diff --git a/tex/context/fonts/lm.lfg b/tex/context/fonts/lm.lfg index 9a7c9027b..5f78eddfd 100644 --- a/tex/context/fonts/lm.lfg +++ b/tex/context/fonts/lm.lfg @@ -1,3 +1,6 @@ +-- In order to be ale to use beta math fonts, we use our own file name and +-- always remap. + return { name = "latin modern", version = "1.00", @@ -12,7 +15,9 @@ return { }, }, filenames = { - ["lmmath-regular.otf"] = { + ["latinmodern-math-regular.otf"] = { + "latinmodern-math.otf", -- the beta + "lmmath-regular.otf", "latinmodernmath-regular.otf", "lmmath-regular.otf", "lmodernmath-regular.otf", diff --git a/tex/context/fonts/texgyre.lfg b/tex/context/fonts/texgyre.lfg index a0f6d29b2..953692232 100644 --- a/tex/context/fonts/texgyre.lfg +++ b/tex/context/fonts/texgyre.lfg @@ -1,3 +1,6 @@ +-- In order to be ale to use beta math fonts, we use our own file name and +-- always remap. + return { name = "tex gyre", version = "1.00", @@ -5,11 +8,15 @@ return { author = "Hans Hagen", copyright = "ConTeXt development team", filenames = { - ["texgyrepagellamath-regular.otf"] = { + ["texgyre-pagella-math-regular.otf"] = { + "texgyrepagella-math.otf", -- beta + "texgyrepagellamath-regular.otf", "tgpagellamath-regular.otf", "tgpagella-math.otf", }, - ["texgyretermesmath-regular.otf"] = { + ["texgyre-termes-math-regular.otf"] = { + "texgyretermes-math.otf", -- beta + "texgyretermesmath-regular.otf", "tgtermesmath-regular.otf", "tgtermes-math.otf", }, diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 66560b702..37f88cce1 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/28/12 20:30:09 +-- merge date : 01/02/13 17:15:54 do -- begin closure to overcome local limits and interference @@ -2032,7 +2032,6 @@ function table.sorted(t,...) return t -- still sorts in-place end - end -- closure do -- begin closure to overcome local limits and interference -- cgit v1.2.3