%D \module %D [ file=meta-pag, %D version=1999.07.10, %D title=\METAPOST\ Graphics, %D subtitle=Initialization, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D These definitions used to be part of the old \type %D {core-mps} file, later changed into \type {meta-ini}, but %D keeping them separate is cleaner. \writestatus{loading}{MetaPost Graphics / Page Data Management} \unprotect %D The next few macros tell \METAPOST\ how the \CONTEXT\ %D pagebody looks. \startMPextensions boolean PageStateAvailable,OnRightPage,InPageBody; PageStateAvailable:=true; \stopMPextensions \startMPinitializations OnRightPage:=true; InPageBody:=\ifinpagebody true \else false \fi; \stopMPinitializations \startMPinitializations def LoadPageState = OnRightPage:=\MPonrightpage; OnOddPage:=\MPonoddpage; RealPageNumber:=\the\realpageno; PageNumber:=\the\pageno; NOfPages:=\lastpage; PaperHeight:=\the\paperheight; PaperWidth:=\the\paperwidth; PrintPaperHeight:=\the\printpaperheight; PrintPaperWidth:=\the\printpaperwidth; TopSpace:=\the\topspace; BottomSpace:=\the\bottomspace; BackSpace:=\the\backspace; CutSpace:=\the\cutspace; MakeupHeight:=\the\makeupheight; MakeupWidth:=\the\makeupwidth; TopHeight:=\the\topheight; TopDistance:=\the\topdistance; HeaderHeight:=\the\headerheight; HeaderDistance:=\the\headerdistance; TextHeight:=\the\textheight; FooterDistance:=\the\footerdistance; FooterHeight:=\the\footerheight; BottomDistance:=\the\bottomdistance; BottomHeight:=\the\bottomheight; LeftEdgeWidth:=\the\leftedgewidth; LeftEdgeDistance:=\the\leftedgedistance; LeftMarginWidth:=\the\leftmarginwidth; LeftMarginDistance:=\the\leftmargindistance; TextWidth:=\the\textwidth ; RightMarginDistance:=\the\rightmargindistance; RightMarginWidth:=\the\rightmarginwidth; RightEdgeDistance:=\the\rightedgedistance; RightEdgeWidth:=\the\rightedgewidth; InnerMarginDistance:=\the\innermargindistance; InnerMarginWidth:=\the\innermarginwidth; OuterMarginDistance:=\the\outermargindistance; OuterMarginWidth:=\the\outermarginwidth; InnerEdgeDistance:=\the\inneredgedistance; InnerEdgeWidth:=\the\inneredgewidth; OuterEdgeDistance:=\the\outeredgedistance; OuterEdgeWidth:=\the\outeredgewidth; PageOffset:=\the\pageoffset; PageDepth:=\the\pagedepth; LayoutColumns:=\the\layoutcolumns; LayoutColumnDistance:=\the\layoutcolumndistance; LayoutColumnWidth:=\the\layoutcolumnwidth; enddef; \stopMPinitializations \def\MPonrightpage{true} \def\MPonoddpage {true} \def\freezeMPpagelayout {\edef\MPonrightpage{\doifbothsides {tru}{tru}{fals}e}% \edef\MPonoddpage {\doifoddpageelse {tru}{fals}e}} %D We need to freeze the pagelayout before the backgrounds %D are build, because the overlay will temporarily become %D zero (overlay). \appendtoks \freezeMPpagelayout \to \everybeforepagebody %D By freezing these value every graphic, we can use layout %D variables that change halfways a page, whatever use that %D has. % obsolete (but keep the code) % % \prependtoks % \calculatereducedvsizes % this is really needed % \freezeMPpagelayout % \freezeMPlayout % to be used grouped % \to \everyMPgraphic \prependtoks \calculatereducedvsizes % this is really needed \to \everyMPgraphic \protect \endinput