diff options
Diffstat (limited to 'tex/context/base/mkxl/page-lay.mkxl')
-rw-r--r-- | tex/context/base/mkxl/page-lay.mkxl | 40 |
1 files changed, 29 insertions, 11 deletions
diff --git a/tex/context/base/mkxl/page-lay.mkxl b/tex/context/base/mkxl/page-lay.mkxl index 835a3ca4b..4527759b3 100644 --- a/tex/context/base/mkxl/page-lay.mkxl +++ b/tex/context/base/mkxl/page-lay.mkxl @@ -123,7 +123,7 @@ \doifnothing{\directlayoutparameter\c!state}{\letlayoutparameter\c!state\v!start}% \to \everydefinelayout -\newconditional \layouthaschanged \settrue\layouthaschanged % used in mp +\newcount\c_page_layouts_changed \appendtoks \ifcase\layoutsetupmode @@ -155,13 +155,9 @@ \page_layouts_synchronize \page_layouts_check_next \fi - \global\settrue\layouthaschanged + \global\c_page_layouts_changed\realpageno \to \everysetuplayout -\appendtoks - \global\setfalse\layouthaschanged -\to \everyaftershipout - \permanent\def\doifelselayoutdefined#1% {\ifcsname\namedlayouthash{#1}\c!state\endcsname % maybe a helper \expandafter\firstoftwoarguments @@ -218,12 +214,22 @@ \newtoks\everyswapmargins % watch the order ! +\newconditional\marginsareswapped + \appendtoks + \ifconditional\marginsareswapped + \setfalse\marginsareswapped + \else + \settrue\marginsareswapped + \fi + % \enforced\swapcsvalues\leftmargindistance\rightmargindistance \enforced\swapcsvalues\leftedgedistance \rightedgedistance \enforced\swapcsvalues\leftmarginwidth \rightmarginwidth \enforced\swapcsvalues\leftedgewidth \rightedgewidth % + \enforced\swapcsvalues\backspace \cutspace + % \enforced\swapcsvalues\leftmargintotal \rightmargintotal \enforced\swapcsvalues\leftedgetotal \rightedgetotal \enforced\swapcsvalues\leftsidetotal \rightsidetotal @@ -754,9 +760,9 @@ \ifx\p_direction\v!reverse \enforced\global\swapcsvalues\naturalleftedgedistance \naturalrightedgedistance \enforced\global\swapcsvalues\naturalleftmargindistance\naturalrightmargindistance - \enforced\global\swapcsvalues\leftedgedistance \rightedgedistance \enforced\global\swapcsvalues\leftmargindistance \rightmargindistance \enforced\global\swapcsvalues\leftmarginwidth \rightmarginwidth + \enforced\global\swapcsvalues\leftedgedistance \rightedgedistance \enforced\global\swapcsvalues\leftedgewidth \rightedgewidth \enforced\global\swapcsvalues\backspace \cutspace \expandafter\setsystemmode @@ -1256,13 +1262,16 @@ \aliased\let\doifmarginswapelse\doifelsemarginswap \protected\def\page_layouts_swap_margins % name will change, frozen? - {\doifelsemarginswap\relax\page_layouts_swap_margins_indeed} + {\doifelsemarginswap\gobbleoneargument\page_layouts_swap_margins_indeed} -\protected\def\page_layouts_swap_margins_indeed - {\let\page_layouts_swap_margins \relax % to prevent local swapping - \let\page_layouts_swap_margins_indeed\relax % to prevent local swapping +\protected\def\page_layouts_swap_margins_indeed#1% + {\let\page_layouts_swap_margins\gobbleoneargument % to prevent local swapping + %\writestatus\m!layouts{swapping margins for #1}% \the\everyswapmargins} +\permanent\protected\def\swapmargindimensions + {\page_layouts_swap_margins\v!page} + \permanent\def\rightorleftpageaction {\ifdoublesided \expandafter\page_layouts_right_or_left_page_action @@ -1353,6 +1362,15 @@ \glet\page_grids_add_to_one\gobbleoneargument \glet\page_grids_add_to_mix\gobbleoneargument +%D Play safe: + +\appendtoks + \ifnum\realpageno>\plusone + \page[\v!odd]% + \setuplayout + \fi +\to \everysetuppagenumbering + %D The default dimensions are quite old and will not change. The funny fractions %D were introduced when we went from fixed dimensions to relative ones. Since %D \CONTEXT\ is a dutch package, the dimensions are based on the metric system. The |