From f39cbead2df41691182f1bb4d8982c1618e175cc Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Sun, 29 Dec 2013 19:28:00 +0100 Subject: beta 2013.12.29 19:28 --- tex/context/base/char-tex.lua | 29 ++++--- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4120 -> 4126 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/grph-inc.mkiv | 16 ++-- tex/context/base/meta-ini.mkiv | 2 +- tex/context/base/mlib-pps.lua | 12 +-- tex/context/base/mlib-run.lua | 4 +- tex/context/base/mult-def.mkiv | 1 + tex/context/base/status-files.pdf | Bin 24644 -> 24634 bytes tex/context/base/status-lua.pdf | Bin 228341 -> 228351 bytes tex/context/base/strc-lst.mkvi | 2 +- tex/context/base/tabl-tbl.mkiv | 2 + tex/context/base/util-prs.lua | 4 +- tex/context/base/x-set-11.mkiv | 88 ++++++++++++++++++++- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 16 files changed, 132 insertions(+), 34 deletions(-) (limited to 'tex') diff --git a/tex/context/base/char-tex.lua b/tex/context/base/char-tex.lua index 3fa140c7d..472cae930 100644 --- a/tex/context/base/char-tex.lua +++ b/tex/context/base/char-tex.lua @@ -22,7 +22,7 @@ local accentmapping = allocate { ['"'] = { [""] = "¨", A = "Ä", a = "ä", E = "Ë", e = "ë", - I = "Ï", i = "ï", ["ı"] = "ï", + I = "Ï", i = "ï", ["ı"] = "ï", ["\\i"] = "ï", O = "Ö", o = "ö", U = "Ü", u = "ü", Y = "Ÿ", y = "ÿ", @@ -31,7 +31,7 @@ local accentmapping = allocate { A = "Á", a = "á", C = "Ć", c = "ć", E = "É", e = "é", - I = "Í", i = "í", ["ı"] = "í", + I = "Í", i = "í", ["ı"] = "í", ["\\i"] = "í", L = "Ĺ", l = "ĺ", N = "Ń", n = "ń", O = "Ó", o = "ó", @@ -45,13 +45,13 @@ local accentmapping = allocate { C = "Ċ", c = "ċ", E = "Ė", e = "ė", G = "Ġ", g = "ġ", - I = "İ", i = "i", ["ı"] = "i", + I = "İ", i = "i", ["ı"] = "i", ["\\i"] = "i", Z = "Ż", z = "ż", }, ["="] = { [""] = "¯", A = "Ā", a = "ā", E = "Ē", e = "ē", - I = "Ī", i = "ī", ["ı"] = "ī", + I = "Ī", i = "ī", ["ı"] = "ī", ["\\i"] = "ī", O = "Ō", o = "ō", U = "Ū", u = "ū", }, @@ -65,7 +65,7 @@ local accentmapping = allocate { E = "Ê", e = "ê", G = "Ĝ", g = "ĝ", H = "Ĥ", h = "ĥ", - I = "Î", i = "î", ["ı"] = "î", + I = "Î", i = "î", ["ı"] = "î", ["\\i"] = "î", J = "Ĵ", j = "ĵ", O = "Ô", o = "ô", S = "Ŝ", s = "ŝ", @@ -76,7 +76,7 @@ local accentmapping = allocate { ["`"] = { [""] = "`", A = "À", a = "à", E = "È", e = "è", - I = "Ì", i = "ì", ["ı"] = "ì", + I = "Ì", i = "ì", ["ı"] = "ì", ["\\i"] = "ì", O = "Ò", o = "ò", U = "Ù", u = "ù", Y = "Ỳ", y = "ỳ", @@ -104,7 +104,7 @@ local accentmapping = allocate { A = "Ă", a = "ă", E = "Ĕ", e = "ĕ", G = "Ğ", g = "ğ", - I = "Ĭ", i = "ĭ", ["ı"] = "ĭ", + I = "Ĭ", i = "ĭ", ["ı"] = "ĭ", ["\\i"] = "ĭ", O = "Ŏ", o = "ŏ", U = "Ŭ", u = "ŭ", }, @@ -121,7 +121,7 @@ local accentmapping = allocate { }, ["~"] = { [""] = "˜", A = "Ã", a = "ã", - I = "Ĩ", i = "ĩ", ["ı"] = "ĩ", + I = "Ĩ", i = "ĩ", ["ı"] = "ĩ", ["\\i"] = "ĩ", N = "Ñ", n = "ñ", O = "Õ", o = "õ", U = "Ũ", u = "ũ", @@ -179,22 +179,28 @@ local command_map = allocate { ["AE"] = "Æ", ["oe"] = "œ", ["OE"] = "Œ", + ["o"] = "ø", + ["O"] = "Ø", + ["aa"] = "å", + ["AA"] = "Å", } -- no need for U here +local achar = R("az","AZ") + P("ı") + P("\\i") + local spaces = P(" ")^0 local no_l = P("{") / "" local no_r = P("}") / "" local no_b = P('\\') / "" -local lUr = P("{") * C(R("az","AZ")) * P("}") +local lUr = P("{") * C(achar) * P("}") local accents_1 = [["'.=^`~]] local accents_2 = [[Hckruv]] local accent = P('\\') * ( - C(S(accents_1)) * (lUr * Cc(true) + C(R("az","AZ")) * Cc(false)) + + C(S(accents_1)) * (lUr * Cc(true) + C(achar) * Cc(false)) + -- we need achar for ı etc, could be sped up C(S(accents_2)) * lUr * Cc(true) ) / remap_accent @@ -227,6 +233,9 @@ function characters.tex.toutf(str,strip) end end +-- print(characters.tex.toutf([[\~{Z}]],true)) +-- print(characters.tex.toutf([[\'\i]],true)) +-- print(characters.tex.toutf([[\'{\i}]],true)) -- print(characters.tex.toutf([[\"{e}]],true)) -- print(characters.tex.toutf([[\" {e}]],true)) -- print(characters.tex.toutf([[{\"{e}}]],true)) diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index d16ccaa6a..7049cf8d1 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2013.12.26 12:50} +\newcontextversion{2013.12.29 19:28} %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 52e5898dc..ad5b023ef 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 eeebd2afe..95123348d 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.12.26 12:50} +\edef\contextversion{2013.12.29 19:28} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/grph-inc.mkiv b/tex/context/base/grph-inc.mkiv index 5fb87a8b2..e8b63cc4b 100644 --- a/tex/context/base/grph-inc.mkiv +++ b/tex/context/base/grph-inc.mkiv @@ -536,17 +536,13 @@ \c!offset=\v!overlay,\c!width=\v!fit,\c!height=\v!fit] {\blank[\v!disable]#1\endgraf\removelastskip}} % disable should stay here! -\def\grph_include_process_mps#1% retrofit into mkii - {\global\setbox\foundexternalfigure\vbox{\convertMPtoPDF{#1}11}} +% used al lua end: -\def\grph_include_process_cld#1% - {\global\setbox\foundexternalfigure\vbox{\cldprocessfile{#1}}} - -\unexpanded\def\docheckfigurebuffer #1{\grph_include_process_tex{\getbuffer[#1]}} % used al lua end -\unexpanded\def\docheckfiguretex #1{\grph_include_process_tex{\input{#1}}} % used al lua end -\unexpanded\def\docheckfigurecld #1{\grph_include_process_cld{#1}} % used al lua end -\unexpanded\def\docheckfiguremps #1{\grph_include_process_mps{#1}} % used al lua end -\unexpanded\def\docheckfiguremprun #1#2{\grph_include_process_tex{\useMPrun{#1}{#2}}} % used al lua end +\unexpanded\def\docheckfigurebuffer #1{\grph_include_process_tex{\getbuffer[#1]}} +\unexpanded\def\docheckfiguretex #1{\grph_include_process_tex{\input{#1}}} +\unexpanded\def\docheckfigurecld #1{\global\setbox\foundexternalfigure\vbox{\cldprocessfile{#1}}} +\unexpanded\def\docheckfiguremps #1{\global\setbox\foundexternalfigure\vbox{\convertMPtoPDF{#1}11}} +\unexpanded\def\docheckfiguremprun #1#2{\global\setbox\foundexternalfigure\vbox{\useMPrun{#1}{#2}}} \unexpanded\def\relocateexternalfigure % easier here than in lua {\global\setbox\foundexternalfigure\vbox to \ht\foundexternalfigure\bgroup diff --git a/tex/context/base/meta-ini.mkiv b/tex/context/base/meta-ini.mkiv index 147c9c89a..28ba9e901 100644 --- a/tex/context/base/meta-ini.mkiv +++ b/tex/context/base/meta-ini.mkiv @@ -317,7 +317,7 @@ \let\normal_meta_process_graphic_stop \meta_process_graphic_stop \let\meta_process_graphic_start\relax \let\meta_process_graphic_stop \relax - \def\meta_process_graphic_figure_start{\startTEXpage\normal_meta_process_graphic_start}% + \def\meta_process_graphic_figure_start{\startTEXpage[\c!offset=\v!overlay,\c!align=]\normal_meta_process_graphic_start}% \def\meta_process_graphic_figure_stop {\normal_meta_process_graphic_stop\stopTEXpage} \def\MPaskedfigure{all}% \meta_process_graphic{input "#1" ;}% diff --git a/tex/context/base/mlib-pps.lua b/tex/context/base/mlib-pps.lua index 865f76018..385fb3ece 100644 --- a/tex/context/base/mlib-pps.lua +++ b/tex/context/base/mlib-pps.lua @@ -13,7 +13,7 @@ local tonumber, type = tonumber, type local round = math.round local insert, remove, concat = table.insert, table.remove, table.concat local Cs, Cf, C, Cg, Ct, P, S, V, Carg = lpeg.Cs, lpeg.Cf, lpeg.C, lpeg.Cg, lpeg.Ct, lpeg.P, lpeg.S, lpeg.V, lpeg.Carg -local lpegmatch = lpeg.match +local lpegmatch, tsplitat, tsplitter = lpeg.match, lpeg.tsplitat, lpeg.tsplitter local formatters = string.formatters local mplib, metapost, lpdf, context = mplib, metapost, lpdf, context @@ -108,9 +108,9 @@ end --~ -local specificationsplitter = lpeg.tsplitat(" ") -local colorsplitter = lpeg.tsplitter(":",tonumber) -- no need for : -local domainsplitter = lpeg.tsplitter(" ",tonumber) +local specificationsplitter = tsplitat(" ") +local colorsplitter = tsplitter(":",tonumber) -- no need for : +local domainsplitter = tsplitter(" ",tonumber) local centersplitter = domainsplitter local coordinatesplitter = domainsplitter @@ -147,7 +147,7 @@ local function spotcolorconverter(parent, n, d, p) return pdfcolor(colors.model,registercolor(nil,'spot',parent,n,d,p)), outercolor end -local commasplitter = lpeg.tsplitat(",") +local commasplitter = tsplitat(",") local function checkandconvertspot(n_a,f_a,c_a,v_a,n_b,f_b,c_b,v_b) -- must be the same but we don't check @@ -860,7 +860,7 @@ local function tx_reset() end local fmt = formatters["%s %s %s % t"] -local pat = lpeg.tsplitat(":") +local pat = tsplitat(":") local function tx_analyze(object,prescript) -- todo: hash content and reuse them local tx_stage = prescript.tx_stage diff --git a/tex/context/base/mlib-run.lua b/tex/context/base/mlib-run.lua index e2585998e..f30ed0c9f 100644 --- a/tex/context/base/mlib-run.lua +++ b/tex/context/base/mlib-run.lua @@ -33,7 +33,7 @@ local type, tostring, tonumber = type, tostring, tonumber local format, gsub, match, find = string.format, string.gsub, string.match, string.find local concat = table.concat local emptystring = string.is_empty -local lpegmatch, P = lpeg.match, lpeg.P +local P = lpeg.P local trace_graphics = false trackers.register("metapost.graphics", function(v) trace_graphics = v end) local trace_tracingall = false trackers.register("metapost.tracingall", function(v) trace_tracingall = v end) @@ -284,6 +284,8 @@ if mplibone then else + -- let end = relax ; + local preamble = [[ boolean mplib ; mplib := true ; let dump = endinput ; diff --git a/tex/context/base/mult-def.mkiv b/tex/context/base/mult-def.mkiv index 85ce5d2cb..192a380ee 100644 --- a/tex/context/base/mult-def.mkiv +++ b/tex/context/base/mult-def.mkiv @@ -37,6 +37,7 @@ \def\c!fences {fences} \def\c!keeptogether {keeptogether} +\def\c!dataset {dataset} \def\c!sectionblock {sectionblock} \def\c!language {language} \def\c!compressseparator{compressseparator} diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 452f01086..74315adf7 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 c20926051..04c498a7d 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/strc-lst.mkvi b/tex/context/base/strc-lst.mkvi index 7cef924b7..63c3e030a 100644 --- a/tex/context/base/strc-lst.mkvi +++ b/tex/context/base/strc-lst.mkvi @@ -126,7 +126,7 @@ {\endgroup} \def\strc_lists_inject_yes[#settings][#userdata]% - {\setupcurrentlist[\c!type=userdata,\c!location=\v!none,#settings]% grouped + {\setupcurrentlist[\c!type=userdata,\c!location=\v!none,#settings]% grouped (use \let... \edef\p_location{\listparameter\c!location}% \setnextinternalreference \edef\currentlistnumber{\ctxcommand{addtolist{ diff --git a/tex/context/base/tabl-tbl.mkiv b/tex/context/base/tabl-tbl.mkiv index 309e71bd0..cd5efa7f7 100644 --- a/tex/context/base/tabl-tbl.mkiv +++ b/tex/context/base/tabl-tbl.mkiv @@ -232,6 +232,8 @@ \unexpanded\def\tolerantTABLEbreaktrue {\settrue \c_tabl_tabulate_tolerant_break} % used in styles ! \unexpanded\def\handletabulatepbreakfalse{\setfalse\c_tabl_tabulate_handlepbreak } % depricated +\def\noftabulaterows{\number\c_tabl_tabulate_noflines} % handy for testing if a table is empty + \installcorenamespace{tabulatebox} \installcorenamespace{tabulatesetup} \installcorenamespace{tabulatehook} diff --git a/tex/context/base/util-prs.lua b/tex/context/base/util-prs.lua index 9518b7f38..e5b35a727 100644 --- a/tex/context/base/util-prs.lua +++ b/tex/context/base/util-prs.lua @@ -184,8 +184,10 @@ function parsers.settings_to_array(str,strict) else return { str } end - else + elseif find(str,",") then return lpegmatch(pattern,str) + else + return { str } end end diff --git a/tex/context/base/x-set-11.mkiv b/tex/context/base/x-set-11.mkiv index 372e3a8ef..d4b43a9ee 100644 --- a/tex/context/base/x-set-11.mkiv +++ b/tex/context/base/x-set-11.mkiv @@ -476,6 +476,7 @@ \veryraggedright \doglobal\newcounter\currentSETUPargument \xdef\maximumSETUPargument{\xmlcount{#1}{/arguments/*}} + \edef\currentSETUPhash{\xmlatt{#1}{hash}} \bgroup \enablemode[setups-pass-one]% \doif {\xmlatt{#1}{generated}} {yes} { @@ -605,7 +606,11 @@ \egroup \startfirstSETUPcolumn{\showSETUPnumber}% \ignorespaces - \xmlflush{#1} + \xmldoifelse{#1}{/(parameter|inherit)}{ + \xmlflush{#1} + } { + ... + } \let\previousSETUPargument\currentSETUPargument \stopfirstSETUPcolumn \blank[\v!halfline] @@ -631,6 +636,15 @@ \startsecondSETUPcolumn{\c!setup!reserved!{\xmlatt{#1}{name}}}{=} \ignorespaces \xmlflush{#1} + \doifmode{interface:setup:defaults} { + \ifx\currentSETUPhash\empty \else + \edef\currentSETUPvalue{\csname named\currentSETUPhash parameter\endcsname\empty{\xmlatt{#1}{name}}} + \ifx\currentSETUPvalue\empty + \space=\space + \detokenize\expandafter{\currentSETUPvalue} + \fi + \fi + } \stopsecondSETUPcolumn \ignorespaces \stopxmlsetups @@ -747,4 +761,76 @@ \def\showSETUPword #1{\showSETUP{#1}{\leftargument...\rightargument} {\leftargument.. ... ..\rightargument}} \def\showSETUPcontent #1{\showSETUP{#1}{\leftargument...\rightargument} {\leftargument.. ... ..\rightargument}} +% A prelude to a rewrite and some more: + +\definetype[parametercommand][type] +\definetype[parameterkey] [type] +\definetype[parametervalue] [type][space=on] + +\setuptype[parametercommand] [color=darkmagenta] +\setuptype[parametervalue] [color=darkyellow] + +\startxmlsetups xml:setups:parameters:value + \edef\currentsetupparameterkey {\xmlatt{#1}{name}} + \edef\currentsetupparametervalue{\csname named\currentsetupparametercategory parameter\endcsname\currentsetupparameterinstance\currentsetupparameterkey} + \ifx\currentsetupparameterinstance\empty + \expanded { + \NC \parameterkey {\currentsetupparameterkey} + \NC \parametervalue{\detokenize\expandafter{\currentsetupparametervalue}} + \NC \NR + } + \else\ifx\currentsetupparametervalue\empty + \else + \edef\currentsetupparameterdefault{\csname named\currentsetupparametercategory parameter\endcsname\empty\currentsetupparameterkey} + \ifx\currentsetupparametervalue\currentsetupparameterdefault + % skip + \else + \expanded { + \NC \parameterkey {\currentsetupparameterkey} + \NC \parametervalue{\detokenize\expandafter{\currentsetupparametervalue}} + \NC \NR + } + \fi + \fi\fi +\stopxmlsetups + +\startxmlsetups xml:setups:parameters:values + \blank[big] + \expanded { + \parametercommand { + \currentsetupparametercommand + \space:\space + \ifx\currentsetupparameterinstance\empty + defaults + \else + \currentsetupparameterinstance + \fi + } + } + \blank[big,samepage] + \starttabulate[|l|p|] + \xmlall + {#1} + {/interface/command[@name=='\currentsetupparametercommand']/arguments/assignments/parameter/command(xml:setups:parameters:value)} + \ifnum\noftabulaterows = \zerocount + \NC \parameterkey{no specific settings} \NC \NC \NR + \fi + \stoptabulate +\stopxmlsetups + + +\starttexdefinition showrootvalues [#1] + \edef\currentsetupparametercategory{#1} + \edef\currentsetupparametercommand{setup#1} + \let\currentsetupparameterinstance\empty + \xmlsetup{\loadedsetups}{xml:setups:parameters:values} +\stoptexdefinition + +\starttexdefinition showinstancevalues [#1]#2[#3] + \edef\currentsetupparametercategory{#1} + \edef\currentsetupparametercommand{setup#1} + \edef\currentsetupparameterinstance{#3} + \xmlsetup{\loadedsetups}{xml:setups:parameters:values} +\stoptexdefinition + \protect \endinput diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 099e0657d..c0748c698 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/26/13 12:50:38 +-- merge date : 12/29/13 19:28:51 do -- begin closure to overcome local limits and interference -- cgit v1.2.3