1%D \module 2%D [ file=meta-pag, 3%D version=1999.07.10, 4%D title=\METAPOST\ Graphics, 5%D subtitle=Initialization, 6%D author=Hans Hagen, 7%D date=\currentdate, 8%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] 9%C 10%C This module is part of the \CONTEXT\ macro||package and is 11%C therefore copyrighted by \PRAGMA. See mreadme.pdf for 12%C details. 13 14%D These definitions used to be part of the old \type {core-mps} file, later changed 15%D into \type {meta-ini}, but keeping them separate is cleaner. 16 17\writestatus{loading}{MetaPost Graphics / Page Data Management} 18 19\unprotect 20 21%D The next few macros tell \METAPOST\ how the \CONTEXT\ pagebody looks. 22 23% \startMPextensions 24% boolean PageStateAvailable; 25% PageStateAvailable:=true; 26% \stopMPextensions 27 28% maybe always set as frozen anyway 29 30% \startMPinitializations 31% PaperHeight:=\the\paperheight; 32% PaperWidth:=\the\paperwidth; 33% PrintPaperHeight:=\the\printpaperheight; 34% PrintPaperWidth:=\the\printpaperwidth; 35% TopSpace:=\the\topspace; 36% BottomSpace:=\the\bottomspace; 37% BackSpace:=\the\backspace; 38% CutSpace:=\the\cutspace; 39% MakeupHeight:=\the\makeupheight; 40% MakeupWidth:=\the\makeupwidth; 41% TopHeight:=\the\topheight; 42% TopDistance:=\the\topdistance; 43% HeaderHeight:=\the\headerheight; 44% HeaderDistance:=\the\headerdistance; 45% TextHeight:=\the\textheight; 46% FooterDistance:=\the\footerdistance; 47% FooterHeight:=\the\footerheight; 48% BottomDistance:=\the\bottomdistance; 49% BottomHeight:=\the\bottomheight; 50% LeftEdgeWidth:=\the\leftedgewidth; 51% LeftEdgeDistance:=\the\leftedgedistance; 52% LeftMarginWidth:=\the\leftmarginwidth; 53% LeftMarginDistance:=\the\leftmargindistance; 54% TextWidth:=\the\textwidth; 55% RightMarginDistance:=\the\rightmargindistance; 56% RightMarginWidth:=\the\rightmarginwidth; 57% RightEdgeDistance:=\the\rightedgedistance; 58% RightEdgeWidth:=\the\rightedgewidth; 59% InnerMarginDistance:=\the\innermargindistance; 60% InnerMarginWidth:=\the\innermarginwidth; 61% OuterMarginDistance:=\the\outermargindistance; 62% OuterMarginWidth:=\the\outermarginwidth; 63% InnerEdgeDistance:=\the\inneredgedistance; 64% InnerEdgeWidth:=\the\inneredgewidth; 65% OuterEdgeDistance:=\the\outeredgedistance; 66% OuterEdgeWidth:=\the\outeredgewidth; 67% PageOffset:=\the\pagebackgroundoffset; 68% PageDepth:=\the\pagebackgrounddepth; 69% LayoutColumns:=\the\layoutcolumns; 70% LayoutColumnDistance:=\the\layoutcolumndistance; 71% LayoutColumnWidth:=\the\layoutcolumnwidth; 72% % 73% boolean OnRightPage,OnOddPage,InPageBody; 74% % 75% OnRightPage:=\MPonrightpage; 76% OnOddPage:=\MPonoddpage; 77% InPageBody:=\ifinpagebody true \else false \fi; 78% % 79% RealPageNumber:=\the\realpageno; 80% PageNumber:=\the\pageno; 81% NOfPages:=\lastpage; 82% LastPageNumber:=\lastpage; 83% % 84% CurrentColumn:=\number\mofcolumns; 85% NOfColumns:=\number\nofcolumns; 86% \stopMPinitializations 87 88% \def\MPonrightpage{true} % just in case they're used 89% \def\MPonoddpage {true} % just in case they're used 90 91% \def\freezeMPpagelayout 92% {\edef\MPonrightpage{\doifbothsides {tru}{tru}{fals}e}% 93% \edef\MPonoddpage {\doifelseoddpage {tru}{fals}e}} 94 95%D We need to freeze the pagelayout before the backgrounds are build, because the 96%D overlay will temporarily become zero (overlay). 97 98% \appendtoks 99% \freezeMPpagelayout 100% \to \everybeforepagebody 101 102%D By freezing these value every graphic, we can use layout variables that change 103%D halfways a page, whatever use that has. 104 105% obsolete (but keep the code) 106% 107% \prependtoks 108% \calculatereducedvsizes % this is really needed 109% \freezeMPpagelayout 110% \freezeMPlayout % to be used grouped 111% \to \everyMPgraphic 112 113\prependtoks 114 \calculatereducedvsizes % bah, this is really needed 115\to \everyMPgraphic 116 117\protect \endinput 118 |