diff options
Diffstat (limited to 'tex')
21 files changed, 196 insertions, 121 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 0d21cdc48..88a6725ac 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2019.08.17 11:46} +\newcontextversion{2019.08.18 22:16} %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/mkii/context.mkii b/tex/context/base/mkii/context.mkii index 3d9c5347e..245efc750 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2019.08.17 11:46} +\edef\contextversion{2019.08.18 22:16} %D For those who want to use this: diff --git a/tex/context/base/mkiv/back-exp.lua b/tex/context/base/mkiv/back-exp.lua index b7d5f6b2c..18333ab21 100644 --- a/tex/context/base/mkiv/back-exp.lua +++ b/tex/context/base/mkiv/back-exp.lua @@ -34,7 +34,7 @@ if not modules then modules = { } end modules ['back-exp'] = { -- check setting __i__ local next, type, tonumber = next, type, tonumber -local sub, gsub = string.sub, string.gsub +local sub, gsub, match = string.sub, string.gsub, string.match local validstring = string.valid local lpegmatch = lpeg.match local utfchar, utfvalues, utflen = utf.char, utf.values, utf.len @@ -2734,9 +2734,9 @@ local function pop() currentdepth = currentdepth - 1 if trace_export then if top then - report_export("%w</%s>",currentdepth,tree.tg) + report_export("%w</%s>",currentdepth,match(top,"[^>]+")) else - report_export("</%s>",tree.tg) + report_export("</BAD>") end end else diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 703a0f1d8..f21269908 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2019.08.17 11:46} +\newcontextversion{2019.08.18 22:16} %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/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index 1f8e6a2e6..7798cf29b 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2019.08.17 11:46} +\edef\contextversion{2019.08.18 22:16} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl index 40198288a..e4904c50e 100644 --- a/tex/context/base/mkiv/context.mkxl +++ b/tex/context/base/mkiv/context.mkxl @@ -29,7 +29,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2019.08.17 11:46} +\edef\contextversion{2019.08.18 22:16} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/core-con.lua b/tex/context/base/mkiv/core-con.lua index 3cf1485a1..6d71071a0 100644 --- a/tex/context/base/mkiv/core-con.lua +++ b/tex/context/base/mkiv/core-con.lua @@ -312,7 +312,7 @@ local function textime() end function converters.year () return osdate("%Y") end -function converters.month () return osdate("%m") end +function converters.month () return osdate("%m") end -- always two digits function converters.day () return osdate("%d") end function converters.hour () return osdate("%H") end function converters.minute() return osdate("%M") end @@ -1676,3 +1676,8 @@ implement { } } +local function field(n) return context(osdate("*t")[n]) end + +implement { name = "actualday", public = true, actions = function() field("day") end } +implement { name = "actualmonth", public = true, actions = function() field("month") end } +implement { name = "actualyear", public = true, actions = function() field("year") end } diff --git a/tex/context/base/mkiv/core-con.mkiv b/tex/context/base/mkiv/core-con.mkiv index 303fb1291..b73280d00 100644 --- a/tex/context/base/mkiv/core-con.mkiv +++ b/tex/context/base/mkiv/core-con.mkiv @@ -186,9 +186,9 @@ %D \macros %D {normaltime,normalyear,normalmonth,normalday} %D -%D The last part of this module is dedicated to converting dates. Because we -%D want to use as meaningful commands as possible, and because \TEX\ already -%D uses up some of those, we save the original meanings. +%D The last part of this module is dedicated to converting dates. Because we want to +%D use as meaningful commands as possible, and because \TEX\ already uses up some of +%D those, we save the original meanings. % \savenormalmeaning\time % \savenormalmeaning\year @@ -274,8 +274,8 @@ %D \getbuffer %D \stoplines %D -%D The macro \type {\getdayoftheweek} can be used to calculate the number -%D \type {\normalweekday}. +%D The macro \type {\getdayoftheweek} can be used to calculate the number \type +%D {\normalweekday}. %D \macros %D {doifleapyearelse, @@ -363,8 +363,8 @@ %D %D \typebuffer %D -%D The date is specified by one character keys. When no date is given, we -%D get the current date. +%D The date is specified by one character keys. When no date is given, we get the +%D current date. %D %D \startlines %D \getbuffer @@ -425,26 +425,25 @@ \unexpanded\def\date {\dodoubleempty\syst_converters_date} -\def\syst_converters_date[#1][#2]% +\def\syst_converters_date[#1][#2]% sets the date ! {\dontleavehmode - \begingroup - \scratchcounterone \normalyear - \scratchcountertwo \normalmonth - \scratchcounterthree\normalday \iffirstargument - \letdummyparameter\c!y\empty - \letdummyparameter\c!m\empty - \letdummyparameter\c!d\empty + \begingroup + \letdummyparameter\c!d\normalday + \letdummyparameter\c!m\normalmonth + \letdummyparameter\c!y\normalyear \getdummyparameters[#1]% - \edef\temp{\dummyparameter\c!y}\ifx\temp\empty\else\scratchcounterone \temp\fi - \edef\temp{\dummyparameter\c!m}\ifx\temp\empty\else\scratchcountertwo \temp\fi - \edef\temp{\dummyparameter\c!d}\ifx\temp\empty\else\scratchcounterthree\temp\fi - \relax + \normalexpanded + {\endgroup + \normalday \number\directdummyparameter\c!d\relax + \normalmonth\number\directdummyparameter\c!m\relax + \normalyear \number\directdummyparameter\c!y\relax}% \fi + \begingroup \the\everycurrentdate \clf_currentdate {#2}{\currentdatespecification}{\labellanguage}% - \scratchcounterone\scratchcountertwo\scratchcounterthree + \normalyear\normalmonth\normalday \endgroup} \def\rawdate[#1]% expandable and no labels @@ -535,10 +534,10 @@ \installcorenamespace {conversionarguments} \installcorenamespace {conversionwords} -%D It might be better to move more to lua as we also need conversion there -%D and doublicating logic doesn't make things cleaner. It means that all -%D conversions will get a language argument too. However, we permit definitions -%D at the \TEX\ end so we have to provide some hybrid method. +%D It might be better to move more to \LUA\ as we also need conversion there and +%D doublicating logic doesn't make things cleaner. It means that all conversions +%D will get a language argument too. However, we permit definitions at the \TEX\ end +%D so we have to provide some hybrid method. % checkedconversion(method,n,language) @@ -561,9 +560,9 @@ \def\syst_converters_checked_conversion#1#2% {\clf_checkedconversion{#1}\numexpr#2\relax} -%D If a conversion is just a font switch then we need to make sure that the -%D number is indeed ends up as number in the input, so we need to handle the -%D second argument. +%D If a conversion is just a font switch then we need to make sure that the number +%D is indeed ends up as number in the input, so we need to handle the second +%D argument. \def\convertnumber#1#2% expandable {\csname\??conversionarguments diff --git a/tex/context/base/mkiv/luat-ini.mkiv b/tex/context/base/mkiv/luat-ini.mkiv index da5a3a310..d1d829be9 100644 --- a/tex/context/base/mkiv/luat-ini.mkiv +++ b/tex/context/base/mkiv/luat-ini.mkiv @@ -265,23 +265,23 @@ % \def\syst_helpers_checked_stripped_csname#1% % {\if\noexpand#1\letterbackslash\else#1\fi} -\ifdefined\normalluadef +% \ifdefined\normalluadef \normalprotected\def\installctxfunction#1#2% expandable {\edef\m_syst_name{\csstring#1}% - \global\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax} + \global\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxfunction(\!!bs#2\!!es,true)}\relax} \normalprotected\def\installctxscanner#1#2% expandable {\edef\m_syst_name{\csstring#1}% - \global\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax} + \global\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name",\!!bs#2\!!es,true)}\relax} \normalprotected\def\installprotectedctxfunction#1#2% protected {\edef\m_syst_name{\csstring#1}% - \global\normalprotected\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax} + \global\normalprotected\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxfunction(\!!bs#2\!!es,true)}\relax} \normalprotected\def\installprotectedctxscanner#1#2% protected {\edef\m_syst_name{\csstring#1}% - \global\normalprotected\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax} + \global\normalprotected\expandafter\normalluadef\csname\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name",\!!bs#2\!!es,true)}\relax} \normalprotected\def\resetctxscanner#1% {\edef\m_syst_name{\csstring#1}% @@ -292,57 +292,57 @@ % \let\installprotectedctxfunctioncall\installprotectedctxfunction % \let\installprotectedctxscannercall \installprotectedctxscanner -\else - - \ifdefined\luafunctioncall \else - \normalprotected\def\luafunctioncall{\luafunction} - \fi - - \normalprotected\def\installctxfunction#1#2% expandable - {\edef\m_syst_name{\csstring#1}% - \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax - \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}} - - \normalprotected\def\installctxscanner#1#2% expandable - {\edef\m_syst_name{\csstring#1}% - \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax - \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}} - - \normalprotected\def\installprotectedctxfunction#1#2% protected - {\edef\m_syst_name{\csstring#1}% - \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax - \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} - - \normalprotected\def\installprotectedctxscanner#1#2% protected - {\edef\m_syst_name{\csstring#1}% - \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax - \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} - - \normalprotected\def\resetctxscanner#1% - {\edef\m_syst_name{\csstring#1}% - \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\zerocount - \expandafter\glet\csname\m_syst_name\endcsname\relax} - - % \normalprotected\def\installctxfunctioncall#1#2% - % {\edef\m_syst_name{\csstring#1}% - % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax - % \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} - % - % \normalprotected\def\installctxscannercall#1#2% - % {\edef\m_syst_name{\csstring#1}% - % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax - % \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} - % - % \normalprotected\def\installprotectedctxfunctioncall#1#2% - % {\edef\m_syst_name{\csstring#1}% - % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax - % \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} - % - % \normalprotected\def\installprotectedctxscannercall#1#2% - % {\edef\m_syst_name{\csstring#1}% - % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax - % \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} - -\fi +% \else +% +% \ifdefined\luafunctioncall \else +% \normalprotected\def\luafunctioncall{\luafunction} +% \fi +% +% \normalprotected\def\installctxfunction#1#2% expandable +% {\edef\m_syst_name{\csstring#1}% +% \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax +% \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}} +% +% \normalprotected\def\installctxscanner#1#2% expandable +% {\edef\m_syst_name{\csstring#1}% +% \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax +% \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunction\csname\??luafunction\m_syst_name\endcsname}} +% +% \normalprotected\def\installprotectedctxfunction#1#2% protected +% {\edef\m_syst_name{\csstring#1}% +% \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax +% \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} +% +% \normalprotected\def\installprotectedctxscanner#1#2% protected +% {\edef\m_syst_name{\csstring#1}% +% \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax +% \expandafter\xdef\csname\m_syst_name\endcsname{\noexpand\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} +% +% \normalprotected\def\resetctxscanner#1% +% {\edef\m_syst_name{\csstring#1}% +% \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\zerocount +% \expandafter\glet\csname\m_syst_name\endcsname\relax} +% +% % \normalprotected\def\installctxfunctioncall#1#2% +% % {\edef\m_syst_name{\csstring#1}% +% % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax +% % \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} +% % +% % \normalprotected\def\installctxscannercall#1#2% +% % {\edef\m_syst_name{\csstring#1}% +% % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax +% % \expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} +% % +% % \normalprotected\def\installprotectedctxfunctioncall#1#2% +% % {\edef\m_syst_name{\csstring#1}% +% % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxfunction("#2",true)}\relax +% % \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} +% % +% % \normalprotected\def\installprotectedctxscannercall#1#2% +% % {\edef\m_syst_name{\csstring#1}% +% % \global\expandafter\chardef\csname\??luafunction\m_syst_name\endcsname\ctxcommand{ctxscanner("\m_syst_name","#2",true)}\relax +% % \normalprotected\expandafter\xdef\csname\m_syst_name\endcsname{\luafunctioncall\csname\??luafunction\m_syst_name\endcsname}} +% +% \fi \protect \endinput diff --git a/tex/context/base/mkiv/meta-ini.mkxl b/tex/context/base/mkiv/meta-ini.mkxl index 4ae748ba8..47a137616 100644 --- a/tex/context/base/mkiv/meta-ini.mkxl +++ b/tex/context/base/mkiv/meta-ini.mkxl @@ -166,10 +166,10 @@ \appendtoks \ifcsname\??mpdefinitions\currentMPinstance\endcsname \else - \expandafter\newtoks\csname\??mpdefinitions\currentMPinstance\endcsname + \expandafter\newtoks\csname\??mpdefinitions\currentMPinstance\endcsname \fi \ifcsname\??mpinclusions\currentMPinstance\endcsname \else - \expandafter\newtoks\csname\??mpinclusions\currentMPinstance\endcsname + \expandafter\newtoks\csname\??mpinclusions\currentMPinstance\endcsname \fi \t_meta_definitions\emptytoks % in case we redefine \t_meta_inclusions \emptytoks % in case we redefine diff --git a/tex/context/base/mkiv/meta-pag.mkiv b/tex/context/base/mkiv/meta-pag.mkiv index 6b6abd211..b147c0af4 100644 --- a/tex/context/base/mkiv/meta-pag.mkiv +++ b/tex/context/base/mkiv/meta-pag.mkiv @@ -11,21 +11,19 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -%D These definitions used to be part of the old \type -%D {core-mps} file, later changed into \type {meta-ini}, but -%D keeping them separate is cleaner. +%D These definitions used to be part of the old \type {core-mps} file, later changed +%D into \type {meta-ini}, but keeping them separate is cleaner. \writestatus{loading}{MetaPost Graphics / Page Data Management} \unprotect -%D The next few macros tell \METAPOST\ how the \CONTEXT\ -%D pagebody looks. +%D The next few macros tell \METAPOST\ how the \CONTEXT\ pagebody looks. -\startMPextensions - boolean PageStateAvailable; - PageStateAvailable:=true; -\stopMPextensions +% \startMPextensions +% boolean PageStateAvailable; +% PageStateAvailable:=true; +% \stopMPextensions % maybe always set as frozen anyway @@ -87,24 +85,22 @@ % NOfColumns:=\number\nofcolumns; % \stopMPinitializations -\def\MPonrightpage{true} -\def\MPonoddpage {true} +% \def\MPonrightpage{true} % just in case they're used +% \def\MPonoddpage {true} % just in case they're used -\def\freezeMPpagelayout - {\edef\MPonrightpage{\doifbothsides {tru}{tru}{fals}e}% - \edef\MPonoddpage {\doifelseoddpage {tru}{fals}e}} +% \def\freezeMPpagelayout +% {\edef\MPonrightpage{\doifbothsides {tru}{tru}{fals}e}% +% \edef\MPonoddpage {\doifelseoddpage {tru}{fals}e}} -%D We need to freeze the pagelayout before the backgrounds -%D are build, because the overlay will temporarily become -%D zero (overlay). +%D We need to freeze the pagelayout before the backgrounds are build, because the +%D overlay will temporarily become zero (overlay). -\appendtoks - \freezeMPpagelayout -\to \everybeforepagebody +% \appendtoks +% \freezeMPpagelayout +% \to \everybeforepagebody -%D By freezing these value every graphic, we can use layout -%D variables that change halfways a page, whatever use that -%D has. +%D By freezing these value every graphic, we can use layout variables that change +%D halfways a page, whatever use that has. % obsolete (but keep the code) % diff --git a/tex/context/base/mkiv/meta-pag.mkxl b/tex/context/base/mkiv/meta-pag.mkxl new file mode 100644 index 000000000..86de11eeb --- /dev/null +++ b/tex/context/base/mkiv/meta-pag.mkxl @@ -0,0 +1,26 @@ +%D \module +%D [ file=meta-pag, +%D version=1999.07.10, +%D title=\METAPOST\ Graphics, +%D subtitle=Initialization, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D These definitions used to be part of the old \type {core-mps} file, later changed +%D into \type {meta-ini}, but keeping them separate is cleaner. In the meantime not +%D that much is left here. + +\writestatus{loading}{MetaPost Graphics / Page Data Management} + +\unprotect + +\prependtoks + \calculatereducedvsizes % bah, this is really needed +\to \everyMPgraphic + +\protect \endinput diff --git a/tex/context/base/mkiv/mult-low.lua b/tex/context/base/mkiv/mult-low.lua index bbaa30d53..aa0329e48 100644 --- a/tex/context/base/mkiv/mult-low.lua +++ b/tex/context/base/mkiv/mult-low.lua @@ -313,7 +313,11 @@ return { -- "wait", "writestatus", "define", "defineexpandable", "redefine", -- - "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", "measure", "measured", + "setmeasure", "setemeasure", "setgmeasure", "setxmeasure", "definemeasure", "freezemeasure", + "measure", "measured", "directmeasure", + "setquantity", "setequantity", "setgquantity", "setxquantity", "definequantity", "freezequantity", + "quantity", "quantitied", "directquantity", + -- "quantified", -- "installcorenamespace", -- diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex 1eaa1b583..48fe54d39 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex 57b0bac47..1a046e57a 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/syst-aux.mkiv b/tex/context/base/mkiv/syst-aux.mkiv index ed46481d5..1cade869c 100644 --- a/tex/context/base/mkiv/syst-aux.mkiv +++ b/tex/context/base/mkiv/syst-aux.mkiv @@ -7377,6 +7377,9 @@ %{\dimexpr\ifcsname\??measure#1\endcsname\csname\??measure#1\endcsname\else\zeropoint\fi\relax} {\dimexpr\ifcsname\??measure#1\endcsname\lastnamedcs\else\zeropoint\fi\relax} +\def\directmeasure#1% + {\the\dimexpr#1\relax} + % #2 could be omitted, but we want to support spaces % % \setmeasure {x} {1cm} @@ -7384,6 +7387,41 @@ % \setmeasure {xxx}{1cm} %D \macros +%D {definequantity} +%D +%D These do the same but for numbers. + +\installsystemnamespace{quantity} + +\unexpanded\def\definequantity + {\dodoubleargument\syst_helpers_define_quantity} + +\def\syst_helpers_define_quantity[#1][#2]% + {\expandafter\def\csname\??quantity#1\endcsname{#2}} + +\unexpanded\def\freezequantity + {\dodoubleargument\syst_helpers_freeze_quantity} + +\def\syst_helpers_freeze_quantity[#1][#2]% + {\expandafter\edef\csname\??quantity#1\endcsname{\the\numexpr#2}} + +\unexpanded\def\setquantity #1#2{\expandafter\def \csname\??quantity#1\endcsname{#2}} % quick way +\unexpanded\def\setgquantity#1#2{\expandafter\gdef\csname\??quantity#1\endcsname{#2}} % quick way +\unexpanded\def\setequantity#1#2{\expandafter\edef\csname\??quantity#1\endcsname{\the\numexpr#2}} % quick way +\unexpanded\def\setxquantity#1#2{\expandafter\xdef\csname\??quantity#1\endcsname{\the\numexpr#2}} % quick way + +\def\quantity + {\the\quantitied} + +\def\quantitied#1% + {\numexpr\ifcsname\??quantity#1\endcsname\lastnamedcs\else\zeropoint\fi\relax} + +\def\directquantity#1% + {\the\numexpr#1\relax} + +% let\quantified\quantitied + +%D \macros %D {dividedsize} %D %D This one can be used inside a measure (used in m4all): diff --git a/tex/context/interface/mkiv/context-en.xml b/tex/context/interface/mkiv/context-en.xml index 8ca94179f..17bc09c8e 100644 --- a/tex/context/interface/mkiv/context-en.xml +++ b/tex/context/interface/mkiv/context-en.xml @@ -6729,6 +6729,9 @@ </cd:keywords> </cd:arguments> </cd:command> + <cd:command category="system" file="core-con.mkiv" level="style" name="actualyear"/> + <cd:command category="system" file="core-con.mkiv" level="style" name="actualmonth"/> + <cd:command category="system" file="core-con.mkiv" level="style" name="actualday"/> </cd:interface> <cd:interface file="i-counter.xml"> <cd:command category="counter" file="strc-num.mkiv" level="system" name="definecounter"> diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf Binary files differindex 613e7b795..fa852c437 100644 --- a/tex/context/interface/mkiv/i-context.pdf +++ b/tex/context/interface/mkiv/i-context.pdf diff --git a/tex/context/interface/mkiv/i-conversion.xml b/tex/context/interface/mkiv/i-conversion.xml index 9226693a2..b97b63806 100644 --- a/tex/context/interface/mkiv/i-conversion.xml +++ b/tex/context/interface/mkiv/i-conversion.xml @@ -649,4 +649,8 @@ </cd:arguments> </cd:command> -</cd:interface>
\ No newline at end of file + <cd:command name="actualyear" level="style" category="system" file="core-con.mkiv" /> + <cd:command name="actualmonth" level="style" category="system" file="core-con.mkiv" /> + <cd:command name="actualday" level="style" category="system" file="core-con.mkiv" /> + +</cd:interface> diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf Binary files differindex 1207e9f04..583dec8ee 100644 --- a/tex/context/interface/mkiv/i-readme.pdf +++ b/tex/context/interface/mkiv/i-readme.pdf diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index f91a0d110..b0c21ec63 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 : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 08/17/19 11:46:05 +-- merge date : 08/18/19 22:16:14 do -- begin closure to overcome local limits and interference |