summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/tex.lpro
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipsk/tex.lpro')
-rw-r--r--Build/source/texk/dvipsk/tex.lpro368
1 files changed, 0 insertions, 368 deletions
diff --git a/Build/source/texk/dvipsk/tex.lpro b/Build/source/texk/dvipsk/tex.lpro
deleted file mode 100644
index b7cc3deebe7..00000000000
--- a/Build/source/texk/dvipsk/tex.lpro
+++ /dev/null
@@ -1,368 +0,0 @@
-% tex.lpro - public domain.
-%
-% The following defines procedures assumed and used by program "dvips"
-% and must be downloaded or sent as a header file for all TeX jobs.
-% Originated by Neal Holtz, Carleton University, Ottawa, Canada
-% <holtz@cascade.carleton.cdn>
-% June, 1985
-%
-% Hacked by tgr, July 1987, stripped down to bare essentials,
-% plus a few new commands for speed.
-%
-% Hacked by don, December 1989, to give characters top down and to
-% remove other small nuisances; merged with tgr's compression scheme
-%
-% To convert this file into a downloaded file instead of a header
-% file, uncomment all of the lines beginning with %-%
-%
-% To observe available VM, uncomment the following.
-% (The first ten lines define a general 'printnumber' routine.)
-%
-% /VirginMtrx 6 array currentmatrix def
-% /dummystring 20 string def
-% /numberpos 36 def
-% /printnumber { gsave VirginMtrx setmatrix
-% /Helvetica findfont 10 scalefont setfont
-% 36 numberpos moveto
-% /numberpos numberpos 12 add def
-% dummystring cvs show
-% grestore
-% } bind def
-% /showVM { vmstatus exch sub exch pop printnumber } def
-% /eop-aux { showVM } def
-%
-%-%0000000 % Server loop exit password
-%-%serverdict begin exitserver
-%-% systemdict /statusdict known
-%-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end}
-%-% if
-
-/TeXDict 300 dict def % define a working dictionary
-TeXDict begin % start using it.
-/N {def} def
-/B {bind def} N
-/S {exch} N
-/X { S N } B
-/A {dup} B
-/TR {translate} N
-
-% The output of dvips assumes pixel units, Resolution/inch, with
-% increasing y coordinates corresponding to moving DOWNWARD.
-% The PostScript default is big point units (bp), 72/inch, with
-% increasing y coordinates corresponding to moving UP; the
-% following routines handle conversion to dvips conventions.
-
-% Let the PostScript origin be (xps,yps) in dvips coordinates.
-
-/isls false N
-/vsize 11 72 mul N
-/hsize 8.5 72 mul N
-/landplus90 { false } def % make this true to flip landscape
-
-/@rigin % -xps -yps @rigin - establishes dvips conventions
- { isls { [ 0 landplus90 { 1 -1 } { -1 1 } ifelse 0 0 0 ] concat } if
- 72 Resolution div 72 VResolution div neg scale
- isls { landplus90 { VResolution 72 div vsize mul 0 exch }
- { Resolution -72 div hsize mul 0 } ifelse TR } if
- Resolution VResolution vsize -72 div 1 add mul TR
-% As bad as setmatrix is, it is better than misalignment.
- [ matrix currentmatrix
- { A A round sub abs 0.00001 lt {round} if } forall
- round exch round exch
- ] setmatrix } N
-
-/@landscape { /isls true N } B
-
-/@manualfeed
- { statusdict /manualfeed true put
- } B
-
- % n @copies - set number of copies
-/@copies
- { /#copies X
- } B
-
-% Bitmap fonts are called Fa, Fb, ..., Fz, F0, F1 . . . Ga . . .
-% The calling sequence for downloading font foo is
-% /foo df charde1 ... chardefn E
-% where each chardef is
-% <hexstring> wd ht xoff yoff dx charno D
-% or <hexstring> wd ht xoff yoff dx I
-% or <hexstring> charno D
-% or <hexstring> I
-
-/FMat [1 0 0 -1 0 0] N
-/FBB [0 0 0 0] N
-
-/nn 0 N /IEn 0 N /ctr 0 N
-/df-tail % id numcc maxcc df-tail -- initialize a new font dictionary
- {
-% dmystr 2 fontname cvx (@@@@) cvs putinterval % put name in template
- /nn 8 dict N % allocate new font dictionary
- nn begin
- /FontType 3 N
- /FontMatrix fntrx N
- /FontBBox FBB N
- string /base X
- array /BitMaps X
- /BuildChar {CharBuilder} N
- /Encoding IEn N
- end
- A { /foo setfont } % dummy macro to be filled in
- 2 array copy cvx N % have to allocate a new one
- load % now we change it
-% 0 dmystr 6 string copy % get a copy of the font name
- 0 nn put
-% cvn cvx put % and stick it in the dummy macro
- /ctr 0 N % go, count, and etc.
- [ % start next char definition
- } B
-/sf 0 N
-/df {
- /sf 1 N
- /fntrx FMat N
- df-tail
-} B
-/dfs { div /sf X
- /fntrx [ sf 0 0 sf neg 0 0 ] N
- df-tail
-} B
-
-/E { pop nn A definefont setfont } B
-
-% the following is the only character builder we need. it looks up the
-% char data in the BitMaps array, and paints the character if possible.
-% char data -- a bitmap descriptor -- is an array of length 6, of
-% which the various slots are:
-
-/Cw {Cd A length 5 sub get} B % the number of pixels across
-/Ch {Cd A length 4 sub get} B % the number of pixels tall
-/Cx {128 Cd A length 3 sub get sub} B % num pixels right of origin
-/Cy {Cd A length 2 sub get 127 sub} B % number of pixels below origin
-/Cdx {Cd A length 1 sub get} B % number of pixels to next character
-/Ci {Cd A type /stringtype ne
- { ctr get /ctr ctr 1 add N } if
- } B % the hex string image, or array of same
-% begin code for uncompressed fonts only
-/CharBuilder % fontdict ch Charbuilder - -- image one character
- {save 3 1 roll S A /base get 2 index get S /BitMaps get S get
- /Cd X pop
- /ctr 0 N
- Cdx 0 Cx Cy Ch sub
- Cx Cw add Cy
- setcachedevice
- Cw Ch true
- [1 0 0 -1 -.1 Cx sub Cy .1 sub]
- {Ci} imagemask
- restore
- } B
-% end code for uncompressed fonts only
-% % here's the alternate code for unpacking compressed fonts
-% /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N
-% /CharBuilder % fontdict ch Charbuilder - -- image one character
-% {save 3 1 roll S A /base get 2 index get S /BitMaps get S get
-% /Cd X pop
-% /ctr 0 N
-% Cdx 0 Cx Cy Ch sub
-% Cx Cw add Cy
-% setcachedevice
-% Cw Ch true
-% [1 0 0 -1 -.1 Cx sub Cy .1 sub]
-% /id Ci N % image data
-% /rw Cw 7 add 8 idiv string N % row, initially zero
-% /rc 0 N % repeat count
-% /gp 0 N % image data pointer
-% /cp 0 N % column pointer
-% { rc 0 ne { rc 1 sub /rc X rw } { G } ifelse } imagemask
-% restore
-% } B
-% /G { { id gp get /gp gp 1 add N
-% A 18 mod S 18 idiv pl S get exec } loop } B
-% /adv { cp add /cp X } B
-% /chg { rw cp id gp 4 index getinterval putinterval
-% A gp add /gp X adv } B
-% /nd { /cp 0 N rw exit } B
-% /lsh { rw cp 2 copy get A 0 eq { pop 1 } { A 255 eq { pop 254 }
-% { A A add 255 and S 1 and or } ifelse } ifelse put 1 adv } B
-% /rsh { rw cp 2 copy get A 0 eq { pop 128 } { A 255 eq { pop 127 }
-% { A 2 idiv S 128 and or } ifelse } ifelse put 1 adv } B
-% /clr { rw cp 2 index string putinterval adv } B
-% /set { rw cp fillstr 0 4 index getinterval putinterval adv } B
-% /fillstr 18 string 0 1 17 { 2 copy 255 put pop } for N
-% /pl [
-% { adv 1 chg }
-% { adv 1 chg nd }
-% { 1 add chg }
-% { 1 add chg nd }
-% { adv lsh }
-% { adv lsh nd }
-% { adv rsh }
-% { adv rsh nd }
-% { 1 add adv }
-% { /rc X nd }
-% { 1 add set }
-% { 1 add clr }
-% { adv 2 chg }
-% { adv 2 chg nd }
-% { pop nd } ] A { bind pop } forall N
-% % end of code for unpacking compressed fonts
-
-/D % char-data ch D - -- define character bitmap in current font
- { /cc X
- A type /stringtype ne {]} if
- nn /base get cc ctr put
- nn /BitMaps get S ctr S
- sf 1 ne {
- A A length 1 sub A 2 index S get sf div put
- } if
- put
- /ctr ctr 1 add N
- } B
-
-/I % a faster D for when the next char follows immediately
- { cc 1 add D } B
-
-/bop % %t %d bop - -- begin a brand new page, %t=pageno %d=seqno
- {
- userdict /bop-hook known { bop-hook } if
- /SI save N
- @rigin
-%
-% Now we check the resolution. If it's correct, we use RV as V,
-% otherwise we use QV.
-%
- 0 0 moveto
- /V matrix currentmatrix
- A 1 get A mul exch 0 get A mul add .99 lt
- {/QV} {/RV} ifelse load def
- pop pop
- } N
-
-/eop % - eop - -- end a page
- { % eop-aux % -- to observe VM usage
- SI restore
- userdict /eop-hook known { eop-hook } if
- showpage
- } N
-
-/@start % hsz vsz mag dpi vdpi name @start - -- start everything
- {
- userdict /start-hook known { start-hook } if
- pop % the job name string is used only by start-hook
- /VResolution X
- /Resolution X
- 1000 div /DVImag X
- /IEn 256 array N
- 2 string 0 1 255 { IEn S A 360 add 36 4 index cvrs cvn put } for pop
- 65781.76 div /vsize X
- 65781.76 div /hsize X
- } N
-
-/dir 0 def
-/dyy {/dir 0 def
-} B
-/dyt {/dir 1 def
-} B
-/dty {/dir 2 def
-} B
-/dtt {/dir 3 def
-} B
-
-%/p {show} N % the main character setting routine
-/p {dir 2 eq
- {-90 rotate show 90 rotate}
- {dir 3 eq {-90 rotate show 90 rotate}
- {show} ifelse} ifelse
-} N
-
-/RMat [ 1 0 0 -1 0 0 ] N % things we need for rules
-/BDot 260 string N
-/Rx 0 N /Ry 0 N
-%
-% What we need to do to get things to work here is tragic.
-%
-/V {} B /RV
-/v { % can't use ...fill; it makes rules too big
- /Ry X /Rx X
- V
-} B
-%
-% Which do we use? The first if we are talking to Display
-% PostScript, the latter otherwise.
-%
-statusdict begin /product where
- { pop false [(Display) (NeXT) (LaserWriter 16/600)] {
- A length product length le {
- A length product exch 0 exch getinterval eq
- { pop true exit } if
- } { pop } ifelse
- } forall }
- { false } ifelse end
-{ {
- gsave
- TR -.1 .1 TR 1 1 scale Rx Ry
- false RMat { BDot } imagemask
- grestore
-} }
-{ {
- gsave
- TR -.1 .1 TR Rx Ry scale 1 1
- false RMat { BDot } imagemask
- grestore
-} } ifelse B
-%
-% We use this if the resolution doesn't match.
-%
-/QV {
- gsave
- newpath transform round exch round exch itransform moveto
- Rx 0 rlineto 0 Ry neg rlineto
- Rx neg 0 rlineto fill
- grestore
-} B
-%
-/a { moveto } B % absolute positioning
-/delta 0 N % we need a variable to hold space moves
-%
-% The next ten macros allow us to make horizontal motions that
-% are within 4 of the previous horizontal motion with a single
-% character. These are typically used for spaces.
-%
-/tail { A /delta X 0 rmoveto } B
-/M { S p delta add tail } B
-/b { S p tail } B % show and tail!
-/c { -4 M } B
-/d { -3 M } B
-/e { -2 M } B
-/f { -1 M } B
-/g { 0 M } B
-/h { 1 M } B
-/i { 2 M } B
-/j { 3 M } B
-/k { 4 M } B
-%
-% These next allow us to make small motions (-4..4) cheaply.
-% Typically used for kerns.
-%
-/w { 0 rmoveto } B
-/l { p -4 w } B
-/m { p -3 w } B
-/n { p -2 w } B
-/o { p -1 w } B
-/q { p 1 w } B
-/r { p 2 w } B
-/s { p 3 w } B
-/t { p 4 w } B
-%
-% x is good for small vertical positioning.
-% And y is good for a print followed by a move.
-%
-/x { 0 S rmoveto } B
-/y { 3 2 roll p a } B
-%
-% The bos and eos commands bracket sections of downloaded characters.
-%
-/bos { /SS save N } B
-/eos { SS restore } B
-
-end % revert to previous dictionary