summaryrefslogtreecommitdiff
path: root/tex/context/base/page-mak.mkvi
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/page-mak.mkvi')
-rw-r--r--tex/context/base/page-mak.mkvi46
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