1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16if known metafun_loaded_cont : endinput ; fi ;
17
18newinternal boolean metafun_loaded_cont ; metafun_loaded_cont : = true ; immutable metafun_loaded_cont ;
19
20string CurrentLayout ; CurrentLayout : = " default " ;
21
22boolean mfun_swapped ;
23
24def SwapPageState =
25 mfun_swapped : = true ;
26enddef ;
27
28permanent CurrentLayout , SwapPageState ;
29
30extra_beginfig : = extra_beginfig & " mfun_swapped := false ; " ;
31
32newscriptindex mfid_PaperHeight ; mfid_PaperHeight : = scriptindex " PaperHeight " ; vardef PaperHeight = runscript mfid_PaperHeight enddef ;
33newscriptindex mfid_PaperWidth ; mfid_PaperWidth : = scriptindex " PaperWidth " ; vardef PaperWidth = runscript mfid_PaperWidth enddef ;
34newscriptindex mfid_PrintPaperHeight ; mfid_PrintPaperHeight : = scriptindex " PrintPaperHeight " ; vardef PrintPaperHeight = runscript mfid_PrintPaperHeight enddef ;
35newscriptindex mfid_PrintPaperWidth ; mfid_PrintPaperWidth : = scriptindex " PrintPaperWidth " ; vardef PrintPaperWidth = runscript mfid_PrintPaperWidth enddef ;
36newscriptindex mfid_TopSpace ; mfid_TopSpace : = scriptindex " TopSpace " ; vardef TopSpace = runscript mfid_TopSpace enddef ;
37newscriptindex mfid_BottomSpace ; mfid_BottomSpace : = scriptindex " BottomSpace " ; vardef BottomSpace = runscript mfid_BottomSpace enddef ;
38newscriptindex mfid_BackSpace ; mfid_BackSpace : = scriptindex " BackSpace " ; vardef BackSpace = runscript mfid_BackSpace enddef ;
39newscriptindex mfid_CutSpace ; mfid_CutSpace : = scriptindex " CutSpace " ; vardef CutSpace = runscript mfid_CutSpace enddef ;
40newscriptindex mfid_MakeupHeight ; mfid_MakeupHeight : = scriptindex " MakeupHeight " ; vardef MakeupHeight = runscript mfid_MakeupHeight enddef ;
41newscriptindex mfid_MakeupWidth ; mfid_MakeupWidth : = scriptindex " MakeupWidth " ; vardef MakeupWidth = runscript mfid_MakeupWidth enddef ;
42newscriptindex mfid_TopHeight ; mfid_TopHeight : = scriptindex " TopHeight " ; vardef TopHeight = runscript mfid_TopHeight enddef ;
43newscriptindex mfid_TopDistance ; mfid_TopDistance : = scriptindex " TopDistance " ; vardef TopDistance = runscript mfid_TopDistance enddef ;
44newscriptindex mfid_HeaderHeight ; mfid_HeaderHeight : = scriptindex " HeaderHeight " ; vardef HeaderHeight = runscript mfid_HeaderHeight enddef ;
45newscriptindex mfid_HeaderDistance ; mfid_HeaderDistance : = scriptindex " HeaderDistance " ; vardef HeaderDistance = runscript mfid_HeaderDistance enddef ;
46newscriptindex mfid_TextHeight ; mfid_TextHeight : = scriptindex " TextHeight " ; vardef TextHeight = runscript mfid_TextHeight enddef ;
47newscriptindex mfid_FooterDistance ; mfid_FooterDistance : = scriptindex " FooterDistance " ; vardef FooterDistance = runscript mfid_FooterDistance enddef ;
48newscriptindex mfid_FooterHeight ; mfid_FooterHeight : = scriptindex " FooterHeight " ; vardef FooterHeight = runscript mfid_FooterHeight enddef ;
49newscriptindex mfid_BottomDistance ; mfid_BottomDistance : = scriptindex " BottomDistance " ; vardef BottomDistance = runscript mfid_BottomDistance enddef ;
50newscriptindex mfid_BottomHeight ; mfid_BottomHeight : = scriptindex " BottomHeight " ; vardef BottomHeight = runscript mfid_BottomHeight enddef ;
51newscriptindex mfid_LeftEdgeWidth ; mfid_LeftEdgeWidth : = scriptindex " LeftEdgeWidth " ; vardef LeftEdgeWidth = runscript mfid_LeftEdgeWidth enddef ;
52newscriptindex mfid_LeftEdgeDistance ; mfid_LeftEdgeDistance : = scriptindex " LeftEdgeDistance " ; vardef LeftEdgeDistance = runscript mfid_LeftEdgeDistance enddef ;
53newscriptindex mfid_LeftMarginWidth ; mfid_LeftMarginWidth : = scriptindex " LeftMarginWidth " ; vardef LeftMarginWidth = runscript mfid_LeftMarginWidth enddef ;
54newscriptindex mfid_LeftMarginDistance ; mfid_LeftMarginDistance : = scriptindex " LeftMarginDistance " ; vardef LeftMarginDistance = runscript mfid_LeftMarginDistance enddef ;
55newscriptindex mfid_TextWidth ; mfid_TextWidth : = scriptindex " TextWidth " ; vardef TextWidth = runscript mfid_TextWidth enddef ;
56newscriptindex mfid_RightMarginDistance ; mfid_RightMarginDistance : = scriptindex " RightMarginDistance " ; vardef RightMarginDistance = runscript mfid_RightMarginDistance enddef ;
57newscriptindex mfid_RightMarginWidth ; mfid_RightMarginWidth : = scriptindex " RightMarginWidth " ; vardef RightMarginWidth = runscript mfid_RightMarginWidth enddef ;
58newscriptindex mfid_RightEdgeDistance ; mfid_RightEdgeDistance : = scriptindex " RightEdgeDistance " ; vardef RightEdgeDistance = runscript mfid_RightEdgeDistance enddef ;
59newscriptindex mfid_RightEdgeWidth ; mfid_RightEdgeWidth : = scriptindex " RightEdgeWidth " ; vardef RightEdgeWidth = runscript mfid_RightEdgeWidth enddef ;
60newscriptindex mfid_InnerMarginDistance ; mfid_InnerMarginDistance : = scriptindex " InnerMarginDistance " ; vardef InnerMarginDistance = runscript mfid_InnerMarginDistance enddef ;
61newscriptindex mfid_InnerMarginWidth ; mfid_InnerMarginWidth : = scriptindex " InnerMarginWidth " ; vardef InnerMarginWidth = runscript mfid_InnerMarginWidth enddef ;
62newscriptindex mfid_OuterMarginDistance ; mfid_OuterMarginDistance : = scriptindex " OuterMarginDistance " ; vardef OuterMarginDistance = runscript mfid_OuterMarginDistance enddef ;
63newscriptindex mfid_OuterMarginWidth ; mfid_OuterMarginWidth : = scriptindex " OuterMarginWidth " ; vardef OuterMarginWidth = runscript mfid_OuterMarginWidth enddef ;
64newscriptindex mfid_InnerEdgeDistance ; mfid_InnerEdgeDistance : = scriptindex " InnerEdgeDistance " ; vardef InnerEdgeDistance = runscript mfid_InnerEdgeDistance enddef ;
65newscriptindex mfid_InnerEdgeWidth ; mfid_InnerEdgeWidth : = scriptindex " InnerEdgeWidth " ; vardef InnerEdgeWidth = runscript mfid_InnerEdgeWidth enddef ;
66newscriptindex mfid_OuterEdgeDistance ; mfid_OuterEdgeDistance : = scriptindex " OuterEdgeDistance " ; vardef OuterEdgeDistance = runscript mfid_OuterEdgeDistance enddef ;
67newscriptindex mfid_OuterEdgeWidth ; mfid_OuterEdgeWidth : = scriptindex " OuterEdgeWidth " ; vardef OuterEdgeWidth = runscript mfid_OuterEdgeWidth enddef ;
68newscriptindex mfid_PageOffset ; mfid_PageOffset : = scriptindex " PageOffset " ; vardef PageOffset = runscript mfid_PageOffset enddef ;
69newscriptindex mfid_PageDepth ; mfid_PageDepth : = scriptindex " PageDepth " ; vardef PageDepth = runscript mfid_PageDepth enddef ;
70newscriptindex mfid_LayoutColumns ; mfid_LayoutColumns : = scriptindex " LayoutColumns " ; vardef LayoutColumns = runscript mfid_LayoutColumns enddef ;
71newscriptindex mfid_LayoutColumnDistance ; mfid_LayoutColumnDistance : = scriptindex " LayoutColumnDistance " ; vardef LayoutColumnDistance = runscript mfid_LayoutColumnDistance enddef ;
72newscriptindex mfid_LayoutColumnWidth ; mfid_LayoutColumnWidth : = scriptindex " LayoutColumnWidth " ; vardef LayoutColumnWidth = runscript mfid_LayoutColumnWidth enddef ;
73
74immutable
75 PaperHeight , PaperWidth , PrintPaperHeight , PrintPaperWidth , TopSpace ,
76 BottomSpace , BackSpace , CutSpace , MakeupHeight , MakeupWidth , TopHeight ,
77 TopDistance , HeaderHeight , HeaderDistance , TextHeight , FooterDistance ,
78 FooterHeight , BottomDistance , BottomHeight , LeftEdgeWidth , LeftEdgeDistance ,
79 LeftMarginWidth , LeftMarginDistance , TextWidth , RightMarginDistance ,
80 RightMarginWidth , RightEdgeDistance , RightEdgeWidth , InnerMarginDistance ,
81 InnerMarginWidth , OuterMarginDistance , OuterMarginWidth , InnerEdgeDistance ,
82 InnerEdgeWidth , OuterEdgeDistance , OuterEdgeWidth , PageOffset , PageDepth ,
83 LayoutColumns , LayoutColumnDistance , LayoutColumnWidth ;
84
85newscriptindex mfid_OnRightPage ; mfid_OnRightPage : = scriptindex " OnRightPage " ; vardef OnRightPage = runscript mfid_OnRightPage enddef ;
86newscriptindex mfid_OnOddPage ; mfid_OnOddPage : = scriptindex " OnOddPage " ; vardef OnOddPage = runscript mfid_OnOddPage enddef ;
87newscriptindex mfid_InPageBody ; mfid_InPageBody : = scriptindex " InPageBody " ; vardef InPageBody = runscript mfid_InPageBody enddef ;
88newscriptindex mfid_LayoutHasChanged ; mfid_LayoutHasChanged : = scriptindex " LayoutHasChanged " ; vardef LayoutHasChanged = runscript mfid_LayoutHasChanged enddef ;
89
90immutable
91 OnRightPage , OnOddPage , InPageBody , LayoutHasChanged ;
92
93newscriptindex mfid_RealPageNumber ; mfid_RealPageNumber : = scriptindex " RealPageNumber " ; vardef RealPageNumber = runscript mfid_RealPageNumber enddef ;
94newscriptindex mfid_LastPageNumber ; mfid_LastPageNumber : = scriptindex " LastPageNumber " ; vardef LastPageNumber = runscript mfid_LastPageNumber enddef ;
95
96newscriptindex mfid_PageNumber ; mfid_PageNumber : = scriptindex " PageNumber " ; vardef PageNumber = runscript mfid_PageNumber enddef ;
97newscriptindex mfid_NOfPages ; mfid_NOfPages : = scriptindex " NOfPages " ; vardef NOfPages = runscript mfid_NOfPages enddef ;
98
99newscriptindex mfid_SubPageNumber ; mfid_SubPageNumber : = scriptindex " SubPageNumber " ; vardef SubPageNumber = runscript mfid_SubPageNumber enddef ;
100newscriptindex mfid_NOfSubPages ; mfid_NOfSubPages : = scriptindex " NOfSubPages " ; vardef NOfSubPages = runscript mfid_NOfSubPages enddef ;
101
102newscriptindex mfid_CurrentColumn ; mfid_CurrentColumn : = scriptindex " CurrentColumn " ; vardef CurrentColumn = runscript mfid_CurrentColumn enddef ;
103newscriptindex mfid_NOfColumns ; mfid_NOfColumns : = scriptindex " NOfColumns " ; vardef NOfColumns = runscript mfid_NOfColumns enddef ;
104
105immutable
106 RealPageNumber , LastPageNumber , PageNumber ,
107 NOfPages , SubPageNumber , NOfSubPages , CurrentColumn , NOfColumns ;
108
109newscriptindex mfid_BaseLineSkip ; mfid_BaseLineSkip : = scriptindex " BaseLineSkip " ; vardef BaseLineSkip = runscript mfid_BaseLineSkip enddef ;
110newscriptindex mfid_LineHeight ; mfid_LineHeight : = scriptindex " LineHeight " ; vardef LineHeight = runscript mfid_LineHeight enddef ;
111newscriptindex mfid_BodyFontSize ; mfid_BodyFontSize : = scriptindex " BodyFontSize " ; vardef BodyFontSize = runscript mfid_BodyFontSize enddef ;
112
113newscriptindex mfid_TopSkip ; mfid_TopSkip : = scriptindex " TopSkip " ; vardef TopSkip = runscript mfid_TopSkip enddef ;
114newscriptindex mfid_StrutHeight ; mfid_StrutHeight : = scriptindex " StrutHeight " ; vardef StrutHeight = runscript mfid_StrutHeight enddef ;
115newscriptindex mfid_StrutDepth ; mfid_StrutDepth : = scriptindex " StrutDepth " ; vardef StrutDepth = runscript mfid_StrutDepth enddef ;
116
117newscriptindex mfid_CurrentWidth ; mfid_CurrentWidth : = scriptindex " CurrentWidth " ; vardef CurrentWidth = runscript mfid_CurrentWidth enddef ;
118newscriptindex mfid_CurrentHeight ; mfid_CurrentHeight : = scriptindex " CurrentHeight " ; vardef CurrentHeight = runscript mfid_CurrentHeight enddef ;
119
120newscriptindex mfid_HSize ; mfid_HSize : = scriptindex " HSize " ; vardef HSize = runscript mfid_HSize enddef ;
121newscriptindex mfid_VSize ; mfid_VSize : = scriptindex " VSize " ; vardef VSize = runscript mfid_VSize enddef ;
122
123newscriptindex mfid_EmWidth ; mfid_EmWidth : = scriptindex " EmWidth " ; vardef EmWidth = runscript mfid_EmWidth enddef ;
124newscriptindex mfid_ExHeight ; mfid_ExHeight : = scriptindex " ExHeight " ; vardef ExHeight = runscript mfid_ExHeight enddef ;
125
126immutable
127 BaseLineSkip , LineHeight , BodyFontSize , TopSkip , StrutHeight , StrutDepth ,
128 CurrentWidth , CurrentHeight , HSize , VSize , EmWidth , ExHeight ;
129
130newscriptindex mfid_PageFraction ; mfid_PageFraction : = scriptindex " PageFraction " ; vardef PageFraction = runscript mfid_PageFraction enddef ;
131newscriptindex mfid_SpineWidth ; mfid_SpineWidth : = scriptindex " SpineWidth " ; vardef SpineWidth = runscript mfid_SpineWidth enddef ;
132newscriptindex mfid_PaperBleed ; mfid_PaperBleed : = scriptindex " PaperBleed " ; vardef PaperBleed = runscript mfid_PaperBleed enddef ;
133
134immutable
135 PageFraction , SpineWidth , PaperBleed ;
136
137
138
139
140newscriptindex mfid_OverlayWidth ; mfid_OverlayWidth : = scriptindex " OverlayWidth " ; vardef OverlayWidth = runscript mfid_OverlayWidth enddef ;
141newscriptindex mfid_OverlayHeight ; mfid_OverlayHeight : = scriptindex " OverlayHeight " ; vardef OverlayHeight = runscript mfid_OverlayHeight enddef ;
142newscriptindex mfid_OverlayDepth ; mfid_OverlayDepth : = scriptindex " OverlayDepth " ; vardef OverlayDepth = runscript mfid_OverlayDepth enddef ;
143newscriptindex mfid_OverlayLineWidth ; mfid_OverlayLineWidth : = scriptindex " OverlayLineWidth " ; vardef OverlayLineWidth = runscript mfid_OverlayLineWidth enddef ;
144newscriptindex mfid_OverlayOffset ; mfid_OverlayOffset : = scriptindex " OverlayOffset " ; vardef OverlayOffset = runscript mfid_OverlayOffset enddef ;
145newscriptindex mfid_OverlayRegion ; mfid_OverlayRegion : = scriptindex " OverlayRegion " ; vardef OverlayRegion = runscript mfid_OverlayRegion enddef ;
146
147immutable
148
149 OverlayWidth , OverlayHeight , OverlayDepth , OverlayLineWidth , OverlayOffset , OverlayRegion ;
150
151newscriptindex mfid_defaultcolormodel ; mfid_defaultcolormodel : = scriptindex " defaultcolormodel " ; vardef defaultcolormodel = runscript mfid_defaultcolormodel enddef ;
152
153immutable
154 defaultcolormodel ;
155
156vardef LeftMarginWidth = if mfun_swapped and not OnRightPage : runscript mfid_RightMarginWidth else : runscript mfid_LeftMarginWidth fi enddef ;
157vardef RightMarginWidth = if mfun_swapped and not OnRightPage : runscript mfid_LeftMarginWidth else : runscript mfid_RightMarginWidth fi enddef ;
158vardef LeftMarginDistance = if mfun_swapped and not OnRightPage : runscript mfid_RightMarginDistance else : runscript mfid_LeftMarginDistance fi enddef ;
159vardef RightMarginDistance = if mfun_swapped and not OnRightPage : runscript mfid_LeftMarginDistance else : runscript mfid_RightMarginDistance fi enddef ;
160
161vardef LeftEdgeWidth = if mfun_swapped and not OnRightPage : runscript mfid_RightEdgeWidth else : runscript mfid_LeftEdgeWidth fi enddef ;
162vardef RightEdgeWidth = if mfun_swapped and not OnRightPage : runscript mfid_LeftEdgeWidth else : runscript mfid_RightEdgeWidth fi enddef ;
163vardef LeftEdgeDistance = if mfun_swapped and not OnRightPage : runscript mfid_RightEdgeDistance else : runscript mfid_LeftEdgeDistance fi enddef ;
164vardef RightEdgeDistance = if mfun_swapped and not OnRightPage : runscript mfid_LeftEdgeDistance else : runscript mfid_RightEdgeDistance fi enddef ;
165
166vardef BackSpace = if mfun_swapped and not OnRightPage : PaperWidth MakeupWidth fi runscript mfid_BackSpace enddef ;
167vardef CutSpace = if mfun_swapped and not OnRightPage : PaperWidth MakeupWidth fi runscript mfid_CutSpace enddef ;
168
169
170
171vardef OuterMarginWidth = if not OnRightPage : runscript mfid_LeftMarginWidth else : runscript mfid_RightMarginWidth fi enddef ;
172vardef InnerMarginWidth = if not OnRightPage : runscript mfid_RightMarginWidth else : runscript mfid_LeftMarginWidth fi enddef ;
173vardef OuterMarginDistance = if not OnRightPage : runscript mfid_LeftMarginDistance else : runscript mfid_RightMarginDistance fi enddef ;
174vardef InnerMarginDistance = if not OnRightPage : runscript mfid_RightMarginDistance else : runscript mfid_LeftMarginDistance fi enddef ;
175
176vardef OuterEdgeWidth = if not OnRightPage : runscript mfid_LeftEdgeWidth else : runscript mfid_RightEdgeWidth fi enddef ;
177vardef InnerEdgeWidth = if not OnRightPage : runscript mfid_RightEdgeWidth else : runscript mfid_LeftEdgeWidth fi enddef ;
178vardef OuterEdgeDistance = if not OnRightPage : runscript mfid_LeftEdgeDistance else : runscript mfid_RightEdgeDistance fi enddef ;
179vardef InnerEdgeDistance = if not OnRightPage : runscript mfid_RightEdgeDistance else : runscript mfid_LeftEdgeDistance fi enddef ;
180
181vardef OuterSpaceWidth = if not OnRightPage : runscript mfid_BackSpace else : runscript mfid_CutSpace fi enddef ;
182vardef InnerSpaceWidth = if not OnRightPage : runscript mfid_CutSpace else : runscript mfid_BackSpace fi enddef ;
183
184
185
186vardef OuterMargin = if not OnRightPage : LeftMargin else : RightMargin fi enddef ;
187vardef InnerMargin = if not OnRightPage : RightMargin else : LeftMargin fi enddef ;
188
189vardef OuterEdge = if not OnRightPage : LeftEdge else : RightEdge fi enddef ;
190vardef InnerEdge = if not OnRightPage : RightEdge else : LeftEdge fi enddef ;
191
192immutable
193 LeftMarginWidth , RightMarginWidth , LeftMarginDistance , RightMarginDistance ,
194 LeftEdgeWidth , RightEdgeWidth , LeftEdgeDistance , RightEdgeDistance , BackSpace ,
195 CutSpace , OuterMarginWidth , InnerMarginWidth , OuterMarginDistance ,
196 InnerMarginDistance , OuterEdgeWidth , InnerEdgeWidth , OuterEdgeDistance ,
197 InnerEdgeDistance , OuterSpaceWidth , InnerSpaceWidth , OuterMargin , InnerMargin ,
198 OuterEdge , InnerEdge ;
199 |