§@ªÌ:csc
(2003/2/17)
Postscript
¬O¤@ºØ¶±ªº´yz»y¨¥(¤@ºØ¤å¥ó®æ¦¡),Ãþ¦ü²{¦b³Ì¬y¦æªºPDFÀÉ®×,³£¬O¬°¤F³Ì¨Î¤Æ¦C¦L©ÎÅã¥Ü©Î¥iÄâ©Ê(¤£¦P¹q¸£¶¡ªº¥æ´«),¥¦³Ì¦¥X²{¦bApple
Laser Writer
¦Lªí¾÷¤W,²³æªº»¡¦b¥ô¦ó¹q¸£¤W²£¥ÍªºpsÀÉ®×,³£¥i¥Hª½±µ¥á¨ì¥i¥H±µ¨üpsªº¦Lªí¾÷¤W¦C¦L,¦Ó¤£¥ÎºÞn¿é¥X¦b¨º¤@ºØ¦Lªí¾÷¤W,¨ä¦C¦Lµ²ªG³£¤£·|®t¤Ó¦h,
(¨ä¹ê¤£¦P¼t°Óªº¦Lªí¾÷,¦³¤£¦Pªº¦Lªí¾÷¦C¦L»y¨¥,¥Î¨Ó´yz±ý¦C¦Lªº¸ê®Æ,¦p¦ó¦b¦Lªí¾÷¤¤¦C¦L,¨Ò¦p:HPªº¦Lªí¾÷¤@¯ë¬O¨Ï¥Îhp
pcl(page control language),¦Óepson ¬O¨Ï¥ÎESC»y¨¥[¦³ÂIÃþ¦üdos¤U¨Ï¥Î¦bʤѪº¦Lªí±±¨î»y¨¥],
³q±`¤@¯ëªº¦Lªí¾÷»y¨¥,³£¦³¨âºØ¼Ò¦¡,¤@¬°¸ê®Æ,¥t¤@¬°±±¨î,¦Ó±±¨î¼Ò¦¡³£·|¨Ï¥Î¤@¸õ²æ²Å¸¹,µM«á«á±±µµÛ±±¨î«ü¥O)¡C
Ps¬O¤@ºØÃþ¦üfortan(
¥¦¬O¤@ºØ¥Î¦b¤uµ{pºâªºµ{¦¡»y¨¥)
ªº¤@ºØ»y¨¥,¥¦¬O¨ã³Æµ{¦¡»y¨¥ªº¥\¯à,§ÚÌ¥i¥H¨Ï¥ÎPs¼gµ{¦¡,¦Ó¥¦".Ps"ÀÉ¥»¨´N¬O¤@ºØµ{¦¡,¬°¤Fn¼ô±x¥¦ªº»yªk,§Ú̧K¶O¤U¸ü
Gnu
ghostscript¨Ã¦w¸Ë¥¦,¥¦¥iª½±µ¼ÒÀÀPS¦Lªí¾÷,¨Ã¤UPsªº«ü¥Oµ¹¥¦¨Ã©M¥¦¤¬°Ê¡C
§Ú̲¤¹L¦w¸Ë:¦b¦w¸Ë§¹²¦«á¥¦·|¦b§Aªº¦w¸Ë¥Ø¿ý¤U²£¥Ígsx.xxªº
¥Ø¿ý(x.xx¬Oª©¥»¦p7.05),¦bwindwosª©¥»¦³¤GºØ°õ¦æÀÉgswin32.exe
¤Îgswin32c.exe(¤@Ó¬O¦bwindows¤U°õ¦æ,¥t¤@Ó¬O¦bconsle,dos©R¥O¦C¤U),ºÝ¬Ý§An¦bµøµ¡©Î¬O©R¥O¦C¤U°õ¦æ
¨ä¥~Æ[¦p¤U(µøµ¡):
#GS>¬O´£¥Ü²Å¸¹,§A¥i¥H¦b³oùØ¿é¤J©R¥O
#¦b´£¥Ü²Å¸¹¿é¤J©R¥O®É·|¦b¥kÃä¥[¤Jµù¸Ñ:
<- ¥Nªí§Aªº¿é¤J
-> ¥Nªíµ{¦¡¦^À³
¦Óµù¸Ñªº²Å¸¹¬°%
¦³¨Ç³¡¥÷ªºµ{¦¡¦^À³·|²¤¹L,¦b§A¼ô±x¤§«á,¤]´N¬O¤ñ¸û«á±ªº³¡
¥÷,¤@«ß¤£¼Ð¥Ü
µ{¦¡ªº°ò¥»Æ[©À
1.µ{¦¡¬O¥Hstack(°ïÅ|)ªº¼Ò¦¡¤U¨Ó¾Þ§@(¦³ÂI¹³CPUªº¹Bºâ¤è¦¡¦³¤@°ï¼È¦s¾¹¨Ó¦sÈ)
GS>5
GS<1>
GS<1>6
GS<2>
|
%
<-
% ->
% <-
% -> |
§A¥i¯àµoı¬°¤°»ò·|¦³GS<1>,GS<2>©O?
¥¦¥Nªí§Aªº°ïÅ|¤¤ªºÓ¼Æ
°ïÅ|¦³¨âÓ5¤Î6
GS>5 6 add % <-
³oùجO¨Ï¥Î¨ì¹Bºâ¤ladd(¥[ªk),¨äì²z¦p¤U:¦@¥|Ó¨BÆJ
5
|
6
5
|
-
-
|
11
|
|
->stack 2
->stack 1
|
¥ý±À¤J5,¦A±À¤J6,¦Ó
add«h¨ú¥X5¤Î6,¥[Á`¬°11«á¦A±À¦^11
¦P²z¥[´î¼°£(add,sub,mul,div,idiv(°£¨ú¾ã¼Æ),mod(¬Û°£¨ú¾l¼Æ))(ª`·N:¬°¤p¼g)
GS>5 6 add
GS<1>7 3 sub
GS<2>
|
%
<-
% <-
% ->
|
¦p¦ó¨ú¥X©Î¬O¥á±ó©O?
pstack(¨q¥X©Ò¦³ªº°ïÅ|ªº¸ê®Æ)©Î
stack
#(abc)¬°¦r¦ê,¦r¦ê¦b¨Ï¥Î¬A¸¹¬A°_¨Ó
GS>5 6 7 (abc)
GS<4>
GS<4>pstack
abc
7
6
5
|
%
<-
% ->
% <-
% ->
|
pop(¨ú¥X°ïÅ|³Ì¤W¼h(¤£Åã¥Ü)¨Ã¥á±ó)
GS>5 6 add
GS<1>pop
GS>
|
%
<-
% <-
% ->
|
==(Åã¥Ü°ïÅ|³Ì¤W¼h¨Ã¥á±ó,¸Õ¹L¤@Ó"="¤]
¥i¥H)
GS>5 6 add
GS<1>=
11
|
%
<-
% <-
% ->
|
clear(²M°£°ïÅ|ªº©Ò¦³¤º®e)
GS>5 6 add
GS<1>
GS<1>7 8 sub
GS<2>clear
GS>
|
%
<-
% ->
% <-
% <-
% ->
|
¥æ´«°ïÅ|(exch)
GS>5 6
GS<2>exch
|
%
<-
% ->
|
ì¨Ó¬O6,5(°ïÅ|¶¶§Ç(top->
bottom)),°õ¦æexch
Åܬ°5,6
«½Æ°ïÅ|(dup)
GS>5 dup
GS<2>
¦P
GS>5 5
GS<2>
|
%
<-
% ->
% <-
% ->
|
roll(¦ì²¾)
GS> 1 2 3 4 5 6 3 1 roll
°O¦í:rollªº«e±¨âӼƦr,«e±3¬O«ü6 5 4 3 2 1 (¨Ì¦¸¼Æ¨Ó²Ä3Ó,´N¬O4)
¦Ü©óroll«e±ªº1¬O¦V¥k²¾1Ó,¦pªG¦³-¥Nªí¦V¥ª²¾
¨Ò:1 2 3 4 5 6 3 1 roll
¥Ñ6©¹«e¼Æ3Ó¬° 4 5 6 ->¦V¥k²¾¤@¦ì 6 4 5
µ²ªG:
1 2 3 6 4 5
¨Ò:1 2 3 4 5 6 3 -1 roll
¦P¤W 4 5 6 ->¦V¥ª²¾¤@¦ì5 6 4
µ²ªG:
1 2 3 5 6 4
2.¦r¦ê¡BÅܼơB°}¦C©M¨ç¦¡
(1)¦r¦ê¬O¥Î¤p¬A¸¹¬A°_¨Ó(abcd)
GS>(abcd)
GS<1>=
abcd
(2)ÅܼÆ
/abc 15 def
©w¸qÅܼÆabc=15,n©w¸qÅܼƫe±°Oªºn¥[/¤Ï±×½u,¦Ó«á±n¥[def
/aaa (this is a test) def
#¤Þ¥În¨Ï¥Î aaa´N¦n¤F,/¥u¦³¦b©w¸q®É¤~n
#ª`·N³oùب䣬O°ïÅ|¦b¥ý«eoperand¤¤¦Ó¬O¥t¤@Ó¥s?,¦]¦¹¤£·|Åã¥Ü¦b¥X¨Ó,¦Ó³oÓstack¬O¥H¦WºÙ¤Î
È,¤@¹ï¨Ó°ïÅ|
(3)°}¦C
[1 12 45],¤TӼƦrªº°}¦C
[1 12 (this is a test)] ,¨âӼƦr¤@Ó¦r¦êªº°}¦C
(4)¨ç¦¡
/func {y y mul} def
¨ç¦¡¦WºÙfunc,¦Ó¨ç¦¡¤º®e¨Ï¥Î¤j¬A¸¹¬A°_¨Ó,³Ì«á¦A¥[def
(5)«O¯d¦r\,()[]¯S®í²Å¸¹\n,\s,\w .........)
¦pªGn¦b¦r¦ê¤¤ªí¥Ü\©Î¬O()[],½Ð¥[\,¤]´N¬O\\,©Î\(¡B\)¡B\[¡B\]
(6)±`¨£»~¥Î:
¨Ò¦p: x=x+1
/x 2 def
/x x 1 add
def ->³o¬O¿ùªº,¦]¬°µLªk«½Æ¨Ï¥Î,¥¦¬OÅܼƫD¨ç¦¡
3.±ø¥ó±±¨î(if,ifelse)
¤ñ¸û¹Bºâ¦¡
|
²Å¸¹
|
¤j©ó
|
gt
|
¤j©óµ¥©ó
|
ge
|
¤p©ó
|
lt
|
¤p©óµ¥©ó
|
le
|
µ¥©ó
|
eq
|
¤£µ¥©ó
|
ne
|
±ø¥ó {op1} if
±ø¥ó¦pªG¬°true «h§@¤j¬A¸¹¤ºªº°Ê§@
±ø¥ó {op1} {op2} ifelse
¦pªG±ø¥ó¦¨¥ß,°õ¦æ¡aop1} §_«h°õ¦æ¡aop2}
¨Ò¦p¡G¦pªG2>1¦L¥Xgreate
2 1 gt {(greate)} if
2 1 gt {(greate)}{(little)} ifelse
4.°j°é(for,repeat,loop,exit)
°_©lÈ ¶¡¹j µ²§ÀÈ { §An°µªº¨Æ } for
12 40
300 { 750 moveto (test) show} for
§@:12 750 moveto (test) show
52 750 moveto (test) show
..
292 750 moveto (test) show
°õ¦æ¦¸¼Æ { n°µªº¨Æ} repeat
{n°µªº¨Æ} loop
5.¶±°t¸m
¨Ï¥Îªº®y¼Ð¨t,¨äìÂI¦b¥ª¤U¨¤
y

x
¤@¯ë±`¥Î¶±¬°A4(210mmx297mm)©Î(8.5x11^¦T),¨C^¦T¬°72ÂI,¤]´N¬O612X792ÂI,¦pªG¬O¥H12ÂIªº¦r,²Ä¤@
Ó¦rªº¦ì¸m¦b0,780¡C¥Ñ©óps¬O¥HÂI¨Ó©w¦ì¸m,¦]¦¹¨Ã¨S¦³«ö¦æªº²Å¸¹,¦]¦¹n¦Û¤v©w¸q¨ç¦¡¨Ó°µ´«¦æ¹Bºâ,¦Ü
©ó¾î¦V¦C¦L,n¨Ï¥Î¨ìÅÜ«¬,½Ð°Ñ¦Ò6,§A¥i¥H¨Ï¥Îcurrentpoint
6.¦C¦L¤å¦r
¨BÆJ¦p¤U:
1.³]©wn¨Ï¥Îªº¦r«¬ findfont
2.³]©w¦r«¬¤j¤p(ÂI¼Æ) scalefont
3.³]©w¦r«¬
setfont
4.¿é¤JnÅã¥Üªº¦r¦ê show
/Courier findfont
12 scalefont
setfont
(test) show
showpage
->·í§ÚÌnÅã¥Ü¤@¾ã¶¤§«á¥¦·|ÄÀ©ñ¥ý«eªº³]©w,¦pªG¨Ï¥Îcopypage«h·|ªu¥Î¥ý«eªº³]©w
¦pªGn±N¹Ï±Åܬ°¥Õ¦â½Ð¥Îerasepage
7.µe¹Ï
¨BÆJ¦p¤U:
1.©w¸qpath(¹Ï®|) (newpath)
2.²¾¨ì«ü©wªº¦ì¸m (moveto,rmoveto)
3.¨Ï¥Î¤£¦Pµe¹Ï¤u¨ã (arcto,lineto,curvto,rlineto,rarcto,rcurvto)
4.©w¸q½u¼e¤ÎÃC¦â (setlinewidth,setrgbcolor,setgray)
5.µe¹Ï(fill,eofill,stroke,¦pªG¬Ofill½Ðª`·N¥²¶·¬O¤@ӫʳ¬ªºpath)
- µeª½½u: x1,y1 moveto x2 y2 lineto x3 y3 lineto
- µe¶ê©·: x y r ang1 ang2 arc
¶ê¤ß(x,y)¥b®|r,¨¤«×(ang1-ang2)
- µe¹ê¤ß: ¨Ï¥Îµe½u¤u¨ã,±N¨ä³ò°_¨Ó¤§«áfill
- µe©·½u(¤TÂI):x1 y1 x2 y2 x3 y3 curveto
8.ÅÜ«¬
¥Dn¦³¤TÓ«ü¥O(translate,scale,rotate)
1.translate:Âà´«®y¼Ð,x-coord y-coord translate
(§A¥i¥H·Q¦¨§â¤@ÓªF¦è²¾°Ê(x,y)¶ZÂ÷)
2.scale:ÁY©ñ
3.rotate:±ÛÂà
angle rotate(¨¤«×¦pªG¬O¥¿È¬O¤Ï®ÉÄÁ¤è¦V±ÛÂà,tªº«h¬°¶¶®ÉÄÁ¤è¦V±ÛÂà)
¥H¤U»¡©ú¦p¦ó±ÛÂà¤å¦r(90«×)
¦]¬°®y¼Ð±ÛÂà¦]¦¹¶±ªº°_©lÂI¬°(0,0),¦Óªø¤Î¼e¹ï½Õ,¦]¦¹Åܬ°792X612
y
x
-x + x =>90«×±ÛÂà(¤Ï®ÉÄÁ) y + -y
-y
-x
¦Ó¥iÅã¥Üªº°Ï°ì¤´¦b²Ä¤@¶H,¦]¦¹y ¬Otªº
90
rotate
12 -12
moveto
(test)
show
9.°ïÅ|¦¡»y¨¥ªº¯SÂI
°ïÅ|¦¡»y¨¥¦³¤@ӫܤjªº¯SÂI´N¬Oª½±µ§Q¥Î°ïÅ|¨Ó¥æ´«ÅܼÆ,¤]´N¬O»¡§Ú¥i¥H¥ý±NÅܼƩñ¦b°ïÅ|¤¤,
µy«á¦A¥Ñ¥t¤@Óµ{§Ç¨ú¥X¥[¥H¹B¥Î,¦ý¬O¬Y¨Ç¸ê®Æ¬O§Ṳ́£»Ýn,©Î¬O¶¶§Ç¤£¹ï,¦]¦¹§ÚÌ¥i¥H¥Î
pop exch ©Îroll ¥[¥H¹B¥Î
¨Ò¦p:¦³¤@Ó®y¼Ð¬Ox1,y1 ,§ÚÌny1¦Ó¤£nx1
x1,y1
exch
pop
¦p¦¹°ïÅ|¤¤´N³Ñ¤Uy1
¦P¤@Ó¦WºÙ§A¥i¯à¨Ï¥Î/a {a 15 add } def
¦p¦¹¬O¥i¥H©w¸q¦ý¤£¬O§A·Q¹³ªºa=a+15 ,ªì©lÈ20
/a 20 def
/a {a 15 add }def
·|²£¥Í°j°é
¸Ñªk:
/y 20 def
/x {y 15 add /y exch def y} def
¬°¤Fn¦b¨Ï¥Î¦bxªº¨ç¦¡¤¤«·s©w¸q¦]¦¹y 15 add ¹Bºâ¤§«áÅܬ°35 /y exch
,Åܬ°/y 35 ,¥[def
*¦ý¬O§ÚÌn¦b°ïÅ|¤¤¨ú±oȦ]¦¹«½Æy
¹ï©ó³æ¤@ÅÜ¼Æ¨ç¼Æ¦p(x2+2x)
³£¥i®M¥Î¤U¦Cì«h:¥un¦b¥ô¦ó¹Bºâµ²§ô¤§«á¥[ /ÅܼƦWºÙ exch def ÅܼƦWºÙ
/y 2 def
/x { y dup mul y 2 mul add /y exch def y } def
(¥ý±NyÅܦ¨¨âÓy dup ,¦A¬Û¼mul,¦p¦¹°ïÅ|¤¤¦³¤@ÓÈy*y ,§Ú̦A³]©wy 2 uml ,
µ²ªG°ïÅ|¤¤¦³¨âÓÈ,§Ų́ú¥X¨Ó¬Û ¥[add,±µ¤U¨Ó´N¬O¤Wzì«h
10.¦p¦ó«Ø¥ß´«¦æ¤Î´«¶©Ò¦ó³]©w(ª½¦¡)?
¶±°ò¥»ªº³]©w(¤WÃä¬É¡B¤UÃä¬É¡B¥ªÃä¬É¡B¥kÃä¬É¡B¶ªø¡B¦r«¬¤j¤p)
´«¦æ:
- ÅܼƦp¥k:top,left,line_space,pagesize ,y(y¶b©Ò¦b¦ì¸m),(¤UÃä¬É¥æµ¹¼g¤Jµ{¦¡)
- y=pagesize-top
- x,y¦ì¸m:left,y
- ¦ìÓ_ªº²¾°Ê: (left,y-line_space),¦ý¬O¤£¥i¥H¤p©ó0
µ{¦¡:/top 10 def
/left 10 def
/pagesize 792 def
/line_space 12 def
/y pagesize top sub line_space sub def
/newline { y line_space sub 0 lt
{/y pagesize top sub line_space sub def}
{/y y line_space sub def}¡@ifelse left y
moveto¡@¡bdef
´«¶:«¸my ¤£n¨Ï¥Îshowpage ,³Ì¦n¨Ï¥Îcopypage,·|«O¯d¤§«eªº³]©w
/y pagesize top sub line_space sub def
copypage
11.¾î¦V¦C¦L:
°Ñ¦Ò±ÛÂ઺¥\¯àrotate
§Ú̧ⶱA4©T©w¦b²Ä¤@¶H,¦Ó®y¼Ð¶b°f®ÉÄÁ¤è¦VÂà90«×,©Ò¥H(x,y)¥Ñ(612,792)Åܬ°(792,-612)
©Ò¥H(x=0 ¦Ü 792),(y=0 ¦Ü -612)
,¥Ñ¦¹¥i¥H·Q¹³¨ä¥¦¨¤«×ªº¹Bºâ´N¤ñ¸ûÃø¤F,¦]¦¹¤@¯ëªº¹Bºâ§Ú³£·|Âରì¨Óªº¨¤«×,¦Ó¤@¯ëªºµe½uµ¥µe¹Ï¥\
¯à³£¦b¤£±ÛÂ઺ª¬ªp¤W³]©w
12.Æ^¤J¨ä¥¦ªºpsÀÉ
§AÀ³¸Óª¾¹Dps¥i¥H¥]§t¤å¦r¤Î¹Ï,¦ý¬O¦pªG§A¦³¤@ÓPSÀÉ®×n¥]§t¥t¤@Ó¦³¹Ï©Î¤å¦rªºPSÀɸӫç»ò¿ì,¦pªG¦³³oӻݨDn¨Ï¥Î¨ìEncapsulated
PostScript(eps),¬ÛÃö³W®æ¦b
http://partners.adobe.com/asn/developer/pdfs/tn/5002.EPSF_Spec.pdf
§A¤]¥i¥H°Ñ¦Ò§Úªº¥t¤@½s¤å³¹
EPSÀɮ׸ѪR
13.PSÀɮתº±`¥ÎÀÉÀY
²Ä¤@¦æ±a¥Xª©¥»,¦pªG¨S¦³µ¹¤]¥i¥H¦ý¬O³Ì¦n¬Oµ¹
%!PS-Adobe-3.0
¨ä¥¦:
| %!PS-Adobe-3.0 |
|
| %%Title: (Untitled2) |
©ïÀY
|
| %%Creator: (Microsoft Word:
LaserWriter 8 8.4.2) |
«Ø¥ßµ{¦¡
|
| %%CreationDate: (3:40 PM Friday,
May 9, 1997) |
«Ø¥ß¤é´Á
|
| %%For: (dubois) |
§@ªÌ
|
| %%Routing:
(mailto:\000dubois@primate.wisc.edu) |
|
| %%Pages: 157 |
Á`¶¼Æ
|
| %%PageOrder: Ascend |
¶±±Æ¤è¦¡
|
| %%Orientation: Portrait |
¾î¦V©Îª½¦V
|
%%DocumentMedia: Default 612 792
0 () ()
|
¶±¤j¤p
|
| %%EndComments |
µ²§ôµù¸Ñ
|
14.¯B¤ô¦L(watermark)
gsave
.75 setgray
/Helvetica-Bold findfont 72 scalefont setfont
80 80 800
{ 306 exch moveto
% move to the center of the line
(Draft) dup
stringwidth pop 2 div neg 0 rmoveto % Center the text horizontally
show
% Show the text
}
for
% and keep doinging it grestore |
§A¥i¥H×§ï¤å¦rDraft¬°§Oªº¦r¤Î¨ä¥¦