summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipsk/contrib')
-rw-r--r--Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed118
-rw-r--r--Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed130
-rw-r--r--Build/source/texk/dvipsk/contrib/colorsep.lpro184
-rw-r--r--Build/source/texk/dvipsk/contrib/config.proto49
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/2a4.ps49
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.fax5
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.lino93
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.lj2p95
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.post3x328
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/config.rokicki62
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/loop.ps2
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/mkdvipspapers429
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/papersize.level2236
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/papersize.simple44
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/prepipe.ps1
-rw-r--r--Build/source/texk/dvipsk/contrib/configs/showpage.ps1
-rw-r--r--Build/source/texk/dvipsk/contrib/crop.lpr271
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty109
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/bookman.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/chancery.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/colordvi.sty162
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/ncs.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/palatino.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/psfonts.sty266
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/psgreek.sty38
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/rotate.sty53
-rw-r--r--Build/source/texk/dvipsk/contrib/latex209/times.sty11
-rw-r--r--Build/source/texk/dvipsk/contrib/treen.sh40
-rw-r--r--Build/source/texk/dvipsk/contrib/treen2.sh12
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/README149
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/a3.cfg17
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/duplong.cfg19
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/dupshort.cfg19
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/inv.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr100.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr110.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr120.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr130.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr140.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr150.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr70.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr80.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr85.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/scr90.cfg21
-rw-r--r--Build/source/texk/dvipsk/contrib/volker/simplex.cfg19
-rw-r--r--Build/source/texk/dvipsk/contrib/whichinpath13
48 files changed, 3031 insertions, 0 deletions
diff --git a/Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed b/Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed
new file mode 100644
index 00000000000..78dc82138de
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/afm-extra/ptmr.ed
@@ -0,0 +1,118 @@
+1s/)/, then edited for Greek)/
+/(LIGTABLE/i
+(MAPFONT D 1
+ (FONTNAME rpsyr)
+ (FONTCHECKSUM O 12741765024)
+ )
+.
+/(CHARACTER/i
+(CHARACTER O 0 (comment Gamma)
+ (CHARWD R 603)
+ (CHARHT R 689)
+ (CHARIC R 6)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C G)
+ )
+ )
+(CHARACTER O 1 (comment Delta)
+ (CHARWD R 612)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C D)
+ )
+ )
+(CHARACTER O 2 (comment Theta)
+ (CHARWD R 741)
+ (CHARHT R 689)
+ (CHARDP R 7)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Q)
+ )
+ )
+(CHARACTER O 3 (comment Lambda)
+ (CHARWD R 686)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C L)
+ )
+ )
+(CHARACTER O 4 (comment Xi)
+ (CHARWD R 645)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C X)
+ )
+ )
+(CHARACTER O 5 (comment Pi)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C P)
+ )
+ )
+(CHARACTER O 6 (comment Sigma)
+ (CHARWD R 592)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C S)
+ )
+ )
+(CHARACTER O 7 (comment Upsilon1)
+ (CHARWD R 620)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 241)
+ )
+ )
+(CHARACTER O 10 (comment Phi)
+ (CHARWD R 763)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C F)
+ )
+ )
+(CHARACTER O 11 (comment Psi)
+ (CHARWD R 795)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Y)
+ )
+ )
+(CHARACTER O 12 (comment Omega)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C W)
+ )
+ )
+(CHARACTER O 13 (comment arrowup)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 255)
+ )
+ )
+(CHARACTER O 14 (comment arrowdown)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (CHARDP R 7)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 257)
+ )
+ )
+.
+w ptmr.vpl
+q
diff --git a/Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed b/Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed
new file mode 100644
index 00000000000..26885af1622
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/afm-extra/ptmro.ed
@@ -0,0 +1,130 @@
+1s/)/, edited for Greek)/
+/(LIGTABLE/i
+(MAPFONT D 1
+ (FONTNAME psyro)
+ (FONTCHECKSUM O 12741765024)
+ )
+.
+/(CHARACTER/i
+(CHARACTER O 0 (comment Gamma)
+ (CHARWD R 603)
+ (CHARHT R 689)
+ (CHARIC R 118)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C G)
+ )
+ )
+(CHARACTER O 1 (comment Delta)
+ (CHARWD R 612)
+ (CHARHT R 689)
+ (CHARIC R 111)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C D)
+ )
+ )
+(CHARACTER O 2 (comment Theta)
+ (CHARWD R 741)
+ (CHARHT R 689)
+ (CHARDP R 7)
+ (CHARIC R 87)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Q)
+ )
+ )
+(CHARACTER O 3 (comment Lambda)
+ (CHARWD R 686)
+ (CHARHT R 689)
+ (CHARIC R 109)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C L)
+ )
+ )
+(CHARACTER O 4 (comment Xi)
+ (CHARWD R 645)
+ (CHARHT R 689)
+ (CHARIC R 66)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C X)
+ )
+ )
+(CHARACTER O 5 (comment Pi)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (CHARIC R 89)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C P)
+ )
+ )
+(CHARACTER O 6 (comment Sigma)
+ (CHARWD R 592)
+ (CHARHT R 689)
+ (CHARIC R 109)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C S)
+ )
+ )
+(CHARACTER O 7 (comment Upsilon1)
+ (CHARWD R 620)
+ (CHARHT R 689)
+ (CHARIC R 104)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 241)
+ )
+ )
+(CHARACTER O 10 (comment Phi)
+ (CHARWD R 763)
+ (CHARHT R 689)
+ (CHARIC R 89)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C F)
+ )
+ )
+(CHARACTER O 11 (comment Psi)
+ (CHARWD R 795)
+ (CHARHT R 689)
+ (CHARIC R 100)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C Y)
+ )
+ )
+(CHARACTER O 12 (comment Omega)
+ (CHARWD R 768)
+ (CHARHT R 689)
+ (CHARIC R 83)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR C W)
+ )
+ )
+(CHARACTER O 13 (comment arrowup)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (CHARIC R 120)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 255)
+ )
+ )
+(CHARACTER O 14 (comment arrowdown)
+ (CHARWD R 603)
+ (CHARHT R 907)
+ (CHARDP R 7)
+ (CHARIC R 116)
+ (MAP
+ (SELECTFONT D 1)
+ (SETCHAR O 257)
+ )
+ )
+.
+w ptmro.vpl
+q
diff --git a/Build/source/texk/dvipsk/contrib/colorsep.lpro b/Build/source/texk/dvipsk/contrib/colorsep.lpro
new file mode 100644
index 00000000000..89e4bedf8b6
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/colorsep.lpro
@@ -0,0 +1,184 @@
+%!
+% Colour separation.
+% Ask dvips to do 4 pages. In bop-hook, cycle
+% round CMYK color spaces.
+%
+% Sebastian Rahtz 30.9.93
+% checked 7.1.94
+% from Green Book, and Kunkel Graphic Design with PostScript
+% (Green Book Listing 9-5, on page 153.)
+%
+/seppages 0 def
+userdict begin
+/Min {% 3 items on stack
+2 copy lt { pop }{ exch pop } ifelse
+2 copy lt { pop }{ exch pop } ifelse
+} def
+/SetGray {
+ 1 exch sub systemdict begin adjustdot setgray end
+} def
+/sethsbcolor {systemdict begin
+ sethsbcolor currentrgbcolor end
+ userdict begin setrgbcolor end}def
+
+/ToCMYK
+% Red book p 305
+ {
+% subtract each colour from 1
+ 3 { 1 exch sub 3 1 roll } repeat
+% define percent of black undercolor
+% find minimum (k)
+ 3 copy Min
+% remove undercolor
+ blackUCR sub
+ dup 0 lt {pop 0} if
+ /percent_UCR exch def
+%
+% subtract that from each colour
+%
+ 3 { percent_UCR sub 3 1 roll } repeat
+% work out black itself
+ percent_UCR 1.25 mul % 1 exch sub
+% stack should now have C M Y K
+} def
+%
+% crop marks
+%
+/cX 18 def
+/CM{gsave TR 0 cX neg moveto 0 cX lineto stroke
+cX neg 0 moveto cX 0 lineto stroke grestore}def
+%
+/bop-hook{cX dup TR
+%
+% which page are we producing
+%
+ seppages 1 add
+ /seppages exch def
+ seppages 5 eq { /seppages 1 def } if
+ seppages 1 eq {
+ /ColourName (CYAN) def
+ CYAN setupcolor
+ /WhichColour 3 def } if
+ seppages 2 eq {
+ /ColourName (MAGENTA) def
+ MAGENTA setupcolor
+ /WhichColour 2 def } if
+ seppages 3 eq {
+ /ColourName (YELLOW) def
+ YELLOW setupcolor
+ /WhichColour 1 def } if
+ seppages 4 eq {
+ /ColourName (BLACK) def
+ BLACK setupcolor
+ /WhichColour 0 def } if
+%
+% crop marks
+%
+gsave .3 setlinewidth
+3 -7 moveto
+/Helvetica findfont 6 scalefont setfont
+ColourName show
+0 0 CM
+vsize cX 2 mul sub dup hsize cX 2 mul sub dup isls{4 2 roll}if 0 CM
+exch CM 0
+exch CM
+grestore 0 cX -2 mul TR isls
+{cX -2 mul 0 TR}if
+ } def end
+%
+/separations 48 dict def
+separations begin
+ /cmykprocs [ %def
+ % cyan
+ { pop pop pop SetGray }
+ % magenta
+ { pop pop exch pop SetGray }
+ % yellow
+ { pop 3 1 roll pop pop SetGray }
+ % black
+ { 4 1 roll pop pop pop SetGray }
+ ] def
+ /rgbprocs [ %def
+ % cyan
+ { ToCMYK pop pop pop SetGray }
+ % magenta
+ { ToCMYK pop pop exch pop SetGray }
+ % yellow
+ { ToCMYK pop 3 1 roll pop pop SetGray }
+ % black
+ { ToCMYK 4 1 roll pop pop pop SetGray }
+ ] def
+ /testprocs [ %def
+ % cyan
+ { ToCMYK pop pop pop }
+ % magenta
+ { ToCMYK pop pop exch pop }
+ % yellow
+ { ToCMYK pop 3 1 roll pop pop }
+ % black
+ { ToCMYK 4 1 roll pop pop pop }
+ ] def
+ /screenangles [ %def
+ 105 % cyan
+ 75 % magenta
+ 0 % yellow
+ 45 % black
+ ] def
+end % separations
+
+% setupcolortakes 0, 1, 2, or 3 as its argument,
+% for cyan, magenta, yellow, and black.
+/CYAN 0 def /MAGENTA 1 def
+/YELLOW 2 def /BLACK 3 def
+/setupcolor{ %def
+ userdict begin
+ dup separations /cmykprocs get exch get
+ /setcmykcolor exch def
+ dup separations /rgbprocs get exch get
+ /setrgbcolor exch def
+ dup separations /testprocs get exch get
+ /testrgbcolor exch def
+ separations /screenangles get exch get
+ currentscreen
+ exch pop 3 -1 roll exch
+ setscreen
+ /setscreen { pop pop pop } def
+%
+% redefine setgray so that it only shows on the black separation
+%
+ /setgray {
+ WhichColour 0 eq
+ {systemdict begin adjustdot setgray end}
+ {pop systemdict begin 1 setgray end}
+ ifelse}def
+ end
+} bind def
+
+%
+% from Kunkel
+%
+/adjustdot { dup 0 eq { } { dup 1 exch sub .1 mul add} ifelse } def
+%
+% redefine existing operators
+%
+% Percent of undercolor removal
+/magentaUCR .3 def
+/yellowUCR .07 def
+/blackUCR .4 def
+%
+% Correct yellow and magenta
+/correctMY {rgb2cym
+ 1 index yellowUCR mul sub 3 1 roll
+ 1 index magentaUCR mul sub 3 1 roll
+ 3 1 roll rgb2cym}def
+%
+%(bluely green ) =
+%CYAN setupcolor
+%.1 .4 .5 testrgbcolor =
+%MAGENTA setupcolor
+%.1 .4 .5 testrgbcolor =
+%YELLOW setupcolor
+%.1 .4 .5 testrgbcolor =
+%BLACK setupcolor
+%.1 .4 .5 testrgbcolor =
+%quit
diff --git a/Build/source/texk/dvipsk/contrib/config.proto b/Build/source/texk/dvipsk/contrib/config.proto
new file mode 100644
index 00000000000..648f60c16fd
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/config.proto
@@ -0,0 +1,49 @@
+% Prototype Dvips configuration file. (Public domain.)
+
+% How to print, maybe with lp instead lpr, etc.
+o |lpr
+
+% Default resolution of this device, in dots per inch.
+D 600
+
+% Metafont mode. (This is completely different from the -M command-line
+% option, which controls whether MakeTeXPK is invoked.) Get
+% @url{ftp://ftp.tug.org/tex/modes.mf} for a list of mode names. This mode
+% and the D number above must agree, or MakeTeXPK will get confused.
+M ljfour
+
+% Memory available. Download the three-line PostScript file:
+% %! Hey, we're PostScript
+% /Times-Roman findfont 30 scalefont setfont 144 432 moveto
+% vmstatus exch sub 40 string cvs show pop showpage
+% to determine this number. (It will be the only thing printed.)
+m 3500000
+
+% Correct printer offset. You can use testpage.tex from the LaTeX
+% distribution to find these numbers. Print testpage.dvi more than once.
+O 0pt,0pt
+
+% Partially download Type 1 fonts by default. Only reason not to do
+% this is if you encounter bugs. (Please report them to
+% @email{tex-k@@tug.org} if you do.)
+j
+
+% Also look for fonts at these resolutions.
+R 300 600
+
+% With a high resolution and a RISC cpu, better to compress the bitmaps.
+Z
+
+% Uncomment these if you have and want to use PostScript versions of the
+% fonts.
+%p +cmfonts.map
+%p +lafonts.map
+%p +cyrfonts.map
+%p +eufonts.map
+
+% To include another configuration file here.
+%c FILENAME
+
+% You will also want definitions for alternative paper sizes -- A4,
+% legal, and such. Examples in @file{contrib/papersize.level2} and
+% @file{contrib/papersize.simple}.
diff --git a/Build/source/texk/dvipsk/contrib/configs/2a4.ps b/Build/source/texk/dvipsk/contrib/configs/2a4.ps
new file mode 100644
index 00000000000..cf2d4f479eb
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/2a4.ps
@@ -0,0 +1,49 @@
+% @(#)2a4.ps 1.0 95/10/30 pete
+%
+% The following code defines PostScript procedures to work dvips.
+% they must be downloaded or sent as a header file together with
+% the PostScript version of your (La)TeX file.
+%
+% Originated probably by Piet van Oostrum, Department of Computer Science,
+% Utrecht University, Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht
+% Phone +31 30 531806
+% Fax +31 30 513791
+% <piet@cs.ruu.nl> uunet!mcsun!ruuinf!piet
+%
+% it is now re-written to work with dvips(k)-5.58f by Peter Dyballa
+% Johann Wolfgang Goethe-Universit\"at Robert-Mayer-Str. 11-15
+% Fachbereich 20 - Theoretische Informatik D 60325 Frankfurt am Main
+% (Department for Computer Science) (Federal Republic of Germany)
+%
+%
+% To use 2a4.ps include this on invocation of dvips:
+% -h 2a4.ps -t landscape
+%
+% do not include this in your (La)TeX source:
+% \special{landscape}\special{header=2a4.ps}
+%
+/isoddpage true def
+/orig-showpage /showpage load def
+/factor 0.707106781187 def
+/showpage {
+ isoddpage not { orig-showpage } if
+ /isoddpage isoddpage not store
+ } def
+
+/bop-hook {
+ /vsize 1 factor add neg def
+ isoddpage {factor factor scale
+ 842 412 translate }
+ { 0 -595 translate } ifelse
+ } def
+
+/end-hook {
+ isoddpage not { orig-showpage } if
+ } def
+%
+% Theses measures are for those paper formats:
+%
+% DIN A4 letter legal
+% 148mm = 412 PS pt 5.5in = 396 PS pt 7in = 504 PS pt
+% 210mm = 595 PS pt 8.5in = 612 PS pt 8.5in = 612 PS pt
+% 297mm = 842 PS pt 11in = 792 PS pt 14in = 1008 PS pt
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.fax b/Build/source/texk/dvipsk/contrib/configs/config.fax
new file mode 100644
index 00000000000..963ebffaf33
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.fax
@@ -0,0 +1,5 @@
+*
+* For FAX output, we set 200 dpi, FAX mode.
+*
+D 200
+M FAX
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.lino b/Build/source/texk/dvipsk/contrib/configs/config.lino
new file mode 100644
index 00000000000..4e3285f5089
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.lino
@@ -0,0 +1,93 @@
+*
+* This configuration file is a sample one for a typesetter. See the
+* end of the file especially, where we use setpageparams. With a
+* configuration file like this, you can use
+*
+* -t film0 -k -T 11in,17in
+*
+* for instance to print an 11x17 inch document in orientation 0 with
+* crop marks.
+*
+* Assume we have a nice modern lino with lots of memory.
+*
+m 1000000
+*
+* And send output by default to a PostScript file.
+*
+o
+*
+* Default resolution. We must get this right!
+*
+D 1270
+*
+* Compress the fonts.
+*
+Z
+*
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+*@ a4size 210mm 297mm
+*@+ %%PaperSize: a4
+
+@ letterSize 8.5in 11in
+@+ %%PaperSize: Letter
+
+@ letter 8.5in 11in
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ a4 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%BeginPaperSize: a4
+@+ a4
+@+ %%EndPaperSize
+
+@ a3 297mm 420mm
+@+ ! %%DocumentPaperSizes: a3
+@+ %%BeginPaperSize: a3
+@+ a3
+@+ %%EndPaperSize
+*
+* These last two are only for typesetters that can set the page size;
+* uncomment and put them in a `config.lino', for instance.
+*
+* Use this for pages where you want the text to run in the same direction
+* as the film feeds (slow scan direction; down the length of the film.)
+* Best for everything *but* pages higher than the film is wide or pages
+* wider than they are tall; needed for pages wider than the film is wide.
+*
+@ film0 0in 0in
+@+ statusdict /setpageparams known { vsize hsize 0 0 statusdict begin {
+@+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known
+@+ { vsize hsize 0 statusdict begin { setpage } stopped pop end } if } if
+*
+* Use this for pages where you want the text to run across the width of
+* the film (fast scan direction.) Needed for pages taller than the film
+* is wide; preferred for pages wider than they are tall.
+*
+@ film1 0in 0in
+@+ statusdict /setpageparams known { hsize vsize 0 1 statusdict begin {
+@+ setpageparams } stopped end } { true } ifelse { statusdict /setpage known
+@+ { hsize vsize 1 statusdict begin { setpage } stopped pop end } if } if
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.lj2p b/Build/source/texk/dvipsk/contrib/configs/config.lj2p
new file mode 100644
index 00000000000..aaf2a25f3f2
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.lj2p
@@ -0,0 +1,95 @@
+* original config.ps -- default definitions for dvips output.
+*
+* (If you change or delete `original' on the previous line, dvips won't
+* install its config.ps over this file.)
+*
+* Configuration file for Karl & Kathy's LaserJet IIP.
+
+* We have 2 2MB expansion cards.
+*
+m 2750000
+
+
+* Send output by default to our printer.
+*
+o |lpr
+
+
+* Default resolution.
+*
+D 300
+
+
+* Reverse the pages, since we usually print on the face-up tray.
+*
+r
+
+
+* Mode is for Canon engine.
+*
+M CanonCX
+
+
+* Also look for this list of resolutions.
+*
+R 300
+
+
+* The printer offsets the output by this much.
+*
+O 0pt,-6pt
+
+
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+* There is some redundancy in the following comments; that is to
+* get things to work both on the NeXT and on other printers.
+*
+*@ a4size 210mm 297mm
+*@+ %%PaperSize: a4
+
+@ letterSize 8.5in 11in
+
+@ letter 8.5in 11in
+@+ %%PaperSize: Letter
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%PaperSize: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%PaperSize: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%PaperSize: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ a4 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%PaperSize: a4
+@+ %%BeginPaperSize: a4
+@+ a4
+@+ %%EndPaperSize
+
+@ a3 297mm 420mm
+@+ ! %%DocumentPaperSizes: a3
+@+ %%PaperSize: a3
+@+ %%BeginPaperSize: a3
+@+ a3
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.post3x3 b/Build/source/texk/dvipsk/contrib/configs/config.post3x3
new file mode 100644
index 00000000000..f43b3071b4c
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.post3x3
@@ -0,0 +1,28 @@
+ %
+ % This file is an example of a header file for dvips. It prints a page
+ % (or a whole document) as a 3x3 poster. This file is built so it can
+ % be used both as the header file for PostScript and as the configuration
+ % file for dvips. First comes the PostScript part. (Note that dvips
+ % ignores any lines beginning with a space.) Change the number here.
+ % Use it with -P post3x3. We try to overlap pages a bit.
+ %
+ /xpost 3 def /ypost 3 def
+ userdict begin /bop-hook {
+ 36 36 translate
+ dup xpost ypost mul mod
+ dup xpost mod hsize 36 xpost 1 sub mul sub mul neg exch
+ xpost idiv vsize 36 ypost 1 sub mul sub mul neg translate % translate!
+ xpost ypost scale % scale!
+ -36 -36 translate
+ } def end
+ { % we start a procedure so PostScript `ignores' the dvips options.
+ %
+ % Now the dvips options. Change the number here too, to be
+ % xpost * ypost.
+ %
+b 9
+h config.post3x3
+ %
+ % Now PostScript cleanup.
+ %
+ } pop
diff --git a/Build/source/texk/dvipsk/contrib/configs/config.rokicki b/Build/source/texk/dvipsk/contrib/configs/config.rokicki
new file mode 100644
index 00000000000..62828369a74
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/config.rokicki
@@ -0,0 +1,62 @@
+*
+* See config.lino for more info.
+* With a virtual machine, we can claim 1M of memory.
+*
+m 1000000
+*
+* And send output by default to the printer.
+*
+o !lpr
+*
+* Default resolution.
+*
+D 400
+*
+* Last resort sizes.
+*
+R 100 120 144 300 360 400 432 480
+*
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+*@ A4size 210mm 297mm
+*@+ %%PaperSize: A4
+
+@ letterSize 8.5in 11in
+
+@ letter 8.5in 11in
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ A4 210mm 297mm
+@+ ! %%DocumentPaperSizes: A4
+@+ %%BeginPaperSize: A4
+@+ a4
+@+ %%EndPaperSize
+
+@ A3 297mm 420mm
+@+ ! %%DocumentPaperSizes: A3
+@+ %%BeginPaperSize: A3
+@+ a3
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/loop.ps b/Build/source/texk/dvipsk/contrib/configs/loop.ps
new file mode 100644
index 00000000000..a38c4a19863
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/loop.ps
@@ -0,0 +1,2 @@
+%(%stdin) (r) file 1 string readstring
+{ } loop
diff --git a/Build/source/texk/dvipsk/contrib/configs/mkdvipspapers b/Build/source/texk/dvipsk/contrib/configs/mkdvipspapers
new file mode 100644
index 00000000000..b1adffcaa7a
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/mkdvipspapers
@@ -0,0 +1,429 @@
+#!/usr/local/bin/perl
+
+#
+# mkdvipspapers: a simple Perl script that generates a bunch of paper sizes
+# definitions for dvips.
+#
+# Copyright (C) 1995, Yves Arrouye <Yves.Arrouye@imag.fr> [06/15/95]
+#
+# THIS CODE IS PROVIDED AS IS, WITHOUT ANY WARRANTIES, EITHER EXPRESSED OR
+# IMPLIED, OF ITS FITNESS TO ANY PURPOSE. IT'S AUTHOR CANNOT BE HELD LIABLE
+# FOR ANY DAMAGES OCCURING DUE TO THE USE OF THIS CODE. USE AT YOUR OWN RISKS!
+
+# Known bugs: this script is written in Perl 5. (If you ever rewrite it in
+# Perl 4, I'm interested to get your version; I can provide a Perl-4 options
+# parser that is Getopt modified for it).
+
+# Last change: added the -p (--paper) option for specifying default size
+# (the first that will be generated). Arranged for the letter and a4 defs
+# be the first ones if nothing is specified (i.e. in the dvips default).
+# Note: the default paper size need not be in the chose ones, it is taken from
+# all the known papers sizes.
+
+# Read what follows for simple documentation and explanations.
+
+#
+# Options accepted by the script:
+#
+# --help print a small help message
+# --version print version
+#
+# -s, --standard generate standard definitions (Adobe ones)
+# -n, --non-standard generate dvips non-standard definitions
+# -d, --dvips generate dvips (i.e. standard + some) definitions
+# -g, --gs generate non-standard gs definitions
+# -e, --extra generate non-standard extra definitions
+# -l, --local generate local definitions
+# -a, --all generate all definitions
+#
+# -p, --paper default paper size
+#
+# default behaviour is the same as --dvips.
+#
+
+use Getopt::Long;
+
+#
+# The paper sizes definitions are stored in arrays with the following entries
+# for each paper size:
+#
+# - the name of the paper for dvips, e.g. letter;
+# - the name of the paper for the DSC PaperSize comment, e.g. Letter;
+# - the name of an accessible PostScript operator that may select the
+# correct paper size, e.g. letter;
+# - the name of a PostScript operator in statusdict that may select the
+# correct paper tray. e.g. lettertray (this is preferred);
+# - the physical width and height of the paper, either in points (no units
+# or bp, as in 4000bp), in inches (e.g 8.5in), centimeters (e.g. 21cm)
+# or in millimeters (e.g. 297mm);
+# - a flag indicating the orientation of the sheet, 0 meaning portrait and
+# 1 meaning landscape (this actually used only for gs' setpage operator).
+#
+# The PostScript code generated in the Setup section does the following.
+# First, we look in statusdict in order to look for a tray selection operator.
+# If there is none, but the specified PostScript operator is accessible with
+# the current dictionaries stacking order, we use it. If setpagedevice is
+# implemented and the other methods did fail, we use it. Otherwise, if the
+# setpage operator is present in statusdict, use this one. The setpage op. is
+# assumed to be
+#
+# <width> <height> <orient> setpage --
+#
+# where <orient> is 0 for portrait and 1 for landscape (in which case <width>
+# and <height> are swapped!).
+#
+
+#
+# This code has been tested with an Apple LaserWriter II, an Hewlett Packard
+# 4L laser printer, Ghostscript 3.33 and Ghostview 1.5 with success.
+#
+
+#
+# Enter your local definitions here in the same format as the examples
+# below.
+#
+# Papers defined here: (none).
+#
+
+@localpapersdefs = (
+);
+
+#
+# Standard (Adobe) names. Missing names are a4small and lettersmall, because
+# I don't have their definition handy.
+#
+# Papers defined here: 11x17, a3, a4, b5, ledger, legal, letter, note.
+#
+
+@stdpapersdefs = (
+ [
+ 'letter',
+ 'Letter', 'letter', 'lettertray',
+ '8.5in', '11in', 0
+ ],
+ [
+ 'a4',
+ 'A4', 'a4', 'a4tray',
+ '210mm', '297mm', 0
+ ],
+ [
+ '11x17',
+ '11x17', '11x17', '11x17tray',
+ '11in', '17in', 0
+ ],
+ [
+ 'a3',
+ 'A3', 'a3', 'a3tray',
+ '297mm', '420mm', 0
+ ],
+ [
+ 'b5',
+ 'B5', 'ab5', 'b5tray',
+ '177mm', '250mm', 0
+ ],
+ [
+ 'ledger',
+ 'Ledger', 'ledger', 'ledgertray',
+ '11in', '17in', 1
+ ],
+ [
+ 'legal',
+ 'Legal', 'legal', 'legaltray',
+ '8.5in', '14in', 0
+ ],
+ [
+ 'note',
+ 'Note', 'note', 'notetray',
+ '7.5in', '10in', 0
+ ]
+);
+
+#
+# Names that are present in the standard dvips distribution.
+#
+# Papers defined here: tabloid (aka 11x17).
+#
+
+@dvipspapersdefs = (
+ [
+ 'tabloid',
+ 'Tabloid', '11x17', '11x17tray',
+ '11in', '17in', 0
+ ],
+);
+
+#
+# Names that are present in the standard gs distribution. (Some names are
+# currently missing...)
+#
+# Papers defined here: a0, a1, a2, a5, a6, a7, a8, a9, a10,
+# b0, b1, b2, b3, b4.
+#
+
+@gspapersdefs = (
+ [
+ 'a0',
+ 'A0', 'a0', 'a0tray',
+ '840mm', '1188mm', 0
+ ],
+ [
+ 'a1',
+ 'A1', 'a1', 'a1tray',
+ '594mm', '840mm', 0
+ ],
+ [
+ 'a2',
+ 'A2', 'a2', 'a2tray',
+ '420mm', '594mm', 0
+ ],
+ [
+ 'a5',
+ 'A5', 'a5', 'a5tray',
+ '148mm', '210mm', 0
+ ],
+ [
+ 'a6',
+ 'A6', 'a6', 'a6tray',
+ '105mm', '148mm', 0
+ ],
+ [
+ 'a7',
+ 'A7', 'a7', 'a7tray',
+ '74mm', '105mm', 0
+ ],
+ [
+ 'a8',
+ 'A8', 'a8', 'a8tray',
+ '52.5mm', '74mm', 0
+ ],
+ [
+ 'a9',
+ 'A9', 'a9', 'a9tray',
+ '37mm', '52.5mm', 0
+ ],
+ [
+ 'a10',
+ 'A10', 'a10', 'a10tray',
+ '26.25mm', '37mm', 0
+ ],
+ [
+ 'b0',
+ 'B0', 'b0', 'b0tray',
+ '2836bp', '4008bp', 0
+ ],
+ [
+ 'b1',
+ 'B1', 'b1', 'b1tray',
+ '2004bp', '2836bp', 0
+ ],
+ [
+ 'b2',
+ 'B2', 'b2', 'b2tray',
+ '1418bp', '2004bp', 0
+ ],
+ [
+ 'b3',
+ 'B3', 'b3', 'b3tray',
+ '1002bp', '1418bp', 0
+ ],
+ [
+ 'b4',
+ 'B4', 'b4', 'b4tray',
+ '709bp', '1002bp', 0
+ ],
+);
+
+@extrapapersdefs = (
+ [
+ 'executive',
+ 'Executive', 'executivepage', 'executivepagetray',
+ '7.25in', '10.5in', 0
+ ],
+ [
+ 'halfexecutive',
+ 'HalfExecutive', 'halfexecutivepage', 'halfexecutivepagetray',
+ '5.25in', '7.25in', 0
+ ]
+);
+
+sub basename {
+ local($fullname, $ext) = @_;
+ local($basename) = $fullname;
+
+ $basename =~ s,(.*/)?([^/]+),$2,;
+ $ext && $basename =~ s,$ext$,,;
+
+ $basename;
+}
+
+sub dumpsizes {
+ local($legend, @sizes) = @_;
+
+ print "$legend";
+
+ for $spec (@sizes) {
+ local(@array) = @$spec;
+ local($name) = @array;
+
+ print $name, " ";
+ }
+ print "\n";
+}
+
+sub usage {
+ local($exitcode) = @_;
+ local($myname) = &basename($0);
+
+ if ($exitcode) {
+ select STDERR;
+ }
+
+ print "usage: $myname [ --version ] [ -h, --help ] [ -s, --standard ] [ -n, --non-standard ] [ -d, --dvips ] [ -g, --gs ] [ -e, --extra ] [ -l, --local ] [ -a, --all ] [ -p, --paper papername ]\n";
+
+ if ($exitcode == 0) {
+ print "\n";
+ print "options: --version\t\tprint version information\n";
+ print " -h, --help\t\tprint this help message\n";
+ print " -s, --standard\t\tdefine standard paper sizes\n";
+ print " -n, --non-standard\tdefine dvips' non-standard paper sizes\n";
+ print " -d, --dvips\t\tdefine all dvips paper sizes\n";
+ print " -g, --gs\t\tdefine gs' non-standard paper sizes\n";
+ print " -e, --extra\t\tdefine extra paper sizes\n";
+ print " -l, --local\t\tdefine local paper sizes\n";
+ print " -a, --all\t\tdefine all previous paper sizes\n";
+ print " -p, --paper papername\tspecify default paper size\n";
+ print "\npapers: "; &dumpsizes("--standard\t\t", @stdpapersdefs);
+ print " "; &dumpsizes("--non-standard\t\t", @dvipspapersdefs);
+ print " "; &dumpsizes("--gs\t\t\t", @gspapersdefs);
+ print " "; &dumpsizes("--extra\t\t", @extrapapersdefs);
+ print " "; &dumpsizes("--local\t\t", @localpapersdefs);
+ }
+
+ exit $exitcode;
+}
+
+sub pssize {
+ local ($size) = @_;
+ local $number = $size;
+
+ $number =~ s/\D+$//;
+
+ if ($size =~ /in$/) {
+ $number *= 72;
+ } elsif ($size =~ /cm$/) {
+ $number *= 72 / 2.54;
+ } elsif ($size =~ /mm$/) {
+ $number *= 72 / 25.4;
+ }
+
+ return int($number + .4);
+}
+
+sub genpaperdefs {
+ local ($papername, $dscname, $psname, $trayname,
+ $width, $height, $orient) = @$_;
+ local ($pswidth, $psheight) = (&pssize($width), &pssize($height));
+
+ local ($exch) = ($orient == 1 ? " exch" : "");
+
+ if ($width =~ /^\d$/) { $width = "${width}bp"; }
+ if ($height =~ /^\d$/) { $height = "${height}bp"; }
+
+ print <<EPD
+@ $papername $width $height
+@+ ! %%DocumentPaperSizes: $dscname
+@+ %%PaperSize: $dscname
+@+ %%BeginPaperSize: $dscname
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ $pswidth $psheight$exch ] put setpagedevice
+@+ } {
+@+ statusdict /$trayname known {
+@+ statusdict begin $trayname end
+@+ /$psname where { pop $psname } if
+@+ } {
+@+ /$psname where {
+@+ pop $psname
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ $pswidth $psheight $orient setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+EPD
+}
+
+if (!&GetOptions("standard|s", "non-standard|n", "dvips|d", "gs|g", "extra|e",
+ "local|l", "all|a", "paper|p=s", "help|h", "version")) {
+ &usage(1);
+} elsif ($#ARGV != -1) {
+ &usage(1);
+} elsif ($opt_help) {
+ &usage(0);
+} elsif ($opt_version) {
+ print &basename($0),
+ " version 1.2, by Yves Arrouye <Yves.Arrouye\@imag.fr>\n";
+ exit(0);
+} else {
+ @allpapersdefs = (@stdpapersdefs, @dvipspapersdefs, @gspapersdefs,
+ @extrapapersdefs, @localpapersdefs);
+ if ($opt_all) {
+ @paperdefs = @allpapersdefs;
+ } else {
+ @papersdefs = ();
+
+ if ($opt_dvips) {
+ $opt_standard = 1;
+ $opt_non_standard = 1;
+ }
+
+ if ($opt_standard && !$opt_dvips) {
+ @papersdefs = (@papersdefs, @stdpapersdefs);
+ }
+ if ($opt_non_standard && !$opt_dvips) {
+ @papersdefs = (@papersdefs, @dvipspapersdefs);
+ }
+ if ($opt_gs) {
+ @papersdefs = (@papersdefs, @gsspapersdefs);
+ }
+ if ($opt_extra) {
+ @papersdefs = (@papersdefs, @extrapapersdefs);
+ }
+ if ($opt_local) {
+ @papersdefs = (@papersdefs, @localpapersdefs);
+ }
+
+ if ($#papersdefs == -1) {
+ @papersdefs = (@stdpapersdefs, @dvipspapersdefs);
+ }
+ }
+}
+
+# Find default paper def in *all* definitions and generate config
+
+if ($opt_paper) {
+ for (@allpapersdefs) {
+ local(@paper) = @$_;
+ local($papername) = @paper;
+
+ if ($papername eq $opt_paper) {
+ genpaperdefs @paper;
+ last;
+ }
+ }
+}
+
+# Generate config for all selected paper sizes but the default one
+
+for (@defaultpaper, @papersdefs) {
+ local($papername) = @$_;
+
+ if ($papername eq $opt_paper) { next; }
+
+ genpaperdefs $_;
+}
+
diff --git a/Build/source/texk/dvipsk/contrib/configs/papersize.level2 b/Build/source/texk/dvipsk/contrib/configs/papersize.level2
new file mode 100644
index 00000000000..8d708facafa
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/papersize.level2
@@ -0,0 +1,236 @@
+% If your printer doesn't support setpagedevice, and your default paper
+% size is A4, uncomment this.
+%@ A4size 210mm 297mm
+%@+ %%PaperSize: A4
+
+% If you want the lettersize definition that uses setpagedevice to be
+% the default, comment this out.
+@ letterSize 8.5in 11in
+
+% More paper size information. First definition is the default.
+% These definitions were generated by the contrib/mkdvipspapers Perl 5 script,
+% by Yves.Arrouye@imag.fr.
+%
+% If your default is a4 put the a4 definition first (i.e., before the letter
+% definition). You should always keep a definition here in order to have the
+% document print on the desired paper if possible even outside your original
+% environment.
+%
+% If your default is something else than a4, of course, put its
+% definition first!
+
+@ letter 8.5in 11in
+@+ ! %%DocumentPaperSizes: Letter
+@+ %%PaperSize: Letter
+@+ %%BeginPaperSize: Letter
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 612 792 ] put setpagedevice
+@+ } {
+@+ statusdict /lettertray known {
+@+ statusdict begin lettertray end
+@+ /letter where { pop letter } if
+@+ } {
+@+ /letter where {
+@+ pop letter
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 612 792 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ a4 210mm 297mm
+@+ ! %%DocumentPaperSizes: a4
+@+ %%PaperSize: a4
+@+ %%BeginPaperSize: a4
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 595 842 ] put setpagedevice
+@+ } {
+@+ statusdict /a4tray known {
+@+ statusdict begin a4tray end
+@+ /a4 where { pop a4 } if
+@+ } {
+@+ /a4 where {
+@+ pop a4
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 595 842 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ 11x17 11in 17in
+@+ ! %%DocumentPaperSizes: 11x17
+@+ %%PaperSize: 11x17
+@+ %%BeginPaperSize: 11x17
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 792 1224 ] put setpagedevice
+@+ } {
+@+ statusdict /11x17tray known {
+@+ statusdict begin 11x17tray end
+@+ /11x17 where { pop 11x17 } if
+@+ } {
+@+ /11x17 where {
+@+ pop 11x17
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 792 1224 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ a3 297mm 420mm
+@+ ! %%DocumentPaperSizes: a3
+@+ %%PaperSize: a3
+@+ %%BeginPaperSize: a3
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 842 1190 ] put setpagedevice
+@+ } {
+@+ statusdict /a3tray known {
+@+ statusdict begin a3tray end
+@+ /a3 where { pop a3 } if
+@+ } {
+@+ /a3 where {
+@+ pop a3
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 842 1190 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ b5 177mm 250mm
+@+ ! %%DocumentPaperSizes: b5
+@+ %%PaperSize: b5
+@+ %%BeginPaperSize: b5
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 502 709 ] put setpagedevice
+@+ } {
+@+ statusdict /b5tray known {
+@+ statusdict begin b5tray end
+@+ /ab5 where { pop ab5 } if
+@+ } {
+@+ /ab5 where {
+@+ pop ab5
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 502 709 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ ledger 11in 17in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%PaperSize: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 792 1224 exch ] put setpagedevice
+@+ } {
+@+ statusdict /ledgertray known {
+@+ statusdict begin ledgertray end
+@+ /ledger where { pop ledger } if
+@+ } {
+@+ /ledger where {
+@+ pop ledger
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 792 1224 1 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%PaperSize: Legal
+@+ %%BeginPaperSize: Legal
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 612 1008 ] put setpagedevice
+@+ } {
+@+ statusdict /legaltray known {
+@+ statusdict begin legaltray end
+@+ /legal where { pop legal } if
+@+ } {
+@+ /legal where {
+@+ pop legal
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 612 1008 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ note 7.5in 10in
+@+ ! %%DocumentPaperSizes: Note
+@+ %%PaperSize: Note
+@+ %%BeginPaperSize: Note
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 540 720 ] put setpagedevice
+@+ } {
+@+ statusdict /notetray known {
+@+ statusdict begin notetray end
+@+ /note where { pop note } if
+@+ } {
+@+ /note where {
+@+ pop note
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 540 720 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%PaperSize: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ /setpagedevice where {
+@+ pop 1 dict dup /PageSize [ 792 1224 ] put setpagedevice
+@+ } {
+@+ statusdict /11x17tray known {
+@+ statusdict begin 11x17tray end
+@+ /11x17 where { pop 11x17 } if
+@+ } {
+@+ /11x17 where {
+@+ pop 11x17
+@+ } {
+@+ statusdict /setpage known {
+@+ statusdict begin
+@+ 792 1224 0 setpage
+@+ end
+@+ } if
+@+ } ifelse
+@+ } ifelse
+@+ } ifelse
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/papersize.simple b/Build/source/texk/dvipsk/contrib/configs/papersize.simple
new file mode 100644
index 00000000000..5112bdf40d4
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/papersize.simple
@@ -0,0 +1,44 @@
+* Paper size information. First definition is the default.
+*
+* If your default is a4 uncomment the following definition
+* and comment out the letterSize definition.
+*
+*@ A4size 210mm 297mm
+*@+ %%PaperSize: A4
+
+@ letterSize 8.5in 11in
+
+@ letter 8.5in 11in
+@+ %%BeginPaperSize: Letter
+@+ letter
+@+ %%EndPaperSize
+
+@ legal 8.5in 14in
+@+ ! %%DocumentPaperSizes: Legal
+@+ %%BeginPaperSize: Legal
+@+ legal
+@+ %%EndPaperSize
+
+@ ledger 17in 11in
+@+ ! %%DocumentPaperSizes: Ledger
+@+ %%BeginPaperSize: Ledger
+@+ ledger
+@+ %%EndPaperSize
+
+@ tabloid 11in 17in
+@+ ! %%DocumentPaperSizes: Tabloid
+@+ %%BeginPaperSize: Tabloid
+@+ 11x17
+@+ %%EndPaperSize
+
+@ A4 210mm 297mm
+@+ ! %%DocumentPaperSizes: A4
+@+ %%BeginPaperSize: A4
+@+ a4
+@+ %%EndPaperSize
+
+@ A3 297mm 420mm
+@+ ! %%DocumentPaperSizes: A3
+@+ %%BeginPaperSize: A3
+@+ a3
+@+ %%EndPaperSize
diff --git a/Build/source/texk/dvipsk/contrib/configs/prepipe.ps b/Build/source/texk/dvipsk/contrib/configs/prepipe.ps
new file mode 100644
index 00000000000..57b690963cd
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/prepipe.ps
@@ -0,0 +1 @@
+/showpage { 1 true .outputpage } def
diff --git a/Build/source/texk/dvipsk/contrib/configs/showpage.ps b/Build/source/texk/dvipsk/contrib/configs/showpage.ps
new file mode 100644
index 00000000000..97a4789f75d
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/configs/showpage.ps
@@ -0,0 +1 @@
+showpage
diff --git a/Build/source/texk/dvipsk/contrib/crop.lpr b/Build/source/texk/dvipsk/contrib/crop.lpr
new file mode 100644
index 00000000000..d79484266d9
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/crop.lpr
@@ -0,0 +1,271 @@
+%!
+% This file is for crop marks and registration marks if there is color.
+%
+% First, we translate and draw the marks. You can change the way the
+% marks are drawn, but the quarter inch border around the page is fixed.
+%
+% This file uses bop-hook; sorry.
+%
+TeXDict begin
+%
+% CM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% x_center y_center CM - %
+% %
+% Make a crop mark at x_center y_center. This crop mark is just a cross. %
+% Checks to see if TeXcolorcmyk is defined---if there is no color, you can %
+% setgray instead of setcmykcolor. %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/cX 18 def % the crop offset
+/CM
+{
+ gsave
+ 3 1 roll
+ translate
+ rotate
+ .3 setlinewidth
+ /TeXcolorcmyk where {pop 1 1 1 1 setcmykcolor} {0 setgray} ifelse
+ 0 cX neg moveto
+ 0 cX 2 div neg lineto stroke
+ cX neg 0 moveto
+ cX 2 div neg 0 lineto stroke
+ grestore
+} def
+%
+% RegMark %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% x_center y_center RegMark - %
+% %
+% Make a registration mark at x_center y_center. Consists of two concentric %
+% circles, the inner one filled, and a cross hair through them. Preferred %
+% by those who register films for proof. Checks to see if TeXcolorcmyk is %
+% defined---if there is no color, you don't need registration marks! %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/RegMark
+{
+ /TeXcolorcmyk where
+ {
+ pop
+ gsave
+ translate
+ .3 setlinewidth
+ 1 1 1 1 setcmykcolor
+ 0 0 3 0 360 arc fill
+ 0 0 6 0 360 arc stroke
+ 0 1 3 {
+ pop
+ 90 rotate
+ 0 0 0 0 setcmykcolor
+ 0 0 moveto 3 0 lineto stroke
+ 1 1 1 1 setcmykcolor
+ 3 0 moveto 8 0 lineto stroke
+ } for
+ grestore
+ } {pop pop} ifelse
+} def
+%
+% DoLogo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% x_left y_upper DoLogo - %
+% %
+% If /CompositorName is defined, then the logo will be placed in the crop %
+% area. /JobDescription and /Contractor can also be defined in the TeX file %
+% to define the job. If there is no definition, they simply will not show %
+% up. Examples: %
+% /CompositorName (Meridian Creative Group) def %
+% /JobDescription (College Algebra: Concepts and Models 2/e) def %
+% /Contractor (D.C. Heath and Company) def %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/DoLogo
+{
+ moveto
+ save
+ %
+ % Variables to control the look of the Logo:
+ %
+ /LogoVgap 1 def % Vertical gap between logo string and box
+ /LogoHgap 3 def % Horizontal gap between logo string and box
+ /LogoFont {6 /Helvetica} def % The font to use for this logo.
+ %
+ % Gather some useful information about the Logo Font.
+ %
+ /LogoAscent LogoFont findfont /FontBBox get 3 get abs 1000 div mul def
+ /LogoDescent LogoFont findfont /FontBBox get 1 get abs 1000 div mul def
+ /LogoHeight LogoAscent LogoDescent add def
+ %
+ % <string> AddToLogo <string width>
+ %
+ /LogoWidth 0 def
+ /AddToLogo
+ {
+ dup show % leaving <string> on stack
+ stringwidth pop % <swidth> on stack
+ } def
+ %
+ % Start by setting line width, color, and establish logo font.
+ %
+ .24 setlinewidth
+ /TeXcolorcmyk where {pop 1 1 1 1 setcmykcolor} {0 setgray} ifelse
+ LogoFont findfont exch scalefont setfont
+ %
+ % Then move into position
+ %
+ LogoHgap LogoVgap LogoAscent add neg rmoveto
+ %
+ % If there is a logo, there will be a compositor, so start by setting
+ % the compositor name and add to the LogoWidth.
+ %
+ CompositorName AddToLogo % Add compositor name to logo
+ LogoWidth add /LogoWidth exch def % Add compositor name to logo width
+ %
+ % If there is a job description, set it next.
+ %
+ /JobDescription where
+ {
+ pop % Get rid of dictionary
+ LogoFont pop 0 rmoveto % Move a bit to the right
+ LogoWidth LogoFont pop add % Add that on to the logo width
+ JobDescription AddToLogo % Add job description to logo
+ add /LogoWidth exch def % Add job description to logo width
+ } if
+ %
+ % Same thing with Contractor.
+ %
+ /Contractor where
+ {
+ pop % Get rid of dictionary
+ LogoFont pop 0 rmoveto % Move a bit to the right
+ LogoWidth LogoFont pop add % Add that on to the logo width
+ Contractor AddToLogo % Add contractor to logo
+ add /LogoWidth exch def % Add contractor to logo width
+ } if
+ %
+ % Add the gaps onto the logo dimensions for box drawing.
+ %
+ /LogoHeight LogoHeight 2 LogoVgap mul add def
+ /LogoWidth LogoWidth 2 LogoHgap mul add def
+ %
+ % Move into lower right corner of box and draw it clockwise.
+ %
+ LogoHgap LogoVgap LogoDescent add neg rmoveto
+ LogoWidth neg 0 rlineto 0 LogoHeight rlineto
+ LogoWidth 0 rlineto 0 LogoHeight neg rlineto stroke
+ restore
+ stroke
+} def
+%
+/DrawCenterTicks
+{
+ gsave
+ .3 setlinewidth
+ /TeXcolorcmyk where {pop 1 1 1 1 setcmykcolor} {0 setgray} ifelse
+ hsize cX 2 mul sub 2 div cX 2 div neg moveto
+ 0 cX 2 div neg rlineto
+ hsize cX 1.5 mul sub vsize cX 2 mul sub 2 div moveto
+ cX 2 div 0 rlineto
+ hsize cX 2 mul sub 2 div vsize cX 1.5 mul sub moveto
+ 0 cX 2 div rlineto
+ cX 2 div neg vsize cX 2 mul sub 2 div moveto
+ cX 2 div neg 0 rlineto
+ stroke
+ grestore
+} def
+%
+% NamePlates %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% left bottom NamePlates - %
+% %
+% /FirstPlate, /SecondPlate, /ThirdPlate, and /FourthPlate have default %
+% names but may be overridden in the job.hdr. %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+/NamePlates
+{
+ gsave
+ translate
+ % Make sure each plate has a name.
+ /FirstPlate where {pop} {/FirstPlate (Cyan) def} ifelse
+ /SecondPlate where {pop} {/SecondPlate (Magenta) def} ifelse
+ /ThirdPlate where {pop} {/ThirdPlate (Yellow) def} ifelse
+ /FourthPlate where {pop} {/FourthPlate (Black) def} ifelse
+ /Helvetica-Bold findfont 10 scalefont setfont
+ % Cyan block
+ 1 0 0 0 setcmykcolor
+ 0 0 moveto
+ 9 0 lineto
+ 9 9 lineto
+ 0 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 0.75 1 moveto
+ (C) show
+ % Magenta block
+ 0 1 0 0 setcmykcolor
+ 9 0 moveto
+ 18 0 lineto
+ 18 9 lineto
+ 9 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 9.25 1 moveto
+ (M) show
+ % Yellow block
+ 0 0 1 0 setcmykcolor
+ 18 0 moveto
+ 27 0 lineto
+ 27 9 lineto
+ 18 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 19.25 1 moveto
+ (Y) show
+ % Black block
+ 0 0 0 1 setcmykcolor
+ 27 0 moveto
+ 36 0 lineto
+ 36 9 lineto
+ 27 9 lineto
+ closepath
+ fill
+ 0 0 0 0 setcmykcolor
+ 27.5 1 moveto
+ (K) show
+ % Name Plates
+ /Helvetica-Narrow findfont 9 scalefont setfont
+ 1 1 1 1 setcmykcolor
+ ( Plate:) show
+ 1 0 0 0 setcmykcolor
+ FirstPlate show
+ 0 1 0 0 setcmykcolor
+ SecondPlate show
+ 0 0 1 0 setcmykcolor
+ ThirdPlate show
+ 0 0 0 1 setcmykcolor
+ FourthPlate show
+ grestore
+} def
+%
+end %TeXDict
+%
+/bop-hook {
+ cX dup TR % move the origin a bit
+ gsave
+ % Draw center tic marks in the crop margin
+ DrawCenterTicks
+ % Do the logo
+ /CompositorName where {pop cX 2 div dup neg DoLogo} if
+ % Name the plates
+ /TeXcolorcmyk where {pop hsize 2 div cX add -18 NamePlates} if
+ % now draw four crop marks and four registration marks
+ 0 0 0 CM cX -2 div dup RegMark
+ vsize cX 2 mul sub dup
+ hsize cX 2 mul sub dup
+ isls { 4 2 roll } if
+ 0 2 copy 90 CM cX 2 div sub exch cX 2 div add exch RegMark
+ exch 2 copy 180 CM cX 2 div add exch cX 2 div add exch RegMark
+ 0 exch 2 copy 270 CM cX 2 div add exch cX 2 div sub exch RegMark
+ grestore
+ 0 cX -2 mul TR % now move to where we start drawing
+ isls { cX -2 mul 0 TR } if
+} def
diff --git a/Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty b/Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty
new file mode 100644
index 00000000000..91ae8f388c1
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/avantgarde.sty
@@ -0,0 +1,11 @@
+% latex style using AvantGarde for text.
+
+\def\@mrm{pagk}% AvantGarde - book
+\def\@mit{pagko}% AvantGarde - book oblique
+\def\@msl{pagdo}% AvantGarde - demi oblique
+\def\@mbf{pagd}% AvantGarde - demi
+\def\@mcsc{pagkc}% AvantGarde - book - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty b/Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty
new file mode 100644
index 00000000000..85e7fd38a28
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/blackdvi.sty
@@ -0,0 +1,109 @@
+% This is BLACKDVI.STY and BLACKDVI.TEX in text format, as of March 5,
+% 1992, written by Jim Hafner, HAFNER@ALMADEN, or hafner@almaden.ibm.com.
+% This file turns all color commands defined by COLORDVI.STY or COLORDVI.TEX
+% into no-ops and so can be used to get B/W printing without having to
+% ferret out all the color macros. Modified by Tomas Rokicki to be a
+% bit smaller.
+%
+% 20 Aug. 1992: Revised by J. Hafner, by adding \globalColor as a no-op.
+%
+% For example, with FoilTeX, just use
+% \documentstyle[blackdvi]{foils}
+% in place of
+% \documentstyle[colordvi]{foils}
+%
+% This file can be used anywhere COLORDVI.STY or COLORDVI.TEX is used. In
+% particular, It can be used in any flavor of LaTeX (e.g. LaTeX,
+% FoilTeX, AMS-LaTeX) by adding the keyword "blackdvi" to the options in
+% the \documentstyle command (e.g., "\documentstyle[blackdvi]{foils}") or
+% \input in any flavor of TeX (e.g. Plain TeX, eplain, AMS-TeX or any of
+% the above LaTeX flavors) with the command "\input blackdvi".
+%
+% Here is the background command
+\def\background#1{}%
+%
+% This is used to define all the \newColor macros defined by \newColor
+% as no-ops.
+\def\newColor #1 {\expandafter\def\csname text#1\endcsname{}%
+ \expandafter\def\csname #1\endcsname##1{##1}}%
+%
+% Here are the two macros used for user-definable colors
+\def\textColor#1{}
+\def\Color#1#2{#2}
+%
+% This is the macro that is used to protect certain regions of the
+% text from corruption by local color commands. See COLORDVI.STY for
+% more information. We make it a no-op in this style.
+\def\globalColor#1{#1}
+%
+% Here are the preset color names. This list should match the list
+% in <colordvi.[tex,sty]>.
+%
+\newColor GreenYellow
+\newColor Yellow
+\newColor Goldenrod
+\newColor Dandelion
+\newColor Apricot
+\newColor Peach
+\newColor Melon
+\newColor YellowOrange
+\newColor Orange
+\newColor BurntOrange
+\newColor Bittersweet
+\newColor RedOrange
+\newColor Mahogany
+\newColor Maroon
+\newColor BrickRed
+\newColor Red
+\newColor OrangeRed
+\newColor RubineRed
+\newColor WildStrawberry
+\newColor Salmon
+\newColor CarnationPink
+\newColor Magenta
+\newColor VioletRed
+\newColor Rhodamine
+\newColor Mulberry
+\newColor RedViolet
+\newColor Fuchsia
+\newColor Lavender
+\newColor Thistle
+\newColor Orchid
+\newColor DarkOrchid
+\newColor Purple
+\newColor Plum
+\newColor Violet
+\newColor RoyalPurple
+\newColor BlueViolet
+\newColor Periwinkle
+\newColor CadetBlue
+\newColor CornflowerBlue
+\newColor MidnightBlue
+\newColor NavyBlue
+\newColor RoyalBlue
+\newColor Blue
+\newColor Cerulean
+\newColor Cyan
+\newColor ProcessBlue
+\newColor SkyBlue
+\newColor Turquoise
+\newColor TealBlue
+\newColor Aquamarine
+\newColor BlueGreen
+\newColor Emerald
+\newColor JungleGreen
+\newColor SeaGreen
+\newColor Green
+\newColor ForestGreen
+\newColor PineGreen
+\newColor LimeGreen
+\newColor YellowGreen
+\newColor SpringGreen
+\newColor OliveGreen
+\newColor RawSienna
+\newColor Sepia
+\newColor Brown
+\newColor Tan
+\newColor Gray
+\newColor Black
+\newColor White
diff --git a/Build/source/texk/dvipsk/contrib/latex209/bookman.sty b/Build/source/texk/dvipsk/contrib/latex209/bookman.sty
new file mode 100644
index 00000000000..520e4ebdb68
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/bookman.sty
@@ -0,0 +1,11 @@
+% latex style using Bookman for text
+
+\def\@mrm{pbkl}% Bookman - light
+\def\@mit{pbkli}% Bookman - light italic
+\def\@msl{pbkdi}% Bookman - demi italic
+\def\@mbf{pbkd}% Bookman - demi
+\def\@mcsc{pbklc}% Bookman - light - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/chancery.sty b/Build/source/texk/dvipsk/contrib/latex209/chancery.sty
new file mode 100644
index 00000000000..7f87fd9d617
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/chancery.sty
@@ -0,0 +1,11 @@
+% latex style using Zapf Chancery for text.
+
+\def\@mrm{pzcmi}% Zapf Chancery Medium Italic
+\def\@mit{pzcmi}% Zapf Chancery Medium Italic
+\def\@msl{pzcmi}% Zapf Chancery Medium Italic
+\def\@mbf{pzcmi}% Zapf Chancery Medium Italic
+\def\@mcsc{pzcmi}% Zapf Chancery Medium Italic
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/colordvi.sty b/Build/source/texk/dvipsk/contrib/latex209/colordvi.sty
new file mode 100644
index 00000000000..df812f8df60
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/colordvi.sty
@@ -0,0 +1,162 @@
+% This is COLORDVI.TEX and COLORDVI.STY in text format, as of
+% March 5, 1992, written by Jim Hafner, HAFNER@ALMADEN, or
+% hafner@almaden.ibm.com. Modified by Tomas Rokicki to be a
+% bit smaller and easier to add to.
+%
+% 20 Aug. 1992: Revised by J. Hafner, by adding \globalColor.
+%
+% This style file can be used to get color in TeX, LaTeX or more
+% importantly, FoilTeX as an optional style file. It is generic in
+% that the color parameters are determined by the driver's header files.
+%
+% It can be used with any driver which knows how to process the keywords
+% in the \special commands. Currently, only versions of dvips greater
+% than 5.478 (dvips is the DVI->PostScript driver by Tom Rokicki) and
+% TeXview on the NeXT interpret these specials.
+%
+% This file can be used in any flavor of LaTeX (e.g. LaTeX, FoilTeX,
+% AMS-LaTeX) by adding the keyword "colordvi" to the options in the
+% \documentstyle command (e.g., "\documentstyle[colordvi]{foils}") or \input
+% in any flavor of TeX (e.g. Plain TeX, eplain, AMS-TeX or any of the
+% above LaTeX flavors) with the command "\input colordvi".
+%
+% The actual parameters for each color are determined by the device
+% driver.
+% For "dvips", that is the header file color.pro prepended to the
+% output file by dvips. They can be overrriden by a user-supplied
+% header, called by either the -h option or the "h" flag in a printer
+% configuration file, or in the .dvipsrc (or its analogue on other
+% systems).
+%
+% Most of the color names and their matches were based on the
+% most recent (at time of writing) Crayola Crayon box of 64 colors.
+%
+% There are 68 predefined colors. At the end of this file is a
+% listing of the color names and their approximate PANTONE color
+% match. This is for reference purposes only.
+%
+% The first macro lets the user specify the background color for the
+% document. It sets the background color for the current page and all
+% succeeding pages, unless changed by another command of this type. To
+% change the background color back to the default, issue
+% \background{White}
+%
+\def\background#1{\special{background #1}}
+%
+% There are two types of text color commands. The first is in the form
+% \ColorName (note the uppercase for the color name).
+%
+% It is called a local color command since it takes one argument
+% enclosed in brackets. It writes the contents of its argument in the
+% selected color. This should be used for local or nested color
+% changes, since it restores the original color state when it completes.
+% The second type of color command is in the form
+% \textColorName
+% This uses the same naming convention as before. It is called a global
+% color command since it takes no arguments and simply sets the color at
+% this point. No previous color information is saved. IF YOU USE THIS
+% INTERNAL TO ANY LOCAL COLOR COMMAND, THE NESTING HISTORY IS LOST.
+%
+% This next definition is used in an invocation of a \textColorName
+% macro to save the global color value in local form via the \globalColor
+% macro. This new macro can then be used to protect certain regions of
+% the text, like item tags and headers and footers which can be
+% corrupted by local colors. In particular, item tags in lists can
+% incorrectly inherit the color from a local color command immediately
+% following it. The \subdef macro is invoked within the invocation of a
+% global color change.
+%
+\def\subdef#1{\gdef\globalColor##1{\special
+ {color push #1}##1\special{color pop}}}
+%
+% Here are the global color changers, with color codes defined;
+% these are used to define the small region colors.
+%
+% This first is for user defined color. The argument #1 is for a "CMYK"
+% quadruple of intensity values between 0 and 1. (CMYK stands for Cyan,
+% Magenta, Yellow and Black.) E.g., \textColor{.2 .3 .4 .1}
+%
+\def\textColor#1{\subdef{cmyk #1}\special{color cmyk #1}}
+%
+% and a userdefinable local color command.
+\def\Color#1#2{\special{color push cmyk #1}#2\special{color pop}}
+%
+%
+\def\newColor #1 {\expandafter\def\csname #1\endcsname##1{\special
+ {color push #1}##1\special{color pop}}%
+ \expandafter\def\csname text#1\endcsname{\subdef{#1}%
+ \special{color #1}}}%
+%
+% Here are the color names and their PANTONE match (approximately)
+%
+\newColor GreenYellow % GreenYellow Approximate PANTONE 388
+\newColor Yellow % Yellow Approximate PANTONE YELLOW
+\newColor Goldenrod % Goldenrod Approximate PANTONE 109
+\newColor Dandelion % Dandelion Approximate PANTONE 123
+\newColor Apricot % Apricot Approximate PANTONE 1565
+\newColor Peach % Peach Approximate PANTONE 164
+\newColor Melon % Melon Approximate PANTONE 177
+\newColor YellowOrange % YellowOrange Approximate PANTONE 130
+\newColor Orange % Orange Approximate PANTONE ORANGE-021
+\newColor BurntOrange % BurntOrange Approximate PANTONE 388
+\newColor Bittersweet % Bittersweet Approximate PANTONE 167
+\newColor RedOrange % RedOrange Approximate PANTONE 179
+\newColor Mahogany % Mahogany Approximate PANTONE 484
+\newColor Maroon % Maroon Approximate PANTONE 201
+\newColor BrickRed % BrickRed Approximate PANTONE 1805
+\newColor Red % Red VERY-Approx PANTONE RED
+\newColor OrangeRed % OrangeRed No PANTONE match
+\newColor RubineRed % RubineRed Approximate PANTONE RUBINE-RED
+\newColor WildStrawberry % WildStrawberry Approximate PANTONE 206
+\newColor Salmon % Salmon Approximate PANTONE 183
+\newColor CarnationPink % CarnationPink Approximate PANTONE 218
+\newColor Magenta % Magenta Approximate PANTONE PROCESS-MAGENTA
+\newColor VioletRed % VioletRed Approximate PANTONE 219
+\newColor Rhodamine % Rhodamine Approximate PANTONE RHODAMINE-RED
+\newColor Mulberry % Mulberry Approximate PANTONE 241
+\newColor RedViolet % RedViolet Approximate PANTONE 234
+\newColor Fuchsia % Fuchsia Approximate PANTONE 248
+\newColor Lavender % Lavender Approximate PANTONE 223
+\newColor Thistle % Thistle Approximate PANTONE 245
+\newColor Orchid % Orchid Approximate PANTONE 252
+\newColor DarkOrchid % DarkOrchid No PANTONE match
+\newColor Purple % Purple Approximate PANTONE PURPLE
+\newColor Plum % Plum VERY-Approx PANTONE 518
+\newColor Violet % Violet Approximate PANTONE VIOLET
+\newColor RoyalPurple % RoyalPurple Approximate PANTONE 267
+\newColor BlueViolet % BlueViolet Approximate PANTONE 2755
+\newColor Periwinkle % Periwinkle Approximate PANTONE 2715
+\newColor CadetBlue % CadetBlue Approximate PANTONE (534+535)/2
+\newColor CornflowerBlue % CornflowerBlue Approximate PANTONE 292
+\newColor MidnightBlue % MidnightBlue Approximate PANTONE 302
+\newColor NavyBlue % NavyBlue Approximate PANTONE 293
+\newColor RoyalBlue % RoyalBlue No PANTONE match
+\newColor Blue % Blue Approximate PANTONE BLUE-072
+\newColor Cerulean % Cerulean Approximate PANTONE 3005
+\newColor Cyan % Cyan Approximate PANTONE PROCESS-CYAN
+\newColor ProcessBlue % ProcessBlue Approximate PANTONE PROCESS-BLUE
+\newColor SkyBlue % SkyBlue Approximate PANTONE 2985
+\newColor Turquoise % Turquoise Approximate PANTONE (312+313)/2
+\newColor TealBlue % TealBlue Approximate PANTONE 3145
+\newColor Aquamarine % Aquamarine Approximate PANTONE 3135
+\newColor BlueGreen % BlueGreen Approximate PANTONE 320
+\newColor Emerald % Emerald No PANTONE match
+\newColor JungleGreen % JungleGreen Approximate PANTONE 328
+\newColor SeaGreen % SeaGreen Approximate PANTONE 3268
+\newColor Green % Green VERY-Approx PANTONE GREEN
+\newColor ForestGreen % ForestGreen Approximate PANTONE 349
+\newColor PineGreen % PineGreen Approximate PANTONE 323
+\newColor LimeGreen % LimeGreen No PANTONE match
+\newColor YellowGreen % YellowGreen Approximate PANTONE 375
+\newColor SpringGreen % SpringGreen Approximate PANTONE 381
+\newColor OliveGreen % OliveGreen Approximate PANTONE 582
+\newColor RawSienna % RawSienna Approximate PANTONE 154
+\newColor Sepia % Sepia Approximate PANTONE 161
+\newColor Brown % Brown Approximate PANTONE 1615
+\newColor Tan % Tan No PANTONE match
+\newColor Gray % Gray Approximate PANTONE COOL-GRAY-8
+\newColor Black % Black Approximate PANTONE PROCESS-BLACK
+\newColor White % White No PANTONE match
+
+% Now we make sure that we initialize the global color to Black
+\subdef{Black}
diff --git a/Build/source/texk/dvipsk/contrib/latex209/ncs.sty b/Build/source/texk/dvipsk/contrib/latex209/ncs.sty
new file mode 100644
index 00000000000..e7b996f7e6a
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/ncs.sty
@@ -0,0 +1,11 @@
+% latex style using New Century Schoolbook for text.
+
+\def\@mrm{pncr}% new century schoolbook
+\def\@mit{pncri}% new century schoolbook - italic
+\def\@msl{pncbi}% new century schoolbook - bold italic
+\def\@mbf{pncb}% new century schoolbook - bold
+\def\@mcsc{pncrc}% new century schoolbook - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/palatino.sty b/Build/source/texk/dvipsk/contrib/latex209/palatino.sty
new file mode 100644
index 00000000000..41d95d322f5
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/palatino.sty
@@ -0,0 +1,11 @@
+% latex style using Palatino for text.
+
+\def\@mrm{pplr}% palatino
+\def\@mit{pplri}% palatino - italic
+\def\@msl{pplro}% palatino - oblique
+\def\@mbf{pplb}% palatino - bold
+\def\@mcsc{pplrc}% palatino - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/latex209/psfonts.sty b/Build/source/texk/dvipsk/contrib/latex209/psfonts.sty
new file mode 100644
index 00000000000..97948237045
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/psfonts.sty
@@ -0,0 +1,266 @@
+% psfonts.sty - re-work of lfonts.tex to allow postscript fonts
+% to replace cmr fonts. Original by LA Carr. Hacked by Van
+% Jacobson.
+%
+% $Header: psfonts.sty,v 1.2 88/01/23 17:52:49 van Exp $
+%
+\def\@@getfont#1#2#3#4#5#6#7{%
+\@ifundefined{\string #1\string #5}{\global\expandafter
+ \font \csname \string #1\string #5\endcsname #4\@ptscale{#5}\relax}{}%
+\@ifundefined{\string #1\string #6}{\global\expandafter
+ \font \csname \string #1\string #6\endcsname #4\@ptscale{#6}\relax}{}%
+\@ifundefined{\string #1\string #7}{\global\expandafter
+ \font \csname \string #1\string #7\endcsname #4\@ptscale{#7}\relax}{}%
+\@ifundefined{\string #1\string #3}{\global\expandafter
+ \let \csname \string #1\string #3\endcsname #3\relax
+ \@addfontinfo#3{\textfont #2\csname \string #1\string #5\endcsname
+ \scriptfont #2\csname \string #1\string #6\endcsname
+ \scriptscriptfont #2\csname \string #1\string #7\endcsname
+ \def#1{\fam #2\csname\string #1\string #5\endcsname}}}{}#3#1}
+\def\@@@getfont#1#2#3#4#5{%
+\@ifundefined{\string #1\string #5}{\global\expandafter
+ \font \csname \string #1\string #5\endcsname #4\@ptscale{#5}\relax}{}%
+\@ifundefined{\string #1\string #3}{\global\expandafter
+ \let \csname \string #1\string #3\endcsname #3\relax
+ \@addfontinfo#3{\def#1{\fam #2\csname\string #1\string #5\endcsname}}}{}#3#1}
+
+\def\@psfonts#1#2#3#4{%
+\def\prm{\@@getfont\prm\z@#1\@mrm{#2}{#3}{#4}}%
+\def\pit{\@@getfont\pit\itfam#1\@mit{#2}{#3}{#4}}%
+\def\psl{\@@getfont\psl\slfam#1\@msl{#2}{#3}{#4}}%
+\def\pbf{\@@getfont\pbf\bffam#1\@mbf{#2}{#3}{#4}}%
+\def\ptt{\@@getfont\ptt\ttfam#1\@mtt{#2}{#3}{#4}%
+\@nohyphens\ptt {#2}\@nohyphens\ptt {#3}\@nohyphens\ptt {#4}}%
+\def\psf{\@@getfont\psf\sffam#1\@mss{#2}{#3}{#4}}%
+\def\psc{\@@getfont\psc\scfam#1\@mcsc{#2}{#3}{#4}}}
+
+% math stuff: we want to use cmr operator characters but Times
+% letters. So, we make a new family to hold cmrX & re-mathcode
+% to force the operators to come from that family.
+\newfam\@cmrfam
+\newcount\@cmrscale
+\def\@mathmap#1{\@cmrscale=\@cmrfam \multiply\@cmrscale by 256
+\advance\@cmrscale by \the\mathcode#1 \mathcode#1=\@cmrscale\relax}
+\def\@cmrset#1#2#3{\textfont\@cmrfam #1%
+\scriptfont\@cmrfam #2\scriptscriptfont\@cmrfam #3\relax}
+
+\@mathmap{`\(}
+\@mathmap{`\)}
+\@mathmap{`\+}
+\@mathmap{`\=}
+\@mathmap{`\[}
+\@mathmap{`\]}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\vpt{\textfont\z@\fivrm
+ \scriptfont\z@\fivrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\fivmi \scriptfont\@ne\fivmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\fivsy \scriptfont\tw@\fivsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+ \unboldmath\fam\@ne\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@vpt555%
+\@cmrset\fivrm\fivrm\fivrm%
+\def\ly{\fam\lyfam\fivly}\textfont\lyfam\fivly
+ \scriptfont\lyfam\fivly \scriptscriptfont\lyfam\fivly
+\@setstrut\rm}
+\def\@vpt{}
+\def\vipt{\textfont\z@\sixrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\sixrm
+\textfont\@ne\sixmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\sixmi
+\textfont\tw@\sixsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\sixsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+ \unboldmath\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@vipt666%
+\@cmrset\sixrm\sixrm\sixrm%
+\def\ly{\fam\lyfam\sixly}\textfont\lyfam\sixly
+ \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\sixly
+\@setstrut\rm}
+\def\@vipt{}
+\def\viipt{\textfont\z@\sevrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\sevmi \scriptfont\@ne\fivmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\sevsy \scriptfont\tw@\fivsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+\unboldmath\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@viipt755%
+\@cmrset\sevrm\sixrm\fivrm%
+\def\ly{\fam\lyfam\sevly}\textfont\lyfam\sevly
+ \scriptfont\lyfam\fivly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@viipt{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\viiipt{\textfont\z@\egtrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\egtmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\egtsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath
+\unboldmath\@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@viiipt865%
+\@cmrset\egtrm\sixrm\fivrm%
+\def\ly{\fam\lyfam\egtly}\textfont\lyfam\egtly
+ \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@viiipt{}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\ixpt{\textfont\z@\ninrm
+ \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\ninmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\ninsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@ixpt965%
+\@cmrset\ninrm\sixrm\fivrm%
+\def\ly{\fam\lyfam\ninly}\textfont\lyfam\ninly
+ \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@ixpt{}
+\def\xpt{\textfont\z@\tenrm
+ \scriptfont\z@\sevrm \scriptscriptfont\z@\fivrm
+\textfont\@ne\tenmi \scriptfont\@ne\sevmi \scriptscriptfont\@ne\fivmi
+\textfont\tw@\tensy \scriptfont\tw@\sevsy \scriptscriptfont\tw@\fivsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\tenmi
+ \textfont\tw@\tensy \textfont\lyfam\tenly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{tenmib}{\global\font\tenmib\@mbi
+ \global\font\tensyb\@mbsy
+ \global\font\tenlyb\@lasyb\relax\@addfontinfo\@xpt
+ {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\tenmib \textfont\tw@\tensyb
+ \textfont\lyfam\tenlyb \@prtct\@boldtrue}}}{}\@xpt\boldmath}%
+\@psfonts\@xpt{10}75%
+\@cmrset\tenrm\sevrm\fivrm%
+\def\ly{\fam\lyfam\tenly}\textfont\lyfam\tenly
+ \scriptfont\lyfam\sevly \scriptscriptfont\lyfam\fivly
+\@setstrut \rm}
+\def\@xpt{}
+\def\xipt{\textfont\z@\elvrm
+ \scriptfont\z@\egtrm \scriptscriptfont\z@\sixrm
+\textfont\@ne\elvmi \scriptfont\@ne\egtmi \scriptscriptfont\@ne\sixmi
+\textfont\tw@\elvsy \scriptfont\tw@\egtsy \scriptscriptfont\tw@\sixsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\elvmi \textfont\tw@\elvsy
+ \textfont\lyfam\elvly \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{elvmib}{\global\font\elvmib\@mbi\@halfmag
+ \global\font\elvsyb\@mbsy\@halfmag
+ \global\font\elvlyb\@lasyb\@halfmag\relax\@addfontinfo\@xipt
+ {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\elvmib \textfont\tw@\elvsyb
+ \textfont\lyfam\elvlyb\@prtct\@boldtrue}}}{}\@xipt\boldmath}%
+\@psfonts\@xipt{11}86%
+\@cmrset\elvrm\egtrm\sixrm%
+\def\ly{\fam\lyfam\elvly}\textfont\lyfam\elvly
+ \scriptfont\lyfam\egtly \scriptscriptfont\lyfam\sixly
+\@setstrut \rm}
+\def\@xipt{}
+\def\xiipt{\textfont\z@\twlrm
+ \scriptfont\z@\egtrm \scriptscriptfont\z@\sixrm
+\textfont\@ne\twlmi \scriptfont\@ne\egtmi \scriptscriptfont\@ne\sixmi
+\textfont\tw@\twlsy \scriptfont\tw@\egtsy \scriptscriptfont\tw@\sixsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\twlmi
+ \textfont\tw@\twlsy \textfont\lyfam\twlly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{twlmib}{\global\font\twlmib\@mbi\@magscale1\global
+ \font\twlsyb\@mbsy \@magscale1\global\font
+ \twllyb\@lasyb\@magscale1\relax\@addfontinfo\@xiipt
+ {\def\boldmath{\everymath
+ {\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\twlmib \textfont\tw@\twlsyb
+ \textfont\lyfam\twllyb\@prtct\@boldtrue}}}{}\@xiipt\boldmath}%
+\@psfonts\@xiipt{12}86%
+\@cmrset\twlrm\egtrm\sixrm%
+\def\ly{\fam\lyfam\twlly}\textfont\lyfam\twlly
+ \scriptfont\lyfam\egtly \scriptscriptfont\lyfam\sixly
+ \@setstrut \rm}
+\def\@xiipt{}
+\def\xivpt{\textfont\z@\frtnrm
+ \scriptfont\z@\tenrm \scriptscriptfont\z@\sevrm
+\textfont\@ne\frtnmi \scriptfont\@ne\tenmi \scriptscriptfont\@ne\sevmi
+\textfont\tw@\frtnsy \scriptfont\tw@\tensy \scriptscriptfont\tw@\sevsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\frtnmi \textfont\tw@\frtnsy
+ \textfont\lyfam\frtnly \@boldfalse}\@boldfalse
+\def\boldmath{\@ifundefined{frtnmib}{\global\font
+ \frtnmib\@mbi\@magscale2\global\font\frtnsyb\@mbsy\@magscale2
+ \global\font\frtnlyb\@lasyb\@magscale2\relax\@addfontinfo\@xivpt
+ {\def\boldmath{\everymath
+ {\mit}\everydisplay{\mit}\@prtct\@nomathbold
+ \textfont\@ne\frtnmib \textfont\tw@\frtnsyb
+ \textfont\lyfam\frtnlyb\@prtct\@boldtrue}}}{}\@xivpt\boldmath}%
+\@psfonts\@xivpt{14}{10}7%
+\@cmrset\frtnrm\tenrm\sevrm%
+\def\ly{\fam\lyfam\frtnly}\textfont\lyfam\frtnly
+ \scriptfont\lyfam\tenly \scriptscriptfont\lyfam\sevly
+\@setstrut \rm}
+\def\@xivpt{}
+\def\xviipt{\textfont\z@\svtnrm
+ \scriptfont\z@\twlrm \scriptscriptfont\z@\tenrm
+\textfont\@ne\svtnmi \scriptfont\@ne\twlmi \scriptscriptfont\@ne\tenmi
+\textfont\tw@\svtnsy \scriptfont\tw@\twlsy \scriptscriptfont\tw@\tensy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\svtnmi \textfont\tw@\svtnsy \textfont\lyfam\svtnly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@xviipt{17}{12}{10}%
+\@cmrset\svtnrm\twlrm\tenrm%
+\def\ly{\fam\lyfam\svtnly}\textfont\lyfam\svtnly
+ \scriptfont\lyfam\twlly \scriptscriptfont\lyfam\tenly
+\@setstrut \rm}
+\def\@xviipt{}
+\def\xxpt{\textfont\z@\twtyrm
+ \scriptfont\z@\frtnrm \scriptscriptfont\z@\twlrm
+\textfont\@ne\twtymi \scriptfont\@ne\frtnmi \scriptscriptfont\@ne\twlmi
+\textfont\tw@\twtysy \scriptfont\tw@\frtnsy \scriptscriptfont\tw@\twlsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\twtymi \textfont\tw@\twtysy \textfont\lyfam\twtyly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@xxpt{20}{14}{12}%
+\@cmrset\twtyrm\frtnrm\twlrm%
+\def\ly{\fam\lyfam\twtyly}\textfont\lyfam\twtyly
+ \scriptfont\lyfam\frtnly \scriptscriptfont\lyfam\twlly
+\@setstrut \rm}
+\def\@xxpt{}
+\def\xxvpt{\textfont\z@\twfvrm
+ \scriptfont\z@\twtyrm \scriptscriptfont\z@\svtnrm
+\textfont\@ne\twtymi \scriptfont\@ne\twtymi \scriptscriptfont\@ne\svtnmi
+\textfont\tw@\twtysy \scriptfont\tw@\twtysy \scriptscriptfont\tw@\svtnsy
+\textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
+\def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
+ \textfont\@ne\twtymi \textfont\tw@\twtysy \textfont\lyfam\twtyly
+ \@boldfalse}\@boldfalse
+\def\boldmath{\@subfont\boldmath\unboldmath}%
+\@psfonts\@xxvpt{25}{20}{17}%
+\@cmrset\twfvrm\twtyrm\svtnrm%
+\def\ly{\fam\lyfam\twtyly}\textfont\lyfam\twtyly
+ \scriptfont\lyfam\twtyly \scriptscriptfont\lyfam\svtnly
+\@setstrut \rm}
+\def\@xxvpt{}
+%
+% Fix accents for PostScript fonts (but break them for non-PostScript
+% fonts.) -tgr, 6 April 91.
+%
+\def\H#1{{\accent"CD #1}}\def\.#1{{\accent"C7 #1}}
+\def\dot{\mathaccent"70C7 }
+\newdimen\aadimen
+\def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0
+ \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen
+ \hbox to \wd0{\hss\char'27\hss}}A}
+\def\pounds{\char163}
diff --git a/Build/source/texk/dvipsk/contrib/latex209/psgreek.sty b/Build/source/texk/dvipsk/contrib/latex209/psgreek.sty
new file mode 100644
index 00000000000..396976c8dfd
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/psgreek.sty
@@ -0,0 +1,38 @@
+%--------------------------------------------------------------
+%---------- greek.sty ---------------------
+%---------- 4/19/90 S. Janowsky -----------
+%
+% Include as a style option after times, palatino, or whatever.
+%
+\def\@mathgreekmap#1{\@cmrscale=\@cmrfam \multiply\@cmrscale by 256
+\advance\@cmrscale by \the#1 \mathchardef#1=\@cmrscale\relax}
+\@mathgreekmap{\Gamma}
+\@mathgreekmap{\Delta}
+\@mathgreekmap{\Theta}
+\@mathgreekmap{\Lambda}
+\@mathgreekmap{\Xi}
+\@mathgreekmap{\Pi}
+\@mathgreekmap{\Sigma}
+\@mathgreekmap{\Upsilon}
+\@mathgreekmap{\Phi}
+\@mathgreekmap{\Psi}
+\@mathgreekmap{\Omega}
+%
+\def\@mathaccdefmap#1#2{\@cmrscale=\@cmrfam \multiply\@cmrscale by 256
+\advance\@cmrscale by #2 \edef#1{\mathaccent\the\@cmrscale}\relax}
+%
+\@mathaccdefmap{\acute}{"0013 }
+\@mathaccdefmap{\grave}{"0012 }
+\@mathaccdefmap{\ddot}{"007F }
+\@mathaccdefmap{\tilde}{"007E }
+\@mathaccdefmap{\bar}{"0016 }
+\@mathaccdefmap{\breve}{"0015 }
+\@mathaccdefmap{\check}{"0014 }
+\@mathaccdefmap{\hat}{"005E }
+%\@mathaccdefmap{\vec}{"017E } % Not type 00
+\@mathaccdefmap{\dot}{"005F }
+%\@mathaccdefmap{\widetilde}{"0365 } % Not type 00
+%\@mathaccdefmap{\widehat}{"0362 } % Not type 00
+%
+%----------------------------------------------------
+
diff --git a/Build/source/texk/dvipsk/contrib/latex209/rotate.sty b/Build/source/texk/dvipsk/contrib/latex209/rotate.sty
new file mode 100644
index 00000000000..0660e117352
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/rotate.sty
@@ -0,0 +1,53 @@
+%
+% These macros allow you to rotate or flip a \TeX\ box. Very useful for
+% sideways tables or upsidedown answers.
+%
+% To use, create a box containing the information you want to rotate.
+% (An hbox or vbox will do.) Now call \@rotr\boxnum to rotate the
+% material and create a new box with the appropriate (flipped) dimensions.
+% \@rotr rotates right, \@rotl rotates left, \@rotu turns upside down, and
+% \@rotf flips. These boxes may contain other rotated boxes.
+%
+\newdimen\@rotdimen
+\newbox\@rotbox
+
+\def\@vspec#1{\special{ps:#1}}% passes #1 verbatim to the output
+\def\@rotstart#1{\@vspec{gsave currentpoint currentpoint translate
+ #1 neg exch neg exch translate}}% #1 can be any origin-fixing transformation
+\def\@rotfinish{\@vspec{currentpoint grestore moveto}}% gets back in synch
+%
+% First, the rotation right. The reference point of the rotated box
+% is the lower right corner of the original box.
+%
+\def\@rotr#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\@rotdimen{\hskip\ht#1\vbox to\wd#1{\@rotstart{90 rotate}%
+ \box#1\vss}\hss}\@rotfinish}
+%
+% Next, the rotation left. The reference point of the rotated box
+% is the upper left corner of the original box.
+%
+\def\@rotl#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\@rotdimen{\vbox to\wd#1{\vskip\wd#1\@rotstart{270 rotate}%
+ \box#1\vss}\hss}\@rotfinish}%
+%
+% Upside down is simple. The reference point of the rotated box
+% is the upper right corner of the original box. (The box's height
+% should be the current font's xheight, \fontdimen5\font,
+% if you want that xheight to be at the baseline after rotation.)
+%
+\def\@rotu#1{\@rotdimen=\ht#1\advance\@rotdimen by\dp#1%
+ \hbox to\wd#1{\hskip\wd#1\vbox to\@rotdimen{\vskip\@rotdimen
+ \@rotstart{-1 dup scale}\box#1\vss}\hss}\@rotfinish}%
+%
+% And flipped end for end is pretty ysae too. We retain the baseline.
+%
+\def\@rotf#1{\hbox to\wd#1{\hskip\wd#1\@rotstart{-1 1 scale}%
+ \box#1\hss}\@rotfinish}%
+%
+% Now the user interface for LaTeX: \rotate[type]{text} where
+% ``type'' is `l' for left, `r' for right, `u' for upside-down, or
+% `f' for flip. `l' is the default.
+%
+\def\rotate{\@ifnextchar[{\@rotate}{\@rotate[l]}}
+\def\@rotate[#1]#2{\setbox\@rotbox=\hbox{#2}\@nameuse{@rot#1}\@rotbox}
+
diff --git a/Build/source/texk/dvipsk/contrib/latex209/times.sty b/Build/source/texk/dvipsk/contrib/latex209/times.sty
new file mode 100644
index 00000000000..3e384c8fee8
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/latex209/times.sty
@@ -0,0 +1,11 @@
+% latex style with times roman text but cm math italic.
+
+\def\@mrm{ptmr}% times - roman
+\def\@mit{ptmri}% times - italic
+\def\@msl{ptmro}% times - oblique
+\def\@mbf{ptmb}% times - bold
+\def\@mcsc{ptmrc}% times - roman - small caps
+\def\@mtt{pcrr}% courier
+\def\@mss{phvr}% helvetica
+
+\input psfonts.sty
diff --git a/Build/source/texk/dvipsk/contrib/treen.sh b/Build/source/texk/dvipsk/contrib/treen.sh
new file mode 100644
index 00000000000..33270559f5b
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/treen.sh
@@ -0,0 +1,40 @@
+#!/bin/csh
+# Tests font reencoding
+afm2tfm Times-Roman.afm -v ptmr0 rptmr0
+afm2tfm Times-Roman.afm -P extex.enc -v ptmr1 rptmr1
+afm2tfm Times-Roman.afm -T extex.enc -v ptmr2 rptmr2
+afm2tfm Times-Roman.afm -t extex.enc -v ptmr3 rptmr3
+afm2tfm Times-Roman.afm -T extex.enc -V ptmr4 rptmr4
+# these three should all be the same
+cmp rptmr4.tfm rptmr2.tfm
+cmp rptmr4.tfm rptmr1.tfm
+# these two should be the same
+cmp rptmr0.tfm rptmr3.tfm
+afm2tfm Times-Roman.afm -T extex.enc -V ptmr4 rptmr2
+vptovf ptmr0.vpl ptmr0.vf ptmr0.tfm
+vptovf ptmr1.vpl ptmr1.vf ptmr1.tfm
+vptovf ptmr2.vpl ptmr2.vf ptmr2.tfm
+vptovf ptmr3.vpl ptmr3.vf ptmr3.tfm
+vptovf ptmr4.vpl ptmr4.vf ptmr4.tfm
+tex testfont <<EOF
+ptmr0
+\leftline{\bf Normal (original) Times-Roman; Standard + Text}
+\sample\init
+rptmr0
+\table\vfill\eject\init
+ptmr1
+\leftline{\bf Times-Roman; Extended + Text}
+\sample\init
+rptmr1
+\table\vfill\eject\init
+ptmr2
+\leftline{\bf Times-Roman; Extended + Extended}
+\sample\vfill\eject\init
+ptmr3
+\leftline{\bf Times-Roman; Standard + Extended}
+\sample\vfill\eject\init
+ptmr4
+\leftline{\bf Times-Roman Small Caps; Extended + Extended}
+\sample\bye
+EOF
+dvips testfont -t testfont.ps
diff --git a/Build/source/texk/dvipsk/contrib/treen2.sh b/Build/source/texk/dvipsk/contrib/treen2.sh
new file mode 100644
index 00000000000..7c5da3a4a13
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/treen2.sh
@@ -0,0 +1,12 @@
+#!/bin/csh
+# Tests font reencoding
+afm2tfm Times-Roman.afm -T funky.enc -v ptmr9 rptmr9
+vptovf ptmr9.vpl ptmr9.vf ptmr9.tfm
+tex testfont <<EOF
+ptmr9
+\leftline{\bf Funky Times-Roman; Standard + Funky}
+\sample
+Y through x or x. pp and then pp and then pp. pp//pp//pp. ++ // pippy
+\bye
+EOF
+dvips testfont -o testfont.ps
diff --git a/Build/source/texk/dvipsk/contrib/volker/README b/Build/source/texk/dvipsk/contrib/volker/README
new file mode 100644
index 00000000000..f2138917eda
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/README
@@ -0,0 +1,149 @@
+NOTE S Rahtz 1998/01/18: renamed files to suite 8+3 <name>.cfg style
+********************************************************************
+
+Release 1.13, 21 Aug 1995
+Release 1.12, 02 Mar 1995
+Release 1.0, 20 Feb 1995
+
+This is a set of files which can be used with dvips to control certain
+parameters of the printer, like simplex/duplex printing, or screen
+frequencies of images.
+
+Put together by Volker Kuhlmann, VOLKER@ELEC.CANTERBURY.AC.NZ.
+No copyright. Freely distributable. If you make additions, please send
+me a copy.
+
+
+LIST OF FILES
+=============
+
+README This file.
+config.* Configuration files and header files for dvips. Special
+ format which serves both purposes.
+
+
+INSTALLATION
+============
+
+Copy these files into a directory which is searched by dvips both for
+configuration files and for header files. dvips looks in $TEXCONFIG for
+configuration files, and in $DVIPSHEADERS for header files. For details
+please see the dvips documentation.
+
+
+USAGE
+=====
+
+dvips reads the instructions in a configuration file <configfilename>
+with the -P option:
+
+ dvips -P <configfilename>
+
+All these configuration files contain the PostScript code for the
+respective operation as well, and can be used as header file as they are.
+
+Now to the stuff provided:
+
+-P simplex On a duplex printer, force printing in simplex mode. On
+ a simplex printer, this will be ignored.
+-P duplong On a duplex printer, force duplex printing with binding
+ on the long edge. On a simplex printer, this will be
+ ignored.
+-P dupshort On a duplex printer, force duplex printing with binding
+ on the short edge. On a simplex printer, this will be
+ ignored.
+-P a3 Print on A3 paper.
+ Note: this is just a demo - use "-t a3" instead!
+-P inv Print all pages inverted, i.e. white letters on black
+ background.
+ Note: this currently does not work properly. Any
+ hints/fixes greatly appreciated!
+-P screenN Print images with a screen frequency of N lpi at
+ 45 degrees.
+ N = {70, 80, 85, 90, 100, 110, 120, 130, 140, 150}
+-P screen100-0 Print images with a screen frequency of 100lpi
+ at 0 degrees.
+
+Note: When working with screen frequencies, it is possible that
+ turning the printer off and back on solves the problem of the
+ screen commands not having any effect.
+
+
+CONTROLLING SCREEN FREQUENCIES
+==============================
+
+Various PostScript commands for controlling the screen frequencies of
+images exist, but not all work on all printers. See fragments of
+PostScript code and comments below. The form working on most printers is
+
+ LPI DEGREES {FUNCTION} setscreen
+
+Insert numbers for LPI and DEGREES, and a function for FUNCTION about
+which I only know (right or wrong?):
+
+ "Should read 2 values from the stack (x, y coordinates in a
+ halftone cell), and return one in the range -1 to 1. The return
+ values determine the order in which pixels within a halftone
+ cell are whitened to produce any desired shade of gray."
+
+The simplest function is {pop}, creating a "linescreen" pattern. There
+is also a function "Dot" (currently used) and "Ellipse". For any other
+frequencies/angles/functions put the instructions in a file, and load
+the file with
+
+ dvips -h <filename>
+
+Thanks to osakari@unda.fi (Olavi Sakari) for some help, and the "Dot"
+and "Ellipse" code.
+
+Notes follow:
+
+
+%currentscreen 3 1 roll pop pop 70 45 3 -1 roll setscreen
+% Works on HP LJ3Si, HP LJ4m. Ignored on HP LJ4mv (VK).
+
+
+%currentscreen 3 1 roll pop pop 70 45 3 -1 roll sethalftone
+% Ignored on HP LJ4mv (VK).
+
+
+%70 45 {pop} setscreen
+% Produces a funny, 1-diagonal pattern ("linescreen") on HP LJ4mv (VK).
+
+
+% "Dot":
+%70 45 {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+% sub }{dup mul exch dup mul add 1 exch sub }ifelse} setscreen
+% Works on HP LJ3Si, HP LJ4m, HP LJ4mv (VK).
+
+
+% "Ellipse":
+%70 45 {dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub} setscreen
+% Works on HP LJ4mv (VK).
+
+
+%70 45
+%<<
+% /HalftoneType 1
+ % 0 gives range check error, 2 gives undefined error (VK).
+% /Frequency 150
+% /Angle 20
+ % the values for /Frequency, /Angle are irrelevant
+% /SpotFunction {pop}
+%>>
+%setscreen
+% 70 45 seem to replace /Frequency and /Angle in dict
+% - Note: NO curly braces around the dict!
+% Works on HP LJ4m, produces errors with HP LJ3Si,
+% Produces "linescreen" on HP LJ4mv caused by {pop} (VK).
+
+
+%<<
+% /HalftoneType 1
+% % 0 gives range check error, 2 gives undefined error (VK).
+% /Frequency 70
+% /Angle 45
+% /SpotFunction {pop}
+%>>
+%sethalftone % Level 2 only
+% Produces "linescreen" on HP LJ4mv caused by {pop} (VK).
diff --git a/Build/source/texk/dvipsk/contrib/volker/a3.cfg b/Build/source/texk/dvipsk/contrib/volker/a3.cfg
new file mode 100644
index 00000000000..380359026f7
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/a3.cfg
@@ -0,0 +1,17 @@
+% config.a3
+% Configuration file for dvips. Load with: dvips -P a3.
+%
+% Forces printing on A3 paper.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 21 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ a3
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.a3
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/duplong.cfg b/Build/source/texk/dvipsk/contrib/volker/duplong.cfg
new file mode 100644
index 00000000000..4c5d1f7cff9
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/duplong.cfg
@@ -0,0 +1,19 @@
+% config.duplong
+% Configuration file for dvips. Load with: dvips -P duplong.
+%
+% Prints in duplex mode with binding on the long edge.
+% Ignored on a simplex printer.
+% Works on HP LaserJet IIISi.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ statusdict begin true setduplexmode false settumble end
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.duplong
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/dupshort.cfg b/Build/source/texk/dvipsk/contrib/volker/dupshort.cfg
new file mode 100644
index 00000000000..b025ba95696
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/dupshort.cfg
@@ -0,0 +1,19 @@
+% config.dupshort
+% Configuration file for dvips. Load with: dvips -P dupshort.
+%
+% Prints in duplex mode with binding on the short edge.
+% Ignored on a simplex printer.
+% Works on HP LaserJet IIISi.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ statusdict begin true setduplexmode true settumble end
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.dupshort
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/inv.cfg b/Build/source/texk/dvipsk/contrib/volker/inv.cfg
new file mode 100644
index 00000000000..7b6223c92d4
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/inv.cfg
@@ -0,0 +1,21 @@
+% config.inv
+% Configuration file for dvips. Load with: dvips -P inv.
+%
+% Invert the printing.
+% This currently mucks up the first of the pages printed.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ %[{}
+ /exec load currenttransfer /exec load] cvx settransfer
+ [{1 exch sub} /exec load currenttransfer /exec load] cvx settransfer
+ %/fPP true def
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.inv
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg b/Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg
new file mode 100644
index 00000000000..1f30f67010d
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr100-0.cfg
@@ -0,0 +1,21 @@
+% config.screen100-0
+% Configuration file for dvips. Load with: dvips -P screen100-0.
+%
+% Sets screen frequency and angle for images to 100lpi/0degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 100 0
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen100-0
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr100.cfg b/Build/source/texk/dvipsk/contrib/volker/scr100.cfg
new file mode 100644
index 00000000000..636a7c373d5
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr100.cfg
@@ -0,0 +1,21 @@
+% config.screen100
+% Configuration file for dvips. Load with: dvips -P screen100.
+%
+% Sets screen frequency and angle for images to 100lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 100 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen100
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr110.cfg b/Build/source/texk/dvipsk/contrib/volker/scr110.cfg
new file mode 100644
index 00000000000..6b3f4d19f00
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr110.cfg
@@ -0,0 +1,21 @@
+% config.screen110
+% Configuration file for dvips. Load with: dvips -P screen110.
+%
+% Sets screen frequency and angle for images to 110lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 110 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen110
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr120.cfg b/Build/source/texk/dvipsk/contrib/volker/scr120.cfg
new file mode 100644
index 00000000000..fe878ece24a
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr120.cfg
@@ -0,0 +1,21 @@
+% config.screen120
+% Configuration file for dvips. Load with: dvips -P screen120.
+%
+% Sets screen frequency and angle for images to 120lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 120 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen120
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr130.cfg b/Build/source/texk/dvipsk/contrib/volker/scr130.cfg
new file mode 100644
index 00000000000..aa8f96bc85d
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr130.cfg
@@ -0,0 +1,21 @@
+% config.screen130
+% Configuration file for dvips. Load with: dvips -P screen130.
+%
+% Sets screen frequency and angle for images to 130lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 130 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen130
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr140.cfg b/Build/source/texk/dvipsk/contrib/volker/scr140.cfg
new file mode 100644
index 00000000000..2dfc4acebf3
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr140.cfg
@@ -0,0 +1,21 @@
+% config.screen140
+% Configuration file for dvips. Load with: dvips -P screen140.
+%
+% Sets screen frequency and angle for images to 140lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 140 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen140
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr150.cfg b/Build/source/texk/dvipsk/contrib/volker/scr150.cfg
new file mode 100644
index 00000000000..2798e4e5081
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr150.cfg
@@ -0,0 +1,21 @@
+% config.screen150
+% Configuration file for dvips. Load with: dvips -P screen150.
+%
+% Sets screen frequency and angle for images to 150lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 150 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen150
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr70.cfg b/Build/source/texk/dvipsk/contrib/volker/scr70.cfg
new file mode 100644
index 00000000000..1d5fd85253f
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr70.cfg
@@ -0,0 +1,21 @@
+% config.screen70
+% Configuration file for dvips. Load with: dvips -P screen70.
+%
+% Sets screen frequency and angle for images to 70lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 70 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen70
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr80.cfg b/Build/source/texk/dvipsk/contrib/volker/scr80.cfg
new file mode 100644
index 00000000000..32c8ab16a31
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr80.cfg
@@ -0,0 +1,21 @@
+% config.screen80
+% Configuration file for dvips. Load with: dvips -P screen80.
+%
+% Sets screen frequency and angle for images to 80lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 80 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen80
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr85.cfg b/Build/source/texk/dvipsk/contrib/volker/scr85.cfg
new file mode 100644
index 00000000000..1fec0c09efa
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr85.cfg
@@ -0,0 +1,21 @@
+% config.screen85
+% Configuration file for dvips. Load with: dvips -P screen85.
+%
+% Sets screen frequency and angle for images to 85lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 02 Mar 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 85 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen85
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/scr90.cfg b/Build/source/texk/dvipsk/contrib/volker/scr90.cfg
new file mode 100644
index 00000000000..a02a707d1c5
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/scr90.cfg
@@ -0,0 +1,21 @@
+% config.screen90
+% Configuration file for dvips. Load with: dvips -P screen90.
+%
+% Sets screen frequency and angle for images to 90lpi/45degree.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ 90 45
+ % "Dot" function:
+ {abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1
+ sub }{dup mul exch dup mul add 1 exch sub }ifelse}
+ setscreen
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.screen90
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/volker/simplex.cfg b/Build/source/texk/dvipsk/contrib/volker/simplex.cfg
new file mode 100644
index 00000000000..bdf5160430c
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/volker/simplex.cfg
@@ -0,0 +1,19 @@
+% config.simplex
+% Configuration file for dvips. Load with: dvips -P simplex.
+%
+% Forces printing in simplex mode on a duplex printer.
+% Ignored on a simplex printer.
+% Works on HP LaserJet IIISi.
+%
+% This file is built so it can be used both as the header file for
+% PostScript and as the configuration file for dvips.
+% (Note that dvips ignores any lines beginning with a space or a "%".)
+%
+% Volker Kuhlmann, 20 Feb 1995
+% VOLKER@ELEC.CANTERBURY.AC.NZ
+%
+ statusdict begin false setduplexmode end
+%
+ { % start a procedure so PostScript `ignores' the dvips options.
+h config.simplex
+ } pop % PostScript cleanup
diff --git a/Build/source/texk/dvipsk/contrib/whichinpath b/Build/source/texk/dvipsk/contrib/whichinpath
new file mode 100644
index 00000000000..a45177bb212
--- /dev/null
+++ b/Build/source/texk/dvipsk/contrib/whichinpath
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+# Useful with the backtick execution special; helps to find PostScript
+# files on TEXINPUTS. Contributed by S. P. Q. Rahtz.
+#
+pathList=`echo ${TEXINPUTS:=.:/usr/local/tex/inputs} | tr ':' ' '`
+theFile=$1
+
+for p in $pathList
+do
+ test -f $p/$theFile && { echo $p/$theFile; exit 0; }
+done
+exit 1