From 545a45bb3326f41abba973d83bd34072f7d6e664 Mon Sep 17 00:00:00 2001 From: Marius Date: Mon, 2 Jan 2012 20:40:23 +0200 Subject: beta 2012.01.02 19:23 --- tex/context/base/colo-ini.mkiv | 25 +- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4073 -> 4072 bytes tex/context/base/context-version.png | Bin 104054 -> 104249 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/mlib-pps.lua | 12 +- tex/context/base/mult-sys.mkiv | 7 - tex/context/base/spac-def.mkiv | 6 +- tex/context/base/spac-hor.mkiv | 78 +++--- tex/context/base/spac-ver.mkiv | 287 +++++++++------------ tex/context/base/status-files.pdf | Bin 24170 -> 24199 bytes tex/context/base/status-lua.pdf | Bin 170106 -> 170104 bytes tex/context/base/status-mkiv.tex | 8 +- tex/context/base/tabl-xtb.lua | 48 ++-- tex/context/base/tabl-xtb.mkvi | 14 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 18 files changed, 233 insertions(+), 262 deletions(-) (limited to 'tex') diff --git a/tex/context/base/colo-ini.mkiv b/tex/context/base/colo-ini.mkiv index 00181f722..cddefe996 100644 --- a/tex/context/base/colo-ini.mkiv +++ b/tex/context/base/colo-ini.mkiv @@ -116,19 +116,13 @@ % \testfeatureonce{100000}{\color[red]{}} % 1.046 => 0.541 -\def\@colored@{@colored@} - \unexpanded\def\switchtocolor[#1]{\csname#1\endcsname} -%unexpanded\def\color [#1]{\groupedcommand{\colo_helpers_activate{#1}}{}} - \unexpanded\def\color [#1]{\bgroup \def\g_color{\colo_helpers_activate{#1}}% \afterassignment\g_color \let\nexttoken} -%unexpanded\def\graycolor [#1]{\groupedcommand{\colo_helpers_set_model\s!gray\colo_helpers_activate{#1}}{}} % special, all embeded also gray - \unexpanded\def\graycolor [#1]{\bgroup \def\g_color{\colo_helpers_set_model\s!gray\colo_helpers_activate{#1}}% \afterassignment\g_color @@ -139,19 +133,18 @@ \unexpanded\def\stopcolor {\endgroup} -%unexpanded\def\colored [#1]{\groupedcommand{\colo_basics_define[\@colored@][#1]\colo_helpers_activate\@colored@}{}} - \unexpanded\def\colored [#1]{\bgroup - \def\g_color{\colo_basics_define[\@colored@][#1]\colo_helpers_activate\@colored@}% + \def\g_color{\colo_basics_defined_and_activated{#1}}% \afterassignment\g_color \let\nexttoken} \unexpanded\def\fastcolored[#1]#2{\begingroup % is this command still needed? - \dodefinefastcolor[\@colored@][#1]% - \colo_helpers_activate\@colored@ + \colo_basics_defined_and_activated{#1}% #2% \endgroup} +\unexpanded\def\directcolored[#1]{\colo_basics_defined_and_activated{#1}} + %D The following command is obsolete: @@ -568,6 +561,8 @@ % Since we couple definitions, we could stick to one test. Todo. Same for mpcolor. +\def\v_colo_dummy_name{d_u_m_m_y} + \letvalue{\??colorsetter-}\empty % used? \letvalue{\??transparencysetter-}\empty % used? @@ -595,6 +590,10 @@ \csname\??transparencysetter\currentcolorname\endcsname \fi} +\def\colo_helpers_activate_dummy + {\csname\??colorsetter \v_colo_dummy_name\endcsname + \csname\??transparencysetter\v_colo_dummy_name\endcsname} + \let\dousecolorparameter\colo_helpers_activate \unexpanded\def\dousecolorhashparameter#1#2% @@ -635,6 +634,10 @@ {\ctxcommand{defineprocesscolor("#1","#2",false,\v_colo_freeze_state)}% \unexpanded\setvalue{#1}{\colo_helpers_activate{#1}}} +\def\colo_basics_defined_and_activated#1% + {\ctxcommand{defineprocesscolor("\v_colo_dummy_name","#1",false,false)}% + \colo_helpers_activate_dummy} + % Spotcolors used setxvalue but that messes up currentcolor % and probably no global is needed either but they are global % at the lua end (true argument) so we keep that if only because diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 6965761e9..8a9337707 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2012.01.02 17:18} +\newcontextversion{2012.01.02 19:23} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 64d63f763..1cd0e3508 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2012.01.02 17:18} +\newcontextversion{2012.01.02 19:23} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 3c2201671..b3213bb61 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png index 13328848d..a273c3c82 100644 Binary files a/tex/context/base/context-version.png and b/tex/context/base/context-version.png differ diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index dce1fa639..77a02c426 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2012.01.02 17:18} +\edef\contextversion{2012.01.02 19:23} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index a84f3fb9d..a19eecf9c 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -23,7 +23,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2012.01.02 17:18} +\edef\contextversion{2012.01.02 19:23} %D For those who want to use this: diff --git a/tex/context/base/mlib-pps.lua b/tex/context/base/mlib-pps.lua index 1d3798a0c..85766a866 100644 --- a/tex/context/base/mlib-pps.lua +++ b/tex/context/base/mlib-pps.lua @@ -736,21 +736,21 @@ local function tx_analyze(object,prescript) -- todo: hash content and reuse them -- no color elseif #c == 1 then if a and t then - s = format("\\colored[s=%f,a=%f,t=%f]%s",c[1],a,t,s) + s = format("\\directcolored[s=%f,a=%f,t=%f]%s",c[1],a,t,s) else - s = format("\\colored[s=%f]%s",c[1],s) + s = format("\\directcolored[s=%f]%s",c[1],s) end elseif #c == 3 then if a and t then - s = format("\\colored[r=%f,g=%f,b=%f,a=%f,t=%f]%s",c[1],c[2],c[3],a,t,s) + s = format("\\directcolored[r=%f,g=%f,b=%f,a=%f,t=%f]%s",c[1],c[2],c[3],a,t,s) else - s = format("\\colored[r=%f,g=%f,b=%f]%s",c[1],c[2],c[3],s) + s = format("\\directcolored[r=%f,g=%f,b=%f]%s",c[1],c[2],c[3],s) end elseif #c == 4 then if a and t then - s = format("\\colored[c=%f,m=%f,y=%f,k=%f,a=%f,t=%f]%s",c[1],c[2],c[3],c[4],a,t,s) + s = format("\\directcolored[c=%f,m=%f,y=%f,k=%f,a=%f,t=%f]%s",c[1],c[2],c[3],c[4],a,t,s) else - s = format("\\colored[c=%f,m=%f,y=%f,k=%f]%s",c[1],c[2],c[3],c[4],s) + s = format("\\directcolored[c=%f,m=%f,y=%f,k=%f]%s",c[1],c[2],c[3],c[4],s) end end context.MPLIBsettext(tx_number,s) -- combine colored in here, saves call diff --git a/tex/context/base/mult-sys.mkiv b/tex/context/base/mult-sys.mkiv index ae9513945..2d7ad1eed 100644 --- a/tex/context/base/mult-sys.mkiv +++ b/tex/context/base/mult-sys.mkiv @@ -437,13 +437,11 @@ \definesystemvariable {fu} % FontSolution \definesystemvariable {fw} % simpleFonts by Wolfgang \definesystemvariable {fx} % FoXet -\definesystemvariable {gr} % GRid \definesystemvariable {gb} % Graphic Bitmaps \definesystemvariable {gi} % Graphic Instance \definesystemvariable {gv} % Graphic Variable \definesystemvariable {ha} % HAng \definesystemvariable {hf} % Helpers Framed -\definesystemvariable {hs} % HSpace \definesystemvariable {id} % Index \definesystemvariable {ih} % InHoudsopgave \definesystemvariable {il} % stelInvulRegelsin @@ -513,7 +511,6 @@ \definesystemvariable {si} % SplIt \definesystemvariable {sl} % SmalLer \definesystemvariable {sp} % SelecteerPapier -\definesystemvariable {sr} % SpacehandleR \definesystemvariable {st} % STickers \definesystemvariable {sx} % Selector \definesystemvariable {ta} % TAb @@ -528,11 +525,7 @@ \definesystemvariable {tt} % TabulaTe \definesystemvariable {tx} % TeXtflow \definesystemvariable {ur} % URl -\definesystemvariable {ut} % strUT -\definesystemvariable {va} % VspAce \definesystemvariable {vn} % VoetNoten -\definesystemvariable {vs} % VSpacing -\definesystemvariable {wz} % whitespace \definesystemvariable {xf} % XML File (xtag) \definesystemvariable {xp} % XML Processing (xtag, so still needed) \definesystemvariable {za} % layout adapt % ZetspiegelAanpassing diff --git a/tex/context/base/spac-def.mkiv b/tex/context/base/spac-def.mkiv index 4ecdc3f25..cdc45d80e 100644 --- a/tex/context/base/spac-def.mkiv +++ b/tex/context/base/spac-def.mkiv @@ -86,9 +86,9 @@ [\v!standard, \v!big] -\definevspacing[\v!default] [\currentblank] -\definevspacing[\v!before] [\v!default] -\definevspacing[\v!inbetween][\v!default] +\definevspacing[\v!default] [\v!big] % todo: needs to adapt to \setupblank +\definevspacing[\v!before] [\v!default] % but we need to avoid circular references +\definevspacing[\v!inbetween][\v!default] % then \definevspacing[\v!after] [\v!before] \setupinterlinespace diff --git a/tex/context/base/spac-hor.mkiv b/tex/context/base/spac-hor.mkiv index 86e77a423..3001b79bd 100644 --- a/tex/context/base/spac-hor.mkiv +++ b/tex/context/base/spac-hor.mkiv @@ -785,46 +785,49 @@ %unexpanded\def\justaperiod {\removeunwantedspaces.} %unexpanded\def\justacomma {\removeunwantedspaces,} -\def\ignorecrlf +\installcorenamespace{hspace} + +\unexpanded\def\ignorecrlf {\let\crlf\justonespace\let\\\crlf} \unexpanded\def\definehspace - {\dotripleempty\dodefinehspace} + {\dotripleempty\spac_hspaces_define} -\def\dodefinehspace[#1][#2][#3]% #1 = optional namespace +\def\spac_hspaces_define[#1][#2][#3]% #1 = optional namespace {\ifthirdargument - \setvalue{\??hs#1:#2}{#3}% + \setvalue{\??hspace#1:#2}{#3}% \else - \setvalue{\??hs:#1}{#2}% + \setvalue{\??hspace:#1}{#2}% \fi} \unexpanded\def\hspace - {\dodoubleempty\dohspace} - -\def\dohspace[#1][#2]% - {\ifsecondargument - \dodohspace[#1][#2]% - \else\iffirstargument - \hspace[][#1]% - \else - \hspace[][\s!default]% - \fi\fi} + {\dodoubleempty\spac_hspaces_insert} -\def\dodohspace[#1][#2]% +\def\spac_hspaces_insert[#1][#2]% {\ifhmode \removeunwantedspaces - \hskip\hspaceamount{#1}{#2}% + \hskip % always a skip even when 0pt + \ifsecondargument + \hspaceamount{#1}{#2}% + \else\iffirstargument + \hspaceamount\empty{#1}% + \else + \hspaceamount\empty\s!default + \fi\fi \expandafter\ignorespaces - \fi} + \fi} \def\hspaceamount#1#2% - {\executeifdefined{\??hs#1:#2}{\executeifdefined{\??hs:#2}\zeropoint}} + {\csname\??hspace + \ifcsname\??hspace#1:#2\endcsname#1:#2\else:\v!none\fi + \endcsname} \definehspace [\v!small] [.25\emspaceamount] \definehspace [\v!medium] [.5\emspaceamount] \definehspace [\v!big] [1\emspaceamount] \definehspace [\v!normal] [1\spaceamount] \definehspace [\v!default] [\spaceamount] +\definehspace [\v!none] [\zeropoint] %D Taken from Taco's math module (cq. \AMS\ macros), but %D adapted to \type {\hspace}: @@ -884,17 +887,23 @@ % % do we need \normalspaceprimitive here? +\installcorenamespace{spaces} + \def\installspacehandler#1#2% needs to set \obeyedspace - {\setvalue{\??sr#1}{#2}} + {\setvalue{\??spaces#1}{#2}} + +\unexpanded\def\spac_spaces_checked_control{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}% +\unexpanded\def\spac_spaces_checked_normal {\mathortext\normalspace{\dontleavehmode\normalspace}}% +\unexpanded\def\spac_spaces_checked_fixed {\mathortext\normalspace{\dontleavehmode\fixedspace}}% \installspacehandler \v!on {\obeyspaces - \unexpanded\def\obeyedspace{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}% + \let\obeyedspace\spac_spaces_checked_control \let\ =\obeyedspace} \installspacehandler \v!yes {\obeyspaces - \unexpanded\def\obeyedspace{\mathortext\normalspace{\dontleavehmode\normalspace}}% + \let\obeyedspace\spac_spaces_checked_normal \let\ =\obeyedspace} \installspacehandler \v!off % == default @@ -904,11 +913,11 @@ \installspacehandler \v!fixed {\obeyspaces - \unexpanded\def\obeyedspace{\mathortext\normalspace{\dontleavehmode\fixedspace}}% + \let\obeyedspace\spac_spaces_checked_fixed \let\ =\obeyedspace} \def\activatespacehandler#1% - {\executeifdefined{\??sr#1}{\activatespacehandler\v!off}} + {\csname\??spaces\ifcsname\??spaces#1\endcsname#1\else\v!off\fi\endcsname} \appendtoks \normalspaces % to be sure @@ -925,18 +934,15 @@ %D %D \typebuffer \getbuffer -% unexpanded is important here as it prevents premature expansion in -% e.g. \normalexpanded{\egroup\sortingparameter\c!next} - \unexpanded\def\autoinsertnextspace - {\futurelet\nexttoken\doautoinsertnextspace} + {\futurelet\nexttoken\spac_spaces_auto_insert_next} -\def\doautoinsertnextspace +\def\spac_spaces_auto_insert_next {\ctxcommand{autonextspace("\meaning\nexttoken")}} % todo, just consult nexttoken at the lua end %D Moved from bib module: -\def\outdented#1% +\unexpanded\def\outdented#1% {\hskip-\hangindent#1\relax} %D Beware: due to char-def this becomes an active character but that @@ -949,19 +955,19 @@ % TODO (but used in languages): -\unexpanded\def\textormathglue#1#2#3% cleaned up one +\unexpanded\def\spac_glues_text_or_math#1#2% {\begingroup \ifmmode - \mskip#1#2% + \mskip#1% \else - \scratchdimen#1\hspaceamount\empty{#3}% + \scratchdimen#1\hspaceamount\empty{#2}% \scratchskip\scratchdimen\!!plus.5\scratchdimen\!!minus.3\scratchdimen \hskip\scratchskip \fi \endgroup} -\def\thinglue {\textormathglue+\thinmuskip 1} -\def\medglue {\textormathglue+\medmuskip 2} -\def\thickglue{\textormathglue+\thickmuskip3} +\unexpanded\def\thinglue {\spac_glues_text_or_math\thinmuskip \v!small} +\unexpanded\def\medglue {\spac_glues_text_or_math\medmuskip \v!medium} +\unexpanded\def\thickglue{\spac_glues_text_or_math\thickmuskip\v!big} \protect \endinput diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv index 5725ceb4f..4a37b0a3a 100644 --- a/tex/context/base/spac-ver.mkiv +++ b/tex/context/base/spac-ver.mkiv @@ -30,14 +30,6 @@ \fi \fi \relax} -\def\linedistance {\normalskipamount} -\def\appliedblankskip{\skipfactor\linedistance} -\def\lastblankskip {\blankskip} -\def\currentblank {\v!big} -\def\oldprevdepth {\prevdepth} -\def\newprevdepth {-1001pt} -\def\mindimen {1sp} % was: 0.00002pt - %D There are two ways to influence the interline spacing. The %D most general and often most consistent way is using %D @@ -115,6 +107,8 @@ % \let\normallineheight\askedbodyfontinterlinespace % \fi} +\let\currentrelativeinterlinespace\empty + \unexpanded\def\setupspecifiedinterlinespace[#1]% {\getparameters[\??it\currentinterlinespace][#1]% \dosetupspecifiedinterlinespaceindeed} @@ -136,14 +130,14 @@ \setfontparameters % redundant, can be \setstrut, test first \updateraggedskips} % yes indeed -\let\currentrelativeinterlinespace\empty +\installcorenamespace{interlinespacerelative} -\setvalue{\??it::\v!on }{\oninterlineskip} -\setvalue{\??it::\v!off }{\offinterlineskip} -\setvalue{\??it::\v!reset}{\let\currentrelativeinterlinespace\empty - \let\setrelativeinterlinespace\relax - \setfontparameters} -\setvalue{\??it::\v!auto }{\let\setrelativeinterlinespace\dosetrelativeinterlinespace} +\setvalue{\??interlinespacerelative\v!on }{\oninterlineskip} +\setvalue{\??interlinespacerelative\v!off }{\offinterlineskip} +\setvalue{\??interlinespacerelative\v!reset}{\let\currentrelativeinterlinespace\empty + \let\setrelativeinterlinespace\relax + \setfontparameters} +\setvalue{\??interlinespacerelative\v!auto }{\let\setrelativeinterlinespace\dosetrelativeinterlinespace} \def\dosetspecifiedrelativeinterlinespace#1% fragile? {\doifdimenstringelse{#1} @@ -155,8 +149,8 @@ {\processcommalist[#1]\dosetuprelativeinterlinespace} \def\dosetuprelativeinterlinespace#1% - {\ifcsname\??it::#1\endcsname - \csname\??it::#1\endcsname + {\ifcsname\??interlinespacerelative#1\endcsname + \csname\??interlinespacerelative#1\endcsname \else \dosetspecifiedrelativeinterlinespace{#1}% \fi} @@ -254,8 +248,14 @@ \let\switchtointerlinespace\setuplocalinterlinespace \definecomplexorsimple\setupinterlinespace - -\def\removelastskip + +%D Helpers + +\newskip \s_spac_lastskip +\newdimen\d_spac_prevdepth +\newcount\c_spac_spacefactor + +\unexpanded\def\removelastskip {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi} \def\doifoutervmode @@ -269,25 +269,25 @@ \expandafter\gobbleoneargument \fi} -\def\dosomebreak#1% +\unexpanded\def\dosomebreak#1% {\doifoutervmode - {\scratchskip\lastskip + {\s_spac_lastskip\lastskip \removelastskip #1\relax - \ifdim\scratchskip=\zeropoint + \ifdim\s_spac_lastskip=\zeropoint % avoid interference with footnotes \else - \vskip\scratchskip + \vskip\s_spac_lastskip \fi}} - -\def\packed + +\unexpanded\def\packed {\nointerlineskip} -\def\godown[#1]% +\unexpanded\def\godown[#1]% {\relax \ifhmode\endgraf\fi \ifvmode\nointerlineskip\vskip#1\relax\fi} - + \unexpanded\def\smallskip{\vskip\smallskipamount} \unexpanded\def\medskip {\vskip\medskipamount} \unexpanded\def\bigskip {\vskip\bigskipamount} @@ -324,33 +324,36 @@ %D Made slightly more readable: -\unexpanded\def\vglue {\afterassignment\spac_vglue_indeed\scratchskip=} -\unexpanded\def\hglue {\afterassignment\spac_hglue_indeed\scratchskip=} +\unexpanded\def\vglue {\afterassignment\spac_helpers_vglue_indeed\s_spac_lastskip=} +\unexpanded\def\hglue {\afterassignment\spac_helpers_hglue_indeed\s_spac_lastskip=} \unexpanded\def\topglue{\nointerlineskip\vglue-\topskip\vglue} -\def\spac_vglue_indeed +\def\spac_helpers_vglue_indeed {\par - \scratchdimen\prevdepth + \d_spac_prevdepth\prevdepth \hrule\!!height\zeropoint \nobreak - \vskip\scratchskip - \prevdepth\scratchdimen} + \vskip\s_spac_lastskip + \prevdepth\d_spac_prevdepth} -\def\spac_hglue_indeed +\def\spac_helpers_hglue_indeed {\dontleavehmode % \leavevmode - \scratchcounter\spacefactor + \c_spac_spacefactor\spacefactor \vrule\!!width\zeropoint \nobreak - \hskip\scratchskip - \spacefactor\scratchcounter} + \hskip\s_spac_lastskip + \spacefactor\c_spac_spacefactor} %D We adapt plain's \type {\removelastskip} a bit: \unexpanded\def\removelastskip % also in supp-box {\ifvmode\ifzeropt\lastskip\else\vskip-\lastskip\fi\fi} -\newskip\ctxparskip \ctxparskip\zeropoint +% The whitespace handler. +\installcorenamespace{whitespacemethod} + +\newskip \ctxparskip \ctxparskip\zeropoint \newconditional \flexiblewhitespace \settrue\flexiblewhitespace \def\currentwhitespace{\zeropoint} @@ -372,8 +375,8 @@ \newconstant\baselinegridmode % option in layout / 1=permit_half_lines \def\spac_whitespace_setup % quick test for no list - {\ifcsname\??wz:\currentwhitespace\endcsname - \csname\??wz:\currentwhitespace\endcsname + {\ifcsname\??whitespacemethod\currentwhitespace\endcsname + \csname\??whitespacemethod\currentwhitespace\endcsname \else \expandafter\processcommalist\expandafter[\currentwhitespace]\spac_whitespace_setup_method % can be raw \fi\relax @@ -406,7 +409,7 @@ \fi \fi} -\unexpanded\def\definewhitespacemethod[#1]#2{\setvalue{\??wz:#1}{#2}} +\unexpanded\def\definewhitespacemethod[#1]#2{\setvalue{\??whitespacemethod#1}{#2}} \definewhitespacemethod [\v!fix] {} \definewhitespacemethod [\v!fixed] {\setfalse\flexiblewhitespace} @@ -422,8 +425,8 @@ \definewhitespacemethod [\s!default] {\simplesetupwhitespace} \def\spac_whitespace_setup_method#1% - {\ifcsname\??wz:#1\endcsname - \csname\??wz:#1\endcsname + {\ifcsname\??whitespacemethod#1\endcsname + \csname\??whitespacemethod#1\endcsname \else \ctxparskip#1\fi \relax} @@ -431,7 +434,7 @@ % \definewhitespacemethod [\s!unknown] {\ctxparskip\commalistelement\relax} % % \def\spac_whitespace_setup_method#1% -% {\csname\??wz:\ifcsname\??wz:#1\endcsname#1\else\s!unknown\endcsname\relax} +% {\csname\??whitespacemethod\ifcsname\??whitespacemethod#1\endcsname#1\else\s!unknown\endcsname\relax} \unexpanded\def\nowhitespace{\vspacing[\v!nowhite]} \unexpanded\def\whitespace {\vspacing[\v!white]} @@ -442,16 +445,16 @@ % van pas bij het plaatsen van (mogelijk lege) lijsten. \newconditional\noblankinpacked -\newcount\packeddepth +\newcount \c_spac_packed_level \unexpanded\def\startpacked - {\dosingleempty\spac_start_packed} + {\dosingleempty\spac_packed_start} -\def\spac_start_packed[#1]% nesting afvangen - {\global\advance\packeddepth\plusone +\def\spac_packed_start[#1]% nesting afvangen + {\global\advance\c_spac_packed_level\plusone \par - \ifnum\packeddepth=\plusone \ifvmode - \bgroup + \ifnum\c_spac_packed_level=\plusone \ifvmode + \begingroup \whitespace % not combined \blank[\v!disable]% \doifelse{#1}\v!blank\setfalse\settrue\noblankinpacked @@ -460,22 +463,18 @@ \unexpanded\def\stoppacked {\par - \ifnum\packeddepth=\plusone \ifvmode - \egroup + \ifnum\c_spac_packed_level=\plusone \ifvmode + \endgroup \fi \fi - \global\advance\packeddepth\minusone} + \global\advance\c_spac_packed_level\minusone} \unexpanded\def\startunpacked {\blank - \bgroup} + \begingroup} \unexpanded\def\stopunpacked - {\egroup + {\endgroup \blank} - -% De onderstaande macro's moeten nog eens nader worden uitgewerkt. -% Ze spelen een rol bij de spatiering rond omkaderde teksten -% en/of boxen zonder diepte. % \prevdepth crosses pageboundaries! % @@ -784,25 +783,6 @@ % treatment; tests with using an attribute so far have shown that % it's slower because testing the attribute takes time too -\newdimen\tempstrutdimen - -% \unexpanded\def\dosetstrut -% {\let\strut\normalstrut -% \tempstrutdimen\dimexpr\strutht+\strutdp-\lineheight\relax -% \ifabsnum\tempstrutdimen<\plustwo -% % compensate rounding error /- 1sp to avoid too many -% % 1sp baselineskips in for instance verbatim -% \strutht\dimexpr\strutht-\tempstrutdimen\relax -% \fi -% \edef\strutheight{\the\strutht}% maybe better \number\strutht sp -% \edef\strutdepth {\the\strutdp}% -% \ifdim\strutwidth=\zeropoint -% \dosetstruthide -% \else -% \dosetstrutvide -% \fi -% \struttotal\dimexpr\strutht+\strutdp\relax} - \unexpanded\def\dosetstrut {\let\strut\normalstrut \ifabsnum\dimexpr\strutht+\strutdp-\lineheight\relax<\plustwo @@ -816,19 +796,19 @@ \edef\strutheight{\the\strutht}% \edef\strutdepth {\the\strutdp}% \ifdim\strutwidth=\zeropoint - \dosetstruthide + \spac_struts_set_hide \else - \dosetstrutvide + \spac_struts_set_vide \fi} -\unexpanded\def\dosetstruthide +\def\spac_struts_set_hide {\setbox\strutbox\normalhbox {\vrule \!!width \zeropoint \!!height\strutht \!!depth \strutdp}} -\unexpanded\def\dosetstrutvide +\def\spac_struts_set_vide {\setbox\strutbox\normalhbox {\normalhbox to \zeropoint {% \hss % new, will be option @@ -842,16 +822,19 @@ %D strut; occasionally a one scaled point difference can show %D up with the lineheight. -% experiment +% This is more efficient (less callbacks): -\newbox\emptystrutbox \setbox\emptystrutbox\emptyhbox +\newbox\b_spac_struts_empty \setbox\b_spac_struts_empty\emptyhbox -\unexpanded\def\dosetstruthide - {\setbox\strutbox\copy\emptystrutbox +\def\spac_struts_set_hide + {\setbox\strutbox\copy\b_spac_struts_empty \ht\strutbox\strutht \dp\strutbox\strutdp} -\unexpanded\def\strut{\relax\dontleavehmode\copy\strutbox} % still callbacks for \hbox{\strut} +\unexpanded\def\strut % still callbacks for \hbox{\strut} + {\relax + \dontleavehmode + \copy\strutbox} \let\normalstrut\strut @@ -867,19 +850,21 @@ %D Beware: using an unknown value results in char struts. +\installcorenamespace{struts} + \unexpanded\def\setupstrut - {\dosingleempty\spac_strut_setup} + {\dosingleempty\spac_struts_setup} -\def\spac_strut_setup[#1]% - {\ifcsname\??ut:#1\endcsname - \csname\??ut:#1\endcsname % these are defined later +\def\spac_struts_setup[#1]% + {\ifcsname\??struts#1\endcsname + \csname\??struts#1\endcsname % these are defined later \else \setcharstrut{#1}% \fi} \def\synchronizestrut#1% no [] parsing, faster for internal - {\ifcsname\??ut:#1\endcsname - \csname\??ut:#1\endcsname + {\ifcsname\??struts#1\endcsname + \csname\??struts#1\endcsname \else \setcharstrut{#1}% \fi} @@ -924,24 +909,24 @@ {\relax\ifcase\strutht % \ignorespaces % maybe \else - \spac_strut_beg + \spac_struts_beg \fi} -\def\spac_strut_beg +\def\spac_struts_beg {\ifconditional\sigstruts - \spac_strut_beg_signal + \spac_struts_beg_signal \else - \spac_strut_beg_normal + \spac_struts_beg_normal \fi \ignorespaces} -\def\spac_strut_beg_signal +\def\spac_struts_beg_signal {\noindent\horizontalstrut \normalpenalty\plustenthousand \normalhskip-\strutsignal \normalhskip\strutsignal} -\def\spac_strut_beg_normal +\def\spac_struts_beg_normal {\strut \normalpenalty\plustenthousand \normalhskip\zeropoint} @@ -951,18 +936,18 @@ \ifcase\strutht % \removeunwantedspaces % maybe \else - \spac_strut_end + \spac_struts_end \fi \fi} -\def\spac_strut_end +\def\spac_struts_end {\ifconditional\sigstruts - \spac_strut_end_signal + \spac_struts_end_signal \else - \spac_strut_end_normal + \spac_struts_end_normal \fi} -\def\spac_strut_end_signal +\def\spac_struts_end_signal {\ifdim\lastskip=\strutsignal \unskip \unskip @@ -974,7 +959,7 @@ \strut \fi} -\def\spac_strut_end_normal +\def\spac_struts_end_normal {\removeunwantedspaces \normalpenalty\plustenthousand \normalhskip\zeropoint @@ -1007,19 +992,19 @@ \setstrut} \ifdefined\setfontparameters \else - \def\setfontparameters{\the\everybodyfont} + \def\setfontparameters{\the\everybodyfont} \fi %D Keyword based strutting: -\letvalue{\??ut:\v!yes }\setstrut % \setvalue{\??ut:\v!yes }{\setstrut} -\letvalue{\??ut:\v!auto }\setautostrut % \setvalue{\??ut:\v!auto }{\setautostrut} -\letvalue{\??ut:\v!no }\setnostrut % \setvalue{\??ut:\v!no }{\setnostrut} -\letvalue{\??ut:\v!cap }\setcapstrut % \setvalue{\??ut:\v!cap }{\setcapstrut} -\letvalue{\??ut:\v!fit }\setfontstrut % \setvalue{\??ut:\v!fit }{\setfontstrut} -\letvalue{\??ut:\v!line }\setstrut % \setvalue{\??ut:\v!line }{\setstrut} -\letvalue{\??ut:\s!default}\setstrut % \setvalue{\??ut:\s!default}{\setstrut} -\letvalue{\??ut:\empty }\setstrut % \setvalue{\??ut:\empty }{\setstrut} +\letvalue{\??struts\v!yes }\setstrut % \setvalue{\??struts\v!yes }{\setstrut} +\letvalue{\??struts\v!auto }\setautostrut % \setvalue{\??struts\v!auto }{\setautostrut} +\letvalue{\??struts\v!no }\setnostrut % \setvalue{\??struts\v!no }{\setnostrut} +\letvalue{\??struts\v!cap }\setcapstrut % \setvalue{\??struts\v!cap }{\setcapstrut} +\letvalue{\??struts\v!fit }\setfontstrut % \setvalue{\??struts\v!fit }{\setfontstrut} +\letvalue{\??struts\v!line }\setstrut % \setvalue{\??struts\v!line }{\setstrut} +\letvalue{\??struts\s!default}\setstrut % \setvalue{\??struts\s!default}{\setstrut} +\letvalue{\??struts\empty }\setstrut % \setvalue{\??struts\empty }{\setstrut} %D Handy: @@ -1050,7 +1035,7 @@ \lineskip\the\lineskip \lineskiplimit\the\lineskiplimit \noexpand\edef\noexpand\minimumlinedistance{\the\dimexpr\minimumlinedistance}% - \let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}} + \let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}} % \noexpand not needed \unexpanded\def\nopushinterlineskip {\let\oninterlineskip\setnormalbaselines} @@ -1175,10 +1160,10 @@ %D To be checked: -\ifx\savedstrutbox\undefined \newbox\savedstrutbox \fi +\newbox\b_spac_struts_saved -\def\savestrut {\setbox\savedstrutbox\copy\strutbox} -\def\savedstrut{\copy \savedstrutbox} +\unexpanded\def\savestrut {\setbox\b_spac_struts_saved\copy\strutbox} +\unexpanded\def\savedstrut{\copy \b_spac_struts_saved} %D Good old blank redone: @@ -1193,6 +1178,8 @@ % TODO: NAMED SNAPPERS +\installcorenamespace{gridsnappers} + \newskip \bodyfontlineheight \newdimen \bodyfontstrutheight \newdimen \bodyfontstrutdepth @@ -1216,7 +1203,7 @@ \ifcsname\currentsnapper\endcsname \else \setevalue\currentsnapper{\ctxlua{builders.vspacing.definesnapmethod("#1","#2")}}% \fi - \setevalue{\??gr:#1}{\attribute\snapmethodattribute\csname\currentsnapper\endcsname\space}} + \setevalue{\??gridsnappers#1}{\attribute\snapmethodattribute\csname\currentsnapper\endcsname\space}} \unexpanded\def\definegridsnapping {\dodoubleargument\dodefinegridsnapping} @@ -1230,14 +1217,14 @@ \def\setsnapvalue#1% {%\gridsnappingtrue - \ifcsname\??gr:#1\endcsname\csname\??gr:#1\endcsname\fi} + \ifcsname\??gridsnappers#1\endcsname\csname\??gridsnappers#1\endcsname\fi} \def\autosetsnapvalue#1% - {\ifcsname\??gr:#1\endcsname - \csname\??gr:#1\endcsname + {\ifcsname\??gridsnappers#1\endcsname + \csname\??gridsnappers#1\endcsname \else \installsnapvalues\s!dummy{#1}% - \csname\??gr:\s!dummy\endcsname + \csname\??gridsnappers\s!dummy\endcsname \fi} % \installsnapvalues{loose} {\v!maxdepth:0.8,\v!maxheight:0.8,\v!strut} @@ -1570,16 +1557,18 @@ % % % % we can move much to lua once we can expand there % % % % +\installcorenamespace{vspacingamount} + \unexpanded\def\definevspacingamount {\dotripleempty\dodefinevspacingamount} \def\dodefinevspacingamount[#1][#2][#3]% can be combined - {\setvalue{\??vs:#1}{\ifgridsnapping#3\else#2\fi}% + {\setvalue{\??vspacingamount#1}{\ifgridsnapping#3\else#2\fi}% \ctxlua{builders.vspacing.setskip("#1")}} \def\addpredefinedblankskip#1#2% {\settrue\someblankdone - \advance\blankskip#1\dimexpr\csname\??vs:#2\endcsname\relax} + \advance\blankskip#1\dimexpr\csname\??vspacingamount#2\endcsname\relax} \def\addaskedblankskip#1#2% {\settrue\someblankdone @@ -1690,72 +1679,46 @@ %D care as it does {\em not} work in tandem with the other spacing %D commands. +\installcorenamespace{vspace} + \unexpanded\def\definevspace {\dotripleempty\dodefinevspace} \def\dodefinevspace[#1][#2][#3]% {\ifthirdargument - \setvalue{\??va#1:#2}{#3}% + \setvalue{\??vspace#1:#2}{#3}% \else - \setvalue{\??va:#1}{#2}% + \setvalue{\??vspace:#1}{#2}% \fi} -\letvalue{\??va#1:\s!unknown}\zeropoint +\letvalue{\??vspace#1:\s!unknown}\zeropoint \unexpanded\def\vspace {\dodoubleempty\dovspace} -% \def\dovspace[#1][#2]% -% {\par -% \ifvmode -% \removelastskip -% \vskip -% \ifsecondargument -% \vspaceamount{#1}{#2}% -% \else\iffirstargument -% \vspaceamount\empty{#1}% -% \else -% \vspaceamount\empty\s!default -% \fi\fi -% \relax -% \fi} - -% \def\vspaceamount#1#2% -% {\csname\??va -% \ifcsname\??va#1:#2\endcsname -% #1:#2% -% \else\ifcsname\??va:#2\endcsname -% :#2% -% \else -% :\s!unknown -% \fi\fi -% \endcsname} - -% alternative - \def\dovspace[#1][#2]% {\par \ifvmode \removelastskip \vskip - \csname\??va + \csname\??vspace \ifsecondargument - \ifcsname\??va#1:#2\endcsname + \ifcsname\??vspace#1:#2\endcsname #1:#2% - \else\ifcsname\??va:#2\endcsname + \else\ifcsname\??vspace:#2\endcsname :#2% \else :\s!unknown \fi\fi \else\iffirstargument - \ifcsname\??va:#1\endcsname + \ifcsname\??vspace:#1\endcsname :#1% \else :\s!unknown \fi \else - \ifcsname\??va:\s!default\endcsname - :\s!default% + \ifcsname\??vspace:\s!default\endcsname + :\s!default \else :\s!unknown \fi diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index edb16ac2f..896cfc66a 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index 3da3b1812..ead91c158 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/status-mkiv.tex b/tex/context/base/status-mkiv.tex index c4ea94046..82a737f43 100644 --- a/tex/context/base/status-mkiv.tex +++ b/tex/context/base/status-mkiv.tex @@ -58,6 +58,12 @@ if preloaded then + for i=1,#preloaded do + preloaded[i].order = i + end + + table.sort(preloaded,function(a,b) return a.filename < b.filename end) + context.starttabulate { "|Tr|Tl|Tl|l|p|" } context.NC() -- context.bold("order") context.NC() context.bold("file") @@ -68,7 +74,7 @@ for i=1,#preloaded do local module = preloaded[i] local status = module.status - context.NC() context(i) + context.NC() context(module.order) context.NC() context(module.filename) context.NC() context(module.marktype) context.NC() if status == "unknown" then context.bold(status) else context(status) end diff --git a/tex/context/base/tabl-xtb.lua b/tex/context/base/tabl-xtb.lua index 2dd53accd..2f422578e 100644 --- a/tex/context/base/tabl-xtb.lua +++ b/tex/context/base/tabl-xtb.lua @@ -169,10 +169,10 @@ function xtables.initialize_reflow_width() local r = data.currentrow local c = data.currentcolumn + 1 local drc = data.rows[r][c] - drc.nx = texcount.x_table_nx - drc.ny = texcount.x_table_ny + drc.nx = texcount.c_tabl_x_nx + drc.ny = texcount.c_tabl_x_ny local distances = data.distances - local distance = texdimen.x_table_distance + local distance = texdimen.d_tabl_x_distance if distance > distances[c] then distances[c] = distance end @@ -190,7 +190,7 @@ function xtables.set_reflow_width() while row[c].span do -- can also be previous row ones c = c + 1 end - local tb = texbox.x_table_box + local tb = texbox.b_tabl_x local drc = row[c] -- drc.list = true -- we don't need to keep the content around as we're in trial mode (no: copy_node_list(tb)) @@ -270,19 +270,19 @@ function xtables.initialize_reflow_height() for x=1,drc.nx-1 do w = w + widths[c+x] end - texdimen.x_table_width = w + texdimen.d_tabl_x_width = w local dimensionstate = drc.dimensionstate or 0 if dimensionstate == 1 or dimensionstate == 3 then -- width was fixed so height is known - texcount.x_table_skip_mode = 1 + texcount.c_tabl_x_skip_mode = 1 elseif dimensionstate == 2 then -- height is enforced - texcount.x_table_skip_mode = 1 + texcount.c_tabl_x_skip_mode = 1 elseif data.autowidths[c] then -- width has changed so we need to recalculate the height - texcount.x_table_skip_mode = 0 + texcount.c_tabl_x_skip_mode = 0 else - texcount.x_table_skip_mode = 1 + texcount.c_tabl_x_skip_mode = 1 end end @@ -294,7 +294,7 @@ function xtables.set_reflow_height() -- while row[c].span do -- we could adapt drc.nx instead -- c = c + 1 -- end - local tb = texbox.x_table_box + local tb = texbox.b_tabl_x local drc = row[c] if data.fixedrows[r] == 0 then -- and drc.dimensionstate < 2 local heights, height = data.heights, tb.height @@ -333,9 +333,9 @@ function xtables.initialize_construct() h = h + heights[r+y] d = d + depths[r+y] end - texdimen.x_table_width = w - texdimen.x_table_height = h + d - texdimen.x_table_depth = 0 + texdimen.d_tabl_x_width = w + texdimen.d_tabl_x_height = h + d + texdimen.d_tabl_x_depth = 0 end function xtables.set_construct() @@ -348,7 +348,7 @@ function xtables.set_construct() -- end local drc = row[c] -- this will change as soon as in luatex we can reset a box list without freeing - drc.list = copy_node_list(texbox.x_table_box) + drc.list = copy_node_list(texbox.b_tabl_x) -- c = c + drc.nx - 1 -- data.currentcolumn = c end @@ -660,11 +660,11 @@ function xtables.construct() [body_mode] = body, } if #body == 0 then - texsetcount("global","x_table_state",0) - texsetdimen("global","x_table_final_width",0) + texsetcount("global","c_tabl_x_state",0) + texsetdimen("global","d_tabl_x_final_width",0) else - texsetcount("global","x_table_state",1) - texsetdimen("global","x_table_final_width",body[1][1].width) + texsetcount("global","c_tabl_x_state",1) + texsetdimen("global","d_tabl_x_final_width",body[1][1].width) end end @@ -821,7 +821,7 @@ function xtables.flush(directives) -- todo split by size / no inbetween then .. results[foot_mode] = { } end results[body_mode] = { } - texsetcount("global","x_table_state",0) + texsetcount("global","c_tabl_x_state",0) else -- some is left so footer is delayed -- todo: try to flush a few more lines @@ -835,7 +835,7 @@ function xtables.flush(directives) -- todo split by size / no inbetween then .. else -- todo: try to fit more of body end - texsetcount("global","x_table_state",2) + texsetcount("global","c_tabl_x_state",2) end else if firstsize > vsize then @@ -846,10 +846,10 @@ function xtables.flush(directives) -- todo split by size / no inbetween then .. bodystart = bodystart + 1 end end - texsetcount("global","x_table_state",2) -- 1 + texsetcount("global","c_tabl_x_state",2) -- 1 end else - texsetcount("global","x_table_state",0) + texsetcount("global","c_tabl_x_state",0) end data.bodystart = bodystart data.bodystop = bodystop @@ -895,7 +895,7 @@ function xtables.flush(directives) -- todo split by size / no inbetween then .. results[head_mode] = { } results[body_mode] = { } results[foot_mode] = { } - texsetcount("global","x_table_state",0) + texsetcount("global","c_tabl_x_state",0) end end @@ -910,7 +910,7 @@ end function xtables.next_row() local r = data.currentrow + 1 - data.modes[r] = texcount.x_table_mode + data.modes[r] = texcount.c_tabl_x_mode data.currentrow = r data.currentcolumn = 0 end diff --git a/tex/context/base/tabl-xtb.mkvi b/tex/context/base/tabl-xtb.mkvi index f8900e2d1..1f5ce8a18 100644 --- a/tex/context/base/tabl-xtb.mkvi +++ b/tex/context/base/tabl-xtb.mkvi @@ -89,7 +89,7 @@ \newcount\c_tabl_x_nx \newcount\c_tabl_x_ny \newcount\c_tabl_x_mode -\newbox \b_tabl_x_box +\newbox \b_tabl_x \newcount\c_tabl_x_state % 0=empty 1=content 3=splitleft \newdimen\d_tabl_x_final_width \newcount\c_tabl_x_nesting @@ -401,7 +401,7 @@ {\hsize.25\maxdimen} % let's be reasonable \unexpanded\def\tabl_x_start_cell_reflow_width_yes[#settings]% - {\setbox\b_tabl_x_box\hbox\bgroup + {\setbox\b_tabl_x\hbox\bgroup \ifnum\c_tabl_x_nesting>\plusone \letxtableparameter\c!width \v!fit % overloads given width \letxtableparameter\c!height\v!fit % overloads given height @@ -430,7 +430,7 @@ \tabl_x_set_hsize} \unexpanded\def\tabl_x_start_cell_reflow_width_nop - {\setbox\b_tabl_x_box\hbox\bgroup + {\setbox\b_tabl_x\hbox\bgroup \ifnum\c_tabl_x_nesting>\plusone \letxtableparameter\c!width \v!fit % overloads given width \letxtableparameter\c!height\v!fit % overloads given height @@ -450,7 +450,7 @@ \ctxcommand{x_table_set_reflow_width()}} \unexpanded\def\tabl_x_start_cell_reflow_height_yes[#settings]% - {\setbox\b_tabl_x_box\hbox\bgroup + {\setbox\b_tabl_x\hbox\bgroup \ctxcommand{x_table_init_reflow_height()}% \ifcase\c_tabl_x_skip_mode % can be sped up \ifnum\c_tabl_x_nesting>\plusone @@ -464,7 +464,7 @@ \fi} \unexpanded\def\tabl_x_start_cell_reflow_height_nop - {\setbox\b_tabl_x_box\hbox\bgroup + {\setbox\b_tabl_x\hbox\bgroup \ctxcommand{x_table_init_reflow_height()}% \ifcase\c_tabl_x_skip_mode % can be sped up \ifnum\c_tabl_x_nesting>\plusone @@ -486,7 +486,7 @@ \unexpanded\def\tabl_x_start_cell_construct_yes[#settings]% {\dostarttagged\t!tablecell\empty % can't we just tag the box - \setbox\b_tabl_x_box\hbox\bgroup + \setbox\b_tabl_x\hbox\bgroup \setupcurrentxtable[#settings]% \letxtableparameter\c!width \d_tabl_x_width % overloads given width \letxtableparameter\c!height\d_tabl_x_height % overloads given height @@ -497,7 +497,7 @@ \unexpanded\def\tabl_x_start_cell_construct_nop {\dostarttagged\t!tablecell\empty % can't we just tag the box - \setbox\b_tabl_x_box\hbox\bgroup + \setbox\b_tabl_x\hbox\bgroup \letxtableparameter\c!width \d_tabl_x_width % overloads given width \letxtableparameter\c!height\d_tabl_x_height % overloads given height \ctxcommand{x_table_init_construct()}% diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 55f310a50..25176c36c 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 : 01/02/12 17:18:53 +-- merge date : 01/02/12 19:23:09 do -- begin closure to overcome local limits and interference -- cgit v1.2.3