📄 2.9.linbo.ps
字号:
%! % The following defines procedures assumed and used by program "dvi2ps"%% $Header: tex.ps,v 1.15 88/01/21 23:44:40 van Exp $%% Original By: Neal Holtz, Carleton University, Ottawa, Canada% <holtz@cascade.carleton.cdn>% <holtz%cascade.carleton.cdn@ubc.csnet>% June, 1985% Seriously hacked by Van Jacobson, LBL% <van@lbl-csam.arpa>/TeXDict 200 dict def % define a working dictionaryTeXDict begin % start using it. % units are in "dots" (300/inch)/Resolution 300 def/Inch {Resolution mul} def % converts inches to internal units/Mtrx 6 array def%%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%%% dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in% from top left, with y +ive downward). The default PostScript system% is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in% the following code are an attempt to reconcile that. The intent is to% specify the scaling as 1 and have only translations in the matrix to% properly position the text. Caution: the default device matrices are% *not* the same in all PostScript devices; that should not matter in most % of the code below (except for lanscape mode -- in that, rotations of% -90 degrees resulted in the the rotation matrix [ e 1 ]% [ 1 e ]% where the "e"s were almost exactly but not quite unlike zeros./@letter { % letter initmatrix 72 Resolution div dup neg scale % set scaling to 1. 310 -3005 translate % move origin to top (these are not exactly 1" Mtrx currentmatrix pop % and -10" because margins aren't set exactly right) /@TeXSave save def } def % note mode is like letter, except it uses less VM/@note { note initmatrix 72 Resolution div dup neg scale % set scaling to 1. 310 -3005 translate % move origin to top Mtrx currentmatrix pop /@TeXSave save def } def/@landscape { % letter initmatrix 72 Resolution div dup neg scale % set scaling to 1. [0 -1 1 0 0 0] concat 300 310 translate % move origin to top Mtrx currentmatrix pop /@TeXSave save def } def/@legal { legal initmatrix 72 Resolution div dup neg scale % set scaling to 1. 295 -3880 translate % move origin to top Mtrx currentmatrix pop /@TeXSave save def } def/@manualfeed { statusdict /manualfeed true put } def/@duplex { statusdict begin /setduplexmode where { pop true setduplexmode } if end } def% n @copies - set number of copies/@copies { /#copies exch def } def%%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%%% id @newfont - initialize a new font dictionary/@newfont { /newname exch def /xscale exch def % these two lines are added here for scaling /yscale xscale neg def newname 7 dict def % allocate new font dictionary newname load begin /FontType 3 def /FontMatrix [xscale 0 0 yscale 0 0] def /FontBBox [0 0 1 1] def /BitMaps 128 array def /BuildChar {CharBuilder} def /Encoding 128 array def 0 1 127 {Encoding exch /.undef put} for end newname newname load definefont pop } def% 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:/ch-image {ch-data 0 get} def % the hex string image/ch-width {ch-data 1 get} def % the number of pixels across/ch-height {ch-data 2 get} def % the number of pixels tall/ch-xoff {ch-data 3 get} def % number of pixels below origin/ch-yoff {ch-data 4 get} def % number of pixels to left of origin/ch-tfmw {ch-data 5 get} def % spacing to next character% fontdict ch Charbuilder - -- image one character/CharBuilder { /ch-code exch def % save the char code /font-dict exch def % and the font dict. /ch-data font-dict /BitMaps get ch-code get def % get the bitmap ch-data null eq not { ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub setcachedevice ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff] {ch-image} imagemask } if} def% fontdict @sf - -- make that the current font/@sf { setfont } def% in the following, the font-cacheing mechanism requires that% a name unique in the particular font be generated% char-data ch @dc - -- define a new character bitmap in current font/@dc { /ch-code exch def dup 0 get length 2 lt { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null if /ch-data exch def currentfont /BitMaps get ch-code ch-data put % generate a unique name simply from the character code currentfont /Encoding get ch-code dup ( ) cvs cvn put } def/@DRAFTF { gsave initmatrix newpath /Helvetica-Bold findfont setfont (Draft) dup stringwidth pop 8.875 exch div dup 72 mul dup scale 52.3 rotate 2.5 exch div -.35 translate 0.95 setgray 0 0 moveto show grestore } def/@DRAFTM { gsave initmatrix newpath /Helvetica-Bold findfont 72 scalefont setfont 0.95 setgray 576 702 moveto (Draft) stringwidth exch neg exch neg rmoveto (Draft) show grestore } def% n @bop0 - -- begin the char def section of a new page/@bop0 { pop } def% n @bop1 - -- begin a brand new page/@bop1 { pop Mtrx setmatrix /SaveImage save def } def/@draft { /@bop1 { 1 le {@DRAFTF} {@DRAFTM} ifelse Mtrx setmatrix /SaveImage save def } def} def% - @eop - -- end a page/@eop { showpage SaveImage restore } def% - @start - -- start everything/@start { @letter /@TeXSave save def } def% - @end - -- done the whole shebang/@end { end } def% x y p - -- move to position/p { moveto } bind def% x r - -- move right/r { 0 rmoveto } bind def% string s - -- show the string/s { show } bind def% x string m - -- move right then show string/m { exch 0 rmoveto show } bind def% ch c - -- show the character (code given)/c { c-string dup 0 4 -1 roll put show } bind def/c-string ( ) def% dx dy ru - -- set a rule (rectangle)/ru { /dy exch neg def % because dy is height up from bottom /dx exch def /x currentpoint /y exch def def % remember current point newpath x y moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill x y moveto } bind def/@MacSetUp { userdict /md known % if md is defined { userdict /md get type /dicttype eq % and if it is a dictionary { md begin % then redefine some stuff /letter {} def /note {} def /legal {} def /od{txpose 1 0 mtx defaultmatrix dtransform exch atan/pa exch def newpath clippath mark {transform{itransform moveto}} {transform{itransform lineto}} { 6 -2 roll transform 6 -2 roll transform 6 -2 roll transform { itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto } } {{closepath}} pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if }def /txpose{ pxs pys scale ppr aload pop por { noflips { pop exch neg exch translate pop 1 -1 scale }if xflip yflip and { pop exch neg exch translate 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate }if xflip yflip not and { pop exch neg exch translate pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 translate }if yflip xflip not and { ppr 1 get neg ppr 0 get neg translate }if } { noflips { translate pop pop 270 rotate 1 -1 scale }if xflip yflip and { translate pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg translate }if xflip yflip not and { translate pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 translate }if yflip xflip not and { translate pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 exch translate }if }ifelse scaleby96 { ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy translate .96 dup scale neg exch neg exch translate }if }def /cp {pop pop showpage pm restore}def end }if } if } def% All software, documentation, and related files in this distribution of% psfig/tex are Copyright (c) 1987 Trevor J. Darrell%% Permission is granted for use and non-profit distribution of psfig/tex % providing that this notice be clearly maintained, but the right to% distribute any portion of psfig/tex for profit or as part of any commercial% product is specifically reserved for the author.%%% psfigTeX PostScript Prolog% $Header: tex.ps,v 1.15 88/01/21 23:44:40 van Exp $%/psf$TeXscale { 65536 div } def/DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecapcurrentlinejoin currentdash currentgray currentmiterlimit ] cvx def% x y bb-llx bb-lly bb-urx bb-ury startFig -/startTexFig { /psf$SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /psf$ury exch psf$TeXscale def /psf$urx exch psf$TeXscale def /psf$lly exch psf$TeXscale def /psf$llx exch psf$TeXscale def /psf$y exch psf$TeXscale def /psf$x exch psf$TeXscale def currentpoint /psf$cy exch def /psf$cx exch def /psf$sx psf$x psf$urx psf$llx sub div def % scaling for x /psf$sy psf$y psf$ury psf$lly sub div def % scaling for y psf$sx psf$sy scale % scale by (sx,sy) psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub translate clear % added by JB Wang /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def /erasepage { } def /copypage { initgraphics } def @MacSetUp} def% llx lly urx ury doclip - (args in figure coordinates)/doclip { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto} def% - endTexFig -/endTexFig { end psf$SavedState restore } def%%%% Additions by LA Carr to reencode Adobe fonts as TeX fonts (almost)%%%% Based on routine in LaserWriter Cookbook/ReEncodeForTeX { /newfontname exch def /basefontname exch def /TeXstr 30 string def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall basefontdict /MathFontName known not { /TeXvec basefontname TeXstr cvs (Courier) search { pop pop pop TeXcourvec } { pop TeXnormalvec } ifelse def TeXvec aload pop TeXvec length 2 idiv { newfont /Encoding get 3 1 roll put } repeat } if newfontname newfont definefont pop } def/TeXnormalvec [ 8#014 /fi 8#015 /fl 8#020 /dotlessi 8#022 /grave 8#023 /acute 8#024 /caron 8#025 /breve 8#026 /macron 8#027 /ring 8#030 /cedilla 8#031 /germandbls 8#032 /ae 8#033 /oe 8#034 /oslash 8#035 /AE 8#036 /OE 8#037 /Oslash 8#042 /quotedblright 8#074 /exclamdown 8#076 /questiondown 8#134 /quotedblleft 8#136 /circumflex 8#137 /dotaccent 8#173 /endash 8#174 /emdash 8#175 /hungarumlat 8#176 /tilde 8#177 /dieresis ] def/TeXcourvec [ 8#016 /exclamdown 8#017 /questiondown 8#020 /dotlessi 8#022 /grave 8#023 /acute 8#024 /caron 8#025 /breve 8#026 /macron 8#027 /ring
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -