diff options
author | Hans Hagen <pragma@wxs.nl> | 2014-02-13 11:27:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2014-02-13 11:27:00 +0100 |
commit | f4f8db5c9230c293f454b335b777d211840463a7 (patch) | |
tree | e7af0732d45e2dd651aad1bd62fabe36c2d57768 /tex/context/base/page-mak.mkvi | |
parent | b1d9ab946dc387c58a5575a360754fa04ebcad42 (diff) | |
download | context-f4f8db5c9230c293f454b335b777d211840463a7.tar.gz |
beta 2014.02.13 11:27
Diffstat (limited to 'tex/context/base/page-mak.mkvi')
-rw-r--r-- | tex/context/base/page-mak.mkvi | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/tex/context/base/page-mak.mkvi b/tex/context/base/page-mak.mkvi index 17269b174..c910f281d 100644 --- a/tex/context/base/page-mak.mkvi +++ b/tex/context/base/page-mak.mkvi @@ -91,10 +91,32 @@ \def\page_makeup_start_yes[#name]% [#settings]% {\doifelsecommandhandler\??makeup{#name}\page_makeup_start_indeed\page_makeup_start_nop[#name]}% +% case 1: +% +% \setuplayout[height=5cm] +% +% case 2: +% +% \definelayout[crap][height=10cm] +% \definelayout[standard][crap] +% +% case 3: +% +% \setuplayout[standard][height=15cm] +% +% case 4: +% +% \definelayout[whatever][height=2cm] +% \setuplayout[whatever] + \def\page_makeup_start_indeed[#name][#settings]% {% the next grouping hack is somewhat messy: \begingroup - \edef\currentmakeup{#name}% + % we need to figure out the current layout + \xdef\m_page_makeup_name{#name}% + \let\currentmakeup\m_page_makeup_name + \let\currentlayout\m_page_makeup_name + \xdef\m_page_makeup_layout_parent{\layoutparameter\s!parent}% \setupcurrentmakeup[#settings]% \edef\p_page{\makeupparameter\c!page}% \ifx\p_page\empty @@ -107,9 +129,22 @@ \endgroup \page[\p_page]% \fi\fi + % some dirty trickery (sorry) for determining if we have + % - a layout definition at all + % - inherit from the parent of that definition + % - inherit from the current layout otherwise + \ifx\m_page_makeup_name\currentlayout + % we already use the layout + \else\ifx\m_page_makeup_layout_parent\??layout + % we inherit from the current layout + \normalexpanded{\setuplayout[#name][\s!parent=\??layout\currentlayout]}% is remembered but checked later anyway + % \else + % we have an inherited layout + \fi\fi \startlayout[#name]% includes \page \bgroup - \edef\currentmakeup{#name}% + %\edef\currentmakeup{#name}% + \let\currentmakeup\m_page_makeup_name \setupcurrentmakeup[#settings]% \setsystemmode\v!makeup \the\t_page_makeup_every_setup @@ -149,7 +184,12 @@ \fi \fi \strc_pagenumbers_page_state_pop % new \egroup - \stoplayout} % includes \page + \stoplayout % includes \page + \ifx\m_page_makeup_name\currentlayout + \else\ifx\m_page_makeup_layout_parent\??layout + \normalexpanded{\setuplayout[\m_page_makeup_name][\s!parent=\??layout]}% is remembered but checked later anyway + % \else + \fi\fi} \setvalue{\??makeupdoublesided\v!yes}% {\emptyhbox |