From 6f249eccedb4224c9b43cbef0cca9890a574eefb Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Thu, 5 Jan 2012 19:27:47 +0100 Subject: beta 2011.12.19 13:06 --- tex/context/base/cont-new.mkii | 2 +- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4069 -> 4068 bytes tex/context/base/context-version.png | Bin 104792 -> 105482 bytes tex/context/base/context.mkii | 2 +- tex/context/base/context.mkiv | 2 +- tex/context/base/core-mis.mkiv | 18 ++-- tex/context/base/page-flt.mkiv | 7 +- tex/context/base/page-one.mkiv | 2 +- tex/context/base/page-sid.mkiv | 108 +++++++++++++-------- tex/context/base/spac-ver.mkiv | 3 +- tex/context/base/status-files.pdf | Bin 23976 -> 23983 bytes tex/context/base/status-lua.pdf | Bin 169720 -> 169717 bytes tex/context/base/strc-flt.mkvi | 7 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 15 files changed, 93 insertions(+), 62 deletions(-) diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index 91f661c53..3a2639c96 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{2011.12.19 00:49} +\newcontextversion{2011.12.19 13:06} %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 f06d41d2d..5ec1e118c 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{2011.12.19 00:49} +\newcontextversion{2011.12.19 13:06} %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 7307dd017..f98f74e94 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 2b2d5e9f0..b2123c564 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 51adcf0a0..53c21864e 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{2011.12.19 00:49} +\edef\contextversion{2011.12.19 13:06} %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 35cc7f31b..ee8df8080 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2011.12.19 00:49} +\edef\contextversion{2011.12.19 13:06} %D For those who want to use this: diff --git a/tex/context/base/core-mis.mkiv b/tex/context/base/core-mis.mkiv index d0f418991..0a7bd93fa 100644 --- a/tex/context/base/core-mis.mkiv +++ b/tex/context/base/core-mis.mkiv @@ -783,8 +783,8 @@ \c!before,\c!after,\c!left,\c!right]}}% \doifsomething{#1} {\setuvalue{#1}{\delimitedtext[#1]}% - \setvalue{\e!start#1}{\startdelimitedtext[#1]}% - \setvalue{\e!stop #1}{\stopdelimitedtext}}} + \setuvalue{\e!start#1}{\startdelimitedtext[#1]}% u added + \setuvalue{\e!stop #1}{\stopdelimitedtext}}} % u added \unexpanded\def\setupdelimitedtext {\dotripleargument\dosetupdelimitedtext} @@ -806,12 +806,11 @@ \let\dohandlerepeatdelimitedtext\relax \unexpanded\def\startdelimitedtext[#1]% - {\bgroup + {\begingroup \pushdelimitedtext{#1}% \dostarttagged\t!delimitedblock\currentdelimitedtext \doifelse{\delimitedtextparameter\c!method}\s!font - {\def\dostopdelimitedtext - {\removeunwantedspaces\ignoredelimitedtext\c!right}% + {\let\dostopdelimitedtext\dostopdelimitedtext_font \ignoredelimitedtext\c!left\ignorespaces} {\doifelse{\delimitedtextparameter\c!repeat}\v!yes {\let\dohandlerepeatdelimitedtext\dorepeatdelimitedtext}% @@ -819,6 +818,9 @@ \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}% {\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}} +\def\dostopdelimitedtext_font + {\removeunwantedspaces\ignoredelimitedtext\c!right} + \def\dostartdelimitedtextpar[#1]% {\let\dostopdelimitedtext\dostopdelimitedtextpar \doifsomething{\delimitedtextparameter\c!spacebefore} @@ -849,7 +851,7 @@ {\removeunwantedspaces \removelastskip \rightdelimitedtextmark - \begingroup + \endgroup \popmacro\checkindentation \dodostopdelimitedtextpar \delimitedtextparameter\c!after @@ -875,7 +877,7 @@ {\dostopdelimitedtext \dostoptagged \popdelimitedtext - \egroup} + \endgroup} \def\pushdelimitedtext#1% {\globalpushmacro\currentdelimitedtext @@ -898,7 +900,7 @@ \unexpanded\def\startdelimited{\startdelimitedtext} \unexpanded\def\stopdelimited {\stopdelimitedtext} % no let, dynamically assigned -\def\delimited {\delimitedtext} + \def\delimited {\delimitedtext} \def\leftdelimitedtextmark {\doifsomething{\delimitedtextparameter\c!left} diff --git a/tex/context/base/page-flt.mkiv b/tex/context/base/page-flt.mkiv index f2b183f2d..4eef6f25c 100644 --- a/tex/context/base/page-flt.mkiv +++ b/tex/context/base/page-flt.mkiv @@ -246,7 +246,7 @@ \doflushsomepagefloat\checkedpagefloat \fi\fi} -\def\uncenteredfloatbox +\def\uncenteredfloatbox % hm, where is this one used (was in save/restore, see old implementation) {\ifcenterfloatbox \ifhbox\floatbox\relax % remove centering \ifdim\wd\floatbox=\hsize @@ -269,8 +269,8 @@ \box\floatbox \fi} -\ifdefined\doflushfloats\else \let\doflushfloats\relax \fi -\ifdefined\flushfloatbox\else \let\flushfloatbox\relax \fi +% \ifdefined\doflushfloats\else \let\doflushfloats\relax \fi +% \ifdefined\flushfloatbox\else \let\flushfloatbox\relax \fi % temp hack, needed to prevent floatbox being forgotten during % output, this will change to using another box for flushing @@ -284,6 +284,7 @@ \appendtoks \global\setbox\savedfloatbox\box\floatbox \to \everybeforeoutput + \appendtoks \global\setbox\floatbox\box\savedfloatbox \to \everyafteroutput diff --git a/tex/context/base/page-one.mkiv b/tex/context/base/page-one.mkiv index cc65a7267..c44ff830b 100644 --- a/tex/context/base/page-one.mkiv +++ b/tex/context/base/page-one.mkiv @@ -437,7 +437,7 @@ \someelsefloat[\v!here]% \else %\checkwaitingfloats{#1}% - \setbox\floatbox\vbox{\box\floatbox}% + \setbox\floatbox\vbox{\box\floatbox}% ? can go \wd\floatbox\floatwidth \processfirstactioninset [#1] diff --git a/tex/context/base/page-sid.mkiv b/tex/context/base/page-sid.mkiv index 38ae1cfcc..ee1962310 100644 --- a/tex/context/base/page-sid.mkiv +++ b/tex/context/base/page-sid.mkiv @@ -41,12 +41,14 @@ \newdimen \d_page_sides_progress \newdimen \d_page_sides_page_total \newdimen \d_page_sides_saved_depth +\newdimen \d_page_sides_grid_shift \newbox \b_page_sides_bottom \newcount \c_page_sides_lines_done \newcount \c_page_sides_checks_done \newcount \c_page_sides_n_of_lines +\newcount \c_page_sides_n_of_hang \newconstant \c_page_sides_float_type \newconditional \c_page_sides_short @@ -457,16 +459,54 @@ \fi\fi \global\sidefloatdownshift\zeropoint} -\def\page_sides_place_float % nilling everypar saves time and redudant pos's - {% removed here dec 2001 - % {\everypar\emptytoks\forgetall\verticalstrut\vskip-\struttotal}% - \ifnum\c_page_sides_float_type=\plusfour \kern\sidefloattopskip \fi +\def\page_sides_place_float + {\ifnum\c_page_sides_float_type=\plusfour \kern\sidefloattopskip \fi \ifnum\c_page_sides_float_type=\plusfive \kern\sidefloattopskip \fi \d_page_sides_saved_depth\prevdepth \nointerlineskip - \bgroup - \everypar\emptytoks - \parskip\zeropoint + \ifgridsnapping + \page_sides_place_float_grid + \else + \page_sides_place_float_normal + \fi + \par + \kern-\d_page_sides_height + \penalty10001 % oeps, this will change + \normalbaselines + \prevdepth\d_page_sides_saved_depth} + +\def\page_sides_place_float_normal + {\d_page_sides_grid_shift\zeropoint % be nice + \page_sides_push_float_inline\firstofoneargument} + +% The following needs some more work .. consider this a quick hack. We +% probably need an mkiv hanging grid option. + +\def\page_sides_place_snap_to_grid#1% + {\snaptogrid[\v!line,\v!offset:\the\d_page_sides_grid_shift]\hbox{#1}} + +% this will be a grid option in float placement: + +\newconstant\c_page_sides_place_grid_shift \c_page_sides_place_grid_shift\plustwo + +\def\page_sides_place_float_grid + {\getrawnoflines\d_page_sides_height % raw ? + \d_page_sides_height\plustwo\lineheight + \d_page_sides_grid_shift\the\dimexpr \noflines\lineheight + \ifcase\c_page_sides_place_grid_shift + -3\lineheight % high + \or + -2.5\lineheight % half + \else + -2\lineheight % low + \fi + \relax + \page_sides_push_float_inline\page_sides_place_snap_to_grid} + +\def\page_sides_push_float_inline#1% + {\begingroup + \everypar\emptytoks % needed ! + \parskip\zeropoint % needed ! \page_sides_set_skips \page_sides_insert_info \relax @@ -474,35 +514,23 @@ \ifcase\c_page_sides_float_type % invalid \or % backspace - \noindent\llap{\rlap{\box\floatbox}\hskip\sidefloatleftskip}\hfill + \noindent#1{\llap{\rlap{\box\floatbox}\hskip\sidefloatleftskip}}\hfill \or % leftedge - \noindent\llap{\box\floatbox\hskip\sidefloatleftskip}\hfill + \noindent#1{\llap{\box\floatbox\hskip\sidefloatleftskip}}\hfill \or % leftmargin - \noindent\llap{\box\floatbox\hskip\sidefloatleftskip}\hfill + \noindent#1{\llap{\box\floatbox\hskip\sidefloatleftskip}}\hfill \or % leftside - \noindent\box\floatbox\hfill + \noindent#1{\box\floatbox}\hfill \or % rightside - \hfill\box\floatbox + \hfill#1{\box\floatbox}% \or % rightmargin - \hfill\rlap{\hskip\sidefloatrightskip\box\floatbox}% + \hfill#1{\rlap{\hskip\sidefloatrightskip\box\floatbox}}% \or % rightedge - \hfill\rlap{\hskip\sidefloatrightskip\box\floatbox}% + \hfill#1{\rlap{\hskip\sidefloatrightskip\box\floatbox}}% \or % cutspace - \hfill\rlap{\hskip\sidefloatrightskip\llap{\box\floatbox}}% + \hfill#1{\rlap{\hskip\sidefloatrightskip\llap{\box\floatbox}}}% \fi - \egroup - \par - \ifgridsnapping - \getrawnoflines\d_page_sides_height - \d_page_sides_height=\noflines\lineheight - \fi - \kern-\d_page_sides_height - \penalty10001 % oeps, this will change - \normalbaselines - \prevdepth\d_page_sides_saved_depth - % \noindent - \page_sides_check_floats_reset - \ignorespaces} % not really needed + \endgroup} \def\page_sides_analyse_progress {\d_page_sides_progress\d_page_sides_vsize @@ -580,7 +608,9 @@ \page_sides_analyse_space \page_sides_inject_dummy_lines \fi - \page_sides_place_float} + \page_sides_place_float + \page_sides_check_floats_reset + \ignorespaces} % not really needed \def\page_sides_check_floats_indeed {\page_sides_analyse_progress @@ -598,17 +628,17 @@ \def\page_sides_check_floats_set {\scratchdimen\dimexpr\d_page_sides_progress+\strutht-\roundingeps\relax - \!!counta\scratchdimen - \divide\!!counta \baselineskip\relax - \ifnum\!!counta>\zerocount + \c_page_sides_n_of_hang\scratchdimen + \divide\c_page_sides_n_of_hang \baselineskip\relax + \ifnum\c_page_sides_n_of_hang>\zerocount % new from here (needs test case, old code) \ifcase\c_page_sides_n_of_lines \else \ifcase\c_page_sides_lines_done - \global\c_page_sides_lines_done\!!counta + \global\c_page_sides_lines_done\c_page_sides_n_of_hang \else \scratchcounter\c_page_sides_lines_done - \advance\scratchcounter-\!!counta + \advance\scratchcounter-\c_page_sides_n_of_hang \global\advance\c_page_sides_n_of_lines-\scratchcounter \fi \fi @@ -619,10 +649,10 @@ \scratchdimen\dimexpr\hsize-\d_page_sides_width\relax \dorecurse\c_page_sides_n_of_lines {\appendtoks \zeropoint \hsize \to \scratchtoks}% - \ifnum\!!counta>\c_page_sides_n_of_lines - \advance\!!counta -\c_page_sides_n_of_lines\relax - \advance\scratchcounter\!!counta - \dorecurse\!!counta % weird, shouldn't that be scratchcounter + \ifnum\c_page_sides_n_of_hang>\c_page_sides_n_of_lines + \advance\c_page_sides_n_of_hang -\c_page_sides_n_of_lines\relax + \advance\scratchcounter\c_page_sides_n_of_hang + \dorecurse\c_page_sides_n_of_hang % weird, shouldn't that be scratchcounter {\ifnum\c_page_sides_float_type>\plusfour \appendtoks \zeropoint \scratchdimen \to \scratchtoks \else @@ -637,7 +667,7 @@ \else % new till here \hangindent \ifnum\c_page_sides_float_type>\plusfour -\fi\d_page_sides_width - \hangafter-\!!counta + \hangafter-\c_page_sides_n_of_hang \fi \fi \global\advance\c_page_sides_checks_done \plusone diff --git a/tex/context/base/spac-ver.mkiv b/tex/context/base/spac-ver.mkiv index 2d137d360..fe83414c7 100644 --- a/tex/context/base/spac-ver.mkiv +++ b/tex/context/base/spac-ver.mkiv @@ -1241,7 +1241,7 @@ % minheight round height down % maxheight round height up % local use local interline space -% offset:-3tp vertical shift within box +% offset:-3tp vertical shift within box % bottom:lines % top:lines @@ -1274,7 +1274,6 @@ \definegridsnapping[\v!middle] [\v!maxheight,\v!maxdepth] % used in placement - \newtoks\everysetupgridsnapping % this only happens at the setuplayout level \def\dosetupgridsnapping{\the\everysetupgridsnapping} % not used ! diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index ccf9141f5..ea308c0b2 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 385b4ccb3..0ce87fb5b 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/context/base/strc-flt.mkvi b/tex/context/base/strc-flt.mkvi index b38642eee..5e9dd5ec5 100644 --- a/tex/context/base/strc-flt.mkvi +++ b/tex/context/base/strc-flt.mkvi @@ -813,7 +813,7 @@ {\global\sidefloatdownshift \zeropoint \global\sidefloatextrashift\zeropoint \doifassignmentelse{#settings}% - {\bgroup + {\begingroup \getparameters[\??fl\??fl][\c!x=\zeropoint,\c!y=\zeropoint,#settings]% \ifgridsnapping \getnoflines\@@fly @@ -822,7 +822,7 @@ \global\sidefloatdownshift\@@fl@@fly \fi \global\sidefloatextrashift\@@fl@@flx - \egroup} + \endgroup} {\movedownsidefloat[#settings]}} \def\float_move_down#setting% @@ -1157,8 +1157,6 @@ % minwidth=fit,width=max : no overshoot, as wide as graphic -\ifdefined\moveboxontogrid\else \let\movecaptionontogrid\gobblethreearguments \fi - \def\float_align_content_indeed {\alignstrutmode\zerocount \doifnotcommon{\floatcaptionparameter\c!location}{\v!outermargin,\v!innermargin,\v!leftmargin,\v!rightmargin} @@ -1470,6 +1468,7 @@ \def\doflushfloatleftcaptionhang {\hsmash{\llap{\box\float_caption_box\dotfskip{\floatcaptionparameter\c!distance}}}} + \def\doflushfloatrightcaptionhang {\hsmash{\rlap{\dotfskip{\floatcaptionparameter\c!distance}\box\float_caption_box}}} diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 4917f63f4..748d476de 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 : 12/19/11 00:49:41 +-- merge date : 12/19/11 13:06:43 do -- begin closure to overcome local limits and interference -- cgit v1.2.3