summaryrefslogtreecommitdiff
path: root/metapost/context/base/mp-page.mpiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2011-10-17 13:20:14 +0300
committerMarius <mariausol@gmail.com>2011-10-17 13:20:14 +0300
commitfbaf4b2bb7fec1ba72bf646ff65bbb1398478c2a (patch)
tree3b6a1247a91f2d75b134dee5f6d3156980d3c75d /metapost/context/base/mp-page.mpiv
parent04d3fbe4239ed7d4ce05bcac837ecc4078f18347 (diff)
downloadcontext-fbaf4b2bb7fec1ba72bf646ff65bbb1398478c2a.tar.gz
beta 2011.10.17 10:36
Diffstat (limited to 'metapost/context/base/mp-page.mpiv')
-rw-r--r--metapost/context/base/mp-page.mpiv66
1 files changed, 55 insertions, 11 deletions
diff --git a/metapost/context/base/mp-page.mpiv b/metapost/context/base/mp-page.mpiv
index e9e0be5b0..e33324b0e 100644
--- a/metapost/context/base/mp-page.mpiv
+++ b/metapost/context/base/mp-page.mpiv
@@ -401,31 +401,77 @@ def SetPageAreas =
enddef ;
def BoundPageAreas =
-
- % pickup pencircle scaled 0pt ;
-
- bboxmargin := 0 ; setbounds currentpicture to Page ;
-
+ % pickup pencircle scaled 0pt ;
+ bboxmargin := 0 ; setbounds currentpicture to Page ;
enddef ;
def StartPage =
-
+ begingroup ;
if PageStateAvailable :
LoadPageState ;
SwapPageState ;
fi ;
-
SetPageAreas ;
BoundPageAreas ;
-
enddef ;
def StopPage =
-
BoundPageAreas ;
+ endgroup ;
+enddef ;
+
+% cover pages
+
+def BoundCoverAreas =
+ % todo: add cropmarks
+ bboxmargin := 0 ; setbounds currentpicture to Paper enlarged PaperBleed ;
+enddef ;
+
+def SetCoverAreas =
+
+ if unknown SpineWidth :
+ SpineWidth := 8mm ;
+ fi ;
+
+ if unknown PaperBleed :
+ PaperBleed := 0 ;
+ fi ;
+
+ FrontPageWidth := PaperWidth ;
+ BackPageWidth := PaperWidth ;
+ PaperWidth := 2 * PaperWidth + SpineWidth ;
+
+ FrontPageHeight := PaperHeight ;
+ BackPageHeight := PaperHeight ;
+ PaperHeight := PaperHeight ;
+ SpineHeight := PaperHeight ;
+
+ path Paper ; Paper := unitsquare xscaled PaperWidth yscaled PaperHeight ;
+ path Spine ; Spine := unitsquare xscaled SpineWidth yscaled PaperHeight shifted (BackPageWidth,0);
+ path BackPage ; BackPage := unitsquare xscaled BackPageWidth yscaled PaperHeight ;
+ path FrontPage ; FrontPage := unitsquare xscaled FrontPageWidth yscaled PaperHeight shifted (BackPageWidth+SpineWidth,0) ;
enddef ;
+
+def StartCover =
+ begingroup ;
+ if PageStateAvailable :
+ LoadPageState ;
+ % SwapPageState ;
+ fi ;
+ SetPageAreas ;
+ SetCoverAreas ;
+ BoundCoverAreas ;
+enddef ;
+
+def StopCover =
+ BoundCoverAreas ;
+ endgroup ;
+enddef ;
+
+% overlays:
+
def OverlayBox =
(unitsquare xyscaled (OverlayWidth,OverlayHeight))
enddef ;
@@ -662,5 +708,3 @@ def page_marks_add_number(expr width, height, length, offset, n) = % todo: names
setbounds currentpicture to page ;
enddef ;
-
-endinput ;