From 9bdf7ef9d9811adeab13e76766e170ca932fd7f2 Mon Sep 17 00:00:00 2001 From: Marius Date: Wed, 31 Jul 2013 21:40:54 +0300 Subject: beta 2013.07.31 20:23 --- scripts/context/lua/mtx-rsync.lua | 21 ++- scripts/context/lua/mtxrun.lua | 10 +- scripts/context/stubs/mswin/mtxrun.lua | 10 +- scripts/context/stubs/unix/mtxrun | 10 +- tex/context/base/buff-ver.lua | 15 +- tex/context/base/buff-ver.mkiv | 12 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4108 -> 4104 bytes tex/context/base/context.mkiv | 3 +- tex/context/base/l-boolean.lua | 4 +- tex/context/base/math-acc.mkvi | 181 +++++++++++++++++++++ tex/context/base/math-act.lua | 54 +++--- tex/context/base/math-fbk.lua | 74 ++++----- tex/context/base/math-fen.mkiv | 48 +++--- tex/context/base/math-stc.mkvi | 35 ++-- tex/context/base/mult-de.mkii | 2 + tex/context/base/mult-def.lua | 8 + tex/context/base/mult-en.mkii | 2 + tex/context/base/mult-fr.mkii | 2 + tex/context/base/mult-it.mkii | 2 + tex/context/base/mult-nl.mkii | 2 + tex/context/base/mult-pe.mkii | 2 + tex/context/base/mult-ro.mkii | 2 + tex/context/base/page-lay.mkiv | 2 +- tex/context/base/spac-ver.mkiv | 26 +++ tex/context/base/status-files.pdf | Bin 24663 -> 24653 bytes tex/context/base/status-lua.log | 2 +- tex/context/base/status-mkiv.lua | 6 + tex/context/base/typo-txt.mkvi | 4 +- tex/context/base/util-sql-users.lua | 6 +- tex/context/interface/keys-cs.xml | 2 + tex/context/interface/keys-de.xml | 2 + tex/context/interface/keys-en.xml | 2 + tex/context/interface/keys-fr.xml | 2 + tex/context/interface/keys-it.xml | 2 + tex/context/interface/keys-nl.xml | 2 + tex/context/interface/keys-pe.xml | 2 + tex/context/interface/keys-ro.xml | 2 + tex/generic/context/luatex/luatex-fonts-merged.lua | 6 +- 39 files changed, 424 insertions(+), 145 deletions(-) create mode 100644 tex/context/base/math-acc.mkvi diff --git a/scripts/context/lua/mtx-rsync.lua b/scripts/context/lua/mtx-rsync.lua index 65f795ee5..70a82e929 100644 --- a/scripts/context/lua/mtx-rsync.lua +++ b/scripts/context/lua/mtx-rsync.lua @@ -92,14 +92,20 @@ else end end -function rsynccommand(dryrun,recurse,origin,target) - local command = "rsync -ptlva " +function rsynccommand(origin,target,dryrun,recurse,delete) + local command = "rsync -t -p " if dryrun then command = command .. "-n " end if recurse then command = command .. "-r " end + if delete then + if not recurse then + command = command .. "-d " + end + command = command .. "--delete " + end return format('%s %s %s',command,origin,target) end @@ -109,7 +115,7 @@ local rsync = scripts.rsync rsync.mode = "command" -function rsync.run(origin,target,message,recurse) +function rsync.run(origin,target,message,recurse,delete) if type(origin) == "table" then origin = concat(origin,"/") end @@ -127,15 +133,15 @@ function rsync.run(origin,target,message,recurse) report_message(message) end if rsync.mode == "dryrun" then - local command = rsynccommand(true,recurse,origin,target) + local command = rsynccommand(origin,target,true,recurse,delete) report_dryrun(command.."\n") os.execute(command) elseif rsync.mode == "force" then - local command = rsynccommand(false,recurse,origin,target) + local command = rsynccommand(origin,target,false,recurse,delete) report_normal(command.."\n") os.execute(command) else - local command = rsynccommand(true,recurse,origin,target) + local command = rsynccommand(origin,target,true,recurse,delete) report_command(command) end end @@ -154,8 +160,9 @@ function rsync.job(list) local target = li.target local message = li.message local recurse = li.recurse + local delete = li.delete if origin and #origin > 0 and target and #target > 0 then -- string or table - rsync.run(origin,target,message,recurse) + rsync.run(origin,target,message,recurse,delete) else report_message("invalid job specification at index %s",i) end diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 62a9fd3bc..61f2b8f4f 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -3966,7 +3966,7 @@ do -- create closure to overcome 200 locals limit package.loaded["l-boolean"] = package.loaded["l-boolean"] or true --- original size: 1781, stripped down to: 1503 +-- original size: 1809, stripped down to: 1527 if not modules then modules={} end modules ['l-boolean']={ version=1.001, @@ -4022,9 +4022,9 @@ function string.booleanstring(str) end function string.is_boolean(str,default) if type(str)=="string" then - if str=="true" or str=="yes" or str=="on" or str=="t" then + if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then return true - elseif str=="false" or str=="no" or str=="off" or str=="f" then + elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then return false end end @@ -16261,8 +16261,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 663473 --- stripped bytes : 233126 +-- original bytes : 663501 +-- stripped bytes : 233130 -- end library merge diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 62a9fd3bc..61f2b8f4f 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -3966,7 +3966,7 @@ do -- create closure to overcome 200 locals limit package.loaded["l-boolean"] = package.loaded["l-boolean"] or true --- original size: 1781, stripped down to: 1503 +-- original size: 1809, stripped down to: 1527 if not modules then modules={} end modules ['l-boolean']={ version=1.001, @@ -4022,9 +4022,9 @@ function string.booleanstring(str) end function string.is_boolean(str,default) if type(str)=="string" then - if str=="true" or str=="yes" or str=="on" or str=="t" then + if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then return true - elseif str=="false" or str=="no" or str=="off" or str=="f" then + elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then return false end end @@ -16261,8 +16261,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 663473 --- stripped bytes : 233126 +-- original bytes : 663501 +-- stripped bytes : 233130 -- end library merge diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 62a9fd3bc..61f2b8f4f 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -3966,7 +3966,7 @@ do -- create closure to overcome 200 locals limit package.loaded["l-boolean"] = package.loaded["l-boolean"] or true --- original size: 1781, stripped down to: 1503 +-- original size: 1809, stripped down to: 1527 if not modules then modules={} end modules ['l-boolean']={ version=1.001, @@ -4022,9 +4022,9 @@ function string.booleanstring(str) end function string.is_boolean(str,default) if type(str)=="string" then - if str=="true" or str=="yes" or str=="on" or str=="t" then + if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then return true - elseif str=="false" or str=="no" or str=="off" or str=="f" then + elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then return false end end @@ -16261,8 +16261,8 @@ end -- of closure -- used libraries : l-lua.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-sto.lua util-prs.lua util-fmt.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-mrg.lua util-tpl.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua -- skipped libraries : - --- original bytes : 663473 --- stripped bytes : 233126 +-- original bytes : 663501 +-- stripped bytes : 233130 -- end library merge diff --git a/tex/context/base/buff-ver.lua b/tex/context/base/buff-ver.lua index e6508d3a5..772008e39 100644 --- a/tex/context/base/buff-ver.lua +++ b/tex/context/base/buff-ver.lua @@ -41,6 +41,8 @@ local addsuffix = file.addsuffix local v_auto = variables.auto local v_yes = variables.yes +local v_last = variables.last +local v_all = variables.all -- beware, all macros have an argument: @@ -735,14 +737,21 @@ end -- parser so we use lpeg. -- -- [[\text ]] [[\text{}]] [[\text \text ]] [[\text \\ \text ]] +-- +-- needed in e.g. tabulate (manuals) ------ strip = Cs((P(" ")^1 * P(-1)/"" + 1)^0) -local strip = Cs((P("\\") * ((1-S("\\ "))^1) * (P(" ")/"") + 1)^0) -- +local compact_all = Cs((P("\\") * ((1-S("\\ "))^1) * (P(" ")/"") * (P(-1) + S("[{")) + 1)^0) +local compact_last = Cs((P(" ")^1 * P(-1)/"" + 1)^0) function commands.typestring(settings) local content = settings.data if content and content ~= "" then - content = #content > 1 and lpegmatch(strip,content) or content -- can be an option, but needed in e.g. tabulate + local compact = settings.compact + if compact == v_all then + content = lpegmatch(compact_all,content) + elseif compact == v_last then + content = lpegmatch(compact_last,content) + end -- content = decodecomment(content) -- content = dotabs(content,settings) visualize(content,checkedsettings(settings,"inline")) diff --git a/tex/context/base/buff-ver.mkiv b/tex/context/base/buff-ver.mkiv index 48be6b67b..7ebadea41 100644 --- a/tex/context/base/buff-ver.mkiv +++ b/tex/context/base/buff-ver.mkiv @@ -298,10 +298,11 @@ {\buff_verbatim_initialize_type_two \dostarttagged\t!verbatim\currenttype \ctxcommand{typestring{ - data = \!!bs\detokenize{#1}\!!es, - tab = "\typeparameter\c!tab", - method = "\typeparameter\c!option", - nature = "inline", + data = \!!bs\detokenize{#1}\!!es, + tab = "\typeparameter\c!tab", + method = "\typeparameter\c!option", + nature = "inline", + compact = "\typeparameter\c!compact", % none | all | last (all needed in tabulate etc for manuals) }}% \dostoptagged \buff_verbatim_right_of_type @@ -675,7 +676,8 @@ \c!style=\tt, %\c!option=\v!normal, \c!page=\v!no, - \c!tab=\v!yes] + \c!tab=\v!yes, + \c!compact=\v!all] %D Buffers diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index d77980ea4..2453d4f0b 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.07.24 14:11} +\newcontextversion{2013.07.31 20:23} %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 48e7e92d4..82afc8c2b 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 3d88a8a4b..381d2a258 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2013.07.24 14:11} +\edef\contextversion{2013.07.31 20:23} \edef\contextkind {beta} %D For those who want to use this: @@ -430,6 +430,7 @@ \loadmarkfile{math-int} \loadmarkfile{math-del} \loadmarkfile{math-fen} +\loadmkvifile{math-acc} \loadmkvifile{math-rad} \loadmarkfile{math-inl} \loadmarkfile{math-dis} diff --git a/tex/context/base/l-boolean.lua b/tex/context/base/l-boolean.lua index f087f1a4c..8d11080e7 100644 --- a/tex/context/base/l-boolean.lua +++ b/tex/context/base/l-boolean.lua @@ -59,9 +59,9 @@ end function string.is_boolean(str,default) if type(str) == "string" then - if str == "true" or str == "yes" or str == "on" or str == "t" then + if str == "true" or str == "yes" or str == "on" or str == "t" or str == "1" then return true - elseif str == "false" or str == "no" or str == "off" or str == "f" then + elseif str == "false" or str == "no" or str == "off" or str == "f" or str == "0" then return false end end diff --git a/tex/context/base/math-acc.mkvi b/tex/context/base/math-acc.mkvi new file mode 100644 index 000000000..415f2b91f --- /dev/null +++ b/tex/context/base/math-acc.mkvi @@ -0,0 +1,181 @@ +%D \module +%D [ file=math-acc, +%D version=2013.07.31, +%D title=\CONTEXT\ Math Macros, +%D subtitle=Accents, +%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. + +\writestatus{loading}{ConTeXt Math Macros / Accents} + +% There are probably errors ... too distracted by amazing (piano) music videos running +% on top of scite ... so: experimental code. + +\unprotect + +% This module permits overloading of accents so that we can do fancy things. The +% implementation is similar to stackers. By default accenst are defined in a simple +% way. Contrary to extensibles accents cannot grow indefinitely. Alas the +% implementation of accents is different too, in the sense that they are +% prepositioned i.e. are already raised. (In my opinion for no real reason as they +% need to adapt anyway). +% +% $ \ruledhbox{$H$} \hat{H} \ruledhbox{$\widehat{H}$} \widehat{H} $ +% +% One alternative is: +% +% \definemathoverextensible [top] [hoed] ["FE302] +% \definemathoverextensible [top] [slang] ["FE303] +% +% $ \hoed{H} \ruledhbox{$\hoed{H}$} \ruledhbox{$\hoed{\tf H}$} \slang{H} $ +% +% But that nills the italic correction (and I'm in nood to mess with that again). +% +% \definemathaccents [myaccents] [color=darkred] +% \definemathtopaccent [myaccents] [mywidehat] ["0302] +% +% $ \hat{H} \widehat{H} \mywidehat{H} $ + +% A first variant (kept for educational purposed): +% +% \installcorenamespace{mathaccents} +% +% \installcommandhandler \??mathaccents {mathaccent} \??mathaccents +% +% \let\setupmathaccents\setupmathaccent +% +% \setupmathaccents +% [\c!top=, +% \c!bottom=, +% \c!mathstyle=, +% \c!color=, +% \c!command=\v!yes] +% +% \appendtoks +% \edef\p_top_bottom{\namedmathaccentparameter\currentmathaccent\c!top\namedmathaccentparameter\currentmathaccent\c!bottom}% +% \ifx\p_top_bottom\empty\else +% \edef\p_command{\mathaccentparameter\c!command}% +% \ifx\p_command\v!yes +% \setuevalue\currentmathaccent{\math_accent{\currentmathaccent}}% +% \fi +% \fi +% \to \everydefinemathaccent +% +% \def\math_accented_color_do_push{\pushcolor[\p_math_accent_color]} +% \let\math_accented_color_do_pop \popcolor +% +% \unexpanded\def\math_accent#1#2% +% {\begingroup +% \edef\currentmathaccent{#1}% +% \edef\p_math_accent_top {\mathaccentparameter\c!top}% +% \edef\p_math_accent_bottom{\mathaccentparameter\c!bottom}% +% \edef\p_math_accent_color {\mathaccentparameter\c!color}% +% \startusemathstyleparameter\mathaccentparameter +% \ifx\p_math_accented_color\empty +% \let\math_accented_color_do_pop\donothing +% \else +% \let\math_accented_color_do_pop\popcolor +% \math_accented_color_do_push +% \fi +% \ifx\p_math_accent_top\empty +% \ifx\p_math_accent_bottom\empty +% \else +% \Umathaccent bottom \fam\zerocount\p_math_accent_bottom +% \fi +% \else +% \ifx\p_math_accent_bottom\empty +% \Umathaccent \fam\zerocount\p_math_accent_top +% \else +% \Umathaccent both \fam\zerocount\p_math_accent_top +% \fam\zerocount\p_math_accent_bottom +% \fi +% \fi +% {\popcolor#2}% +% \stopusemathstyleparameter +% \endgroup} +% +% \definemathaccent [myaccents] [\c!color=red] +% \definemathaccent [mywidehat] [myaccents] [\c!top="0302] + +\installcorenamespace{mathaccents} + +\installcommandhandler \??mathaccents {mathaccents} \??mathaccents + +\setupmathaccents + [\c!top=, + \c!bottom=, + \c!mathstyle=, + \c!color=, + \c!command=\v!yes] + +\definemathaccents + [\v!both] + +\definemathaccents + [\v!top] + [\v!both] + +\definemathaccents + [\v!bottom] + [\v!both] + +\unexpanded\def\definemathtopaccent {\dotripleempty \math_accents_define_top } +\unexpanded\def\definemathbottomaccent{\dotripleempty \math_accents_define_bottom} +\unexpanded\def\definemathdoubleaccent{\doquadrupleempty\math_accents_define_double} + +\def\math_accents_define_top[#1][#2][#3]% class name top + {\ifthirdargument + \setuevalue{#2}{\math_accents_make_double {#1}\plusone{\number#3}\zerocount}% + \else + \setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plusone{\number#2}\zerocount}% + \fi} + +\def\math_accents_define_bottom[#1][#2][#3]% class name bottom + {\ifthirdargument + \setuevalue{#2}{\math_accents_make_double {#1}\plustwo\zerocount{\number#3}}% + \else + \setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plustwo\zerocount{\number#2}}% + \fi} + +\def\math_accents_define_double[#1][#2][#3][#4]% class name top bottom + {\iffourthargument + \setuevalue{#2}{\math_accents_make_double {#1}\plusthree{\number#3}{\number#4}}% + \else + \setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plusthree{\number#2}{\number#3}}% + \fi} + +\def\math_accents_color_push_yes + {\pushcolor[\p_math_accent_color]% + \let\math_accents_color_pop\popcolor} + +\def\math_accents_color_push_nop + {\let\math_accents_color_pop\donothing} + +\unexpanded\def\math_accents_make_double#class#kind#top#bottom#content% + {\begingroup + \edef\currentmathaccents {#class}% + \edef\p_math_accent_color{\mathaccentsparameter\c!color}% + \startusemathstyleparameter\mathaccentsparameter + \ifx\p_math_accent_color\empty + \math_accents_color_push_nop + \else + \math_accents_color_push_yes + \fi + \ifcase#kind\or + \Umathaccent \fam\zerocount#top + \or + \Umathaccent bottom \fam\zerocount#bottom + \or + \Umathaccent both \fam\zerocount#top + \fam\zerocount#bottom + \fi + {\math_accents_color_pop#content}% + \stopusemathstyleparameter + \endgroup} + +\protect \endinput diff --git a/tex/context/base/math-act.lua b/tex/context/base/math-act.lua index c8d862ffc..84549ca52 100644 --- a/tex/context/base/math-act.lua +++ b/tex/context/base/math-act.lua @@ -392,6 +392,7 @@ local setmetatableindex = table.setmetatableindex local family_font = node.family_font local fontcharacters = fonts.hashes.characters +local fontdescriptions = fonts.hashes.descriptions local extensibles = utilities.storage.allocate() fonts.hashes.extensibles = extensibles @@ -415,24 +416,34 @@ local function extensiblecode(font,unicode) if not character then return unknown end + local first = character.next local code = unicode - local next = character.next + local next = first while next do code = next character = characters[next] next = character.next end local char = chardata[unicode] - local mathextensible = char and char.mathextensible + if not char then + return unknown + end if character.horiz_variants then if character.vert_variants then return { e_mixed, code, character } else - local e = mathextensible and extensibles[mathextensible] + local m = char.mathextensible + local e = m and extensibles[m] return e and { e, code, character } or unknown end elseif character.vert_variants then - local e = mathextensible and extensibles[mathextensible] + local m = char.mathextensible + local e = m and extensibles[m] + return e and { e, code, character } or unknown + elseif first then + -- assume accent (they seldom stretch .. sizes) + local m = char.mathextensible or char.mathstretch + local e = m and extensibles[m] return e and { e, code, character } or unknown else return unknown @@ -465,31 +476,32 @@ end -- abs(right["start"] - right["end"]) | right.advance | characters[right.glyph].width function commands.horizontalcode(family,unicode) - local font = family_font(family or 0) - local data = extensibles[font][unicode] - local kind = data[1] + local font = family_font(family or 0) + local data = extensibles[font][unicode] + local kind = data[1] + local loffset = 0 + local roffset = 0 if kind == e_left then local charlist = data[3].horiz_variants - local characters = fontcharacters[font] - local left = charlist[1] - texsetdimen("scratchleftoffset",abs((left["start"] or 0) - (left["end"] or 0))) - texsetdimen("scratchrightoffset",0) + if charlist then + local left = charlist[1] + loffset = abs((left["start"] or 0) - (left["end"] or 0)) + end elseif kind == e_right then local charlist = data[3].horiz_variants - local characters = fontcharacters[font] local right = charlist[#charlist] - texsetdimen("scratchleftoffset",0) - texsetdimen("scratchrightoffset",abs((right["start"] or 0) - (right["end"] or 0))) + roffset = abs((right["start"] or 0) - (right["end"] or 0)) elseif kind == e_horizontal then local charlist = data[3].horiz_variants - local characters = fontcharacters[font] - local left = charlist[1] - local right = charlist[#charlist] - texsetdimen("scratchleftoffset", abs((left ["start"] or 0) - (left ["end"] or 0))) - texsetdimen("scratchrightoffset",abs((right["start"] or 0) - (right["end"] or 0))) + if charlist then + local left = charlist[1] + local right = charlist[#charlist] + loffset = abs((left ["start"] or 0) - (left ["end"] or 0)) + roffset = abs((right["start"] or 0) - (right["end"] or 0)) + end else - texsetdimen("scratchleftoffset",0) - texsetdimen("scratchrightoffset",0) end + texsetdimen("scratchleftoffset",loffset) + texsetdimen("scratchrightoffset",roffset) context(kind) end diff --git a/tex/context/base/math-fbk.lua b/tex/context/base/math-fbk.lua index 383b08f0d..96f7be81b 100644 --- a/tex/context/base/math-fbk.lua +++ b/tex/context/base/math-fbk.lua @@ -314,14 +314,7 @@ end -- we could move the defs from math-act here -addextra(0xFE3DE, { description="EXTENSIBLE OF 0x03DE", unicodeslot=0xFE3DE, mathextensible = "r", mathstretch = "h" } ) -addextra(0xFE3DF, { description="EXTENSIBLE OF 0x03DF", unicodeslot=0xFE3DF, mathextensible = "r", mathstretch = "h" } ) -addextra(0xFE3DC, { description="EXTENSIBLE OF 0x03DC", unicodeslot=0xFE3DC, mathextensible = "r", mathstretch = "h" } ) -addextra(0xFE3DD, { description="EXTENSIBLE OF 0x03DD", unicodeslot=0xFE3DD, mathextensible = "r", mathstretch = "h" } ) -addextra(0xFE3B4, { description="EXTENSIBLE OF 0x03B4", unicodeslot=0xFE3B4, mathextensible = "r", mathstretch = "h" } ) -addextra(0xFE3B5, { description="EXTENSIBLE OF 0x03B5", unicodeslot=0xFE3B5, mathextensible = "r", mathstretch = "h" } ) - -local function accent_to_extensible(target,newchr,original,oldchr,height,depth,swap) +local function accent_to_extensible(target,newchr,original,oldchr,height,depth,swap,offset) local characters = target.characters local addprivate = fonts.helpers.addprivate local olddata = characters[oldchr] @@ -334,7 +327,7 @@ local function accent_to_extensible(target,newchr,original,oldchr,height,depth,s height = height or 0 depth = depth or 0 end - local correction = swap and { "down", (olddata.height or 0) - height } or { "down", olddata.height } + local correction = swap and { "down", (olddata.height or 0) - height } or { "down", olddata.height + (offset or 0)} local newdata = { commands = { correction, { "slot", 1, oldchr } }, width = olddata.width, @@ -400,44 +393,45 @@ end virtualcharacters[0xFE33E] = virtualcharacters[0x203E] -- convenient virtualcharacters[0xFE33F] = virtualcharacters[0x203E] -- convenient -virtualcharacters[0xFE3DE] = function(data) - local target, original = data.target, data.original - local chardata = target.characters[0x23DE] +local function smashed(data,unicode,swap,private) + local target = data.target + local original = data.original + local chardata = target.characters[unicode] if chardata and chardata.height > target.parameters.xheight then - return accent_to_extensible(target,0xFE3DE,original,0x23DE,0,0,0x23DF) + return accent_to_extensible(target,private,original,unicode,0,0,swap) else - return original.characters[0x23DE] + return original.characters[unicode] end end -virtualcharacters[0xFE3DC] = function(data) - local target, original = data.target, data.original - local chardata = target.characters[0x23DC] - if chardata and chardata.height > target.parameters.xheight then - return accent_to_extensible(target,0xFE3DC,original,0x23DC,0,0,0x23DD) - else - return original.characters[0x23DC] - end -end +addextra(0xFE3DE, { description="EXTENSIBLE OF 0x03DE", unicodeslot=0xFE3DE, mathextensible = "r", mathstretch = "h" } ) +addextra(0xFE3DC, { description="EXTENSIBLE OF 0x03DC", unicodeslot=0xFE3DC, mathextensible = "r", mathstretch = "h" } ) +addextra(0xFE3B4, { description="EXTENSIBLE OF 0x03B4", unicodeslot=0xFE3B4, mathextensible = "r", mathstretch = "h" } ) -virtualcharacters[0xFE3B4] = function(data) - local target, original = data.target, data.original - local chardata = target.characters[0x23B4] - if chardata and chardata.height > target.parameters.xheight then - return accent_to_extensible(target,0xFE3B4,original,0x23B4,0,0,0x23B5) - else - return original.characters[0x23B4] - end -end +virtualcharacters[0xFE3DE] = function(data) return smashed(data,0x23DE,0x23DF,0xFE3DE) end +virtualcharacters[0xFE3DC] = function(data) return smashed(data,0x23DC,0x23DD,0xFE3DC) end +virtualcharacters[0xFE3B4] = function(data) return smashed(data,0x23B4,0x23B5,0xFE3B4) end -virtualcharacters[0xFE3DF] = function(data) - return data.original.characters[0x23DF] -end +addextra(0xFE3DF, { description="EXTENSIBLE OF 0x03DF", unicodeslot=0xFE3DF, mathextensible = "r", mathstretch = "h" } ) +addextra(0xFE3DD, { description="EXTENSIBLE OF 0x03DD", unicodeslot=0xFE3DD, mathextensible = "r", mathstretch = "h" } ) +addextra(0xFE3B5, { description="EXTENSIBLE OF 0x03B5", unicodeslot=0xFE3B5, mathextensible = "r", mathstretch = "h" } ) -virtualcharacters[0xFE3DD] = function(data) - return data.original.characters[0x23DD] -end +virtualcharacters[0xFE3DF] = function(data) return data.original.characters[0x23DF] end +virtualcharacters[0xFE3DD] = function(data) return data.original.characters[0x23DD] end +virtualcharacters[0xFE3B5] = function(data) return data.original.characters[0x23B5] end + +-- todo: add some more .. numbers might change -virtualcharacters[0xFE3B5] = function(data) - return data.original.characters[0x23B5] +addextra(0xFE302, { description="EXTENSIBLE OF 0x0302", unicodeslot=0xFE302, mathstretch = "h" } ) +addextra(0xFE303, { description="EXTENSIBLE OF 0x0303", unicodeslot=0xFE303, mathstretch = "h" } ) + +local function smashed(data,unicode,private) + local target = data.target + local height = target.parameters.xheight / 2 + local c = accent_to_extensible(target,private,data.original,unicode,height,0,nil,-height) + c.top_accent = nil + return c end + +virtualcharacters[0xFE302] = function(data) return smashed(data,0x0302,0xFE302) end +virtualcharacters[0xFE303] = function(data) return smashed(data,0x0303,0xFE303) end diff --git a/tex/context/base/math-fen.mkiv b/tex/context/base/math-fen.mkiv index 74a870277..640821bad 100644 --- a/tex/context/base/math-fen.mkiv +++ b/tex/context/base/math-fen.mkiv @@ -11,6 +11,8 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. +% 0x -> " + \writestatus{loading}{ConTeXt Math Macros / Fences} \unprotect @@ -32,9 +34,6 @@ % test $a\fancybracket{\frac{1}{b}}c$ test \par \installcorenamespace{mathfences} -\installcorenamespace{mathfencesleft} -\installcorenamespace{mathfencesmiddle} -\installcorenamespace{mathfencesright} \installcommandhandler \??mathfences {mathfence} \??mathfences @@ -55,40 +54,36 @@ \fi \to \everydefinemathfence -\def\math_fenced_left {\normalleft \utfchar{\mathfenceparameter\c!left }} % no Uchar here -\def\math_fenced_middle{\normalmiddle\utfchar{\mathfenceparameter\c!middle}} % no Uchar here -\def\math_fenced_right {\normalright \utfchar{\mathfenceparameter\c!right }} % no Uchar here +% no Uchar here: + +\def\math_fenced_left {\math_fenced_color_push\normalleft \utfchar{\mathfenceparameter\c!left }\math_fenced_color_pop} +\def\math_fenced_middle{\mskip\thinmuskip + \math_fenced_color_push\normalmiddle\utfchar{\mathfenceparameter\c!middle}\math_fenced_color_pop + \mskip\thinmuskip} +\def\math_fenced_right {\math_fenced_color_push\normalright \utfchar{\mathfenceparameter\c!right }\math_fenced_color_pop} + +\def\math_fenced_color_do_push{\pushcolor[\p_math_fenced_color]} +\let\math_fenced_color_do_pop \popcolor \let\fence \relax \let\fenced\relax -\unexpanded\def\math_fenced_fenced[#1]% +\unexpanded\def\math_fenced_fenced[#1]#2% {\begingroup \edef\currentmathfence{#1}% \startusemathstyleparameter\mathfenceparameter \let\fence\math_fenced_middle \edef\p_math_fenced_color{\mathfenceparameter\c!color}% \ifx\p_math_fenced_color\empty - \expandafter\math_fenced_normal + \let\math_fenced_color_push\donothing + \let\math_fenced_color_pop \donothing \else - \expandafter\math_fenced_colored - \fi} - -\def\math_fenced_normal#1% - {\math_fenced_left - #1% - \math_fenced_right - \stopusemathstyleparameter - \endgroup} - -\def\math_fenced_colored#1% - {\pushcolor[\p_math_fenced_color]% + \let\math_fenced_color_push\math_fenced_color_do_push + \let\math_fenced_color_pop \math_fenced_color_do_pop + \fi \math_fenced_left - \popcolor - #1% - \pushcolor[\p_math_fenced_color]% + #2% \math_fenced_right - \popcolor \stopusemathstyleparameter \endgroup} @@ -105,4 +100,9 @@ %definemathfence [fancybracket] [bracket] [command=yes,color=red] +% experimental accents: +% +% \definemathoverextensible [top] [hoed] ["FE302] +% \definemathoverextensible [top] [slang] ["FE303] + \protect diff --git a/tex/context/base/math-stc.mkvi b/tex/context/base/math-stc.mkvi index 9a98d4d5d..87db7aacb 100644 --- a/tex/context/base/math-stc.mkvi +++ b/tex/context/base/math-stc.mkvi @@ -60,6 +60,9 @@ \installcorenamespace {mathextensiblefallbacks} +% currently no italic correction ... problem is that we don't know yet if we have an italic +% below so we we need to postpone + \def\math_stackers_fallback {\hbox to \scratchwidth{\csname\??mathextensiblefallbacks\ifcsname\??mathextensiblefallbacks\number\scratchunicode\endcsname\number\scratchunicode\fi\endcsname}} %{\csname\??mathextensiblefallbacks\ifcsname\??mathextensiblefallbacks\number\scratchunicode\endcsname\number\scratchunicode\fi\endcsname } @@ -77,15 +80,15 @@ \setvalue{\??mathextensiblefallbacks}{\hbox{\vrule\!!width\scratchwidth\!!height.1\exheight\!!depth\zeropoint}} -\def\math_stackers_with_fallback#codepoint% - {\begingroup - \scratchunicode#codepoint\relax - \ifcase\mathextensiblecode\fam\scratchunicode\relax - \math_stackers_fallback - \else - \math_stackers_stretch - \fi - \endgroup} +% \def\math_stackers_with_fallback#codepoint% +% {\begingroup +% \scratchunicode#codepoint\relax +% \ifcase\mathextensiblecode\fam\scratchunicode\relax +% \math_stackers_fallback +% \else +% \math_stackers_stretch +% \fi +% \endgroup} %D We don't really need this because we can assume that fonts have the right %D extensibles. If needed I will make a general virtual extender for \OPENTYPE\ @@ -512,26 +515,26 @@ \expandafter\endgroup \fi} -\unexpanded\def\definemathoverextensible {\dotripleempty \math_extensiblies_define_over } -\unexpanded\def\definemathunderextensible {\dotripleempty \math_extensiblies_define_under} -\unexpanded\def\definemathdoubleextensible{\doquadrupleempty\math_extensiblies_define_double} +\unexpanded\def\definemathoverextensible {\dotripleempty \math_extensibles_define_over } +\unexpanded\def\definemathunderextensible {\dotripleempty \math_extensibles_define_under} +\unexpanded\def\definemathdoubleextensible{\doquadrupleempty\math_extensibles_define_double} -\def\math_extensiblies_define_over[#1][#2][#3]% +\def\math_extensibles_define_over[#1][#2][#3]% {\ifthirdargument \setuevalue{#2}{\math_stackers_make_double\plusone \zerocount{#1}{\number#3}{0}}% \else \setuevalue{#1}{\math_stackers_make_double\plusone \zerocount\noexpand\currentmathstackers{\number#2}{0}}% \fi} -\def\math_extensiblies_define_under[#1][#2][#3]% +\def\math_extensibles_define_under[#1][#2][#3]% {\ifthirdargument \setuevalue{#2}{\math_stackers_make_double\zerocount\plusone{#1}{\number#3}{0}}% \else \setuevalue{#1}{\math_stackers_make_double\zerocount\plusone\noexpand\currentmathstackers{\number#2}{0}}% \fi} -\def\math_extensiblies_define_double[#1][#2][#3][#4]% - {\ifthirdargument +\def\math_extensibles_define_double[#1][#2][#3][#4]% + {\iffourthargument \setuevalue{#2}{\math_stackers_make_double\plusone \plusone{#1}{\number#3}{\number#4}}% \else \setuevalue{#1}{\math_stackers_make_double\plusone \plusone\noexpand\currentmathstackers{\number#2}{\number#3}}% diff --git a/tex/context/base/mult-de.mkii b/tex/context/base/mult-de.mkii index ab5e66140..4b7a54e61 100644 --- a/tex/context/base/mult-de.mkii +++ b/tex/context/base/mult-de.mkii @@ -630,6 +630,7 @@ \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} +\setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{fortsetzen} \setinterfaceconstant{contrastcolor}{kontrastfarbe} @@ -798,6 +799,7 @@ \setinterfaceconstant{marginedge}{marginalkante} \setinterfaceconstant{marginedgetext}{marginalkantetext} \setinterfaceconstant{margintext}{marginaltext} +\setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{beschriftung} \setinterfaceconstant{marstyle}{beschrstil} \setinterfaceconstant{mask}{mask} diff --git a/tex/context/base/mult-def.lua b/tex/context/base/mult-def.lua index 8c515ba8b..07e1139f0 100644 --- a/tex/context/base/mult-def.lua +++ b/tex/context/base/mult-def.lua @@ -6982,6 +6982,10 @@ return { ["pe"]="قبل‌ازسر", ["ro"]="inaintetitlu", }, + ["concerns"]={ + ["en"]="concerns", + ["nl"]="betreft", + }, ["bet"]={ ["cs"]="bet", ["de"]="bet", @@ -8361,6 +8365,10 @@ return { ["pe"]="آیتمها", ["ro"]="elemente", }, + ["mark"]={ + ["en"]="mark", + ["nl"]="kernmerk", + }, ["ken"]={ ["cs"]="ken", ["de"]="ken", diff --git a/tex/context/base/mult-en.mkii b/tex/context/base/mult-en.mkii index a543151ce..7b06ec627 100644 --- a/tex/context/base/mult-en.mkii +++ b/tex/context/base/mult-en.mkii @@ -630,6 +630,7 @@ \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} +\setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{continue} \setinterfaceconstant{contrastcolor}{contrastcolor} @@ -798,6 +799,7 @@ \setinterfaceconstant{marginedge}{marginedge} \setinterfaceconstant{marginedgetext}{marginedgetext} \setinterfaceconstant{margintext}{margintext} +\setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{marking} \setinterfaceconstant{marstyle}{marstyle} \setinterfaceconstant{mask}{mask} diff --git a/tex/context/base/mult-fr.mkii b/tex/context/base/mult-fr.mkii index 10c9e6713..55aa3af79 100644 --- a/tex/context/base/mult-fr.mkii +++ b/tex/context/base/mult-fr.mkii @@ -630,6 +630,7 @@ \setinterfaceconstant{component}{composant} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} +\setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{continue} \setinterfaceconstant{contrastcolor}{coleurcontraste} @@ -798,6 +799,7 @@ \setinterfaceconstant{marginedge}{bordmarge} \setinterfaceconstant{marginedgetext}{textebordmarge} \setinterfaceconstant{margintext}{textemarge} +\setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{marquage} \setinterfaceconstant{marstyle}{stylemarquage} \setinterfaceconstant{mask}{mask} diff --git a/tex/context/base/mult-it.mkii b/tex/context/base/mult-it.mkii index c485cbf31..6d3591c04 100644 --- a/tex/context/base/mult-it.mkii +++ b/tex/context/base/mult-it.mkii @@ -630,6 +630,7 @@ \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} +\setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{continua} \setinterfaceconstant{contrastcolor}{colorecontrasto} @@ -798,6 +799,7 @@ \setinterfaceconstant{marginedge}{bordomargine} \setinterfaceconstant{marginedgetext}{testobordomargine} \setinterfaceconstant{margintext}{testomargine} +\setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{marcatura} \setinterfaceconstant{marstyle}{stilemarcatura} \setinterfaceconstant{mask}{mask} diff --git a/tex/context/base/mult-nl.mkii b/tex/context/base/mult-nl.mkii index adaf09b01..275f86c1a 100644 --- a/tex/context/base/mult-nl.mkii +++ b/tex/context/base/mult-nl.mkii @@ -630,6 +630,7 @@ \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{koppelteken} \setinterfaceconstant{compress}{comprimeren} +\setinterfaceconstant{concerns}{betreft} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{doorgaan} \setinterfaceconstant{contrastcolor}{contrastkleur} @@ -798,6 +799,7 @@ \setinterfaceconstant{marginedge}{kantlijn} \setinterfaceconstant{marginedgetext}{kantlijntekst} \setinterfaceconstant{margintext}{margetekst} +\setinterfaceconstant{mark}{kernmerk} \setinterfaceconstant{marking}{markering} \setinterfaceconstant{marstyle}{marletter} \setinterfaceconstant{mask}{masker} diff --git a/tex/context/base/mult-pe.mkii b/tex/context/base/mult-pe.mkii index 5954d1d6f..cff5dfce4 100644 --- a/tex/context/base/mult-pe.mkii +++ b/tex/context/base/mult-pe.mkii @@ -630,6 +630,7 @@ \setinterfaceconstant{component}{مولفه} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{فشردن} +\setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{ادامه} \setinterfaceconstant{contrastcolor}{contrastcolor} @@ -798,6 +799,7 @@ \setinterfaceconstant{marginedge}{لبه‌حاشیه} \setinterfaceconstant{marginedgetext}{متن‌لبه‌حاشیه} \setinterfaceconstant{margintext}{متن‌حاشیه} +\setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{نشانه‌گذاری} \setinterfaceconstant{marstyle}{سبک‌حاش} \setinterfaceconstant{mask}{mask} diff --git a/tex/context/base/mult-ro.mkii b/tex/context/base/mult-ro.mkii index 4fa4d3ce1..e901e28f4 100644 --- a/tex/context/base/mult-ro.mkii +++ b/tex/context/base/mult-ro.mkii @@ -630,6 +630,7 @@ \setinterfaceconstant{component}{component} \setinterfaceconstant{compoundhyphen}{compoundhyphen} \setinterfaceconstant{compress}{compress} +\setinterfaceconstant{concerns}{concerns} \setinterfaceconstant{connector}{connector} \setinterfaceconstant{continue}{continua} \setinterfaceconstant{contrastcolor}{culoarecontrast} @@ -798,6 +799,7 @@ \setinterfaceconstant{marginedge}{coltbordura} \setinterfaceconstant{marginedgetext}{textcoltbordura} \setinterfaceconstant{margintext}{textmargine} +\setinterfaceconstant{mark}{mark} \setinterfaceconstant{marking}{marcaje} \setinterfaceconstant{marstyle}{stilmarcaj} \setinterfaceconstant{mask}{mask} diff --git a/tex/context/base/page-lay.mkiv b/tex/context/base/page-lay.mkiv index c0d897522..1ff837d5e 100644 --- a/tex/context/base/page-lay.mkiv +++ b/tex/context/base/page-lay.mkiv @@ -597,7 +597,7 @@ \let\p_page_layouts_height\empty \def\page_layouts_synchronize - {\setups[\layoutparameter\c!preset]% + {\setups[\layoutparameter\c!preset]\relax \global\leftmarginwidth \layoutparameter\c!leftmargin \global\rightmarginwidth\layoutparameter\c!rightmargin \global\leftedgewidth \layoutparameter\c!leftedge diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv index 9b74b273a..05e4336bc 100644 --- a/tex/context/base/spac-ver.mkiv +++ b/tex/context/base/spac-ver.mkiv @@ -2073,4 +2073,30 @@ % % \def\shapefill{\vskip\zeropoint\s!plus\lineheight\s!minus\lineheight\relax} +%D Nasty: + +% \writestatus{1}{\the\prevdepth} \blank[force,5*big] { \writestatus{1}{\the\prevdepth} \baselineskip1cm xxxxxxxxx \par } \page +% \writestatus{2}{\the\prevdepth} \blank[force,5*big] { \writestatus{2}{\the\prevdepth} \baselineskip1cm xxxxxxxxx \par } \page +% \writestatus{3}{\the\prevdepth} \blank[force,5*big] { \writestatus{3}{\the\prevdepth} \baselineskip5cm xxxxxxxxx \par } \page +% \writestatus{4}{\the\prevdepth} \input tufte \page +% \writestatus{5}{\the\prevdepth} \input tufte \page +% \writestatus{6}{\the\prevdepth} \blank[force,5*big] { \writestatus{6}{\the\prevdepth} \baselineskip1cm xxxxxxxxx \par } \page + +% \writestatus{1}{\the\prevdepth} \null\vskip4cm { \writestatus{1}{\the\prevdepth} \baselineskip1cm xxxxxxxxx \par } \page +% \writestatus{2}{\the\prevdepth} \null\vskip4cm { \writestatus{2}{\the\prevdepth} \baselineskip1cm xxxxxxxxx \par } \page +% \writestatus{3}{\the\prevdepth} \null\vskip4cm { \writestatus{3}{\the\prevdepth} \baselineskip5cm xxxxxxxxx \par } \page +% \writestatus{4}{\the\prevdepth} \input tufte \page +% \writestatus{5}{\the\prevdepth} \input tufte \page +% \writestatus{6}{\the\prevdepth} \null\vskip4cm { \writestatus{6}{\the\prevdepth} \baselineskip1cm xxxxxxxxx \par } \page + +\appendtoks + \prevdepth\zeropoint % consistent, else first page -1000pt .. needed for fixed,3*big first/successive pages consistency +\to \everystarttext + +\prevdepth\zeropoint + +\appendtoks + \ctxcommand{resetprevdepth()}% +\to \everyafteroutput + \protect \endinput diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index d6a048831..035c411ba 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.log b/tex/context/base/status-lua.log index feca5a6e1..3ad484d9b 100644 --- a/tex/context/base/status-lua.log +++ b/tex/context/base/status-lua.log @@ -1,6 +1,6 @@ (cont-yes.mkiv -ConTeXt ver: 2013.07.24 14:11 MKIV beta fmt: 2013.7.24 int: english/english +ConTeXt ver: 2013.07.31 20:23 MKIV beta fmt: 2013.7.31 int: english/english system > 'cont-new.mkiv' loaded (cont-new.mkiv) diff --git a/tex/context/base/status-mkiv.lua b/tex/context/base/status-mkiv.lua index 1e8d55c9c..62bfc790c 100644 --- a/tex/context/base/status-mkiv.lua +++ b/tex/context/base/status-mkiv.lua @@ -1817,6 +1817,12 @@ return { loading = "always", status = "okay", }, + { + category = "mkvi", + filename = "math-acc", + loading = "always", + status = "okay", + }, { category = "mkiv", comment = "at least for the moment", diff --git a/tex/context/base/typo-txt.mkvi b/tex/context/base/typo-txt.mkvi index f1c80c1bd..57f4e5f42 100644 --- a/tex/context/base/typo-txt.mkvi +++ b/tex/context/base/typo-txt.mkvi @@ -36,7 +36,7 @@ %D Consider for instance: %D %D \startbuffer[a] -%D \NormalizeFontHeight \TempFont {X} {2\baselineskip} {Serif} +%D \normalizefontheight \TempFont {X} {2\baselineskip} {Serif} %D \stopbuffer %D %D \startbuffer[b] @@ -54,7 +54,7 @@ %D The horizontal counterpart is: %D %D \startbuffer[a] -%D \NormalizeFontWidth \TempFont {This Line Fits} {\hsize} {Serif} +%D \normalizefontwidth \TempFont {This Line Fits} {\hsize} {Serif} %D \stopbuffer %D %D \startbuffer[b] diff --git a/tex/context/base/util-sql-users.lua b/tex/context/base/util-sql-users.lua index ea8fb4e07..a1f433946 100644 --- a/tex/context/base/util-sql-users.lua +++ b/tex/context/base/util-sql-users.lua @@ -17,7 +17,7 @@ local sql = utilities.sql local format, upper, find, gsub, topattern = string.format, string.upper, string.find, string.gsub, string.topattern local sumhexa = md5.sumhexa -local booleanstring = string.booleanstring +local toboolean = string.toboolean local sql = utilities.sql local users = { } @@ -244,7 +244,7 @@ function users.add(db,specification) fullname = name or fullname, password = encryptpassword(specification.password or ""), group = groupnumbers[specification.group] or groupnumbers.guest, - enabled = booleanstring(specification.enabled) and "1" or "0", + enabled = toboolean(specification.enabled) and "1" or "0", email = specification.email, address = specification.address, theme = specification.theme, @@ -354,7 +354,7 @@ function users.save(db,id,specification) fullname = fullname, password = encryptpassword(password), group = groupnumbers[group], - enabled = booleanstring(enabled) and "1" or "0", + enabled = toboolean(enabled) and "1" or "0", email = email, address = address, theme = theme, diff --git a/tex/context/interface/keys-cs.xml b/tex/context/interface/keys-cs.xml index 7853f731b..f7de67072 100644 --- a/tex/context/interface/keys-cs.xml +++ b/tex/context/interface/keys-cs.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml index 6d6b8858e..07add1d02 100644 --- a/tex/context/interface/keys-de.xml +++ b/tex/context/interface/keys-de.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml index b0777e355..954dcffd2 100644 --- a/tex/context/interface/keys-en.xml +++ b/tex/context/interface/keys-en.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml index 2633fe572..b71707d8f 100644 --- a/tex/context/interface/keys-fr.xml +++ b/tex/context/interface/keys-fr.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml index 7cd34c3b6..ffdc8e2a6 100644 --- a/tex/context/interface/keys-it.xml +++ b/tex/context/interface/keys-it.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml index 3b427906a..b09d73183 100644 --- a/tex/context/interface/keys-nl.xml +++ b/tex/context/interface/keys-nl.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/context/interface/keys-pe.xml b/tex/context/interface/keys-pe.xml index 64bad296e..069de9a1f 100644 --- a/tex/context/interface/keys-pe.xml +++ b/tex/context/interface/keys-pe.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml index d23d1b7bc..b16f25e2c 100644 --- a/tex/context/interface/keys-ro.xml +++ b/tex/context/interface/keys-ro.xml @@ -636,6 +636,7 @@ + @@ -804,6 +805,7 @@ + diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 5b98b1938..621b9ae0b 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 : 07/24/13 14:11:45 +-- merge date : 07/31/13 20:23:22 do -- begin closure to overcome local limits and interference @@ -2416,9 +2416,9 @@ function string.booleanstring(str) end function string.is_boolean(str,default) if type(str)=="string" then - if str=="true" or str=="yes" or str=="on" or str=="t" then + if str=="true" or str=="yes" or str=="on" or str=="t" or str=="1" then return true - elseif str=="false" or str=="no" or str=="off" or str=="f" then + elseif str=="false" or str=="no" or str=="off" or str=="f" or str=="0" then return false end end -- cgit v1.2.3