From cf9a3f78b35f0b3d57c4fe3f3e1cb4729d3e0218 Mon Sep 17 00:00:00 2001 From: Marius Date: Sat, 14 Sep 2013 15:40:28 +0300 Subject: beta 2013.09.14 14:39 --- tex/context/base/char-def.lua | 22 +++++ tex/context/base/char-ini.lua | 9 ++ tex/context/base/char-ini.mkiv | 2 + tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4111 -> 4115 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/math-fen.mkiv | 109 ++++++++++++++++----- tex/context/base/math-noa.lua | 50 +++++++--- tex/context/base/mult-low.lua | 2 +- tex/context/base/status-files.pdf | Bin 24776 -> 24762 bytes tex/context/base/status-lua.log | 2 +- tex/context/base/trac-vis.mkiv | 2 + tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 13 files changed, 159 insertions(+), 45 deletions(-) (limited to 'tex') diff --git a/tex/context/base/char-def.lua b/tex/context/base/char-def.lua index d048fa6c2..827c6a5ff 100644 --- a/tex/context/base/char-def.lua +++ b/tex/context/base/char-def.lua @@ -1388,6 +1388,10 @@ characters.data={ class="relation", name="mid", }, + { + class="delimiter", + name="singleverticalbar", + }, }, unicodeslot=0x007C, }, @@ -57296,6 +57300,10 @@ characters.data={ class="close", name="rVert", }, + { + class="delimiter", + name="doubleverticalbar", + }, }, unicodeslot=0x2016, }, @@ -57607,6 +57615,8 @@ characters.data={ description="REVERSED PRIME", direction="on", linebreak="po", + mathclass="nothing", + mathname="reversedprime", unicodeslot=0x2035, }, [0x2036]={ @@ -57614,6 +57624,8 @@ characters.data={ description="REVERSED DOUBLE PRIME", direction="on", linebreak="po", + mathclass="nothing", + mathname="reverseddoubleprime", specials={ "compat", 0x2035, 0x2035 }, unicodeslot=0x2036, }, @@ -57622,6 +57634,8 @@ characters.data={ description="REVERSED TRIPLE PRIME", direction="on", linebreak="po", + mathclass="nothing", + mathname="reversedtripleprime", specials={ "compat", 0x2035, 0x2035, 0x2035 }, unicodeslot=0x2037, }, @@ -57902,6 +57916,8 @@ characters.data={ description="QUADRUPLE PRIME", direction="on", linebreak="al", + mathclass="nothing", + mathname="quadrupleprime", specials={ "compat", 0x2032, 0x2032, 0x2032, 0x2032 }, unicodeslot=0x2057, }, @@ -76974,6 +76990,12 @@ characters.data={ description="TRIPLE VERTICAL BAR DELIMITER", direction="on", linebreak="al", + mathspec={ + { + class="delimiter", + name="tripleverticalbar", + }, + }, unicodeslot=0x2980, }, [0x2981]={ diff --git a/tex/context/base/char-ini.lua b/tex/context/base/char-ini.lua index bb6730f7b..948e51aa0 100644 --- a/tex/context/base/char-ini.lua +++ b/tex/context/base/char-ini.lua @@ -1162,6 +1162,15 @@ directives.register("characters.spaceafteruppercase",function(v) end end) +-- tex + +function commands.chardescription(slot) + local d = data[slot] + if d then + context(d.description) + end +end + -- xml characters.activeoffset = 0x10000 -- there will be remapped in that byte range diff --git a/tex/context/base/char-ini.mkiv b/tex/context/base/char-ini.mkiv index 0e2b773f0..113d26709 100644 --- a/tex/context/base/char-ini.mkiv +++ b/tex/context/base/char-ini.mkiv @@ -91,4 +91,6 @@ % catcodes.register("xmlcatcodes",\number\xmlcatcodes) } +\def\chardescription#1{\ctxcommand{chardescription(\number#1)}} + \protect \endinput diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 09003d7c1..f2d638b7c 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.09.13 10:59} +\newcontextversion{2013.09.14 14:39} %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 b8d205086..24d7d0328 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 70331891f..4955d4b11 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{2013.09.13 10:59} +\edef\contextversion{2013.09.14 14:39} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/math-fen.mkiv b/tex/context/base/math-fen.mkiv index c1f1ac2ab..94d93e4af 100644 --- a/tex/context/base/math-fen.mkiv +++ b/tex/context/base/math-fen.mkiv @@ -127,22 +127,48 @@ \definemathfence [brace] [\c!left="007B,\c!right="007D] \definemathfence [bar] [\c!left="007C,\c!right="007C] \definemathfence [doublebar] [\c!left="2016,\c!right="2016] +\definemathfence [triplebar] [\c!left="2980,\c!right="2980] \definemathfence [angle] [\c!left="27E8,\c!right="27E9] \definemathfence [doubleangle] [\c!left="27EA,\c!right="27EB] \definemathfence [solidus] [\c!left="2044,\c!right="2044] \definemathfence [nothing] +\definemathfence [mirrored] % \v!mirrored + +\definemathfence [mirroredparenthesis] [mirrored] [\c!right="0028,\c!left="0029] +\definemathfence [mirroredbracket] [mirrored] [\c!right="005B,\c!left="005D] +\definemathfence [mirroredbrace] [mirrored] [\c!right="007B,\c!left="007D] +\definemathfence [mirroredbar] [mirrored] [\c!right="007C,\c!left="007C] +\definemathfence [mirroreddoublebar] [mirrored] [\c!right="2016,\c!left="2016] +\definemathfence [mirroredtriplebar] [mirrored] [\c!right="2980,\c!left="2980] +\definemathfence [mirroredangle] [mirrored] [\c!right="27E8,\c!left="27E9] +\definemathfence [mirroreddoubleangle] [mirrored] [\c!right="27EA,\c!left="27EB] +\definemathfence [mirroredsolidus] [mirrored] [\c!right="2044,\c!left="2044] +\definemathfence [mirrorednothing] [mirorred] + %D A bonus: -\unexpanded\def\Lparent {\math_fenced_fenced_start{parenthesis}} \unexpanded\def\Rparent {\math_fenced_fenced_stop{parenthesis}} -\unexpanded\def\Lbracket {\math_fenced_fenced_start{bracket}} \unexpanded\def\Rbracket {\math_fenced_fenced_stop{bracket}} -\unexpanded\def\Lbrace {\math_fenced_fenced_start{brace}} \unexpanded\def\Rbrace {\math_fenced_fenced_stop{brace}} -\unexpanded\def\Langle {\math_fenced_fenced_start{angle}} \unexpanded\def\Rangle {\math_fenced_fenced_stop{angle}} -\unexpanded\def\Ldoubleangle{\math_fenced_fenced_start{doubleangle}} \unexpanded\def\Rdoubleangle{\math_fenced_fenced_stop{doubleangle}} -\unexpanded\def\Lbar {\math_fenced_fenced_start{bar}} \unexpanded\def\Rbar {\math_fenced_fenced_stop{bar}} -\unexpanded\def\Lsolidus {\math_fenced_fenced_start{solidus}} \unexpanded\def\Rsolidus {\math_fenced_fenced_stop{solidus}} -\unexpanded\def\Ldoublebar {\math_fenced_fenced_start{doublebar}} \unexpanded\def\Rdoublebar {\math_fenced_fenced_stop{doublebar}} -\unexpanded\def\Lnothing {\math_fenced_fenced_start{nothing}} \unexpanded\def\Rnothing {\math_fenced_fenced_stop{nothing}} +\unexpanded\def\Lparent {\math_fenced_fenced_start{parenthesis}} \unexpanded\def\Rparent {\math_fenced_fenced_stop{parenthesis}} +\unexpanded\def\Lbracket {\math_fenced_fenced_start{bracket}} \unexpanded\def\Rbracket {\math_fenced_fenced_stop{bracket}} +\unexpanded\def\Lbrace {\math_fenced_fenced_start{brace}} \unexpanded\def\Rbrace {\math_fenced_fenced_stop{brace}} +\unexpanded\def\Langle {\math_fenced_fenced_start{angle}} \unexpanded\def\Rangle {\math_fenced_fenced_stop{angle}} +\unexpanded\def\Ldoubleangle {\math_fenced_fenced_start{doubleangle}} \unexpanded\def\Rdoubleangle {\math_fenced_fenced_stop{doubleangle}} +\unexpanded\def\Lbar {\math_fenced_fenced_start{bar}} \unexpanded\def\Rbar {\math_fenced_fenced_stop{bar}} +\unexpanded\def\Ldoublebar {\math_fenced_fenced_start{doublebar}} \unexpanded\def\Rdoublebar {\math_fenced_fenced_stop{doublebar}} +\unexpanded\def\Ltriplebar {\math_fenced_fenced_start{triplebar}} \unexpanded\def\Rtriplebar {\math_fenced_fenced_stop{triplebar}} +\unexpanded\def\Lsolidus {\math_fenced_fenced_start{solidus}} \unexpanded\def\Rsolidus {\math_fenced_fenced_stop{solidus}} +\unexpanded\def\Lnothing {\math_fenced_fenced_start{nothing}} \unexpanded\def\Rnothing {\math_fenced_fenced_stop{nothing}} + +\unexpanded\def\Lparentmirrored {\math_fenced_fenced_stop{mirroredparenthesis}} \unexpanded\def\Rparentmirrored {\math_fenced_fenced_start{mirroredparenthesis}} +\unexpanded\def\Lbracketmirrored {\math_fenced_fenced_stop{mirroredbracket}} \unexpanded\def\Rbracketmirrored {\math_fenced_fenced_start{mirroredbracket}} +\unexpanded\def\Lbracemirrored {\math_fenced_fenced_stop{mirroredbrace}} \unexpanded\def\Rbracemirrored {\math_fenced_fenced_start{mirroredbrace}} +\unexpanded\def\Langlemirrored {\math_fenced_fenced_stop{mirroredangle}} \unexpanded\def\Ranglemirrored {\math_fenced_fenced_start{mirroredangle}} +\unexpanded\def\Ldoubleanglemirrored {\math_fenced_fenced_stop{mirroreddoubleangle}} \unexpanded\def\Rdoubleanglemirrored {\math_fenced_fenced_start{mirroreddoubleangle}} +\unexpanded\def\Lbarmirrored {\math_fenced_fenced_stop{mirroredbar}} \unexpanded\def\Rbarmirrored {\math_fenced_fenced_start{mirroredbar}} +\unexpanded\def\Ldoublebarmirrored {\math_fenced_fenced_stop{mirroreddoublebar}} \unexpanded\def\Rdoublebarmirrored {\math_fenced_fenced_start{mirroreddoublebar}} +\unexpanded\def\Ltriplebarmirrored {\math_fenced_fenced_stop{mirroredtriplebar}} \unexpanded\def\Rtriplebarmirrored {\math_fenced_fenced_start{mirroredtriplebar}} +\unexpanded\def\Lsolidusmirrored {\math_fenced_fenced_stop{mirroredsolidus}} \unexpanded\def\Rsolidusmirrored {\math_fenced_fenced_start{mirroredsolidus}} +\unexpanded\def\Lnothingmirrored {\math_fenced_fenced_stop{mirrorednothing}} \unexpanded\def\Rnothingmirrored {\math_fenced_fenced_start{mirrorednothing}} %D And another one: @@ -190,16 +216,17 @@ {\expandafter\let\csname\??mathleft \meaning#1\endcsname#2% \expandafter\let\csname\??mathright\meaning#3\endcsname#4} -\expandafter\let\csname\??mathleft\meaning [\endcsname\Lbracket -\expandafter\let\csname\??mathleft\meaning (\endcsname\Lparent -\expandafter\let\csname\??mathleft\meaning <\endcsname\Langle -\expandafter\let\csname\??mathleft\meaning ⟨\endcsname\Langle -\expandafter\let\csname\??mathleft\meaning ⟪\endcsname\Ldoubleangle -\expandafter\let\csname\??mathleft\meaning {\endcsname\Lbrace -\expandafter\let\csname\??mathleft\meaning |\endcsname\Lbar -\expandafter\let\csname\??mathleft\meaning /\endcsname\Lsolidus -\expandafter\let\csname\??mathleft\meaning ‖\endcsname\Ldoublebar -\expandafter\let\csname\??mathleft\meaning .\endcsname\Lnothing +\expandafter\let\csname\??mathleft \meaning [\endcsname\Lbracket +\expandafter\let\csname\??mathleft \meaning (\endcsname\Lparent +\expandafter\let\csname\??mathleft \meaning <\endcsname\Langle +\expandafter\let\csname\??mathleft \meaning ⟨\endcsname\Langle +\expandafter\let\csname\??mathleft \meaning ⟪\endcsname\Ldoubleangle +\expandafter\let\csname\??mathleft \meaning {\endcsname\Lbrace +\expandafter\let\csname\??mathleft \meaning |\endcsname\Lbar +\expandafter\let\csname\??mathleft \meaning ‖\endcsname\Ldoublebar +\expandafter\let\csname\??mathleft \meaning ⦀\endcsname\Ltriplebar +\expandafter\let\csname\??mathleft \meaning /\endcsname\Lsolidus +\expandafter\let\csname\??mathleft \meaning .\endcsname\Lnothing \expandafter\let\csname\??mathright\meaning ]\endcsname\Rbracket \expandafter\let\csname\??mathright\meaning )\endcsname\Rparent @@ -208,20 +235,48 @@ \expandafter\let\csname\??mathright\meaning ⟫\endcsname\Rdoubleangle \expandafter\let\csname\??mathright\meaning }\endcsname\Rbrace \expandafter\let\csname\??mathright\meaning |\endcsname\Rbar +\expandafter\let\csname\??mathright\meaning ⦀\endcsname\Rtriplebar \expandafter\let\csname\??mathright\meaning /\endcsname\Rsolidus -\expandafter\let\csname\??mathright\meaning ‖\endcsname\Rdoublebar \expandafter\let\csname\??mathright\meaning .\endcsname\Rnothing +\expandafter\let\csname\??mathright\meaning [\endcsname\Lbracketmirrored +\expandafter\let\csname\??mathright\meaning (\endcsname\Lparentmirrored +\expandafter\let\csname\??mathright\meaning <\endcsname\Langlemirrored +\expandafter\let\csname\??mathright\meaning ⟨\endcsname\Langlemirrored +\expandafter\let\csname\??mathright\meaning ⟪\endcsname\Ldoubleanglemirrored +\expandafter\let\csname\??mathright\meaning {\endcsname\Lbracemirrored +%expandafter\let\csname\??mathright\meaning |\endcsname\Lbarmirrored +%expandafter\let\csname\??mathright\meaning ‖\endcsname\Ldoublebarmirrored +%expandafter\let\csname\??mathright\meaning ⦀\endcsname\Ltriplebarmirrored +\expandafter\let\csname\??mathright\meaning /\endcsname\Lsolidusmirrored +\expandafter\let\csname\??mathright\meaning .\endcsname\Lnothingmirrored + +\expandafter\let\csname\??mathleft \meaning ]\endcsname\Rbracketmirrored +\expandafter\let\csname\??mathleft \meaning )\endcsname\Rparentmirrored +\expandafter\let\csname\??mathleft \meaning >\endcsname\Ranglemirrored +\expandafter\let\csname\??mathleft \meaning ⟩\endcsname\Ranglemirrored +\expandafter\let\csname\??mathleft \meaning ⟫\endcsname\Rdoubleanglemirrored +\expandafter\let\csname\??mathleft \meaning }\endcsname\Rbracemirrored +%expandafter\let\csname\??mathleft \meaning |\endcsname\Rbarmirrored +%expandafter\let\csname\??mathleft \meaning ‖\endcsname\Rdoublebarmirrored +%expandafter\let\csname\??mathleft \meaning ⦀\endcsname\Rtriplebarmirrored +\expandafter\let\csname\??mathleft \meaning /\endcsname\Rsolidusmirrored +\expandafter\let\csname\??mathleft \meaning .\endcsname\Rnothingmirrored + +% todo paren parent + \let\lbrack\lbracket \let\rbrack\rbracket -\installmathfencepair \lbrace \Lbrace \rbrace \Rbrace -\installmathfencepair \lbracket \Lbracket \rbracket \Rbracket -\installmathfencepair \lparent \Lparent \rparent \Rparent -\installmathfencepair \langle \Langle \rangle \Rangle -%installmathfencepair \lbar \Lbar \rbar \Rbar -\installmathfencepair \vert \Lbar \vert \Rbar -\installmathfencepair \solidus \Lsolidus \solidus \Rsolidus +\installmathfencepair \lbrace \Lbrace \rbrace \Rbrace +\installmathfencepair \lbracket \Lbracket \rbracket \Rbracket +\installmathfencepair \lparen \Lparen \rparen \Rparen +\installmathfencepair \lparent \Lparent \rparent \Rparent +\installmathfencepair \langle \Langle \rangle \Rangle +%installmathfencepair \lrangle \Ldoubleangle \rrangle \Rdoubleangle +%installmathfencepair \lbar \Lbar \rbar \Rbar +\installmathfencepair \vert \Lbar \vert \Rbar +\installmathfencepair \solidus \Lsolidus \solidus \Rsolidus \unexpanded\def\{{\mathortext\lbrace \letterleftbrace } % or maybe a chardef \unexpanded\def\}{\mathortext\rbrace \letterrightbrace } % or maybe a chardef diff --git a/tex/context/base/math-noa.lua b/tex/context/base/math-noa.lua index 8a5d3f546..87c6ca8b5 100644 --- a/tex/context/base/math-noa.lua +++ b/tex/context/base/math-noa.lua @@ -235,27 +235,39 @@ families[math_char] = function(pointer) local char = pointer.char local bold = boldmap[char] local newa = a - 3 - if bold then + if not bold then + if trace_families then + report_families("no bold replacement for %C, family %s with remap %s becomes %s with remap %s",char,a,familymap[a],newa,familymap[newa]) + end + pointer.fam = newa + elseif not fontcharacters[font_of_family(newa)][bold] then + if trace_families then + report_families("no bold character for %C, family %s with remap %s becomes %s with remap %s",char,a,familymap[a],newa,familymap[newa]) + end + if newa > 3 then + pointer.fam = newa - 3 + end + else pointer[a_exportstatus] = char pointer.char = bold if trace_families then report_families("replacing %C by bold %C, family %s with remap %s becomes %s with remap %s",char,bold,a,familymap[a],newa,familymap[newa]) end + pointer.fam = newa + end + else + local char = pointer.char + if not fontcharacters[font_of_family(a)][char] then + if trace_families then + report_families("no bold replacement for %C",char) + end else if trace_families then - report_families("no bold replacement for %C, family %s with remap %s becomes %s with remap %s",char,a,familymap[a],newa,familymap[newa]) + report_families("family of %C becomes %s with remap %s",char,a,familymap[a]) end + pointer.fam = a end - pointer.fam = newa - else - if trace_families then - local char = pointer.char - report_families("family of %C becomes %s with remap %s",char,a,familymap[a]) - end - pointer.fam = a end - else - -- pointer.fam = 0 end end end @@ -269,8 +281,20 @@ families[math_delim] = function(pointer) -- no bold delimiters in unicode a = a - 3 end - pointer.small_fam = a - pointer.large_fam = a + local char = pointer.small_char + local okay = fontcharacters[font_of_family(a)][char] + if okay then + pointer.small_fam = a + elseif a > 2 then + pointer.small_fam = a - 3 + end + local char = pointer.large_char + local okay = fontcharacters[font_of_family(a)][char] + if okay then + pointer.large_fam = a + elseif a > 2 then + pointer.large_fam = a - 3 + end else pointer.small_fam = 0 pointer.large_fam = 0 diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua index 14ab607c8..ad6d28bbc 100644 --- a/tex/context/base/mult-low.lua +++ b/tex/context/base/mult-low.lua @@ -180,7 +180,7 @@ return { -- "ruledhss", "ruledhfil", "ruledhfill", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "ruledvss", "ruledvfil", "ruledvfill", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", - "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", + "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox", "ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern", "ruledhglue", "ruledvglue", "normalhglue", "normalvglue", "ruledpenalty", diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index c54f68a15..d0ee6749a 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.log b/tex/context/base/status-lua.log index 814e5c99a..9db6975f0 100644 --- a/tex/context/base/status-lua.log +++ b/tex/context/base/status-lua.log @@ -1,6 +1,6 @@ (cont-yes.mkiv -ConTeXt ver: 2013.09.13 10:59 MKIV beta fmt: 2013.9.13 int: english/english +ConTeXt ver: 2013.09.14 14:39 MKIV beta fmt: 2013.9.14 int: english/english system > 'cont-new.mkiv' loaded (cont-new.mkiv) diff --git a/tex/context/base/trac-vis.mkiv b/tex/context/base/trac-vis.mkiv index fbc6ad6c4..694d1b09d 100644 --- a/tex/context/base/trac-vis.mkiv +++ b/tex/context/base/trac-vis.mkiv @@ -59,6 +59,8 @@ \unexpanded\def\ruledvtop{\syst_visualizers_vtop attr \visualattribute \ctxcommand{visual("simplevtop")} } % special case \unexpanded\def\ruledtopv{\syst_visualizers_vtop attr \visualattribute \ctxcommand{visual("vtop")} } +\unexpanded\def\ruledmbox#1{\ruledhbox{\startimath#1\stopimath}} + \appendtoks \ifcase\c_syst_visualizers_state\else \syst_visualizers_speedup diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 3c63ba098..e6cd36b17 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 : 09/13/13 10:59:07 +-- merge date : 09/14/13 14:39:53 do -- begin closure to overcome local limits and interference -- cgit v1.2.3