📄 head.ps
字号:
% $Id: head.ps,v 1.8 2002/05/20 19:50:34 hpa Exp $%% PostScript header for NASM documentation%% Avoid barfing on old PS implementations/pdfmark where{pop} {userdict /pdfmark /cleartomark load put} ifelse/setpagedevice where{pop} {userdict /setpagedevice /pop load put} ifelse% Useful definition/space 32 def%% This asks the PostScript interpreter for the proper size paper%/setpagesize { 1 dict dup /PageSize [pagewidth pageheight] put setpagedevice} def%% Code to handle links%/min { 2 copy gt { exch } if pop } def/max { 2 copy lt { exch } if pop } def/lkbegun 0 def/lktype null def/lkury 0 def/lkurx 0 def/lklly 0 def/lkllx 0 def/lkxmarg 1 def % Extra space for link in x dir/lkymarg 1 def % Extra space for link in y dir/lktarget () def% target type --/linkbegin { userdict begin /lkbegun 1 def /lktype exch def /lktarget exch def colorlinks { 0 0 0.4 setrgbcolor } if end} def% target --/linkbegindest { /Dest linkbegin} def% uristring --/linkbeginuri { /URI linkbegin} def% pageno --/linkbeginpage { /Page linkbegin} def% string spacepadding --/linkshow { userdict begin /lspad exch def /lss exch def lkbegun 0 ne { gsave lss true charpath flattenpath pathbbox grestore lkbegun 1 eq { /lkury exch def lss spacecount lspad mul add /lkurx exch def /lklly exch def /lkllx exch def /lkbegun 2 def } { lkury max /lkury exch def lss spacecount lspad mul add lkurx max /lkurx exch def lklly min /lklly exch def lkllx min /lkllx exch def } ifelse } if lspad 0 space lss widthshow end} def% --/linkend { userdict begin [ lktype /URI eq { /Action 2 dict dup /Subtype /URI put dup /URI lktarget put } { /Dest lktarget } ifelse /Border [0 0 0] /Rect [ lkllx lkxmarg sub lklly lkymarg sub lkurx lkxmarg add lkury lkymarg add ] /Subtype /Link /ANN pdfmark /lkbegun 0 def colorlinks { 0 setgray } if end} def% targetname --/linkdest { [ /Dest 3 -1 roll /View [ /XYZ currentpoint null ] /DEST pdfmark} def% A "fontset" is an array of fonts; a "stream" is an array of strings% and numbers or procedures:% [ 0 (Foo) ( ) (mani) ( ) 1 (padme) 0 ( ) (hum.) ]% A number choses a font from the current fontset.% A procedure is invoked as-is when printing the stream.%% When printing justified, an equal amount of space is added in% between each string.% string -- spacecount% Count space characters in a string/spacecount { 0 exch { space eq { 1 add } if } forall} def% stream fontset -- spacecount width% Get the width of a stream in the given fontset, and the% number of space characters in the stream/streamwidth { gsave 6 dict begin /f exch def /w 0 def /s 0 def f 0 get setfont /integertype { f exch get setfont } def /stringtype { dup stringwidth pop w add /w exch def spacecount s add /s exch def } def /arraytype { pop } def % The input stream is on the top of the stack now { dup type exec } forall s w end grestore} def% stream fontset spacer --% Show the stream in the given fontset, but add a certain amount% of space to each space character/showstreamspc { 5 dict begin /spc exch def /f exch def f 0 get setfont /integertype { f exch get setfont } def /stringtype { spc linkshow } def /arraytype { exec } def % Now stream is on the top of the stack { dup type exec } forall end} def% stream fontset --% Show the stream in the given fontset, with no extra spacing/showstream { 0 showstreamspc} def% stream fontset totalspace --% Show the stream justified to fit into a certain number of pixels/showstreamjust { userdict begin /ts exch def /fs exch def /st exch def st fs st fs streamwidth ts exch sub exch dup 0 gt { div } { pop } ifelse showstreamspc end} def/bullmarg lmarg bulladj add def/lwidth pagewidth lmarg sub rmarg sub def/bwidth lwidth bulladj sub def%% The various paragraph types% The number at the end indicates start (1) of para, end (2) of para%/chapline { currentpoint exch pop 10 sub lmarg exch moveto 0 setlinecap 3 setlinewidth lwidth 0 rlineto stroke} def/chap0 { lmarg exch moveto cfont lwidth showstreamjust } def/chap1 { lmarg exch moveto cfont lwidth showstreamjust } def/chap2 { lmarg exch moveto cfont showstream chapline } def/chap3 { lmarg exch moveto cfont showstream chapline } def/appn0 {chap0} def/appn1 {chap1} def/appn2 {chap2} def/appn3 {chap3} def% lbl ypos fontset -- ypos/headlbl { 3 -1 roll [exch ( )] exch % ypos strm fontset 2 copy % ypos strm fontset strm fontset streamwidth % ypos strm fontset spccount width lmarg exch sub % ypos strm fontset spccount xpos 4 index % ypos strm fontset spccount xpos ypos moveto % ypos strm fontset spccount pop % ypos strm fontset spccount showstream % ypos} def/head0 { lmarg exch moveto hfont lwidth showstreamjust } def/head1 { hfont headlbl lmarg exch moveto hfont lwidth showstreamjust } def/head2 { lmarg exch moveto hfont showstream } def/head3 { hfont headlbl lmarg exch moveto hfont showstream } def/subh0 { lmarg exch moveto sfont lwidth showstreamjust } def/subh1 { sfont headlbl lmarg exch moveto sfont lwidth showstreamjust } def/subh2 { lmarg exch moveto sfont showstream } def/subh3 { sfont headlbl lmarg exch moveto sfont showstream } def/norm0 { lmarg exch moveto bfont lwidth showstreamjust } def/norm1 { lmarg exch moveto bfont lwidth showstreamjust } def/norm2 { lmarg exch moveto bfont showstream } def/norm3 { lmarg exch moveto bfont showstream } def/code0 { lmarg exch moveto bfont showstream } def/code1 { lmarg exch moveto bfont showstream } def/code2 { lmarg exch moveto bfont showstream } def/code3 { lmarg exch moveto bfont showstream } def/bull0 { bullmarg exch moveto bfont bwidth showstreamjust } def/bull1 { dup lmarg exch moveto bullet bfont showstream bullmarg exch moveto bfont bwidth showstreamjust } def/bull2 { bullmarg exch moveto bfont showstream } def/bull3 { dup lmarg exch moveto bullet bfont showstream bullmarg exch moveto bfont showstream } def/tocw0 lwidth tocpnz sub def/tocw1 tocw0 tocind sub def/tocw2 tocw1 tocind sub def/tocx0 lmarg def/tocx1 tocx0 tocind add def/tocx2 tocx1 tocind add def/tocpn { bfont0 setfont 3 dict begin /s exch def /x s stringwidth pop pagewidth rmarg sub exch sub def currentpoint /y exch def lmarg sub tocdots div ceiling tocdots mul lmarg add tocdots x { y moveto (.) 0 linkshow } for x y moveto s 0 linkshow end linkend} def/toc00 { tocx0 exch moveto 0 rmoveto bfont showstream } def/toc01 { tocx0 exch moveto linkbegindest bfont0 setfont 0 linkshow bfont showstream } def/toc02 { tocx0 exch moveto 3 1 roll 0 rmoveto bfont showstream tocpn } def/toc03 { tocx0 exch moveto 4 1 roll linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def/toc10 { tocx1 exch moveto 0 rmoveto bfont showstream } def/toc11 { tocx1 exch moveto linkbegindest bfont0 setfont 0 linkshow bfont showstream } def/toc12 { tocx1 exch moveto 3 1 roll 0 rmoveto bfont showstream tocpn } def/toc13 { tocx1 exch moveto 4 1 roll linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def/toc20 { tocx2 exch moveto 0 rmoveto bfont showstream } def/toc21 { tocx2 exch moveto linkbegindest bfont0 setfont 0 linkshow bfont showstream } def/toc22 { tocx2 exch moveto 3 1 roll 0 rmoveto bfont showstream tocpn } def/toc23 { tocx2 exch moveto 4 1 roll linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def% Spacing between index columns/indexcolumn pagewidth lmarg sub rmarg sub idxgutter add idxcolumns div def% Width of an individual index column/indexcolwid indexcolumn idxgutter sub def/idx03 { 2 dict begin indexcolumn mul lmarg add /x exch def /y exch def x y moveto exch bfont showstream dup bfont streamwidth x indexcolwid add exch sub exch pop y moveto bfont showstream end} def/idx00 {idx03} def/idx01 {idx03} def/idx02 {idx03} def/idx13 { 2 dict begin indexcolumn mul lmarg add idxindent add /x exch def /y exch def x y moveto exch bfont showstream dup bfont streamwidth x indexcolwid idxindent sub add exch sub exch pop y moveto bfont showstream end} def/idx10 {idx13} def/idx11 {idx13} def/idx12 {idx13} def%% Page numbers%/pagey botmarg pymarg sub def/pagel lmarg plmarg sub def/pager pagewidth rmarg sub prmarg add def/pageeven { pagel pagey moveto sfont0 setfont show } def/pageodd { sfont0 setfont dup stringwidth pop pager exch sub pagey moveto show } def%% Functions invoked during parsing%/xa { linkdest } def/pa { 0 pageheight moveto linkdest } def/xl { linkbegindest } def/wl { linkbeginuri } def/pl { linkbeginpage } def/el { linkend } def%% PDF viewer options%[/PageMode /UseOutlines /DOCVIEW pdfmark % Display bookmarks%% Functions to include EPS%/BeginEPSF { /Before_EPSF_State save def /dict_count countdictstack def /op_count count 1 sub def userdict begin /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /languagelevel where { pop languagelevel 1 ne { false setstrokeadjust false setoverprint } if } if} bind def/EndEPSF { count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat Before_EPSF_State restore} bind def
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -