diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-01-12 08:12:50 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-01-12 08:12:50 +0100 |
commit | d0edf3e90e8922d9c672f24ecdc5d44fe2716f31 (patch) | |
tree | 5b618b87aa5078a8c744c94bbf058d69cd7111b2 /tex/context/modules/mkiv | |
parent | 409a95f63883bd3b91699d39645e39a8a761457c (diff) | |
download | context-d0edf3e90e8922d9c672f24ecdc5d44fe2716f31.tar.gz |
2018-01-08 23:11:00
Diffstat (limited to 'tex/context/modules/mkiv')
-rw-r--r-- | tex/context/modules/mkiv/m-timing.mkiv | 2 | ||||
-rw-r--r-- | tex/context/modules/mkiv/m-typesetting.mkiv | 92 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-evohome.mkiv | 24 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-fonts-ligatures.mkiv | 4 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-fonts-variable.mkiv | 12 | ||||
-rw-r--r-- | tex/context/modules/mkiv/s-youless.mkiv | 228 | ||||
-rw-r--r-- | tex/context/modules/mkiv/x-asciimath.lua | 2 | ||||
-rw-r--r-- | tex/context/modules/mkiv/x-calcmath.lua | 1 | ||||
-rw-r--r-- | tex/context/modules/mkiv/x-cals.lua | 2 | ||||
-rw-r--r-- | tex/context/modules/mkiv/x-setups-basics.mkiv | 143 | ||||
-rw-r--r-- | tex/context/modules/mkiv/x-setups-overview.mkiv | 67 |
11 files changed, 349 insertions, 228 deletions
diff --git a/tex/context/modules/mkiv/m-timing.mkiv b/tex/context/modules/mkiv/m-timing.mkiv index 5502768f6..404d5bae0 100644 --- a/tex/context/modules/mkiv/m-timing.mkiv +++ b/tex/context/modules/mkiv/m-timing.mkiv @@ -31,7 +31,7 @@ \definecolor[usage:time] [darkblue] \definecolor[usage:frame][darkgray] -\ctxloadluafile{trac-tim}{} +\ctxloadluafile{trac-tim} \startluacode local progress = moduledata.progress diff --git a/tex/context/modules/mkiv/m-typesetting.mkiv b/tex/context/modules/mkiv/m-typesetting.mkiv index 34713fa38..56cf85bbe 100644 --- a/tex/context/modules/mkiv/m-typesetting.mkiv +++ b/tex/context/modules/mkiv/m-typesetting.mkiv @@ -21,19 +21,30 @@ \definecombination [fourpages] + [twopages] [distance=.5\bodyfontsize, width=\textwidth] \definecombination [sixpages] + [twopages] [distance=.5\bodyfontsize, width=\textwidth] +\definemeasure[firstpages][\dimexpr\dimexpr\textwidth-1 \bodyfontsize\relax/2\relax] \definemeasure[twopages] [\dimexpr\dimexpr\textwidth-3 \bodyfontsize\relax/4\relax] \definemeasure[fourpages] [\dimexpr\dimexpr\textwidth-3 \bodyfontsize\relax/4\relax] \definemeasure[sixpages] [\dimexpr\dimexpr\textwidth-2.5\bodyfontsize\relax/6\relax] \definemeasure[eightpages][\dimexpr\dimexpr\textwidth-3 \bodyfontsize\relax/4\relax] +\starttexdefinition unexpanded WhenValidPage#1 + \ifnum#1>\noffigurepages\relax + \expandafter\gobbleoneargument + \else + \expandafter\firstofoneargument + \fi +\stoptexdefinition + \starttexdefinition unexpanded OnePage #1 \startlinecorrection[blank] \startcombination[twopages][1*1] @@ -42,6 +53,15 @@ \stoplinecorrection \stoptexdefinition +\starttexdefinition unexpanded FirstPages #1 + \startlinecorrection[blank] + \startcombination[twopages][2*1] + {\typesetfile[#1.tex][page=1,width=\measure{firstpages}]} {1} + {\typesetfile[#1.tex][page=2,width=\measure{firstpages}]} {2} + \stopcombination + \stoplinecorrection +\stoptexdefinition + \starttexdefinition unexpanded OneSpread #1 \startlinecorrection[blank] \startcombination[twopages][1*1] @@ -71,10 +91,10 @@ \starttexdefinition unexpanded FourPages #1 \startlinecorrection[blank] \startcombination[fourpages][4*1] - {\typesetfile[#1.tex][page=1,width=\measure{fourpages}]} {1} - {\typesetfile[#1.tex][page=2,width=\measure{fourpages}]} {2} - {\typesetfile[#1.tex][page=3,width=\measure{fourpages}]} {3} - {\typesetfile[#1.tex][page=4,width=\measure{fourpages}]} {4} + {\typesetfile[#1.tex][page=1,width=\measure{fourpages}]} {1} + {\WhenValidPage{2}{\typesetfile[#1.tex][page=2,width=\measure{fourpages}]}} {\WhenValidPage{2}{2}} + {\WhenValidPage{3}{\typesetfile[#1.tex][page=3,width=\measure{fourpages}]}} {\WhenValidPage{3}{3}} + {\WhenValidPage{4}{\typesetfile[#1.tex][page=4,width=\measure{fourpages}]}} {\WhenValidPage{4}{4}} \stopcombination \stoplinecorrection \stoptexdefinition @@ -82,10 +102,10 @@ \starttexdefinition unexpanded FourSpread #1 \startlinecorrection[blank] \startcombination[fourpages][4*1] - {\typesetfile[#1.tex][page=2,width=\measure{fourpages}]} {2} - {\typesetfile[#1.tex][page=3,width=\measure{fourpages}]} {3} - {\typesetfile[#1.tex][page=4,width=\measure{fourpages}]} {4} - {\typesetfile[#1.tex][page=5,width=\measure{fourpages}]} {5} + {\typesetfile[#1.tex][page=2,width=\measure{fourpages}]} {2} + {\WhenValidPage{3}{\typesetfile[#1.tex][page=3,width=\measure{fourpages}]}} {\WhenValidPage{3}{3}} + {\WhenValidPage{4}{\typesetfile[#1.tex][page=4,width=\measure{fourpages}]}} {\WhenValidPage{4}{4}} + {\WhenValidPage{5}{\typesetfile[#1.tex][page=5,width=\measure{fourpages}]}} {\WhenValidPage{5}{5}} \stopcombination \stoplinecorrection \stoptexdefinition @@ -93,12 +113,12 @@ \starttexdefinition unexpanded SixPages #1 \startlinecorrection[blank] \startcombination[sixpages][6*1] - {\typesetfile[#1.tex][page=1,width=\measure{sixpages}]} {1} - {\typesetfile[#1.tex][page=2,width=\measure{sixpages}]} {2} - {\typesetfile[#1.tex][page=3,width=\measure{sixpages}]} {3} - {\typesetfile[#1.tex][page=4,width=\measure{sixpages}]} {4} - {\typesetfile[#1.tex][page=5,width=\measure{sixpages}]} {5} - {\typesetfile[#1.tex][page=6,width=\measure{sixpages}]} {6} + {\typesetfile[#1.tex][page=1,width=\measure{sixpages}]} {1} + {\WhenValidPage{2}{\typesetfile[#1.tex][page=2,width=\measure{sixpages}]}} {\WhenValidPage{2}{2}} + {\WhenValidPage{3}{\typesetfile[#1.tex][page=3,width=\measure{sixpages}]}} {\WhenValidPage{3}{3}} + {\WhenValidPage{4}{\typesetfile[#1.tex][page=4,width=\measure{sixpages}]}} {\WhenValidPage{4}{4}} + {\WhenValidPage{5}{\typesetfile[#1.tex][page=5,width=\measure{sixpages}]}} {\WhenValidPage{5}{5}} + {\WhenValidPage{6}{\typesetfile[#1.tex][page=6,width=\measure{sixpages}]}} {\WhenValidPage{6}{6}} \stopcombination \stoplinecorrection \stoptexdefinition @@ -106,12 +126,12 @@ \starttexdefinition unexpanded SixSpread #1 \startlinecorrection[blank] \startcombination[sixpages][6*1] - {\typesetfile[#1.tex][page=2,width=\measure{sixpages}]} {2} - {\typesetfile[#1.tex][page=3,width=\measure{sixpages}]} {3} - {\typesetfile[#1.tex][page=4,width=\measure{sixpages}]} {4} - {\typesetfile[#1.tex][page=5,width=\measure{sixpages}]} {5} - {\typesetfile[#1.tex][page=6,width=\measure{sixpages}]} {6} - {\typesetfile[#1.tex][page=7,width=\measure{sixpages}]} {7} + {\typesetfile[#1.tex][page=2,width=\measure{sixpages}]} {2} + {\WhenValidPage{3}{\typesetfile[#1.tex][page=3,width=\measure{sixpages}]}} {\WhenValidPage{3}{3}} + {\WhenValidPage{4}{\typesetfile[#1.tex][page=4,width=\measure{sixpages}]}} {\WhenValidPage{4}{4}} + {\WhenValidPage{5}{\typesetfile[#1.tex][page=5,width=\measure{sixpages}]}} {\WhenValidPage{5}{5}} + {\WhenValidPage{6}{\typesetfile[#1.tex][page=6,width=\measure{sixpages}]}} {\WhenValidPage{6}{6}} + {\WhenValidPage{7}{\typesetfile[#1.tex][page=7,width=\measure{sixpages}]}} {\WhenValidPage{7}{7}} \stopcombination \stoplinecorrection \stoptexdefinition @@ -119,14 +139,14 @@ \starttexdefinition unexpanded EightPages #1 \startlinecorrection[blank] \startcombination[fourpages][4*2] - {\typesetfile[#1.tex][page=1,width=\measure{eightpages}]} {#1 / 1} - {\typesetfile[#1.tex][page=2,width=\measure{eightpages}]} {#1 / 2} - {\typesetfile[#1.tex][page=3,width=\measure{eightpages}]} {#1 / 3} - {\typesetfile[#1.tex][page=4,width=\measure{eightpages}]} {#1 / 4} - {\typesetfile[#1.tex][page=5,width=\measure{eightpages}]} {#1 / 5} - {\typesetfile[#1.tex][page=6,width=\measure{eightpages}]} {#1 / 6} - {\typesetfile[#1.tex][page=7,width=\measure{eightpages}]} {#1 / 7} - {\typesetfile[#1.tex][page=8,width=\measure{eightpages}]} {#1 / 8} + {\typesetfile[#1.tex][page=1,width=\measure{eightpages}]} {#1 / 1} + {\WhenValidPage{2}{\typesetfile[#1.tex][page=2,width=\measure{eightpages}]}} {\WhenValidPage{2}{#1 / 2}} + {\WhenValidPage{3}{\typesetfile[#1.tex][page=3,width=\measure{eightpages}]}} {\WhenValidPage{3}{#1 / 3}} + {\WhenValidPage{4}{\typesetfile[#1.tex][page=4,width=\measure{eightpages}]}} {\WhenValidPage{4}{#1 / 4}} + {\WhenValidPage{5}{\typesetfile[#1.tex][page=5,width=\measure{eightpages}]}} {\WhenValidPage{5}{#1 / 5}} + {\WhenValidPage{6}{\typesetfile[#1.tex][page=6,width=\measure{eightpages}]}} {\WhenValidPage{6}{#1 / 6}} + {\WhenValidPage{7}{\typesetfile[#1.tex][page=7,width=\measure{eightpages}]}} {\WhenValidPage{7}{#1 / 7}} + {\WhenValidPage{8}{\typesetfile[#1.tex][page=8,width=\measure{eightpages}]}} {\WhenValidPage{8}{#1 / 8}} \stopcombination \stoplinecorrection \stoptexdefinition @@ -134,14 +154,14 @@ \starttexdefinition unexpanded EightSpread #1 \startlinecorrection[blank] \startcombination[fourpages][4*2] - {\typesetfile[#1.tex][page=2,width=\measure{eightpages}]} {#1 / 2} - {\typesetfile[#1.tex][page=3,width=\measure{eightpages}]} {#1 / 3} - {\typesetfile[#1.tex][page=4,width=\measure{eightpages}]} {#1 / 4} - {\typesetfile[#1.tex][page=5,width=\measure{eightpages}]} {#1 / 5} - {\typesetfile[#1.tex][page=6,width=\measure{eightpages}]} {#1 / 6} - {\typesetfile[#1.tex][page=7,width=\measure{eightpages}]} {#1 / 7} - {\typesetfile[#1.tex][page=8,width=\measure{eightpages}]} {#1 / 8} - {\typesetfile[#1.tex][page=9,width=\measure{eightpages}]} {#1 / 9} + {\typesetfile[#1.tex][page=2,width=\measure{eightpages}]} {#1 / 2} + {\WhenValidPage{3}{\typesetfile[#1.tex][page=3,width=\measure{eightpages}]}} {\WhenValidPage{3}{#1 / 3}} + {\WhenValidPage{4}{\typesetfile[#1.tex][page=4,width=\measure{eightpages}]}} {\WhenValidPage{4}{#1 / 4}} + {\WhenValidPage{5}{\typesetfile[#1.tex][page=5,width=\measure{eightpages}]}} {\WhenValidPage{5}{#1 / 5}} + {\WhenValidPage{6}{\typesetfile[#1.tex][page=6,width=\measure{eightpages}]}} {\WhenValidPage{6}{#1 / 6}} + {\WhenValidPage{7}{\typesetfile[#1.tex][page=7,width=\measure{eightpages}]}} {\WhenValidPage{7}{#1 / 7}} + {\WhenValidPage{8}{\typesetfile[#1.tex][page=8,width=\measure{eightpages}]}} {\WhenValidPage{8}{#1 / 8}} + {\WhenValidPage{9}{\typesetfile[#1.tex][page=9,width=\measure{eightpages}]}} {\WhenValidPage{9}{#1 / 9}} \stopcombination \stoplinecorrection \stoptexdefinition diff --git a/tex/context/modules/mkiv/s-evohome.mkiv b/tex/context/modules/mkiv/s-evohome.mkiv index e5c2ae6bb..1b1dc2c81 100644 --- a/tex/context/modules/mkiv/s-evohome.mkiv +++ b/tex/context/modules/mkiv/s-evohome.mkiv @@ -11,25 +11,20 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -% in cronjob on one of the servers: -% -% mtxrun --script youless --collect --host=192.168.2.50 --watt youless-watt.lua -% mtxrun --script youless --collect --host=192.168.2.50 --kwk youless-kwh.lua - \setupbodyfont[dejavu] \starttext \startluacode -require("util-evo") +local evohome = require("util-evo") moduledata.evohome = { } function moduledata.evohome.status(specification) - local presets = utilities.evohome.loadpresets(specification.presets) - local zones = utilities.evohome.loadtemperatures(presets) + local presets = evohome.helpers.loadpresets(specification.presets) + local zones = evohome.helpers.loadtemperatures(presets) -- todo : time @@ -65,8 +60,9 @@ function moduledata.evohome.status(specification) for i=1,#zones do local zone = zones[i] - local data = utilities.evohome.getzonestate(presets,zone.name) - local schedule = data.schedule or { } +-- evohome.helpers.updatezone(presets,zone.name) + local data = evohome.helpers.getzonestate(presets,zone.name) + local schedule = data and data.schedule or { } context.startsubject { title = zone.name } context.starttabulate { "|l|c|c|" } context.BC() context("day") @@ -101,8 +97,8 @@ end function moduledata.evohome.history(specification) - local presets = utilities.evohome.loadpresets(specification.presets) - local zones = utilities.evohome.loadtemperatures(presets) + local presets = evohome.helpers.loadpresets(specification.presets) + local zones = evohome.helpers.loadtemperatures(presets) if not zones then context("no zones") @@ -110,7 +106,7 @@ function moduledata.evohome.history(specification) return end - local data = utilities.evohome.loadhistory(presets) + local data = evohome.helpers.loadhistory(presets) if not zones then context("no history") @@ -279,7 +275,7 @@ end local specification = { year = 2017, -- month = 11, - presets = "c:/data/develop/domotica/code/evohome-presets.lua", + presets = "c:/data/develop/domotica/evohome/evohome-presets.lua", } moduledata.evohome.status (specification) diff --git a/tex/context/modules/mkiv/s-fonts-ligatures.mkiv b/tex/context/modules/mkiv/s-fonts-ligatures.mkiv index fc49ec5c5..6a5da48ea 100644 --- a/tex/context/modules/mkiv/s-fonts-ligatures.mkiv +++ b/tex/context/modules/mkiv/s-fonts-ligatures.mkiv @@ -156,12 +156,12 @@ \stoptexdefinition \starttexdefinition showotfligaturesexample #1#2 - \ctxlua{document.currentdiscexpansion = fonts.getdiscexpansion()}% + % \ctxlua{document.currentdiscexpansion = fonts.getdiscexpansion()}% \showotfligaturescaptions {#1} \showotfligatureslines {#2} \showotfligaturesparagraphs{#2} \showotfligaturesextremes {#2} - \ctxlua{fonts.setdiscexpansion(document.currentdiscexpansion)}% + % \ctxlua{fonts.setdiscexpansion(document.currentdiscexpansion)}% \stoptexdefinition % todo: n -> and split in lua diff --git a/tex/context/modules/mkiv/s-fonts-variable.mkiv b/tex/context/modules/mkiv/s-fonts-variable.mkiv index 1a826314d..5c9d53d33 100644 --- a/tex/context/modules/mkiv/s-fonts-variable.mkiv +++ b/tex/context/modules/mkiv/s-fonts-variable.mkiv @@ -73,10 +73,6 @@ \stopbuffer \showfontvariations - [font=file:VotoSerifGX.ttf, - ]% max=6] - - \showfontvariations [font=file:adobevfprototype.otf] \showfontvariations @@ -85,9 +81,9 @@ \showfontvariations [font=file:DecoVar-VF.ttf] - \showfontvariations - [font=file:VotoSerifGX.ttf, - max=15] + % \showfontvariations + % [font=file:VotoSerifGX.ttf, + % max=15] \showfontvariations [font=file:Selawik-Variable.ttf] @@ -109,6 +105,6 @@ % [font=file:AmstelvarAlpha-VF.ttf] \showfontvariations - [font=file:bahnshrift.ttf] + [font=file:bahnschrift.ttf] \stoptext diff --git a/tex/context/modules/mkiv/s-youless.mkiv b/tex/context/modules/mkiv/s-youless.mkiv index e15973b9c..d8b6e2ff6 100644 --- a/tex/context/modules/mkiv/s-youless.mkiv +++ b/tex/context/modules/mkiv/s-youless.mkiv @@ -23,125 +23,165 @@ % in cronjob on one of the servers: % -% mtxrun --script youless --collect --host=192.168.2.50 --watt youless-watt.lua -% mtxrun --script youless --collect --host=192.168.2.50 --kwk youless-kwh.lua +% mtxrun --script youless --collect --host=192.168.2.50 --nobackup --electricity youless-electricity.lua \startluacode require("util-you") - moduledata.youless = { } + local round = math.round - function moduledata.youless.kwh(specification) - -- todo - end + moduledata.youless = { } - function moduledata.youless.watt(specification) + local function process(specification) - local year = tonumber(specification.year) or os.today().year - local data = table.load(specification.filename or "youless-watt.lua") + local data, message = utilities.youless.analyze(specification.filename or "youless-electricity.lua") - if not data or data.variant ~= "watt" then - context("invalid variant") + if not data then + context(message) return end - utilities.youless.analyze(data) - - -- for the moment no specific font scaling - - local years = data.years - - if not years then - context("no years") - return + local year = tonumber(specification.year) or os.today().year + local years = data.years + local variant = data.variant + local unit = specification.unit + local maxunit = specification.maxunit + + local max = specification[maxunit] + + if not max then + if unit == "watt" then + max = 10000 + elseif unit == "liters" then + max = 1000 + else + max = 5000 -- can't happen + end end - for y=year,year do - - local year = years[y] - local scale = 20 - local mark = 3 - local maxwatt = specification.maxwatt or year.maxwatt - - for m=1,12 do - local month = year.months[m] - if month then - context.startMPpage { offset = "10pt" } - context("linecap := butt; pickup pencircle scaled .5") + local max = max + local delta = round(max/10) + local scale = round(delta/20) + local mark = 3 - for i=0,(math.div(maxwatt,1000)+1)*1000,100 do - context("draw (%s,%s) -- (%s,%s) withcolor .6white ;",0,i/scale,31 * 24,i/scale) - end + for y=year,year do + local year = years[y] + if year then + local grand = 0 + for m=1,12 do + local month = year.months[m] + if month then + context.startMPpage { offset = "10pt" } + context("linecap := butt; pickup pencircle scaled .5") + + for i=0,(math.div(max,delta)+1)*delta,delta/10 do + context("draw (%s,%s) -- (%s,%s) withcolor .6white ;",0,i/scale,31 * 24,i/scale) + end - context("draw (0,%s) -- (31 * 24,%s) dashed dashpattern(on 6 off 6) withcolor darkgreen withpen pencircle scaled 1 ;",year.watt /scale,year.watt /scale) - context("draw (0,%s) -- (31 * 24,%s) dashed dashpattern(off 6 on 6) withcolor darkred withpen pencircle scaled 1 ;",month.watt/scale,month.watt/scale) - - local days = month.days - if days then - local nd = os.nofdays(y,m) - for d=1,nd do - local day = days[d] - local xoffset = (d-1) * 24 - local wd = os.weekday(d,m,y) - local weekend = wd == 1 or wd == 7 - if not weekend then - -- okay - elseif mark == 1 then - context("draw (%s,%s) -- (%s,%s) ; ",xoffset, -17.5,xoffset, -32.5) - context("draw (%s,%s) -- (%s,%s) ; ",xoffset+24,-17.5,xoffset+24,-32.5) - elseif mark == 2 then - context("draw (%s,%s) -- (%s,%s) ; ",xoffset, -17.5,xoffset+24,-17.5) - context("draw (%s,%s) -- (%s,%s) ; ",xoffset, -32.5,xoffset+24,-32.5) - elseif mark == 3 then - context("draw unitsquare xysized (%s,%s) shifted (%s,%s) ; ",24,15,xoffset,-32.5) - end - context([[draw textext("%s") shifted (%s,%s) ; ]],d,xoffset + 12,-25) - if day then - for h=0,23 do - local hours = day.hours - if hours then - local hour = hours[h] - if hour then - local dx = xoffset + h - local dy = hour.watt/scale - local dm = hour.maxwatt/scale - context("draw (%s,%s) -- (%s,%s) withcolor %s ; ",dx, 0,dx,dy,weekend and "darkmagenta" or "darkblue") - context("draw (%s,%s) -- (%s,%s) withcolor %s ; ",dx,dy,dx,dm,"darkgray") + context("draw (0,%s) -- (31 * 24,%s) dashed dashpattern(on 6 off 6) withcolor darkgreen withpen pencircle scaled 1 ;",year [unit]/scale,year [unit]/scale) + context("draw (0,%s) -- (31 * 24,%s) dashed dashpattern(off 6 on 6) withcolor darkred withpen pencircle scaled 1 ;",month[unit]/scale,month[unit]/scale) + + local days = month.days + local total = 0 + if days then + local nd = os.nofdays(y,m) + for d=1,nd do + local day = days[d] + local xoffset = (d-1) * 24 + local wd = os.weekday(d,m,y) + local weekend = wd == 1 or wd == 7 + if not weekend then + -- okay + elseif mark == 1 then + context("draw (%s,%s) -- (%s,%s) ; ",xoffset, -17.5,xoffset, -32.5) + context("draw (%s,%s) -- (%s,%s) ; ",xoffset+24,-17.5,xoffset+24,-32.5) + elseif mark == 2 then + context("draw (%s,%s) -- (%s,%s) ;",xoffset, -17.5,xoffset+24,-17.5) + context("draw (%s,%s) -- (%s,%s) ;",xoffset, -32.5,xoffset+24,-32.5) + elseif mark == 3 then + context("draw unitsquare xysized (%s,%s) shifted (%s,%s) ;",24,15,xoffset,-32.5) + end + context([[draw textext("\strut%s") shifted (%s,%s) ;]],d,xoffset + 12,-25) + if day then + for h=0,23 do + local hours = day.hours + if hours then + local hour = hours[h] + if hour then + local dx = xoffset + h + local dy = hour[unit]/scale + local dm = hour[maxunit]/scale + context("draw (%s,%s) -- (%s,%s) withcolor %s ;",dx, 0,dx,dy,weekend and "darkmagenta" or "darkblue") + context("draw (%s,%s) -- (%s,%s) withcolor %s ;",dx,dy,dx,dm,"darkgray") + end end end + local use = day.total + if use then + context([[draw textext("\strut\small\small\small%0.1f") shifted (%s,%s) ;]],use/1000,xoffset + 12,-7.5) + total = total + use + end end end + for d=0,30 do + local xoffset = d * 24 + context("draw (%s,%s) -- (%s,%s) withcolor darkgray ;",xoffset+ 0,0,xoffset+ 0,-10) + context("draw (%s,%s) -- (%s,%s) withcolor darkgray ;",xoffset+ 6,0,xoffset+ 6,-2.5) + context("draw (%s,%s) -- (%s,%s) withcolor darkgray ;",xoffset+12,0,xoffset+12,-5) + context("draw (%s,%s) -- (%s,%s) withcolor darkgray ;",xoffset+18,0,xoffset+18,-2.5) + end + local xoffset = 31 * 24 + context("draw (%s,%s) -- (%s,%s) withcolor darkgray ;",xoffset,0,xoffset,-10) end - for d=0,30 do - local xoffset = d * 24 - context("draw (%s,%s) -- (%s,%s) withcolor darkgray ; ",xoffset+ 0,0,xoffset+ 0,-10) - context("draw (%s,%s) -- (%s,%s) withcolor darkgray ; ",xoffset+ 6,0,xoffset+ 6,-2.5) - context("draw (%s,%s) -- (%s,%s) withcolor darkgray ; ",xoffset+12,0,xoffset+12,-5) - context("draw (%s,%s) -- (%s,%s) withcolor darkgray ; ",xoffset+18,0,xoffset+18,-2.5) - end - local xoffset = 31 * 24 - context("draw (%s,%s) -- (%s,%s) withcolor darkgray ; ",xoffset,0,xoffset,-10) - end - local max = (math.div(maxwatt,1000)+1) + grand = grand + total - for i=0,max*1000,1000 do - context([[draw textext.lft("%s") shifted (%s,%s) ; ]],i,-10,i/scale) - context("draw (%s,%s) -- (%s,%s) withcolor .2white ;",0,i/scale,31 * 24,i/scale) - end + local max = (math.div(max,delta)) + + for i=0,max*delta,delta do + if i > 0 then + context([[draw textext.lft("\hbox to 3.5em{\hss\strut%r}") shifted (%s,%s) ; ]],i,-10,i/scale) + end + context("draw (%s,%s) -- (%s,%s) withcolor .2white ;",0,i/scale,31 * 24,i/scale) + end - context([[draw textext("\strut\month{%s}\enspace%s") shifted (%s,%s) ; ]],m, y, 31 * 24 / 2, -50) - context([[draw textext.lft("watt") shifted (%s,%s) ; ]],-10,-25) + context([[draw textext ("\strut\Word{%s}\enspace\emdash\enspace\month{%s}\enspace%s") shifted (%s,%s) ; ]],variant, m, y, 31 * 24 / 2, -50) + context([[draw textext.lft("\hbox to 3.5em{\hss\strut%s}") shifted (%s,%s) ; ]],unit,-10,-25) + context([[draw textext.lft("\hbox to 3.5em{\hss\strut\small\small\small%0.1f %s}") shifted (%s,%s) ;]],total/1000,unit == "watt" and "kWh" or [[m\high{3}]],-10, -7.5) + context([[draw textext.lft("\hbox to 3.5em{\hss\strut\small\small\small\Sigma\nbsp%0.1f %s}") shifted (%s,%s) ;]],grand/1000,unit == "watt" and "kWh" or [[m\high{3}]],-10,-50.0) - context.stopMPpage() - else - -- maybe placeholder + context.stopMPpage() + else + -- maybe placeholder + end end end - end + end + + function moduledata.youless.kwh(specification) + -- todo + end + + function moduledata.youless.electricity(specification) + specification.unit = "watt" + specification.maxunit = "maxwatt" + process(specification) + end + + moduledata.youless.watt = moduledata.youless.electricity + + function moduledata.youless.gas(specification) + specification.unit = "liters" + specification.maxunit = "maxliters" + process(specification) + end + function moduledata.youless.pulse(specification) + specification.unit = "watt" + specification.maxunit = "maxwatt" + process(specification) end \stopluacode @@ -160,11 +200,11 @@ \startluacode - -- os.execute([[mtxrun --script youless --collect --watt "c:/data/system/youless/data/youless-watt.lua"]]) - -- os.execute([[mtxrun --script youless --collect --watt --nobackup "c:/data/system/youless/data/youless-watt.lua"]]) - -- moduledata.youless.watt { year = 2013, filename = "c:/data/system/youless/data/youless-watt.lua" } + -- os.execute([[mtxrun --script youless --collect --electricity "c:/data/system/youless/data/youless-electricity.lua"]]) + -- os.execute([[mtxrun --script youless --collect --electricity --nobackup "c:/data/system/youless/data/youless-electricity.lua"]]) + -- moduledata.youless.electricity { year = 2017, filename = "c:/data/system/youless/data/youless-electricity.lua" } - moduledata.youless.watt { year = 2013, filename = "youless-watt.lua" } + moduledata.youless.electricity { year = 2017, filename = "youless-electricity.lua" } \stopluacode diff --git a/tex/context/modules/mkiv/x-asciimath.lua b/tex/context/modules/mkiv/x-asciimath.lua index eed69d1f2..794cddbd1 100644 --- a/tex/context/modules/mkiv/x-asciimath.lua +++ b/tex/context/modules/mkiv/x-asciimath.lua @@ -35,7 +35,7 @@ if not characters then require("char-ent") end -local type, rawget = type, rawget +local rawget, next, type = rawget, next, type local concat, insert, remove = table.concat, table.insert, table.remove local rep, gmatch, gsub, find = string.rep, string.gmatch, string.gsub, string.find local utfchar, utfbyte = utf.char, utf.byte diff --git a/tex/context/modules/mkiv/x-calcmath.lua b/tex/context/modules/mkiv/x-calcmath.lua index c96d8d0ac..41a43cacd 100644 --- a/tex/context/modules/mkiv/x-calcmath.lua +++ b/tex/context/modules/mkiv/x-calcmath.lua @@ -8,6 +8,7 @@ if not modules then modules = { } end modules ['x-calcmath'] = { -- this really needs to be redone +local next, type = next, type local format, lower, upper, gsub, sub = string.format, string.lower, string.upper, string.gsub, string.sub local concat = table.concat local lpegmatch = lpeg.match diff --git a/tex/context/modules/mkiv/x-cals.lua b/tex/context/modules/mkiv/x-cals.lua index ef85630da..9d54733b8 100644 --- a/tex/context/modules/mkiv/x-cals.lua +++ b/tex/context/modules/mkiv/x-cals.lua @@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['x-cals'] = { license = "see context related readme files" } -local next = next +local next, type = next, type local format, lower = string.format, string.lower local xmlcprint, xmlcollected, xmlelements = xml.cprint, xml.collected, xml.elements local n_todimen, s_todimen = number.todimen, string.todimen diff --git a/tex/context/modules/mkiv/x-setups-basics.mkiv b/tex/context/modules/mkiv/x-setups-basics.mkiv index 0836de76b..be96466b8 100644 --- a/tex/context/modules/mkiv/x-setups-basics.mkiv +++ b/tex/context/modules/mkiv/x-setups-basics.mkiv @@ -15,6 +15,14 @@ %D We can make this module a bit cleaner using more recent features or we go \LUA\ %D completely but as this style evolved over 15 years it's a waste of time. %D +%D +%D Thanks to Wolfgang these descriptions have become quite complete! In the process +%D of covering more commands and expecially different instances of the same command, +%D either or not generated, the supporting macros became more complex. I must admit +%D that it's not the nicest code base and whenever I have to add or patch something +%D I have to suppress the urge to rewrite this file. It needs watching a few +%D energetic videos (for instance with Simon Phillips drumming) to get going. +%D %D As we also have a help server we can make a common framework for this \unknown\ %D but even then, this file is also a test for the the \XML\ processor. %D @@ -25,21 +33,46 @@ %D Currently we load the \XML\ file and when not in the english interface we just %D remap the relevant words to their translation. -%D Todo: use lua instead of synonyms +%D \startbuffer +%D \usemodule[x-setups-basics] +%D +%D \loadsetups[context-en] +%D +%D \starttext +%D +%D \showsetup[starttyping:instance:LUA] +%D +%D \showsetup[starttyping:instance:typing] +%D +%D \showsetup[starttyping:instance:argument] +%D +%D \showsetup [completelistoffloats:instance:chemicals] \blank +%D \shortsetup[completelistoffloats:instance:chemicals] \blank +%D \basicsetup[completelistoffloats:instance:chemicals] \blank +%D +%D \cmdfullsetup [completelistoffloats:instance:chemicals] \blank +%D \cmdshortsetup[completelistoffloats:instance:chemicals] \blank +%D \cmdbasicsetup[completelistoffloats:instance:chemicals] \blank +%D +%D % \cmdinternal{...} +%D +%D \page \placeeverysetup \page +%D \page \placeeverysetupname \page +%D +%D \stoptext +%D \stopbuffer + +% Todo: use lua instead of synonyms \unprotect \defineregister [texmacro] -\unexpanded\def\texcommandmeaning#1{} -\unexpanded\def\texcommandusage #1{} - \definesorting [texcommand] [texcommands] - [\texcommandmeaning] - [\texcommandusage] + [\v!none] \setupsorting [texcommand] @@ -77,7 +110,6 @@ \unexpanded\def\setupalwcolor{} \unexpanded\def\setupoptcolor{darkgray} -% \unexpanded\def\setupvarword#1{{\sl\detokenize{#1}}} \unexpanded\def\setupvarword#1{\detokenize{#1}} \unexpanded\def\setupintword#1{\WORD{\detokenize{#1}}} \unexpanded\def\setuptxtword#1{\detokenize{#1}} @@ -150,16 +182,14 @@ \stopxmlsetups \startxmlsetups xml:setups:register -% \doif {\xmlatt{#1}{variant}} {instance} { - \doifcommon {\xmlatt{#1}{variant}} {instance,instance:assignment,instance:ownnumber} { + \doifcommon {\xmlatt{#1}{variant}} {instance,instance:assignment,instance:ownnumber,instance:argument} { \def\docommand##1{ \xmlsetup{#1}{xml:setups:assemblename:instance} -% \expanded{\texcommand[stp:x:\currentSETUPfullname:##1]{{#1}{##1}}}}% - \expanded{\texcommand[\currentSETUPfullname:##1]{{#1}{##1}}}}% + \expanded{\texcommand[\currentSETUPfullname:##1]{{#1}{##1}}} + }% \processcommacommand[\clf_getinstances{#1}]\docommand } \xmlsetup{#1}{xml:setups:assemblename} -% \expanded{\texcommand[stp:x:\currentSETUPfullname]{{#1}{}}} \expanded{\texcommand[\currentSETUPfullname]{{#1}{}}} \stopxmlsetups @@ -386,7 +416,6 @@ local t = { } local n = #entries for i=1,n do --- t[i] = gsub(entries[i].definition.tag,"^stp:x:","") t[i] = entries[i].definition.tag end table.sort(t) @@ -488,15 +517,12 @@ \fi} \def\cmd_show_setup_nop#1% this will trigger 'used' -% {\registersort[texcommand][stp:x:#1]% {\registersort[texcommand][#1]% \ifconditional\c_cmd_show_setup -% \writestatus{setup}{#1 / \rawsynonymname{texcommand}{stp:x:#1}}% \writestatus{setup}{#1 / \rawsynonymname{texcommand}{#1}}% \fi \startelement[setup][name=#1]% \startelement[noexport][comment={setup definition #1}]% -% \edef\cmd_id{\rawsynonymname{texcommand}{stp:x:#1}}% \edef\cmd_id{\rawsynonymname{texcommand}{#1}}% \ifx\cmd_id\empty missing: #1 @@ -517,6 +543,17 @@ \let\placeeverysetup\placeallsetups +\unexpanded\def\cmd_show_setup_list_basic#1#2#3% + {\NC\tttf#2\NC\basicsetup[#2]\NC\NR} + +\unexpanded\def\placeeverysetupname + {\placelistofsorts + [texcommand] + [\c!before={\starttabulate[|||]}, + \c!after=\stoptabulate, + \c!criterium=\v!all, + \c!command=\cmd_show_setup_list_basic]} + %D Typesetting: \startxmlsetups xml:setups:typeset @@ -758,24 +795,25 @@ \ignorespaces \stopxmlsetups +\startxmlsetups xml:setups:csname \show_setup_component{#1}{csname} \stopxmlsetups \startxmlsetups xml:setups:content \show_setup_component{#1}{content} \stopxmlsetups -\startxmlsetups xml:setups:displaymath \show_setup_component{#1}{displaymath}\stopxmlsetups -\startxmlsetups xml:setups:index \show_setup_component{#1}{index} \stopxmlsetups -\startxmlsetups xml:setups:math \show_setup_component{#1}{math} \stopxmlsetups -\startxmlsetups xml:setups:nothing \show_setup_component{#1}{nothing} \stopxmlsetups -\startxmlsetups xml:setups:file \show_setup_component{#1}{file} \stopxmlsetups \startxmlsetups xml:setups:position \show_setup_component{#1}{position} \stopxmlsetups -\startxmlsetups xml:setups:reference \show_setup_component{#1}{reference} \stopxmlsetups -\startxmlsetups xml:setups:csname \show_setup_component{#1}{csname} \stopxmlsetups -\startxmlsetups xml:setups:destination \show_setup_component{#1}{destination}\stopxmlsetups -\startxmlsetups xml:setups:triplet \show_setup_component{#1}{triplet} \stopxmlsetups -\startxmlsetups xml:setups:word \show_setup_component{#1}{word} \stopxmlsetups +\startxmlsetups xml:setups:index \show_setup_component{#1}{index} \stopxmlsetups +\startxmlsetups xml:setups:text \show_setup_component{#1}{text} \stopxmlsetups +\startxmlsetups xml:setups:apply \show_setup_component{#1}{apply} \stopxmlsetups \startxmlsetups xml:setups:template \show_setup_component{#1}{template} \stopxmlsetups +\startxmlsetups xml:setups:triplet \show_setup_component{#1}{triplet} \stopxmlsetups \startxmlsetups xml:setups:angles \show_setup_component{#1}{angles} \stopxmlsetups -\startxmlsetups xml:setups:apply \show_setup_component{#1}{apply} \stopxmlsetups -\startxmlsetups xml:setups:twowords \show_setup_component{#1}{twowords} \stopxmlsetups -\startxmlsetups xml:setups:threewords \show_setup_component{#1}{threewords} \stopxmlsetups -\startxmlsetups xml:setups:text \show_setup_component{#1}{text} \stopxmlsetups + +%startxmlsetups xml:setups:displaymath \show_setup_component{#1}{displaymath}\stopxmlsetups +%startxmlsetups xml:setups:math \show_setup_component{#1}{math} \stopxmlsetups +%startxmlsetups xml:setups:nothing \show_setup_component{#1}{nothing} \stopxmlsetups +%startxmlsetups xml:setups:file \show_setup_component{#1}{file} \stopxmlsetups +%startxmlsetups xml:setups:reference \show_setup_component{#1}{reference} \stopxmlsetups +%startxmlsetups xml:setups:destination \show_setup_component{#1}{destination}\stopxmlsetups +%startxmlsetups xml:setups:word \show_setup_component{#1}{word} \stopxmlsetups +%startxmlsetups xml:setups:twowords \show_setup_component{#1}{twowords} \stopxmlsetups +%startxmlsetups xml:setups:threewords \show_setup_component{#1}{threewords} \stopxmlsetups % todo: cd:par => \par % todo: cd:sep => \\ @@ -928,12 +966,12 @@ \stopxmlsetups \startxmlsetups xml:setups:inherit -% \cmd_column_two_start{}{} + % \cmd_column_two_start{}{} \rawsetupstring{cd:inherits}: \enspace \letterbackslash \xmlatt{#1}{name} -% \cmd_column_two_stop + % \cmd_column_two_stop \ignorespaces \stopxmlsetups @@ -941,7 +979,7 @@ {\cmd_column_one_start \cmd_internal_value{#1}% \cmd_column_one_stop -% \godown[.75\lineheight] + % \godown[.75\lineheight] \blank[\v!samepage,\v!medium] \ignorespaces} @@ -1013,26 +1051,25 @@ % arguments -\unexpanded\def\show_setup_displaymath#1{\show_setup_any {#1}{displaymath}} -\unexpanded\def\show_setup_index #1{\show_setup_any {#1}{index}} -\unexpanded\def\show_setup_math #1{\show_setup_any {#1}{math}} -\unexpanded\def\show_setup_nothing #1{\show_setup_any {#1}{nothing}} -\unexpanded\def\show_setup_file #1{\show_setup_any {#1}{file}} -\unexpanded\def\show_setup_position #1{\show_setup_any {#1}{position}} -\unexpanded\def\show_setup_template #1{\show_setup_any {#1}{template}} -\unexpanded\def\show_setup_angles #1{\show_setup_any {#1}{angle}} -\unexpanded\def\show_setup_reference #1{\show_setup_any {#1}{reference}} -\unexpanded\def\show_setup_apply #1{\show_setup_any {#1}{apply}} -\unexpanded\def\show_setup_twowords #1{\show_setup_any {#1}{twowords}} -\unexpanded\def\show_setup_threewords #1{\show_setup_any {#1}{threewords}} -\unexpanded\def\show_setup_csname #1{\show_setup_any {#1}{noargument}} -\unexpanded\def\show_setup_destination#1{\show_setup_any {#1}{destination}} -\unexpanded\def\show_setup_triplet #1{\show_setup_any {#1}{triplet}} -\unexpanded\def\show_setup_word #1{\show_setup_any {#1}{word}} -\unexpanded\def\show_setup_content #1{\show_setup_any {#1}{content}} -\unexpanded\def\show_setup_text #1{\show_setup_any {#1}{textual}} -\unexpanded\def\show_setup_to #1{\show_setup_line{#1}{to}} -\unexpanded\def\show_setup_macro #1{\show_setup_any {#1}{macro}} +\unexpanded\def\show_setup_csname #1{\show_setup_any{#1}{noargument}} +\unexpanded\def\show_setup_content #1{\show_setup_any{#1}{content}} +\unexpanded\def\show_setup_position #1{\show_setup_any{#1}{position}} +\unexpanded\def\show_setup_index #1{\show_setup_any{#1}{index}} +\unexpanded\def\show_setup_text #1{\show_setup_any{#1}{textual}} +\unexpanded\def\show_setup_apply #1{\show_setup_any{#1}{apply}} +\unexpanded\def\show_setup_template #1{\show_setup_any{#1}{template}} +\unexpanded\def\show_setup_triplet #1{\show_setup_any{#1}{triplet}} +\unexpanded\def\show_setup_angles #1{\show_setup_any{#1}{angle}} + +%unexpanded\def\show_setup_displaymath#1{\show_setup_any{#1}{displaymath}} +%unexpanded\def\show_setup_math #1{\show_setup_any{#1}{math}} +%unexpanded\def\show_setup_nothing #1{\show_setup_any{#1}{nothing}} +%unexpanded\def\show_setup_file #1{\show_setup_any{#1}{file}} +%unexpanded\def\show_setup_reference #1{\show_setup_any{#1}{reference}} +%unexpanded\def\show_setup_destination#1{\show_setup_any{#1}{destination}} +%unexpanded\def\show_setup_word #1{\show_setup_any{#1}{word}} +%unexpanded\def\show_setup_twowords #1{\show_setup_any{#1}{twowords}} +%unexpanded\def\show_setup_threewords #1{\show_setup_any{#1}{threewords}} % A prelude to a rewrite and some more: diff --git a/tex/context/modules/mkiv/x-setups-overview.mkiv b/tex/context/modules/mkiv/x-setups-overview.mkiv index c0047f13a..f6dff12f5 100644 --- a/tex/context/modules/mkiv/x-setups-overview.mkiv +++ b/tex/context/modules/mkiv/x-setups-overview.mkiv @@ -1,5 +1,5 @@ %D \module -%D [ file=setups-basics, % x-set-12, +%D [ file=setups-overview, % x-set-12, %D version=2016.04.05, % 2004.10.31, %D remark=setupx.tex: 1998.07.20 and later, %D title=\CONTEXT\ Setup Definitions, @@ -12,10 +12,13 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -% context --interface=en --global --result=setup-en x-setups-overview.mkiv +% context --interface=en --global --result=setup-en x-setups-overview.mkiv --mode=setups:save +% context --interface=en --global --result=setup-mapping-en x-setups-overview.mkiv --mode=setups:mapping % \enablemode[setups:save] +% \enablemode[setups:mapping] + \usemodule[setups-basics] \unprotect @@ -80,7 +83,12 @@ \definecolor [darkgray] [s=.1] \usetypescript[palatino] -\setupbodyfont[palatino,9pt] + +\doifelsemode {setups:mapping} { + \setupbodyfont[palatino,8pt] +} { + \setupbodyfont[palatino,9pt] +} \defineoverlay [cover] @@ -91,28 +99,42 @@ [\hbox to \paperwidth{\reuseMPgraphic{cover+back}\hss}] \startreusableMPgraphic{cover+back} - numeric h, w ; path p, q, r ; color f, d ; pair s ; + numeric h, w; boolean mapping ; path p, q, r ; color f, d ; pair s ; h := OverlayHeight ; w := 2*OverlayWidth ; r := unitsquare xyscaled (w,h) ; fill r withcolor \MPcolor{lightgray} ; - set_grid(w,h,w/8,w/16) ; + mapping := lua.mp.processingmode("setups:mapping") ; + if mapping : + set_grid(w,h,w/8,w/160) ; + pickup pensquare yscaled (w/80) ; + else : + set_grid(w,h,w/8,w/16) ; + pickup pencircle scaled (w/100) ; + fi ; forever : s := center r randomized (w,h) ; if new_on_grid(xpart s, ypart s) : - s := (dx,dy) ; - p := fullsquare xyscaled(w/4,w/8) ; - q := (-4w,ypart ulcorner p) -- .5[ulcorner p, urcorner p] -- (4w,ypart urcorner p) ; - q := q shifted (0,-w/24) ; - p := p randomized (w/40,w/40) ; - q := q randomized (0,w/100) ; - q := q cutafter (p cutafter point 3 of p) ; - q := q cutbefore (p cutbefore point 3 of p) ; d := .5[\MPcolor{LocalColor},\MPcolor{lightgray}] randomized (.5,.9) ; f := \MPcolor{lightgray} randomized (.5,.9) ; - pickup pencircle scaled (w/100) ; - fill p shifted s withcolor f ; - draw p shifted s withcolor d ; - draw q shifted s withcolor d ; + s := (dx,dy) ; + if mapping : + p := (-w/4,0) -- (w/4,0) ; + p := (-w/4,0) -- origin ; + q := origin -- ( w/4,0) ; + draw p shifted s withcolor d ; + draw q shifted s withcolor f ; + else : + p := fullsquare xyscaled(w/4,w/8) ; + q := (-4w,ypart ulcorner p) -- .5[ulcorner p, urcorner p] -- (4w,ypart urcorner p) ; + q := q shifted (0,-w/24) ; + p := p randomized (w/40,w/40) ; + q := q randomized (0,w/100) ; + q := q cutafter (p cutafter point 3 of p) ; + q := q cutbefore (p cutbefore point 3 of p) ; + fill p shifted s withcolor f ; + draw p shifted s withcolor d ; + draw q shifted s withcolor d ; + fi ; fi ; exitif grid_full ; endfor ; @@ -137,6 +159,11 @@ \c!width=\v!middle, \c!height=\v!middle] +\doifmode {setups:mapping} { + \setuplayout + [\c!backspace=1cm] +} + \setuppagenumbering [\c!location=\v!footer, \c!alternative=\v!doublesided] @@ -234,7 +261,11 @@ \protect -\placeeverysetup +\doifelsemode {setups:mapping} { + \placeeverysetupname +} { + \placeeverysetup +} \unprotect |