summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/dvips
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-01-21 00:09:16 +0000
committerKarl Berry <karl@freefriends.org>2013-01-21 00:09:16 +0000
commit81781d2e64885d4f4878ffb2bc2309a165888292 (patch)
treee46974e5015faf492f2f1b6d49252b3369e219a5 /Master/texmf-dist/dvips
parent180112c8a1126226d2ad248fe12bd781fa741e33 (diff)
rm multi, unknown license, not on CTAN
git-svn-id: svn://tug.org/texlive/trunk@28887 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/dvips')
-rw-r--r--Master/texmf-dist/dvips/multi/2up.pro613
-rw-r--r--Master/texmf-dist/dvips/multi/4up.pro613
-rw-r--r--Master/texmf-dist/dvips/multi/multi.pro609
3 files changed, 0 insertions, 1835 deletions
diff --git a/Master/texmf-dist/dvips/multi/2up.pro b/Master/texmf-dist/dvips/multi/2up.pro
deleted file mode 100644
index 555d40e6456..00000000000
--- a/Master/texmf-dist/dvips/multi/2up.pro
+++ /dev/null
@@ -1,613 +0,0 @@
-%!PS-Adobe-1.0
-%%Creator: Ross Cartlidge <rossc@extro.ucc.su.oz.au>
-%%Title: Multiple pages on one page
-%%CreationDate: Tue Apr 10 09:37:26 EST 1990
-%%Pages: 0
-%%DocumentFonts:
-%%BoundingBox: 0 0 0 0
-%%EndComments
-%
-% Uncomment the next line if you wish to load multi into the "exitserver"
-% state of the PostScript device
-% serverdict begin 0 exitserver
-%
-%
-% make each operator to overlay a procedure so a bind in
-% a prolog will not stop the overlaying by "multi"
-%
-
-[
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- % ones which needed special overloading
- /showpage
- /erasepage
- /copypage
- /restore
- % ignore these
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
-]
-{
-% if exists check if operator else define {}
- dup where
- {
- pop
-% If operator then make into procedure
- dup load type /operatortype eq
- {
- 1 array cvx dup
- 0
- 3 index cvx % /n -> n
- put % {}[0] -> n
- bind
- def
- }
- {
- pop
- }
- ifelse
- }
- {
- {} def
- }
- ifelse
-}
-forall
-
-%
-% Initialise endmulti to execute an error
-%
-/endmulti
-{
- count array astore /ostack exch def
- 250 array execstack /estack exch def
- 20 array dictstack /dstack exch def
- $error /newerror true put
- $error /errorname (No matching multi) cvn put
- $error /command (endmulti) put
- $error /ostack ostack put
- $error /estack estack put
- $error /dstack dstack put
- stop
-}
-bind
-def
-
-%
-% Put multiple logical pages on one physical page
-% until "endmulti" called
-%
-% landscape nrows ncols left_right up_down row_major dividers multi -
-% landscape nrows ncols up_down row_major dividers multi -
-% landscape nrows ncols row_major dividers multi -
-% landscape nrows ncols dividers multi -
-% landscape nrows ncols multi -
-%
-% Go into multi page representation
-%
-% landscape boolean:true - divide page in landscape orientation
-% false- divide page in portrait orirntation
-% nrows integer:number of logical pages down physical page
-% ncols integer:number of logical pages across physical page
-% left_right(*) boolean:true - rows fill left to right
-% false- rows fill right to left
-% up_down(*) boolean:true - columsn fill top to bottom
-% false- columns fill bottom to top
-% row_major(*) boolean:true - fill rowwise
-% false- fill columnwise
-% dividers(*) boolean:true - divide logical pages by lines
-% false- don't divide logical pages
-%
-% NB: Optional parameters(*) default to true.
-%
-/multi
-{
- currentdict
- 64 dict begin
- /initdict exch def % store initial dict for backward reference
-%
-% Initialise the Optional Parameters (right to left)
-%
- [
- /dividers
- /row_major
- /up_down
- /left_right
- ]
- {
- exch dup type /booleantype ne
- {
- exch % put non bool back
- true def % default to true
- }
- {
- def
- }
- ifelse
-
- }
- forall
- /cols exch def
- /rows exch def
-
-%
-% get size of current page
-%
- initgraphics clippath pathbbox
- /Y exch def % Max Y
- /X exch def % Max X
- /y exch def % Min Y
- /x exch def % Min X
- /W X x add def % Width of Page
- /H Y y add def % Height of page
-
-%
-% functions to turn page# into row and column
-% depending on whether rows or cols fill first
-%
- row_major
- {
- /tocol { cols mod } def
- /torow { cols idiv } def
- }
- {
- /tocol { rows idiv } def
- /torow { rows mod } def
- }
- ifelse
-% if landscape
- {
-%
-% Note: x and y are reversed
-%
- /w Y y sub def % Width of imageable region
- /h X x sub def % Height of imageable region
- /ox y def % origin of physical page
- /oy x def
- /L % Map to landscape
- -90 matrix rotate
- 0 H matrix translate
- matrix concatmatrix
- def
- }
- {
- /w X x sub def
- /h Y y sub def
- /ox x def
- /oy y def
- /L matrix def
- }
- ifelse
-%
-% Calculate origin fudge so that scaled margin = fudge
-% This means that the clippath of the logical page
-% will align with the physical clippath.
-% (wf/W)x = xf where,
-% wf = new width = w + 2xf,
-% x = margin xf = scaled margin
-% so xf = wx/(COLS.W-2x)
-
- /xf w x mul W cols mul 2 x mul sub div def
- /yf h y mul H rows mul 2 y mul sub div def
- /w w 2 xf mul add def
- /h h 2 yf mul add def
-
-%
-% CTM (multi) = C x T x M x L x I
-% CTM (normal) = C x I
-% CTM (normal) = CTM (multi) x (T x M x L x I)-1 x I
-% M = (Scale rows/cols) x (Scale logical to physical) x
-% (Translate to physical clip origin + fudge)
-% T = (Convert logical page to spot and physical)
-% L = (Convert to landscape)
-% I = Initial Physical CTM
-% C = Random transform on logical page
-
- /M
- w W div cols div
- h H div rows div
- matrix scale
- ox xf sub oy yf sub matrix translate % Move to origin
- matrix concatmatrix
- def
- /I
- matrix currentmatrix
- def
- /I_inv
- I matrix invertmatrix
- def
-
-% matrix T <current T>
- /T
- {
- page# tocol
- left_right not
- {
- cols 1 sub exch sub
- }
- if
- W mul
- page# torow
- up_down
- {
- rows 1 sub exch sub
- }
- if
- H mul
- 3 -1 roll translate
- }
- def
-
-%
-% Utility functions
-% NB: *_t1 are temporary variables
-%
-
-% matrix fromcanon <I-1 x T x M x L x I>
- /From_t1 matrix def
- /From_t2 matrix def
- /From_t3 matrix def
- /From_t4 matrix def
- /fromcanon
- {
- I_inv
- From_t1 T
- M
- L
- I
- From_t2 concatmatrix
- From_t3 concatmatrix
- From_t4 concatmatrix
- 3 -1 roll concatmatrix
- }
- def
-
-% /n {} mkmulti -
-% makes a new function called "n" in previous dict with:-
-% {}[0] = /n
-% {}[1] = currentdict
-% currentdict.n = prevdict.n
-%
- /mkmulti
- {
- 1 index dup load def %define old val in current dict
- 5 array cvx
- dup 3 4 -1 roll put % A[3] = {}
- dup 0 3 index put % A[0] = /n
- dup 1 currentdict put % A[1] = currentdict
- dup 2 /begin cvx put % A[2] = begin
- dup 4 /exec cvx put % A[4] = exec
- initdict 3 1 roll
- put % define initdict.n to multi function
- }
- def
-
-%
-% path_to_proc {}
-% make proc represenation of current path
-%
- /path_to_proc
- {
- {
- [
- /newpath cvx
- { /moveto cvx}
- { /lineto cvx}
- { /curveto cvx}
- { /closepath cvx }
- pathforall
- ]
- cvx
- exch pop
- }
- stopped
- {
- $error /errorname get /invalidaccess eq
- {
- cleartomark
- $error /newerror false put
- (%%Warning%% charpath in path - path nulled) =
- cvx exec
- }
- {
- stop
- }
- ifelse
- }
- if
- }
- def
- /path_def
- {
- { currentpoint } stopped
- {
- $error /newerror false put
- { newpath }
- }
- {
- /newpath cvx 3 1 roll /moveto cvx 4 array astore cvx
- }
- ifelse
- }
- cvlit def
-
-%
-% Draw lines round logical pages
-%
- /draw_dividers
- {
- initgraphics
- L concat
- M concat
- 1 1 cols 1 sub
- {
- W mul
- dup
- 0 moveto
- rows H mul lineto
- }
- for
- 1 1 rows 1 sub
- {
- H mul
- dup
- 0 exch moveto
- cols W mul exch lineto
- }
- for
- stroke
- }
- def
-
-%
-% for each graphics operator which affects absolute state
-%
- /M1 matrix def
- /M3 matrix def
- /M2 matrix def
- [
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- ]
- {
- {
-% Save paths
- path_def path_to_proc
- clippath { {} } path_to_proc
-
-%
-% CTM <- CTM x Tocano (canon mode)
-%
- M1 currentmatrix
- Tocanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
-
- load exec
-
-% Save paths
- path_def path_to_proc
- clippath { {} } path_to_proc
-
-%
-% CTM <- CTM x Fromcanon (Non canon mode)
-%
- M1 currentmatrix
- Fromcanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
- end
- }
- mkmulti
- }
- forall
-
-%
-% Define the operators which can't use the standard template
-%
- /showpage
- {
- /page# page# 1 add def
-
-% Update the transform matrices
- page# npages eq
- {
- dividers
- {
- draw_dividers
- }
- if
- load exec % the previous showpage
- /page# 0 def
- }
- {
- pop
- }
- ifelse
- /Fromcanon Fromcanon fromcanon def
- /Tocanon Fromcanon Tocanon invertmatrix def
- end
- initgraphics % the new initgraphics
- }
- mkmulti
-
- /copypage
- {
- pop
- end
- gsave
- showpage
- grestore
- }
- mkmulti
-
- /erasepage
- {
- pop
- end
- gsave
- initclip
- clippath
- 1 setgray fill
- grestore
- }
- mkmulti
- [
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
- ]
- {
- {
- pop end
- (%%Warning%% Device change ignored) =
- }
- mkmulti
- }
- forall
-
-%
-% Define restore separately as it affects the value of page#, etc
-%
- /restore
- {
- pop
-% Push the values to restore after restore
- mark exch % put mark under -save-
- page#
- Fromcanon aload pop
- Tocanon aload pop
-
- counttomark -1 roll % get -save- to the top
- restore
-
-% Restore popped values
- Tocanon astore pop
- Fromcanon astore pop
- /page# exch def
- pop % mark
-
-% Save paths
- path_def path_to_proc
- clippath { { } } path_to_proc
-
-%
-% CTM <- CTM x Fromcanon (Non canon mode)
-%
- M1 currentmatrix
- Fromcanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
- end
- }
- mkmulti
-%
-% procedure to undo the effect of multi
-%
- /endmulti
- {
- pop % don't need /endmulti
- [
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- % ones which needed special overloading
- /showpage
- /erasepage
- /copypage
- /restore
- % ignore these
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
- %
- /endmulti
- ]
- {
- initdict exch
- dup load % get old value
- put % restore old value
- }
- forall
- page# 0 ne % if not at new page show uncomplete page
- {
- dividers
- {
- draw_dividers
- }
- if
- showpage
- }
- if
- end
- }
- mkmulti
-
-%
-% Set up in multi(non canon) mode
-%
- /page# 0 def
- /npages rows cols mul def
- /Fromcanon matrix fromcanon def
- /Tocanon Fromcanon matrix invertmatrix def
- end
- initgraphics
-}
-bind
-def
-%%%%%%%%
-/end-hook { endmulti } def
-
-true 1 2 multi
diff --git a/Master/texmf-dist/dvips/multi/4up.pro b/Master/texmf-dist/dvips/multi/4up.pro
deleted file mode 100644
index 31578b6f11c..00000000000
--- a/Master/texmf-dist/dvips/multi/4up.pro
+++ /dev/null
@@ -1,613 +0,0 @@
-%!PS-Adobe-1.0
-%%Creator: Ross Cartlidge <rossc@extro.ucc.su.oz.au>
-%%Title: Multiple pages on one page
-%%CreationDate: Tue Apr 10 09:37:26 EST 1990
-%%Pages: 0
-%%DocumentFonts:
-%%BoundingBox: 0 0 0 0
-%%EndComments
-%
-% Uncomment the next line if you wish to load multi into the "exitserver"
-% state of the PostScript device
-% serverdict begin 0 exitserver
-%
-%
-% make each operator to overlay a procedure so a bind in
-% a prolog will not stop the overlaying by "multi"
-%
-
-[
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- % ones which needed special overloading
- /showpage
- /erasepage
- /copypage
- /restore
- % ignore these
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
-]
-{
-% if exists check if operator else define {}
- dup where
- {
- pop
-% If operator then make into procedure
- dup load type /operatortype eq
- {
- 1 array cvx dup
- 0
- 3 index cvx % /n -> n
- put % {}[0] -> n
- bind
- def
- }
- {
- pop
- }
- ifelse
- }
- {
- {} def
- }
- ifelse
-}
-forall
-
-%
-% Initialise endmulti to execute an error
-%
-/endmulti
-{
- count array astore /ostack exch def
- 250 array execstack /estack exch def
- 20 array dictstack /dstack exch def
- $error /newerror true put
- $error /errorname (No matching multi) cvn put
- $error /command (endmulti) put
- $error /ostack ostack put
- $error /estack estack put
- $error /dstack dstack put
- stop
-}
-bind
-def
-
-%
-% Put multiple logical pages on one physical page
-% until "endmulti" called
-%
-% landscape nrows ncols left_right up_down row_major dividers multi -
-% landscape nrows ncols up_down row_major dividers multi -
-% landscape nrows ncols row_major dividers multi -
-% landscape nrows ncols dividers multi -
-% landscape nrows ncols multi -
-%
-% Go into multi page representation
-%
-% landscape boolean:true - divide page in landscape orientation
-% false- divide page in portrait orirntation
-% nrows integer:number of logical pages down physical page
-% ncols integer:number of logical pages across physical page
-% left_right(*) boolean:true - rows fill left to right
-% false- rows fill right to left
-% up_down(*) boolean:true - columsn fill top to bottom
-% false- columns fill bottom to top
-% row_major(*) boolean:true - fill rowwise
-% false- fill columnwise
-% dividers(*) boolean:true - divide logical pages by lines
-% false- don't divide logical pages
-%
-% NB: Optional parameters(*) default to true.
-%
-/multi
-{
- currentdict
- 64 dict begin
- /initdict exch def % store initial dict for backward reference
-%
-% Initialise the Optional Parameters (right to left)
-%
- [
- /dividers
- /row_major
- /up_down
- /left_right
- ]
- {
- exch dup type /booleantype ne
- {
- exch % put non bool back
- true def % default to true
- }
- {
- def
- }
- ifelse
-
- }
- forall
- /cols exch def
- /rows exch def
-
-%
-% get size of current page
-%
- initgraphics clippath pathbbox
- /Y exch def % Max Y
- /X exch def % Max X
- /y exch def % Min Y
- /x exch def % Min X
- /W X x add def % Width of Page
- /H Y y add def % Height of page
-
-%
-% functions to turn page# into row and column
-% depending on whether rows or cols fill first
-%
- row_major
- {
- /tocol { cols mod } def
- /torow { cols idiv } def
- }
- {
- /tocol { rows idiv } def
- /torow { rows mod } def
- }
- ifelse
-% if landscape
- {
-%
-% Note: x and y are reversed
-%
- /w Y y sub def % Width of imageable region
- /h X x sub def % Height of imageable region
- /ox y def % origin of physical page
- /oy x def
- /L % Map to landscape
- -90 matrix rotate
- 0 H matrix translate
- matrix concatmatrix
- def
- }
- {
- /w X x sub def
- /h Y y sub def
- /ox x def
- /oy y def
- /L matrix def
- }
- ifelse
-%
-% Calculate origin fudge so that scaled margin = fudge
-% This means that the clippath of the logical page
-% will align with the physical clippath.
-% (wf/W)x = xf where,
-% wf = new width = w + 2xf,
-% x = margin xf = scaled margin
-% so xf = wx/(COLS.W-2x)
-
- /xf w x mul W cols mul 2 x mul sub div def
- /yf h y mul H rows mul 2 y mul sub div def
- /w w 2 xf mul add def
- /h h 2 yf mul add def
-
-%
-% CTM (multi) = C x T x M x L x I
-% CTM (normal) = C x I
-% CTM (normal) = CTM (multi) x (T x M x L x I)-1 x I
-% M = (Scale rows/cols) x (Scale logical to physical) x
-% (Translate to physical clip origin + fudge)
-% T = (Convert logical page to spot and physical)
-% L = (Convert to landscape)
-% I = Initial Physical CTM
-% C = Random transform on logical page
-
- /M
- w W div cols div
- h H div rows div
- matrix scale
- ox xf sub oy yf sub matrix translate % Move to origin
- matrix concatmatrix
- def
- /I
- matrix currentmatrix
- def
- /I_inv
- I matrix invertmatrix
- def
-
-% matrix T <current T>
- /T
- {
- page# tocol
- left_right not
- {
- cols 1 sub exch sub
- }
- if
- W mul
- page# torow
- up_down
- {
- rows 1 sub exch sub
- }
- if
- H mul
- 3 -1 roll translate
- }
- def
-
-%
-% Utility functions
-% NB: *_t1 are temporary variables
-%
-
-% matrix fromcanon <I-1 x T x M x L x I>
- /From_t1 matrix def
- /From_t2 matrix def
- /From_t3 matrix def
- /From_t4 matrix def
- /fromcanon
- {
- I_inv
- From_t1 T
- M
- L
- I
- From_t2 concatmatrix
- From_t3 concatmatrix
- From_t4 concatmatrix
- 3 -1 roll concatmatrix
- }
- def
-
-% /n {} mkmulti -
-% makes a new function called "n" in previous dict with:-
-% {}[0] = /n
-% {}[1] = currentdict
-% currentdict.n = prevdict.n
-%
- /mkmulti
- {
- 1 index dup load def %define old val in current dict
- 5 array cvx
- dup 3 4 -1 roll put % A[3] = {}
- dup 0 3 index put % A[0] = /n
- dup 1 currentdict put % A[1] = currentdict
- dup 2 /begin cvx put % A[2] = begin
- dup 4 /exec cvx put % A[4] = exec
- initdict 3 1 roll
- put % define initdict.n to multi function
- }
- def
-
-%
-% path_to_proc {}
-% make proc represenation of current path
-%
- /path_to_proc
- {
- {
- [
- /newpath cvx
- { /moveto cvx}
- { /lineto cvx}
- { /curveto cvx}
- { /closepath cvx }
- pathforall
- ]
- cvx
- exch pop
- }
- stopped
- {
- $error /errorname get /invalidaccess eq
- {
- cleartomark
- $error /newerror false put
- (%%Warning%% charpath in path - path nulled) =
- cvx exec
- }
- {
- stop
- }
- ifelse
- }
- if
- }
- def
- /path_def
- {
- { currentpoint } stopped
- {
- $error /newerror false put
- { newpath }
- }
- {
- /newpath cvx 3 1 roll /moveto cvx 4 array astore cvx
- }
- ifelse
- }
- cvlit def
-
-%
-% Draw lines round logical pages
-%
- /draw_dividers
- {
- initgraphics
- L concat
- M concat
- 1 1 cols 1 sub
- {
- W mul
- dup
- 0 moveto
- rows H mul lineto
- }
- for
- 1 1 rows 1 sub
- {
- H mul
- dup
- 0 exch moveto
- cols W mul exch lineto
- }
- for
- stroke
- }
- def
-
-%
-% for each graphics operator which affects absolute state
-%
- /M1 matrix def
- /M3 matrix def
- /M2 matrix def
- [
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- ]
- {
- {
-% Save paths
- path_def path_to_proc
- clippath { {} } path_to_proc
-
-%
-% CTM <- CTM x Tocano (canon mode)
-%
- M1 currentmatrix
- Tocanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
-
- load exec
-
-% Save paths
- path_def path_to_proc
- clippath { {} } path_to_proc
-
-%
-% CTM <- CTM x Fromcanon (Non canon mode)
-%
- M1 currentmatrix
- Fromcanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
- end
- }
- mkmulti
- }
- forall
-
-%
-% Define the operators which can't use the standard template
-%
- /showpage
- {
- /page# page# 1 add def
-
-% Update the transform matrices
- page# npages eq
- {
- dividers
- {
- draw_dividers
- }
- if
- load exec % the previous showpage
- /page# 0 def
- }
- {
- pop
- }
- ifelse
- /Fromcanon Fromcanon fromcanon def
- /Tocanon Fromcanon Tocanon invertmatrix def
- end
- initgraphics % the new initgraphics
- }
- mkmulti
-
- /copypage
- {
- pop
- end
- gsave
- showpage
- grestore
- }
- mkmulti
-
- /erasepage
- {
- pop
- end
- gsave
- initclip
- clippath
- 1 setgray fill
- grestore
- }
- mkmulti
- [
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
- ]
- {
- {
- pop end
- (%%Warning%% Device change ignored) =
- }
- mkmulti
- }
- forall
-
-%
-% Define restore separately as it affects the value of page#, etc
-%
- /restore
- {
- pop
-% Push the values to restore after restore
- mark exch % put mark under -save-
- page#
- Fromcanon aload pop
- Tocanon aload pop
-
- counttomark -1 roll % get -save- to the top
- restore
-
-% Restore popped values
- Tocanon astore pop
- Fromcanon astore pop
- /page# exch def
- pop % mark
-
-% Save paths
- path_def path_to_proc
- clippath { { } } path_to_proc
-
-%
-% CTM <- CTM x Fromcanon (Non canon mode)
-%
- M1 currentmatrix
- Fromcanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
- end
- }
- mkmulti
-%
-% procedure to undo the effect of multi
-%
- /endmulti
- {
- pop % don't need /endmulti
- [
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- % ones which needed special overloading
- /showpage
- /erasepage
- /copypage
- /restore
- % ignore these
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
- %
- /endmulti
- ]
- {
- initdict exch
- dup load % get old value
- put % restore old value
- }
- forall
- page# 0 ne % if not at new page show uncomplete page
- {
- dividers
- {
- draw_dividers
- }
- if
- showpage
- }
- if
- end
- }
- mkmulti
-
-%
-% Set up in multi(non canon) mode
-%
- /page# 0 def
- /npages rows cols mul def
- /Fromcanon matrix fromcanon def
- /Tocanon Fromcanon matrix invertmatrix def
- end
- initgraphics
-}
-bind
-def
-%%%%%%%%
-/end-hook { endmulti } def
-
-false 2 2 multi \ No newline at end of file
diff --git a/Master/texmf-dist/dvips/multi/multi.pro b/Master/texmf-dist/dvips/multi/multi.pro
deleted file mode 100644
index af469ed011e..00000000000
--- a/Master/texmf-dist/dvips/multi/multi.pro
+++ /dev/null
@@ -1,609 +0,0 @@
-%!PS-Adobe-1.0
-%%Creator: Ross Cartlidge <rossc@extro.ucc.su.oz.au>
-%%Title: Multiple pages on one page
-%%CreationDate: Tue Apr 10 09:37:26 EST 1990
-%%Pages: 0
-%%DocumentFonts:
-%%BoundingBox: 0 0 0 0
-%%EndComments
-%
-% Uncomment the next line if you wish to load multi into the "exitserver"
-% state of the PostScript device
-% serverdict begin 0 exitserver
-%
-%
-% make each operator to overlay a procedure so a bind in
-% a prolog will not stop the overlaying by "multi"
-%
-
-[
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- % ones which needed special overloading
- /showpage
- /erasepage
- /copypage
- /restore
- % ignore these
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
-]
-{
-% if exists check if operator else define {}
- dup where
- {
- pop
-% If operator then make into procedure
- dup load type /operatortype eq
- {
- 1 array cvx dup
- 0
- 3 index cvx % /n -> n
- put % {}[0] -> n
- bind
- def
- }
- {
- pop
- }
- ifelse
- }
- {
- {} def
- }
- ifelse
-}
-forall
-
-%
-% Initialise endmulti to execute an error
-%
-/endmulti
-{
- count array astore /ostack exch def
- 250 array execstack /estack exch def
- 20 array dictstack /dstack exch def
- $error /newerror true put
- $error /errorname (No matching multi) cvn put
- $error /command (endmulti) put
- $error /ostack ostack put
- $error /estack estack put
- $error /dstack dstack put
- stop
-}
-bind
-def
-
-%
-% Put multiple logical pages on one physical page
-% until "endmulti" called
-%
-% landscape nrows ncols left_right up_down row_major dividers multi -
-% landscape nrows ncols up_down row_major dividers multi -
-% landscape nrows ncols row_major dividers multi -
-% landscape nrows ncols dividers multi -
-% landscape nrows ncols multi -
-%
-% Go into multi page representation
-%
-% landscape boolean:true - divide page in landscape orientation
-% false- divide page in portrait orirntation
-% nrows integer:number of logical pages down physical page
-% ncols integer:number of logical pages across physical page
-% left_right(*) boolean:true - rows fill left to right
-% false- rows fill right to left
-% up_down(*) boolean:true - columsn fill top to bottom
-% false- columns fill bottom to top
-% row_major(*) boolean:true - fill rowwise
-% false- fill columnwise
-% dividers(*) boolean:true - divide logical pages by lines
-% false- don't divide logical pages
-%
-% NB: Optional parameters(*) default to true.
-%
-/multi
-{
- currentdict
- 64 dict begin
- /initdict exch def % store initial dict for backward reference
-%
-% Initialise the Optional Parameters (right to left)
-%
- [
- /dividers
- /row_major
- /up_down
- /left_right
- ]
- {
- exch dup type /booleantype ne
- {
- exch % put non bool back
- true def % default to true
- }
- {
- def
- }
- ifelse
-
- }
- forall
- /cols exch def
- /rows exch def
-
-%
-% get size of current page
-%
- initgraphics clippath pathbbox
- /Y exch def % Max Y
- /X exch def % Max X
- /y exch def % Min Y
- /x exch def % Min X
- /W X x add def % Width of Page
- /H Y y add def % Height of page
-
-%
-% functions to turn page# into row and column
-% depending on whether rows or cols fill first
-%
- row_major
- {
- /tocol { cols mod } def
- /torow { cols idiv } def
- }
- {
- /tocol { rows idiv } def
- /torow { rows mod } def
- }
- ifelse
-% if landscape
- {
-%
-% Note: x and y are reversed
-%
- /w Y y sub def % Width of imageable region
- /h X x sub def % Height of imageable region
- /ox y def % origin of physical page
- /oy x def
- /L % Map to landscape
- -90 matrix rotate
- 0 H matrix translate
- matrix concatmatrix
- def
- }
- {
- /w X x sub def
- /h Y y sub def
- /ox x def
- /oy y def
- /L matrix def
- }
- ifelse
-%
-% Calculate origin fudge so that scaled margin = fudge
-% This means that the clippath of the logical page
-% will align with the physical clippath.
-% (wf/W)x = xf where,
-% wf = new width = w + 2xf,
-% x = margin xf = scaled margin
-% so xf = wx/(COLS.W-2x)
-
- /xf w x mul W cols mul 2 x mul sub div def
- /yf h y mul H rows mul 2 y mul sub div def
- /w w 2 xf mul add def
- /h h 2 yf mul add def
-
-%
-% CTM (multi) = C x T x M x L x I
-% CTM (normal) = C x I
-% CTM (normal) = CTM (multi) x (T x M x L x I)-1 x I
-% M = (Scale rows/cols) x (Scale logical to physical) x
-% (Translate to physical clip origin + fudge)
-% T = (Convert logical page to spot and physical)
-% L = (Convert to landscape)
-% I = Initial Physical CTM
-% C = Random transform on logical page
-
- /M
- w W div cols div
- h H div rows div
- matrix scale
- ox xf sub oy yf sub matrix translate % Move to origin
- matrix concatmatrix
- def
- /I
- matrix currentmatrix
- def
- /I_inv
- I matrix invertmatrix
- def
-
-% matrix T <current T>
- /T
- {
- page# tocol
- left_right not
- {
- cols 1 sub exch sub
- }
- if
- W mul
- page# torow
- up_down
- {
- rows 1 sub exch sub
- }
- if
- H mul
- 3 -1 roll translate
- }
- def
-
-%
-% Utility functions
-% NB: *_t1 are temporary variables
-%
-
-% matrix fromcanon <I-1 x T x M x L x I>
- /From_t1 matrix def
- /From_t2 matrix def
- /From_t3 matrix def
- /From_t4 matrix def
- /fromcanon
- {
- I_inv
- From_t1 T
- M
- L
- I
- From_t2 concatmatrix
- From_t3 concatmatrix
- From_t4 concatmatrix
- 3 -1 roll concatmatrix
- }
- def
-
-% /n {} mkmulti -
-% makes a new function called "n" in previous dict with:-
-% {}[0] = /n
-% {}[1] = currentdict
-% currentdict.n = prevdict.n
-%
- /mkmulti
- {
- 1 index dup load def %define old val in current dict
- 5 array cvx
- dup 3 4 -1 roll put % A[3] = {}
- dup 0 3 index put % A[0] = /n
- dup 1 currentdict put % A[1] = currentdict
- dup 2 /begin cvx put % A[2] = begin
- dup 4 /exec cvx put % A[4] = exec
- initdict 3 1 roll
- put % define initdict.n to multi function
- }
- def
-
-%
-% path_to_proc {}
-% make proc represenation of current path
-%
- /path_to_proc
- {
- {
- [
- /newpath cvx
- { /moveto cvx}
- { /lineto cvx}
- { /curveto cvx}
- { /closepath cvx }
- pathforall
- ]
- cvx
- exch pop
- }
- stopped
- {
- $error /errorname get /invalidaccess eq
- {
- cleartomark
- $error /newerror false put
- (%%Warning%% charpath in path - path nulled) =
- cvx exec
- }
- {
- stop
- }
- ifelse
- }
- if
- }
- def
- /path_def
- {
- { currentpoint } stopped
- {
- $error /newerror false put
- { newpath }
- }
- {
- /newpath cvx 3 1 roll /moveto cvx 4 array astore cvx
- }
- ifelse
- }
- cvlit def
-
-%
-% Draw lines round logical pages
-%
- /draw_dividers
- {
- initgraphics
- L concat
- M concat
- 1 1 cols 1 sub
- {
- W mul
- dup
- 0 moveto
- rows H mul lineto
- }
- for
- 1 1 rows 1 sub
- {
- H mul
- dup
- 0 exch moveto
- cols W mul exch lineto
- }
- for
- stroke
- }
- def
-
-%
-% for each graphics operator which affects absolute state
-%
- /M1 matrix def
- /M3 matrix def
- /M2 matrix def
- [
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- ]
- {
- {
-% Save paths
- path_def path_to_proc
- clippath { {} } path_to_proc
-
-%
-% CTM <- CTM x Tocano (canon mode)
-%
- M1 currentmatrix
- Tocanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
-
- load exec
-
-% Save paths
- path_def path_to_proc
- clippath { {} } path_to_proc
-
-%
-% CTM <- CTM x Fromcanon (Non canon mode)
-%
- M1 currentmatrix
- Fromcanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
- end
- }
- mkmulti
- }
- forall
-
-%
-% Define the operators which can't use the standard template
-%
- /showpage
- {
- /page# page# 1 add def
-
-% Update the transform matrices
- page# npages eq
- {
- dividers
- {
- draw_dividers
- }
- if
- load exec % the previous showpage
- /page# 0 def
- }
- {
- pop
- }
- ifelse
- /Fromcanon Fromcanon fromcanon def
- /Tocanon Fromcanon Tocanon invertmatrix def
- end
- initgraphics % the new initgraphics
- }
- mkmulti
-
- /copypage
- {
- pop
- end
- gsave
- showpage
- grestore
- }
- mkmulti
-
- /erasepage
- {
- pop
- end
- gsave
- initclip
- clippath
- 1 setgray fill
- grestore
- }
- mkmulti
- [
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
- ]
- {
- {
- pop end
- (%%Warning%% Device change ignored) =
- }
- mkmulti
- }
- forall
-
-%
-% Define restore separately as it affects the value of page#, etc
-%
- /restore
- {
- pop
-% Push the values to restore after restore
- mark exch % put mark under -save-
- page#
- Fromcanon aload pop
- Tocanon aload pop
-
- counttomark -1 roll % get -save- to the top
- restore
-
-% Restore popped values
- Tocanon astore pop
- Fromcanon astore pop
- /page# exch def
- pop % mark
-
-% Save paths
- path_def path_to_proc
- clippath { { } } path_to_proc
-
-%
-% CTM <- CTM x Fromcanon (Non canon mode)
-%
- M1 currentmatrix
- Fromcanon
- M2
- concatmatrix
- setmatrix
-
-% Restore paths
- initclip exec clip
- exec
- end
- }
- mkmulti
-%
-% procedure to undo the effect of multi
-%
- /endmulti
- {
- pop % don't need /endmulti
- [
- /gsave
- /grestore
- /grestoreall
- /initgraphics
- /initmatrix
- /currentmatrix
- /setmatrix
- % Path construction operators
- /initclip
- % Virtual memory operators
- /save
- % ones which needed special overloading
- /showpage
- /erasepage
- /copypage
- /restore
- % ignore these
- /letter
- /legal
- /a4
- /b5
- /lettersmall
- /note
- %
- /endmulti
- ]
- {
- initdict exch
- dup load % get old value
- put % restore old value
- }
- forall
- page# 0 ne % if not at new page show uncomplete page
- {
- dividers
- {
- draw_dividers
- }
- if
- showpage
- }
- if
- end
- }
- mkmulti
-
-%
-% Set up in multi(non canon) mode
-%
- /page# 0 def
- /npages rows cols mul def
- /Fromcanon matrix fromcanon def
- /Tocanon Fromcanon matrix invertmatrix def
- end
- initgraphics
-}
-bind
-def