diff options
Diffstat (limited to 'tex/context/base/page-plg.mkiv')
-rw-r--r-- | tex/context/base/page-plg.mkiv | 110 |
1 files changed, 47 insertions, 63 deletions
diff --git a/tex/context/base/page-plg.mkiv b/tex/context/base/page-plg.mkiv index b59a05a94..004b9204d 100644 --- a/tex/context/base/page-plg.mkiv +++ b/tex/context/base/page-plg.mkiv @@ -11,10 +11,9 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\writestatus{loading}{ConTeXt Page Macros / Extra Page Building} +% \ifx\pageareabox\undefined \else \endinput \fi -%D This still needs some work, especially the dimensions need to be -%D checked cq.\ optimized. Beware: method has become alternative! +\writestatus{loading}{ConTeXt Page Macros / Extra Page Building} %D This feature has been present for a while but has never been %D exploited: pluggable pagebuilders. The next example code @@ -32,8 +31,6 @@ %D \startpagelayout[leftpage] %D \setupTABLE[offset=overlay] %D \setupTABLE[c][1][width=\leftmarginwidth] -%D \setupTABLE[c][2][width=\textwidth] -%D \setupTABLE[c][3][width=\rightmarginwidth] %D \bTABLE %D \bTR %D \bTD[nx=3,background=color,backgroundcolor=green] @@ -46,7 +43,7 @@ %D \eTR %D \bTR %D \bTD[nx=3,offset=overlay] -%D {\bTABLE +%D {\bTABLE[width=.5\hsize] %D \bTR %D \bTD \pagearea[footer][text][left] \eTD %D \bTD \pagearea[bottom][text][left] \eTD @@ -59,9 +56,7 @@ %D %D \startpagelayout[rightpage] %D \setupTABLE[offset=overlay] -%D \setupTABLE[c][1][width=\leftmarginwidth] -%D \setupTABLE[c][2][width=\textwidth] -%D \setupTABLE[c][3][width=\rightmarginwidth] +%D \setupTABLE[c][1][width=\rightmarginwidth] %D \bTABLE %D \bTR %D \bTD[nx=3] \pagearea[header][text][middle] \eTD @@ -72,7 +67,7 @@ %D \eTR %D \bTR %D \bTD[nx=3,offset=overlay] -%D {\bTABLE +%D {\bTABLE[width=.5\hsize] %D \bTR %D \bTD \pagearea[bottom][text][right] \eTD %D \bTD \pagearea[footer][text][right] \eTD @@ -85,9 +80,12 @@ %D %D \setupcolors[state=start] %D +%D \setupbackgrounds[text][background=color,backgroundcolor=blue] +%D \setupbackgrounds[header][text][background=color,backgroundcolor=red] +%D %D \setuppagenumbering[alternative=doublesided,location=] %D -%D \setuplayout[alternative=makeup] +%D \setuplayout[method=makeup] %D %D \definetextbackground %D [test] @@ -112,8 +110,6 @@ \unprotect -\installcorenamespace{layoutmakeupalternative} - \def\page_boxes_construct_content_makeup#1#2#3% targetbox flusher box {\setbox#1\hbox {\vbox to \textheight @@ -129,77 +125,65 @@ \dp#1\zeropoint \hsize\paperwidth \vsize\paperheight - \setbox#1\vbox{\csname\??layoutmakeupalternative\doifbothsidesoverruled\v!page\v!rightpage\v!leftpage\endcsname}% + \setbox#1\vbox{\csname\??layoutmethod\doifbothsidesoverruled\v!page\v!rightpage\v!leftpage\endcsname}% \wd#1\paperwidth \ht#1\paperheight \dp#1\zeropoint} \installlayoutalternative\v!makeup{\page_boxes_construct_content_makeup} -\newbox\b_page_area +\newbox\pageareabox \unexpanded\def\pagearea {\dotripleempty\page_area} -\def\page_area +\def\page_area[#1][#2][#3]% {\ifthirdargument - \expandafter\page_area_three + \doifelse{#3}\v!left + {\page_area_indeed{#1}{#2}\c!lefttext} + {\doifelse{#3}\v!right + {\page_area_indeed{#1}{#2}\c!righttext} + {\page_area_indeed{#1}{#2}\c!middletext}}% \else\ifsecondargument - \doubleexpandafter\page_area_two + \doifbothsidesoverruled + {\page_area_indeed{#1}{#2}\c!righttext} + {\page_area_indeed{#1}{#2}\c!righttext} + {\page_area_indeed{#1}{#2}\c!lefttext }% \else - \doubleexpandafter\page_area_one + \doif{#1}\v!text % copy due to trial runs in TABLE + {\iftrialtypesetting +% \copy\pagebox + \fakebox\pagebox + \else +% \localpositioningfalse + \page_backgrounds_add_to_text\pagebox + \page_grids_add_to_box\pagebox + \box\pagebox + \fi}% \fi\fi} -\def\page_area_three[#1][#2][#3]% - {\edef\m_page_area_three{#3}% - \ifx\m_page_area_three\v!left - \let\m_page_area_three\c!lefttext - \else\ifx\m_page_area_three\v!right - \let\m_page_area_three\c!righttext - \else - \let\m_page_area_three\c!middletext - \fi\fi - \page_area_indeed{#1}{#2}\m_page_area_three} - -\def\page_area_two[#1][#2][#3]% - {\edef\m_page_area_three{\doifbothsidesoverruled\c!righttext\c!righttext\c!lefttext}% - \page_area_indeed{#1}{#2}\m_page_area_three} - -\def\page_area_one[#1][#2][#3]% - {\edef\m_page_area_one{#1} - \ifx\m_page_area_one\v!text % copy due to trial runs in TABLE +\def\page_area_indeed#1#2#3% + {\setbox\pageareabox\vbox{\getspecificlayouttext{#1}{#2}{#3}}% + \ifsomebackgroundfound{#1#2}% \iftrialtypesetting - \fakebox\pagebox +% \box\pageareabox + \fakebox\pageareabox \else - \page_backgrounds_add_to_text\pagebox - \page_grids_add_to_box\pagebox - \box\pagebox + \localframed + [\??ma#1#2] + [\c!width=\wd\pageareabox, + \c!height=\ht\pageareabox, + \c!offset=\v!overlay] + {\box\pageareabox}% \fi - \fi} - -\def\page_area_indeed#1#2#3% - {\setbox\b_page_area\vbox{\getspecificlayouttext{#1}{#2}{#3}}% - \iftrialtypesetting - \fakebox\b_page_area - \else\ifcsname\??layoutbackgrounds#1#2\endcsname - \page_area_indeed_yes{#1}{#2}% \else - \box\b_page_area - \fi\fi} - -\def\page_area_indeed_yes#1#2% - {% todo: \localbackgroundframed{\??layoutbackgrounds#1#2}{#1:#2} - \localframed % todo: - [\??layoutbackgrounds#1#2] - [\c!width=\wd\b_page_area, - \c!height=\ht\b_page_area, - \c!offset=\v!overlay] - {\box\b_page_area}} + \box\pageareabox + \fi} % to be done nicely (proper namespacing) -\setvalue{\??layoutmakeupalternative\v!leftpage }{\csname\??layoutmakeupalternative\v!page\endcsname} -\setvalue{\??layoutmakeupalternative\v!rightpage}{\csname\??layoutmakeupalternative\v!page\endcsname} +\setvalue{\??layoutmethod\v!leftpage }{\csname\??layoutmethod\v!page\endcsname} +\setvalue{\??layoutmethod\v!rightpage}{\csname\??layoutmethod\v!page\endcsname} \unexpanded\def\startpagelayout {\bgroup @@ -210,6 +194,6 @@ \def\page_layouts_start_layout[#1]#2\stoppagelayout {\egroup - \setvalue{\??layoutmakeupalternative#1}{#2}} + \setvalue{\??layoutmethod#1}{#2}} \protect \endinput |