diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2015-05-18 13:15:04 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2015-05-18 13:15:04 +0200 |
commit | 53ff76b73cd1f373ecdfb0f7f17df6f352621d6e (patch) | |
tree | ba75e57f8ab12bf8edfb429bd6455e9dfca9512c /tex | |
parent | b55577d0998160c0174e250b542016ecd6ca9056 (diff) | |
download | context-53ff76b73cd1f373ecdfb0f7f17df6f352621d6e.tar.gz |
2015-05-18 12:28:00
Diffstat (limited to 'tex')
24 files changed, 297 insertions, 121 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index e9f259376..3f2e4199c 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{2015.05.15 23:03} +\newcontextversion{2015.05.18 12:26} %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 Binary files differindex 1145082b4..5244e0ba9 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 389d784e4..9b542115e 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -39,7 +39,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2015.05.15 23:03} +\edef\contextversion{2015.05.18 12:26} \edef\contextkind {current} %D For those who want to use this: @@ -483,7 +483,7 @@ \loadmarkfile{math-dis} %loadmarkfile{math-lan} -\loadmarkfile{phys-dim} +%loadmarkfile{phys-dim} % moved to after typo-scr \loadmarkfile{strc-mat} @@ -491,6 +491,7 @@ \loadmarkfile{chem-str} \loadmarkfile{typo-scr} +\loadmarkfile{phys-dim} \loadmarkfile{node-rul} \loadmkvifile{font-sol} % font solutions diff --git a/tex/context/base/core-sys.mkiv b/tex/context/base/core-sys.mkiv index 3d31dee53..1358f4cce 100644 --- a/tex/context/base/core-sys.mkiv +++ b/tex/context/base/core-sys.mkiv @@ -211,7 +211,10 @@ {\namedstartstopparameter{#1}\c!before\relax \bgroup \def\currentstartstop{#1}% - \startstopparameter\c!commands\relax % better: setups so that will show op soon + % we will keep this for a while: + \startstopparameter\c!commands\relax % obsolete + % this is the new method: + \usesetupsparameter\startstopparameter\relax % only in the display version \dostarttagged\t!construct\currentstartstop \usestartstopstyleandcolor\c!style\c!color} diff --git a/tex/context/base/font-otf.lua b/tex/context/base/font-otf.lua index 85eebaaeb..308ec4568 100644 --- a/tex/context/base/font-otf.lua +++ b/tex/context/base/font-otf.lua @@ -721,6 +721,8 @@ actions["prepare glyphs"] = function(data,filename,raw) if rawcidinfo.registry then local cidmap = fonts.cid.getmap(rawcidinfo) if cidmap then +-- local map = raw.map.map -- else created each time +-- local backmap = raw.map.backmap -- else created each time rawcidinfo.usedname = cidmap.usedname local nofnames, nofunicodes = 0, 0 local cidunicodes, cidnames = cidmap.unicodes, cidmap.names @@ -735,6 +737,7 @@ actions["prepare glyphs"] = function(data,filename,raw) local glyph = cidglyphs[index] if glyph then local unicode = glyph.unicode +-- local unicode = backmap[index] or -1 if unicode >= 0x00E000 and unicode <= 0x00F8FF then unicode = -1 elseif unicode >= 0x0F0000 and unicode <= 0x0FFFFD then @@ -743,6 +746,7 @@ actions["prepare glyphs"] = function(data,filename,raw) unicode = -1 end local name = glyph.name or cidnames[index] +-- print(index,unicode,glyph.name,raw.map.map[unicode],raw.map.backmap[index]) if not unicode or unicode == -1 then -- or unicode >= criterium then unicode = cidunicodes[index] end @@ -786,14 +790,13 @@ actions["prepare glyphs"] = function(data,filename,raw) local description = { -- width = glyph.width, boundingbox = glyph.boundingbox, - name = glyph.name or name or "unknown", -- uniXXXX + -- name = glyph.name or name or "unknown", -- uniXXXX + name = name or "unknown", -- uniXXXX cidindex = cidindex, index = index, glyph = glyph, } descriptions[unicode] = description - else - -- report_otf("potential problem: glyph %U is used but empty",index) end end end @@ -974,8 +977,8 @@ actions["check encoding"] = function(data,filename,raw) end if mapdata then - mapdata.map = { } -- clear some memory - mapdata.backmap = { } -- clear some memory + mapdata.map = { } -- clear some memory (virtual and created each time anyway) + mapdata.backmap = { } -- clear some memory (virtual and created each time anyway) end end @@ -991,7 +994,6 @@ actions["add duplicates"] = function(data,filename,raw) local unicodes = resources.unicodes -- name to unicode local indices = resources.indices -- index to unicodes local duplicates = resources.duplicates - for unicode, d in next, duplicates do local nofduplicates = #d if nofduplicates > 4 then diff --git a/tex/context/base/lxml-tab.lua b/tex/context/base/lxml-tab.lua index 47e2cac61..510ba1bd4 100644 --- a/tex/context/base/lxml-tab.lua +++ b/tex/context/base/lxml-tab.lua @@ -264,8 +264,17 @@ end -- end -- end +local spaceonly = lpegpatterns.whitespace^0 * P(-1) + local function add_text(text) local n = #dt +-- +-- will be an option: dataonly +-- +-- if #text == 0 or lpegmatch(spaceonly,text) then +-- return +-- end +-- if cleanup and #text > 0 then if n > 0 then local s = dt[n] diff --git a/tex/context/base/math-ini.mkiv b/tex/context/base/math-ini.mkiv index 83c7554eb..9627b153f 100644 --- a/tex/context/base/math-ini.mkiv +++ b/tex/context/base/math-ini.mkiv @@ -2250,6 +2250,13 @@ \math_inline_openup_stop \endgroup} +% Also handy, especially for units: +% +% 0x002B=plus 0x2212=minus 0x2013=endash + +\unexpanded\def\mathplus {+} +\unexpanded\def\mathminus{\ifmmode –\else\iffontchar\font`−−\else –\fi\fi} + \protect \endinput % % not used (yet) diff --git a/tex/context/base/mult-low.lua b/tex/context/base/mult-low.lua index 9a05e59d9..5396ec723 100644 --- a/tex/context/base/mult-low.lua +++ b/tex/context/base/mult-low.lua @@ -266,6 +266,7 @@ return { "singleexpandafter", "doubleexpandafter", "tripleexpandafter", -- "dontleavehmode", "removelastspace", "removeunwantedspaces", "keepunwantedspaces", + "removepunctuation", -- "wait", "writestatus", "define", "defineexpandable", "redefine", -- diff --git a/tex/context/base/mult-prm.lua b/tex/context/base/mult-prm.lua index 3b4d84356..9d6fc7810 100644 --- a/tex/context/base/mult-prm.lua +++ b/tex/context/base/mult-prm.lua @@ -254,6 +254,7 @@ return { "suppresslongerror", "suppressoutererror", "suppressmathparerror", + "matheqnogapstep", "synctex", }, ["omega"]={ diff --git a/tex/context/base/page-mrk.mkiv b/tex/context/base/page-mrk.mkiv index 6d0a5af94..0823464fe 100644 --- a/tex/context/base/page-mrk.mkiv +++ b/tex/context/base/page-mrk.mkiv @@ -102,6 +102,7 @@ \def\page_marks_add_page_indeed#1% {\setbox#1\hbox\bgroup + \resetvisualizers \let\objectoffset\pagecutmarkmargin %\infofont \scratchwidth \wd#1% @@ -115,6 +116,7 @@ \def\page_marks_add_more_indeed#1% {\setbox#1\hbox\bgroup + \resetvisualizers \let\objectoffset\pagecutmarkmargin \infofont \scratchwidth \wd#1% these can move out diff --git a/tex/context/base/phys-dim.lua b/tex/context/base/phys-dim.lua index 7430b62d7..71c9b0bd4 100644 --- a/tex/context/base/phys-dim.lua +++ b/tex/context/base/phys-dim.lua @@ -43,6 +43,7 @@ local rawset, next = rawset, next local V, P, S, R, C, Cc, Cs, matchlpeg = lpeg.V, lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.match local format, lower = string.format, string.lower local appendlpeg = lpeg.append +local utfchartabletopattern = lpeg.utfchartabletopattern local mergetable, mergedtable, keys, loweredkeys = table.merge, table.merged, table.keys, table.loweredkeys local setmetatablenewindex = table.setmetatablenewindex local utfchar = utf.char @@ -663,11 +664,11 @@ labels.suffixes = allocate { square = { labels = { en = [[2]] } }, cubic = { labels = { en = [[3]] } }, quadratic = { labels = { en = [[4]] } }, - inverse = { labels = { en = [[-1]] } }, - ilinear = { labels = { en = [[-1]] } }, - isquare = { labels = { en = [[-2]] } }, - icubic = { labels = { en = [[-3]] } }, - iquadratic = { labels = { en = [[-4]] } }, + inverse = { labels = { en = [[\mathminus1]] } }, + ilinear = { labels = { en = [[\mathminus1]] } }, + isquare = { labels = { en = [[\mathminus2]] } }, + icubic = { labels = { en = [[\mathminus3]] } }, + iquadratic = { labels = { en = [[\mathminus4]] } }, } local function dimpus(p,u,s) @@ -774,6 +775,20 @@ local function update_parsers() -- todo: don't remap utf sequences local p_short_operator = appendlpeg(short_operators) local p_short_suffix = appendlpeg(short_suffixes) + -- more efficient but needs testing + +-- local p_long_prefix = utfchartabletopattern(all_long_prefixes) / all_long_prefixes +-- local p_long_unit = utfchartabletopattern(all_long_units) / all_long_units +-- local p_long_operator = utfchartabletopattern(all_long_operators) / all_long_operators +-- local p_long_suffix = utfchartabletopattern(all_long_suffixes) / all_long_suffixes +-- local p_symbol = utfchartabletopattern(all_symbol_units) / all_symbol_units +-- local p_packaged = utfchartabletopattern(all_packaged_units) / all_packaged_units + +-- local p_short_prefix = utfchartabletopattern(short_prefixes) / short_prefixes +-- local p_short_unit = utfchartabletopattern(short_units) / short_units +-- local p_short_operator = utfchartabletopattern(short_operators) / short_operators +-- local p_short_suffix = utfchartabletopattern(short_suffixes) / short_suffixes + -- we can can cleanup some space issues here (todo) local unitparser = P { "unit", diff --git a/tex/context/base/phys-dim.mkiv b/tex/context/base/phys-dim.mkiv index 232edc2fc..b1bcb40c9 100644 --- a/tex/context/base/phys-dim.mkiv +++ b/tex/context/base/phys-dim.mkiv @@ -156,7 +156,7 @@ {\ifmmode \expandafter\normalsuperscript \else - \expandafter\high + \expandafter\unitshigh \fi} % we could use a symbolset but how many symbols are there ? @@ -170,17 +170,21 @@ % \definesymbol[units][times][\cdots] % \definesymbol[units][times][\ifmmode\cdot\else\kern.2\emwidth\cdot\kern.2\emwidth\fi] -\def\digitstimessymbol{\times} -% \def\digitstimessymbol{\cdot} -% \def\digitstimessymbol{\ifmmode\cdot\else\kern.2\emwidth\cdot\kern.2\emwidth\fi} +\unexpanded\def\digitstextbinop#1% assumes preceding + {\fourperemspace\nobreak\times\fourperemspace} + +%def\digitstimessymbol{\ifmmode\cdot\else\digitstextbinop\cdot\fi} +\def\digitstimessymbol{\ifmmode\times\else\digitstextbinop\times\fi} \unexpanded\def\digitszeropadding {\hphantom{0}} \unexpanded\def\digitsnegative {\phys_digits_normalized{0}{\phys_digits_raised{\textminus}}} \unexpanded\def\digitspositive {\phys_digits_normalized{0}{\phys_digits_raised{\textplus}}} \unexpanded\def\digitsnegative {\phys_digits_normalized{0}{\mathematics{\negative}}} \unexpanded\def\digitspositive {\phys_digits_normalized{0}{\mathematics{\positive}}} -\unexpanded\def\digitsminus {\phys_digits_normalized{0}{\mathematics{-}}} -\unexpanded\def\digitsplus {\phys_digits_normalized{0}{\mathematics{+}}} +%unexpanded\def\digitsminus {\phys_digits_normalized{0}{\mathematics{-}}} +%unexpanded\def\digitsplus {\phys_digits_normalized{0}{\mathematics{+}}} +\unexpanded\def\digitsminus {\phys_digits_normalized{0}{\mathminus}} +\unexpanded\def\digitsplus {\phys_digits_normalized{0}{\mathplus }} \unexpanded\def\digitsspace {\hphantom{0}} \unexpanded\def\digitsseparatorspace{\hphantom{.}} \unexpanded\def\digitssignspace {\hphantom{\digitsminus}} @@ -370,6 +374,9 @@ %\c!space=..., % (maybe) small medium big ] +\definehigh[unitshigh][\c!style=\txx] +\definelow [unitslow] [\c!style=\txx] + \let\setupunits\setupunit \newconstant \c_phys_units_mode % 0=text 1=math 2=textinmath 3=mathintext @@ -615,22 +622,22 @@ \def\unitsraise {\ifcase\c_phys_units_mode - \expandafter\high + \expandafter\unitshigh \or \expandafter\normalsuperscript \or - \expandafter\high + \expandafter\unitshigh \or \expandafter\normalsuperscript \fi} \def\unitslower {\ifcase\c_phys_units_mode - \expandafter\low + \expandafter\unitslow \or \expandafter\normalsubscript \or - \expandafter\low + \expandafter\unitslow \or \expandafter\normalsubscript \fi} diff --git a/tex/context/base/publ-imp-apa.mkvi b/tex/context/base/publ-imp-apa.mkvi index 9ab624bf8..85e0ebd5f 100644 --- a/tex/context/base/publ-imp-apa.mkvi +++ b/tex/context/base/publ-imp-apa.mkvi @@ -33,7 +33,7 @@ [apa] [\c!default=default, \c!specification=apa, - \c!otherstext={\space\btxlabeltext{apa:others}}, + \c!otherstext={\btxspace\btxlabeltext{apa:others}}, %c!journalconversion=\v!normal, \c!monthconversion=\v!month] @@ -57,14 +57,14 @@ \definebtx [apa:\s!list] [apa] - [\c!otherstext={,\nobreakspace\textellipsis\space}, + [\c!otherstext={\btxcomma\btxnobreakspace\textellipsis\space}, \c!etallimit=7, \c!etaldisplay=6, \c!etaloption=last, \c!authorconversion=invertedshort, - \c!separator:names:2={,\space}, % aka namesep - in this namespace - \c!separator:names:3={,\nobreakspace\textampersand\space}, % comma separated list - \c!separator:names:4={\nobreakspace\textampersand\space}] % last of two, no comma! + \c!separator:names:2={\btxcomma}, % aka namesep - in this namespace + \c!separator:names:3={\btxcomma\btxnobreakspace\textampersand\space}, % comma separated list + \c!separator:names:4={\btxnobreakspace\textampersand\space}] % last of two, no comma! % First, we define a namespace for a few special fields @@ -91,9 +91,9 @@ \definebtx [apa:\s!list:\s!page] [apa:\s!list] - [\c!separator:2={,\space}, - \c!separator:3={,\space\btxlabeltext{apa:and}\space}, - \c!separator:4={\space\btxlabeltext{apa:and}\space}, + [\c!separator:2={\btxcomma}, + \c!separator:3={\btxcomma\btxlabeltext{apa:and}\space}, + \c!separator:4={\btxspace\btxlabeltext{apa:and}\space}, \c!left={\btxleftparenthesis}, \c!right={\btxrightparenthesis}, \c!command={\wordright}] @@ -101,7 +101,7 @@ \definebtx [apa:\s!list:numbering] [apa:\s!list] - [\c!right={\space}] + [\c!right={\btxspace}] \definebtx [apa:\s!list:numbering:default] @@ -265,15 +265,40 @@ [apa:\s!cite] [apa] [\c!alternative=authoryear, - \c!otherstext={,\space\btxlabeltext{apa:others}}, + \c!otherstext={\btxcomma\btxlabeltext{apa:others}}, \c!etallimit=5, \c!etaldisplay=1, % TODO: when 2-4, show all first time, etaldisplay subsequently... \c!authorconversion=\v!name, \c!sorttype=normal, \c!compress=\v!yes, % note that cite sorts only work with compress=yes. - \c!separator:names:2={,\space}, - \c!separator:names:3={,\space\btxlabeltext{apa:and}\space}, % not \textampersand - \c!separator:names:4={\space\btxlabeltext{apa:and}\space}] % not \textampersand + \c!separator:names:2={\btxcomma}, + \c!separator:names:3={\btxcomma\btxlabeltext{apa:and}\space}, % not \textampersand + \c!separator:names:4={\btxspace\btxlabeltext{apa:and}\space}] % not \textampersand + +\definebtx + [apa:\s!cite:name] + [apa:\s!cite] + [\c!authorconversion=\v!name] + +\definebtx + [apa:\s!cite:inverted] + [apa:\s!cite] + [\c!authorconversion=\v!invertedshort] + +\definebtx + [apa:\s!cite:invertedshort] + [apa:\s!cite] + [\c!authorconversion=\v!invertedshort] + +\definebtx + [apa:\s!cite:normalshort] + [apa:\s!cite] + [\c!authorconversion=\v!normalshort] + +\definebtx + [apa:\s!cite:normal] + [apa:\s!cite] + [\c!authorconversion=\v!normal] \definebtx [apa:\s!cite:author] @@ -284,7 +309,7 @@ [apa:\s!cite:author] [\c!left={(}, \c!right={)}, - \c!inbetween={,\space}] + \c!inbetween={\btxcomma}] \definebtx [apa:\s!cite:default] @@ -295,7 +320,7 @@ [apa:\s!cite:authoryear] [\c!left=, \c!right=, - \c!inbetween={\space}] + \c!inbetween={\btxspace}] \definebtx [apa:\s!cite:authornum] @@ -306,7 +331,7 @@ \definebtx [apa:\s!cite:author:num] % todo [apa:\s!cite:authornum] - [\c!left={\space[}, + [\c!left={\btxspace[}, \c!right={]}] \definebtx @@ -317,22 +342,22 @@ [apa:\s!cite:author:years] % todo [apa:\s!cite:authoryears] [\c!inbetween=, - \c!left={\space(}, + \c!left={\btxspace(}, \c!right={)}] \definebtx [apa:\s!cite:year] [apa:\s!cite] - [\c!separator:2={,\space}, % :0 and :1 - between items of a list - \c!separator:3={,\space\btxlabeltext{apa:and}\space}, % not \textampersand - \c!separator:4={\space\btxlabeltext{apa:and}\space}] % not \textampersand + [\c!separator:2={\btxcomma}, % :0 and :1 - between items of a list + \c!separator:3={\btxcomma\btxlabeltext{apa:and}\space}, % not \textampersand + \c!separator:4={\btxspace\btxlabeltext{apa:and}\space}] % not \textampersand \definebtx [apa:\s!cite:title] [apa:\s!cite] - [\c!separator:2={,\space}, % :0 and :1 - between items of a list - \c!separator:3={,\space\btxlabeltext{apa:and}\space}, % not \textampersand - \c!separator:4={\space\btxlabeltext{apa:and}\space}, % not \textampersand + [\c!separator:2={\btxcomma}, % :0 and :1 - between items of a list + \c!separator:3={\btxcomma\btxlabeltext{apa:and}\space}, % not \textampersand + \c!separator:4={\btxspace\btxlabeltext{apa:and}\space}, % not \textampersand \c!command={\language[\currentbtxlanguage]}, % BAH \c!sorttype=none, \c!style=\v!italic] @@ -359,9 +384,9 @@ [apa:\s!cite] [\c!left=, \c!right=, - \c!separator:2={,\space}, % :0 and :1 - between items of a list - \c!separator:3={,\space\btxlabeltext{apa:and}\space}, % not \textampersand - \c!separator:4={\space\btxlabeltext{apa:and}\space}] % not \textampersand + \c!separator:2={\btxcomma}, % :0 and :1 - between items of a list + \c!separator:3={\btxcomma\btxlabeltext{apa:and}\space}, % not \textampersand + \c!separator:4={\btxspace\btxlabeltext{apa:and}\space}] % not \textampersand \definebtx [apa:\s!cite:pages] @@ -405,17 +430,17 @@ [apa:\s!cite:num] [\c!left={Ref.\nbsp}, \c!right=, - \c!separator:2={,\space}, - \c!separator:3={\space\btxlabeltext{apa:and}\space}, - \c!separator:4={\space\btxlabeltext{apa:and}\space}] + \c!separator:2={\btxcomma}, + \c!separator:3={\btxspace\btxlabeltext{apa:and}\space}, + \c!separator:4={\btxspace\btxlabeltext{apa:and}\space}] \definebtx [apa:\s!cite:entry] [apa:\s!cite] [\c!left=, \c!right=, - \c!inbetween={\space}, - \c!separator:2={;\space}, + \c!inbetween={\btxspace}, + \c!separator:2={\btxsemicolon}, \c!separator:3=\btxparameter{\c!separator:2}, \c!separator:4=\btxparameter{\c!separator:2}] @@ -778,7 +803,13 @@ \btxflush{year} \btxflushsuffix } { - \btxlabeltext{apa:nd} + \fastsetup{btx:apa:nd} + % Hans: the following won't work but should. + \btxdoif {suffix} { + \btxspace + \btxflushsuffix + % Hans: similarly, why can't \btxflush{suffix} be made to work? + } } \stoptexdefinition diff --git a/tex/context/base/publ-imp-aps.mkvi b/tex/context/base/publ-imp-aps.mkvi index 28af82e74..71b0dc185 100644 --- a/tex/context/base/publ-imp-aps.mkvi +++ b/tex/context/base/publ-imp-aps.mkvi @@ -33,15 +33,15 @@ [aps] [\c!default=default, \c!specification=aps, - \c!otherstext={\space{\it\btxlabeltext{aps:others}}}, + \c!otherstext={\btxspace{\it\btxlabeltext{aps:others}}}, \c!etallimit=10, \c!etaldisplay=\btxparameter\c!etallimit, %c!journalconversion=\v!normal, \c!monthconversion=\v!month, \c!title=\v!yes, - \c!separator:names:2={,\space}, - \c!separator:names:3={,\space\btxlabeltext{aps:and}\space}, % not \textampersand - \c!separator:names:4= {\space\btxlabeltext{aps:and}\space}] % not \textampersand + \c!separator:names:2={\btxcomma}, + \c!separator:names:3={\btxcomma\btxlabeltext{aps:and}\space}, + \c!separator:names:4={\btxspace\btxlabeltext{aps:and}\space}] % First, define and set list and rendering parameters @@ -83,9 +83,9 @@ \definebtx [aps:\s!list:\s!page] [aps:\s!list] - [\c!separator:2={,\space}, - \c!separator:3={,\space\btxlabeltext{aps:and}\space}, - \c!separator:4={\space\btxlabeltext{aps:and}\space}, + [\c!separator:2={\btxcomma}, + \c!separator:3={\btxcomma\btxlabeltext{aps:and}\space}, + \c!separator:4={\btxspace\btxlabeltext{aps:and}\space}, \c!left={\btxleftparenthesis}, \c!right={\btxrightparenthesis}, \c!command={\wordright}] @@ -247,11 +247,37 @@ \definebtx [aps:\s!cite] [aps] - [\c!authorconversion=\v!name, + [\c!alternative=num, + \c!authorconversion=\v!name, \c!compress=\v!yes, \c!sorttype=normal] \definebtx + [aps:\s!cite:name] + [aps:\s!cite] + [\c!authorconversion=\v!name] + +\definebtx + [aps:\s!cite:inverted] + [aps:\s!cite] + [\c!authorconversion=\v!invertedshort] + +\definebtx + [aps:\s!cite:invertedshort] + [aps:\s!cite] + [\c!authorconversion=\v!invertedshort] + +\definebtx + [aps:\s!cite:normalshort] + [aps:\s!cite] + [\c!authorconversion=\v!normalshort] + +\definebtx + [aps:\s!cite:normal] + [aps:\s!cite] + [\c!authorconversion=\v!normal] + +\definebtx [aps:\s!cite:author] [aps:\s!cite] @@ -260,14 +286,14 @@ [aps:\s!cite:author] [\c!left={(}, \c!right={)}, - \c!inbetween={,\space}] + \c!inbetween={\btxcomma}] \definebtx [aps:\s!cite:authoryears] [aps:\s!cite:authoryear] [\c!left=, \c!right=, - \c!inbetween={\space}] + \c!inbetween={\btxspace}] \definebtx [aps:\s!cite:authornum] @@ -278,7 +304,7 @@ \definebtx [aps:\s!cite:author:num] % todo [aps:\s!cite:authornum] - [\c!left={\space[}, + [\c!left={\btxspace[}, \c!right={]}] \definebtx @@ -291,7 +317,7 @@ [aps:\s!cite:author:years] % todo [aps:\s!cite:authoryears] [\c!inbetween=, - \c!left={\space(}, + \c!left={\btxspace(}, \c!right={)}] \definebtx @@ -326,9 +352,9 @@ [aps:\s!cite] [\c!left=, \c!right=, - \c!separator:2={,\space}, % :0 and :1 - between items of a list - \c!separator:3={,\space\btxlabeltext{aps:and}\space}, % not \textampersand - \c!separator:4= {\space\btxlabeltext{aps:and}\space}] % not \textampersand + \c!separator:2={\btxcomma}, % :0 and :1 - between items of a list + \c!separator:3={\btxcomma\btxlabeltext{aps:and}\space}, + \c!separator:4={\btxspace\btxlabeltext{aps:and}\space}] \definebtx [aps:\s!cite:pages] @@ -381,17 +407,17 @@ [aps:\s!cite:num] [\c!left={Ref.\nbsp}, \c!command=, - \c!separator:2={,\space}, - \c!separator:3={\space\btxlabeltext{aps:and}\space}, - \c!separator:4={\space\btxlabeltext{aps:and}\space}] + \c!separator:2={\btxcomma}, + \c!separator:3={\btxspace\btxlabeltext{aps:and}\space}, + \c!separator:4={\btxspace\btxlabeltext{aps:and}\space}] \definebtx [aps:\s!cite:entry] [aps:\s!cite] [\c!left=, \c!right=, - \c!inbetween={\space}, - \c!separator:2={;\space}, + \c!inbetween={\btxspace}, + \c!separator:2={\btxsemicolon}, \c!separator:3=\btxparameter{\c!separator:2}, \c!separator:4=\btxparameter{\c!separator:2}] @@ -816,7 +842,6 @@ \else #text \fi - \stoptexdefinition % Then setups, by category diff --git a/tex/context/base/publ-imp-default.mkvi b/tex/context/base/publ-imp-default.mkvi index c7c88d74a..6a15712ad 100644 --- a/tex/context/base/publ-imp-default.mkvi +++ b/tex/context/base/publ-imp-default.mkvi @@ -26,12 +26,12 @@ \definebtx [\s!default] [\c!default=, % we do not want to fall|-|back on ourself. - \c!otherstext={\space\btxlabeltext{default:others}}, + \c!otherstext={\btxspace\btxlabeltext{default:others}}, %c!journalconversion=\v!normal, \c!monthconversion=\v!number, - \c!separator:names:2={,\space}, - \c!separator:names:3={\space\btxlabeltext{default:and}\space}, - \c!separator:names:4={\space\btxlabeltext{default:and}\space}] + \c!separator:names:2={\btxcomma}, + \c!separator:names:3={\btxspace\btxlabeltext{default:and}\space}, + \c!separator:names:4={\btxspace\btxlabeltext{default:and}\space}] \definebtx [\s!default:\s!list] @@ -46,14 +46,39 @@ \c!sorttype=normal, \c!authorconversion=\v!name] +\definebtx + [\s!default:\s!cite:name] + [\s!default:\s!cite] + [\c!authorconversion=\v!name] + +\definebtx + [\s!default:\s!cite:inverted] + [\s!default:\s!cite] + [\c!authorconversion=\v!invertedshort] + +\definebtx + [\s!default:\s!cite:invertedshort] + [\s!default:\s!cite] + [\c!authorconversion=\v!invertedshort] + +\definebtx + [\s!default:\s!cite:normalshort] + [\s!default:\s!cite] + [\c!authorconversion=\v!normalshort] + +\definebtx + [\s!default:\s!cite:normal] + [\s!default:\s!cite] + [\c!authorconversion=\v!normal] + % List variants, some having specific settings: \definebtx [\s!default:\s!list:\s!page] [\s!default:\s!list] - [\c!separator:2={,\space}, - \c!separator:3={,\space\btxlabeltext{default:and}\space}, - \c!separator:4={\space\btxlabeltext{default:and}\space}, + [\c!separator:2={\btxcomma}, + \c!separator:3={\btxcomma\btxlabeltext{default:and}\space}, + \c!separator:4={\btxspace\btxlabeltext{default:and}\space}, \c!left={\btxleftparenthesis}, \c!right={\btxrightparenthesis}] @@ -139,7 +164,7 @@ [\s!default:\s!cite:author] [\c!left={(}, \c!right={)}, - \c!inbetween={,\space}] + \c!inbetween={\btxcomma}] \definebtx [\s!default:\s!cite:authoryears] @@ -148,7 +173,7 @@ \definebtx [\s!default:\s!cite:author:num] % todo [\s!default:\s!cite:authornum] - [\c!left={\space[}, + [\c!left={\btxleftbracket}, \c!right={]}] \definebtx @@ -161,7 +186,7 @@ [\s!default:\s!cite:author:years] % todo [\s!default:\s!cite:authoryears] [\c!inbetween=, - \c!left={\space(}, + \c!left={\btxleftparenthesis}, \c!right={)}] \definebtx @@ -240,9 +265,9 @@ [\s!default:\s!cite:num] [\c!left=, % in apa: {Ref.\nbsp} or so \c!right=, - \c!separator:2={,\space}, - \c!separator:3={,\space\btxlabeltext{default:and}\space}, - \c!separator:4= {\space\btxlabeltext{default:and}\space}] + \c!separator:2={\btxcomma}, + \c!separator:3={\btxcomma\btxlabeltext{default:and}\space}, + \c!separator:4={\btxspace\btxlabeltext{default:and}\space}] \definebtx [\s!default:\s!cite:entry] diff --git a/tex/context/base/publ-ini.mkiv b/tex/context/base/publ-ini.mkiv index 233734bb6..41fbfa5a1 100644 --- a/tex/context/base/publ-ini.mkiv +++ b/tex/context/base/publ-ini.mkiv @@ -1749,9 +1749,10 @@ \c!refcommand=authoryears, % todo \c!numbering=\v!yes, %\c!saveinlist=\v!no, % maybe for before/after + \c!pagestate=\v!stop, \c!textstate=\v!start, \c!width=\v!auto, - \c!separator={;\space}, + \c!separator={\btxsemicolon}, \c!distance=1.5\emwidth] % Quite some interpunction and labels are the same of at least consistent within @@ -1760,30 +1761,29 @@ \setupbtx [\c!interaction=\v!start, - \c!alternative=num, % default cite form - \c!inbetween=\space, + \c!alternative=num, % default cite form, normally defined in the cite namespace + \c!inbetween=\btxspace, \c!range=\endash, % separator:range? \c!compress=\v!yes, % was no? \c!authorconversion=normal, \c!sorttype=normal, % normal, reverse or none \c!etallimit=3, \c!etaldisplay=\btxparameter\c!etallimit, - \c!otherstext={\space et al.}, - \c!separator:firstnames={\space}, - \c!separator:juniors={\space}, - \c!separator:vons={\space}, - \c!separator:initials={\space}, + \c!otherstext={\btxspace et al.}, + \c!separator:firstnames={\btxspace}, + \c!separator:juniors={\btxspace}, + \c!separator:vons={\btxspace}, + \c!separator:initials={\btxspace}, \c!stopper:initials={.}, - %\c!surnamesep={,\space}, % is this used anywhere? - \c!separator:invertedinitials={,\space}, - \c!separator:invertedfirstnames={,\space}, - \c!separator:names:2={,\space}, % separates multiple names + %\c!surnamesep={\btxcomma}, % is this used anywhere? + \c!separator:invertedinitials={\btxcomma}, + \c!separator:invertedfirstnames={\btxcomma}, + \c!separator:names:2={\btxcomma}, % separates multiple names \c!separator:names:3=\btxparameter{\c!separator:2}, % before last name in a list \c!separator:names:4=\btxparameter{\c!separator:2}, % between only two names - \c!separator:2={;\space}, % aka pubsep - separates multiple objects + \c!separator:2={\btxsemicolon}, % aka pubsep - separates multiple objects \c!separator:3=\btxparameter{separator:2}, % before last object in a list - \c!separator:4=\btxparameter{separator:2}, % between only two objects - \c!pagestate=\v!stop] + \c!separator:4=\btxparameter{separator:2}] % between only two objects % Do we want these in the format? Loading them delayed is somewhat messy. diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf Binary files differindex e43651ef8..619f76367 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf Binary files differindex 37e62b70b..63c3286e8 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf diff --git a/tex/context/base/strc-mat.mkiv b/tex/context/base/strc-mat.mkiv index 22fa54889..225531fa8 100644 --- a/tex/context/base/strc-mat.mkiv +++ b/tex/context/base/strc-mat.mkiv @@ -45,7 +45,16 @@ \c!indentnext=\v!no, \c!alternative=\s!default, \c!strut=\v!no, - \c!distance=\emwidth] + \c!distance=2\emwidth] + +\ifdefined\matheqnogapstep + % we're ok, now we have that quad in the distance which is + % more consistent and not depending on the text font in math + \matheqnogapstep\zerocount +\else + % we will keep this for a while + \setupformulas[\c!distance=\emwidth] +\fi \setupsubformulas % subformulas could be last in chain [\c!indentnext=\formulaparameter\c!indentnext] @@ -228,18 +237,27 @@ % nested: \number\c_strc_formulas_nested_number_mode]}} \unexpanded\def\placecurrentformulanumber - {\rm % nodig ? - \doif{\formulaparameter\c!location}\v!right{\hskip\formulaparameter\c!distance}% + {\begingroup + \rm % determines the distance and main font + \edef\p_location{\formulaparameter\c!location}% + \ifx\p_location\v!right + \hskip\formulaparameter\c!distance + \fi + \begingroup + \useformulastyleandcolor\c!numberstyle\c!numbercolor \formulaparameter\c!numbercommand - {\useformulastyleandcolor\c!numberstyle\c!numbercolor - \strut + {\strut \formulaparameter\c!left \namedtaggedlabeltexts \t!formulalabel \v!formula \t!formulanumber\v!formula {\ignorespaces\strc_formulas_place_current_number\removeunwantedspaces}% \formulaparameter\c!right}% - \doif{\formulaparameter\c!location}\v!left{\hskip\formulaparameter\c!distance}} + \endgroup + \ifx\p_location\v!left + \hskip\formulaparameter\c!distance + \fi + \endgroup} \unexpanded\def\strc_formulas_place_current_number {\strc_formulas_handle_current_references @@ -433,6 +451,8 @@ %D %D Otherwise we get a missing \type {$$} error reported. +\let\reqno\eqno + \unexpanded\def\resetdisplaymatheq % when used? {\let\normalleqno\gobbleoneargument \let\leqno\gobbleoneargument \let\normalreqno\gobbleoneargument \let\eqno \gobbleoneargument diff --git a/tex/context/base/syst-ini.mkiv b/tex/context/base/syst-ini.mkiv index 8631aed90..dc5fddb63 100644 --- a/tex/context/base/syst-ini.mkiv +++ b/tex/context/base/syst-ini.mkiv @@ -1095,6 +1095,10 @@ \suppressoutererror \plusone \suppressmathparerror \plusone +\ifdefined\matheqnogapstep % for now + \matheqnogapstep \zerocount +\fi + %D While cleaning this code up a bit I was listening to Heather Nova's \CD\ Redbird. %D The first song on that \CD\ ends with a few lines suitable for ending this %D initialization module: diff --git a/tex/context/base/trac-vis.lua b/tex/context/base/trac-vis.lua index a20e42d1a..b54182798 100644 --- a/tex/context/base/trac-vis.lua +++ b/tex/context/base/trac-vis.lua @@ -471,8 +471,10 @@ local function ruledbox(head,current,vertical,layer,what,simple,previous) if wd ~= 0 then local ht = getfield(current,"height") local dp = getfield(current,"depth") + local shift = getfield(current,"shift") local next = getnext(current) - local prev = previous -- getprev(current) ... prev can be wrong in math mode < 0.78.3 + local prev = previous + -- local prev = getprev(current) -- prev can be wrong in math mode < 0.78.3 setfield(current,"next",nil) setfield(current,"prev",nil) local linewidth = emwidth/fraction @@ -533,7 +535,22 @@ local function ruledbox(head,current,vertical,layer,what,simple,previous) new_rule(wd-2*linewidth,ht,-ht+linewidth) ) if baseskip then - info = linked_nodes(info,baseskip,baseline) + info = linked_nodes(info,baseskip,baseline) -- could be in previous linked + end + local shft + if shift == 0 then + shift = nil + else + local sh = shift > 0 and shift or 0 + local sd = shift < 0 and - shift or 0 + shft = fast_hpack(new_rule(2*emwidth/fraction,sh,sd)) + setfield(shft,"width",0) + if sh > 0 then + setfield(shft,"height",0) + end + if sd > 0 then + setfield(shft,"depth",0) + end end setlisttransparency(info,c_text) info = fast_hpack(info) @@ -541,11 +558,18 @@ local function ruledbox(head,current,vertical,layer,what,simple,previous) setfield(info,"height",0) setfield(info,"depth",0) setattr(info,a_layer,layer) - local info = linked_nodes(current,new_kern(-wd),info) + local info = linked_nodes(shft,current,new_kern(-wd),info) info = fast_hpack(info,wd) if vertical then info = vpack_nodes(info) end + if shift then + setfield(current,"shift",0) + setfield(info,"width",wd) + setfield(info,"height",ht) + setfield(info,"depth",dp) + setfield(info,"shift",shift) + end if next then setfield(info,"next",next) setfield(next,"prev",info) diff --git a/tex/context/base/trac-vis.mkiv b/tex/context/base/trac-vis.mkiv index 6ee8a6b8d..74a2c1ba2 100644 --- a/tex/context/base/trac-vis.mkiv +++ b/tex/context/base/trac-vis.mkiv @@ -22,7 +22,7 @@ %D %D Control over what gets visualized happens with the tracker command: %D -%D \enabletrackers[visualizer.*] +%D \enabletrackers[visualizers.*] %D %D Possible values are: \type {fontkern}, \type {kern}, \type {glue}, \type %D {penalty}, \type {hbox}, \type {vbox}, \type {all}, \type {reset}, \type diff --git a/tex/context/base/util-str.lua b/tex/context/base/util-str.lua index de4a87e9f..c2139b155 100644 --- a/tex/context/base/util-str.lua +++ b/tex/context/base/util-str.lua @@ -1118,7 +1118,7 @@ function string.optionalquoted(str) return lpegmatch(pattern,str) or str end -local pattern = Cs((newline / os.newline + 1)^0) +local pattern = Cs((newline / (os.newline or "\r") + 1)^0) function string.replacenewlines(str) return lpegmatch(pattern,str) diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 81883b8b8..0f2fc8e26 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 : 05/15/15 23:03:46 +-- merge date : 05/18/15 12:26:48 do -- begin closure to overcome local limits and interference @@ -3442,7 +3442,7 @@ local pattern=Cs(dquote*(equote-P(-2))^0*dquote) function string.optionalquoted(str) return lpegmatch(pattern,str) or str end -local pattern=Cs((newline/os.newline+1)^0) +local pattern=Cs((newline/(os.newline or "\r")+1)^0) function string.replacenewlines(str) return lpegmatch(pattern,str) end @@ -7778,13 +7778,12 @@ actions["prepare glyphs"]=function(data,filename,raw) indices[index]=unicode local description={ boundingbox=glyph.boundingbox, - name=glyph.name or name or "unknown", + name=name or "unknown", cidindex=cidindex, index=index, glyph=glyph, } descriptions[unicode]=description - else end end end |