From 729d3d0b48bf862c0dcf97b038c07b8563e3dc53 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Tue, 13 Mar 2012 21:26:00 +0100 Subject: beta 2012.03.13 21:26 --- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4073 -> 4075 bytes tex/context/base/context-version.png | Bin 105724 -> 105867 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/status-files.pdf | Bin 24355 -> 24331 bytes tex/context/base/status-lua.pdf | Bin 172398 -> 172398 bytes tex/context/base/strc-con.mkvi | 3 +- tex/context/base/strc-doc.lua | 36 ++++++++++----- tex/context/base/strc-not.mkvi | 3 +- tex/context/base/strc-num.lua | 3 +- tex/context/base/strc-num.mkiv | 23 ++++++++-- tex/context/base/syst-aux.mkiv | 51 ++++++++++++++++----- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 15 files changed, 94 insertions(+), 35 deletions(-) diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index d611cb458..c4d6fe725 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.03.13 00:17} +\newcontextversion{2012.03.13 21:26} %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 8ee0fa4be..c6058851d 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.03.13 00:17} +\newcontextversion{2012.03.13 21:26} %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/context-version.pdf b/tex/context/base/context-version.pdf index f16ee70cf..14ce6560d 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 0d34083f6..8dfdcbfd8 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 bc330439d..57c839be7 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.03.13 00:17} +\edef\contextversion{2012.03.13 21:26} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 902346efe..189a9e1aa 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -23,7 +23,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2012.03.13 00:17} +\edef\contextversion{2012.03.13 21:26} %D For those who want to use this: diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index df537b46c..51a11cf22 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 6439fdd9f..70dc87d79 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-con.mkvi b/tex/context/base/strc-con.mkvi index 84b551711..63b8d393f 100644 --- a/tex/context/base/strc-con.mkvi +++ b/tex/context/base/strc-con.mkvi @@ -154,6 +154,7 @@ \unexpanded\def\strc_constructions_initialize#1% class instance {\edef\currentconstruction{#1}% +\let\currentconstructionlistentry\!!zerocount \expandafter\let\expandafter\currentconstructionmain \csname\??constructionmain \currentconstruction\endcsname \expandafter\let\expandafter\currentconstructionlevel \csname\??constructionlevel\currentconstruction\endcsname \expandafter\let\expandafter\currentconstructionhandler\csname\??constructionclass\currentconstruction\endcsname @@ -231,6 +232,7 @@ \dotagsetconstruction \constructionparameter\c!before \begingroup + \edef\currentconstructionalternative{\constructionparameter\c!alternative}% \doadaptleftskip{\constructionparameter\c!margin}% \setlocalhsize % so we can use \localhsize in width assignments \constructionsheaddistance\constructionalternativeparameter\c!distance\relax @@ -274,7 +276,6 @@ \fi \strc_constructions_close_symbol_reset % - \edef\currentconstructionalternative{\constructionparameter\c!alternative}% \doifnotsetups {\constructionalternativeparameter\c!renderingsetup} {\let\currentconstructionalternative\v!left}% \directsetup{\constructionalternativeparameter\c!renderingsetup}\relax diff --git a/tex/context/base/strc-doc.lua b/tex/context/base/strc-doc.lua index 793f1a2fd..f10b175a4 100644 --- a/tex/context/base/strc-doc.lua +++ b/tex/context/base/strc-doc.lua @@ -25,6 +25,16 @@ local catcodenumbers = catcodes.numbers local ctxcatcodes = tex.ctxcatcodes local variables = interfaces.variables +local v_last = variables.last +local v_first = variables.first +local v_previous = variables.previous +local v_next = variables.next +local v_auto = variables.auto +local v_strict = variables.strict +local v_all = variables.all +local v_positive = variables.positive +local v_by = variables.by + local trace_sectioning = false trackers.register("structures.sectioning", function(v) trace_sectioning = v end) local trace_detail = false trackers.register("structures.detail", function(v) trace_detail = v end) @@ -185,8 +195,10 @@ function sections.getlevel(name) return levelmap[name] or 0 end -function sections.way(way,by) - context((gsub(way,"^"..by,""))) +local byway = "^" .. v_by + +function sections.way(way) + context((gsub(way,byway,""))) end function sections.setblock(name) @@ -450,7 +462,7 @@ function sections.structuredata(depth,key,default,honorcatcodetable) -- todo: sp end end if d and type(d) ~= "table" then - if honorcatcodetable == true or honorcatcodetable == variables.auto then + if honorcatcodetable == true or honorcatcodetable == v_auto then local metadata = data.metadata local catcodes = metadata and metadata.catcodes if catcodes then @@ -615,11 +627,11 @@ function sections.typesetnumber(entry,kind,...) -- kind='section','number','pref if set == "" then set = "default" end if segments == "" then segments = nil end -- - if criterium == variables.strict then + if criterium == v_strict then criterium = 0 - elseif criterium == variables.positive then + elseif criterium == v_positive then criterium = -1 - elseif criterium == variables.all then + elseif criterium == v_all then criterium = -1000000 else criterium = 0 @@ -751,8 +763,8 @@ function sections.findnumber(depth,what) -- needs checking (looks wrong and slow local collected = sections.collected local sectiondata = collected[index] if sectiondata and sectiondata.hidenumber ~= true then -- can be nil - local quit = what == variables.previous or what == variables.next - if what == variables.first or what == variables.previous then + local quit = what == v_previous or what == v_next + if what == v_first or what == v_previous then for i=index,1,-1 do local s = collected[i] local n = s.numbers @@ -765,7 +777,7 @@ function sections.findnumber(depth,what) -- needs checking (looks wrong and slow break end end - elseif what == variables.last or what == variables.next then + elseif what == v_last or what == v_next then for i=index,#collected do local s = collected[i] local n = s.numbers @@ -791,8 +803,8 @@ function sections.finddata(depth,what) local index = data.references.listindex if index then local collected = structures.lists.collected - local quit = what == variables.previous or what == variables.next - if what == variables.first or what == variables.previous then + local quit = what == v_previous or what == v_next + if what == v_first or what == v_previous then for i=index-1,1,-1 do local s = collected[i] if not s then @@ -809,7 +821,7 @@ function sections.finddata(depth,what) end end end - elseif what == variables.last or what == variables.next then + elseif what == v_last or what == v_next then for i=index+1,#collected do local s = collected[i] if not s then diff --git a/tex/context/base/strc-not.mkvi b/tex/context/base/strc-not.mkvi index a6face067..8002f7002 100644 --- a/tex/context/base/strc-not.mkvi +++ b/tex/context/base/strc-not.mkvi @@ -617,9 +617,10 @@ \noteparameter\c!textcommand{\ctxcommand{noteprefixednumber("\currentnote",\currentnotenumber)}}% % the next one can cycle so we need to make sure it has no advance width \doif{\noteparameter\c!indicator}\v!yes\strc_notes_inject_pointer + \dostoptagged \egroup \endgroup - \dostoptagged + \dostoptagged % check \globallet\lastnotesymbol\relax} \unexpanded\def\strc_notes_inject_dummy % temp hack diff --git a/tex/context/base/strc-num.lua b/tex/context/base/strc-num.lua index 09b51d29d..3b18ae1d5 100644 --- a/tex/context/base/strc-num.lua +++ b/tex/context/base/strc-num.lua @@ -66,7 +66,7 @@ end job.register('structures.counters.collected', tobesaved, initializer, finalizer) -local function constructor(t,s,name,i) +local function constructor(t,s,name,i) -- variables ? if s == "last" then local cc = collected[name] t.stop = (cc and cc[i] and cc[i][t.range]) or 0 -- stop is available for diagnostics purposes only @@ -385,6 +385,7 @@ function counters.add(name,n,delta) d.number = (d.number or d.start or 0) + delta*(d.step or 0) -- d.own = nil local level = cd.level +-- print(name,n,delta,level) if not level or level == -1 then -- -1 is signal that we reset manually elseif level == -2 then diff --git a/tex/context/base/strc-num.mkiv b/tex/context/base/strc-num.mkiv index e19e0b10b..2351389cd 100644 --- a/tex/context/base/strc-num.mkiv +++ b/tex/context/base/strc-num.mkiv @@ -44,7 +44,7 @@ \fi} \def\autostructureprefixsegments#1% todo: \c!prefixsegments=\v!auto - {2:\thenamedheadlevel{\ctxlua{structures.sections.way("#1\c!way","\v!by")}}} + {2:\thenamedheadlevel{\ctxlua{structures.sections.way("#1\c!way")}}} \def\structurecounterparameter#1#2% this will become \named.... {\csname @@ -108,10 +108,27 @@ % % % % \def\structurecounterway#1% slow, we need to store it at the tex end - {\ctxlua{structures.sections.way("\structurecounterparameter{#1}\c!way","\v!by")}} + {\ctxlua{structures.sections.way("\structurecounterparameter{#1}\c!way")}} + +% \def\thenamedstructurecounterlevel#1% +% {\thenamedheadlevel{\structurecounterway{#1}}} \def\thenamedstructurecounterlevel#1% - {\thenamedheadlevel{\structurecounterway{#1}}} + {\xthenamedheadlevel{\structurecounterway{#1}}} + +\def\xthenamedheadlevel#1% + {\xsectionlevel{#1}{\sectionheadsection{\sectionheadcoupling{#1}}}} + +\def\xsectionlevel#1#2% direct indirect + {\csname\??headlevel + \ifcsname\??headlevel#1\endcsname + #1% + \else\ifcsname\??headlevel#2\endcsname + #2% + \else + \v!none + \fi\fi + \endcsname} \def\docheckstructurecountersetup#1% does it have to happen here? {% this can be done at the lua end / a bit messy here ... todo ... diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv index 5f00960e0..1fbf98296 100644 --- a/tex/context/base/syst-aux.mkiv +++ b/tex/context/base/syst-aux.mkiv @@ -5130,21 +5130,48 @@ %D These examples show us that an optional can be used. The %D value provided is added to \type{\localhsize}. -\newdimen\localhsize +% todo: a fast non argument variant -\def\complexsetlocalhsize[#1]% don't change ! - {\localhsize\hsize - \ifnum\hangafter<\zerocount - \advance\localhsize\ifdim\hangindent>\zeropoint-\fi\hangindent - \fi - \advance\localhsize -\leftskip - \advance\localhsize -\rightskip - \advance\localhsize #1\relax} +\newdimen\localhsize -\def\simplesetlocalhsize - {\complexsetlocalhsize[\zeropoint]} +% \def\complexsetlocalhsize[#1]% don't change ! +% {\localhsize\hsize +% \ifnum\hangafter<\zerocount +% \advance\localhsize\ifdim\hangindent>\zeropoint-\fi\hangindent +% \fi +% \advance\localhsize -\leftskip +% \advance\localhsize -\rightskip +% \advance\localhsize #1\relax} +% +% \def\simplesetlocalhsize +% {\complexsetlocalhsize[\zeropoint]} +% +% \definecomplexorsimple\setlocalhsize + +\unexpanded\def\setlocalhsize % don't change ! + {\doifnextoptionalelse + \syst_helpers_set_local_hsize_yes + \syst_helpers_set_local_hsize_nop} + +% \def\syst_helpers_set_local_hsize_nop +% {\localhsize\hsize +% \ifnum\hangafter<\zerocount +% \advance\localhsize\ifdim\hangindent>\zeropoint-\fi\hangindent +% \fi +% \advance\localhsize -\leftskip +% \advance\localhsize -\rightskip} + +\def\syst_helpers_set_local_hsize_nop + {\localhsize\dimexpr + \hsize -\leftskip -\rightskip + \ifnum\hangafter<\zerocount + \ifdim\hangindent>\zeropoint-\else+\fi\hangindent + \fi + \relax} -\definecomplexorsimple\setlocalhsize +\def\syst_helpers_set_local_hsize_yes[#1]% + {\syst_helpers_set_local_hsize_nop + \advance\localhsize#1\relax} %D \macros %D {doifvalue,doifnotvalue,doifelsevalue, diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 5b0c2ebd9..34443c8bc 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 : 03/13/12 00:17:36 +-- merge date : 03/13/12 21:26:51 do -- begin closure to overcome local limits and interference -- cgit v1.2.3