📄 libftp.ps
字号:
%!PS-Adobe-2.0%%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software%%Title: libftp.dvi%%Pages: 18 1%%BoundingBox: 0 0 612 792%%EndComments%%BeginProcSet: tex.pro/TeXDict 200 dict def % define a working dictionaryTeXDict begin % start using it./N /def load def/B { bind def } N/S /exch load def/X { S N } B/TR /translate load N/isls false N/vsize 10 N/@rigin % -xps -yps @rigin - establishes dvips conventions { isls { [ 0 1 -1 0 0 0 ] concat } if 72 Resolution div 72 VResolution div neg scale Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put setmatrix } N/@letter { /vsize 10 N } B/@landscape { /isls true N /vsize -1 N } B/@a4 { /vsize 10.6929133858 N } B/@a3 { /vsize 15.5531 N } B/@ledger { /vsize 16 N } B/@legal { /vsize 13 N } B/@manualfeed { statusdict /manualfeed true put } B % n @copies - set number of copies/@copies { /#copies X } B/FMat [1 0 0 -1 0 0] N/FBB [0 0 0 0] N/nn 0 N /IE 0 N /ctr 0 N/df-tail % id numcc maxcc df-tail -- initialize a new font dictionary { /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 IE N end dup { /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 nn put /ctr 0 N % go, count, and etc. [ % start next char definition } B/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 dup definefont setfont } B/ch-width {ch-data dup length 5 sub get} B % the number of pixels across/ch-height {ch-data dup length 4 sub get} B % the number of pixels tall/ch-xoff {128 ch-data dup length 3 sub get sub} B % num pixels right of origin/ch-yoff {ch-data dup length 2 sub get 127 sub} B % number of pixels below origin/ch-dx {ch-data dup length 1 sub get} B % number of pixels to next character/ch-image {ch-data dup type /stringtype ne { ctr get /ctr ctr 1 add N } if } B % the hex string image, or array of same/id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N/CharBuilder % fontdict ch Charbuilder - -- image one character {save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true [1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add] {ch-image} imagemask restore } B % in the following, the font-cacheing mechanism requires that % a name unique in the particular font be generated/D % char-data ch D - -- define character bitmap in current font { /cc X dup type /stringtype ne {]} if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne { dup dup length 1 sub dup 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 % bop - -- begin a brand new page { userdict /bop-hook known { bop-hook } if /SI save N @rigin 0 0 moveto } N/eop % - eop - -- end a page { % eop-aux % -- to observe VM usage clear SI restore showpage userdict /eop-hook known { eop-hook } if } N/@start % - @start - -- start everything { userdict /start-hook known { start-hook } if /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255 {IE S 1 string dup 0 3 index put cvn put} for } N/p /show load N % the main character setting routine/RMat [ 1 0 0 -1 0 0 ] N % things we need for rules/BDot 260 string N/rulex 0 N /ruley 0 N/v { % can't use ...fill; it makes rules too big /ruley X /rulex X V} B/Vstatusdict begin /product where { pop product dup length 7 ge { 0 7 getinterval (Display) eq } { pop false } ifelse } { false } ifelse end{ { gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat { BDot } imagemask grestore} }{ { gsave TR -.1 -.1 TR rulex ruley scale 1 1 false RMat { BDot } imagemask grestore} } ifelse B/a { moveto } B % absolute positioning/delta 0 N % we need a variable to hold space moves/tail { dup /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/w { 0 rmoveto } B/l { p -4 w } B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -