bg5ps -- BIG5 ¤å¦rÀɦLªí»²§Uµ{¦¡ By ª÷®¶¤s Oct 1, 1998 1. bg5ps ²¤¶ bg5ps ¬O¤@Ó ¨Ï¥Î¥¨Á¯´yz»y¨¥(Python Scrpting Language)¼gªº¤@Ó¤pµ{¦¡¡A ¯à°÷§Q ¥Î´X®M§K¶Oªº Truetype ¤¤¤å¦r«¬±N¤@¯ë¥Î BIG5 ½s½Xªº¤å¦rÀÉÂà´«¦¨¯à °÷¦b¨S¦³¤¤¤å¦r«¬ªº postscript ¦Lªí¾÷©Î¬O¥u¦³ ghostscript ªº¨t²Î ¤W¦L¦C ªº postscript ÀɮסC bg5ps ¤]¥i¥H®³¨Ó·í°µ¹LÂo¾¹ (filter)¡A¥Î¨Ó¹LÂo¦b Linux ¤Wªº Netscape ©Î¬O mpage ²£¥Íªº postscript ÀɮרӦL¦C¨ä¤¤©Ò¥]§tªº BIG5 ¤¤¤å¦r¤¸¡C¦]¬° bg5ps ¨Ï¥Îªº¬O Truetype ¦r«¬¦Ó«D¯x°}¦r«¬¡A·í¦b¹p®g ¦Lªí ¾÷¤W©Î¬O¦r«¬¸û¤j®É¡A¥i¥HÀò±o¤ñ¸û¦nªº¦L¦C«~½è¡C 2. ¦w¸Ë ¦w¸Ë¹Lµ{¤jP¦p¤U¡G 1. ¦w¸Ë Python¡C ¥ýÀˬd§Aªº¨t²Î¤¤¬O§_¦³¤w¸g¦w¸Ë Python 1.4/1.5/1.51¡C¦pªG§Aªº¨t²Î¬O Linux RedHat 4.2/5.0/5.1¡A¨º§AÀ³¸Ó¤w¸g¦³ Python ¤F¡C 2. ¨ú±o ntu_*.ttf ©Î moe_*.ttf µ¥¤¤¤å¦r «¬ÀÉ¡C §A¥i¥H¦b¤U¦C¦a¤è±o¨ì¤¤¤å¦r«¬ÀÉ + ftp://ftp.ntu.edu.tw/Chinese/ifcss/software/fonts/bug5/ms-win + ftp://ftp.ifcss.org/pub/software/fonts/big5/ms-win ¦b Chinese Linux Extension ªº CDROM ¤¤¤]¦³¬ÛÃö¦r«¬ªº rpm ÀÉ¡C 3. ¥ý«Ø¥ß§A·Qn¦w¸Ë bg5ps ªº¥Ø¿ý¡A±N bg5ps-1.1b2.tgz ¸ÑÀ£ÁY¨ì§A·Qnªº ¥Ø¿ý¤U¡C¦pªG§Aªº tar ¦³¤ä´©À£ÁY®æ¦¡¡A¨Ï¥Î tar zxvf bg5ps-1.1b2.tgz ¦p¨S¦³¤ä´©¡A¨Ï¥Î gunzip bg5ps-1.1b2.tgz tar xvf bg5ps-1.1b2.tar 4. ½sĶ ttf2psm.c¡C °õ¦æ gcc -O2 -fomit-frame-pointer ttf2psm.c -o ttf2psm ±N²£¥Íªº ttf2psm ©ñ¦b»P bg5ps ¬Û¦Pªº¥Ø¿ý ¤U¡A©ÎªÌ§A¥i¥H©ñ¦b§A·Qnªº ¥Ø¿ý¤U¡AµM«á¦b³]©wÀɤ¤¥[¤W¤@¦æ ttf2psmPath="/your/ttf2psmpath/" ¨Ó¼Ð©ú ttf2psm ªº¸ô®|¡C 5. ½s¿è³]©wÀÉ(Configuration file)¡C ½Ð°Ñ¦Ò¥H¤U¤Î ©Òªþªº bg5ps.conf ÀÉ¡C¸Ì±¦³¦UӰѼƪº»¡©ú¡C¨ä¤¤¤ñ ¸û «nªº¬O¤Wzªº ttf2psmPath ¥H¤Î ChineseFontPath ³o¨âӰѼơC¦b¥»ª© ªº bg5ps ¤¤¡Abg5ps ·|¨Ì¤U¦Cªº¶¶§Ç¥h´M§ä³]©w ÀÉ®× 1. ~/.bg5ps.conf 2. /etc/bg5ps.conf 6. ´ú¸Õ¡C ¶i¨ì§A¥Î¨Ó¦w¸Ë bg5ps ªº¥Ø¿ý¸Ì¤U¹F bg5ps -if test.big5 -of test.ps ¦pªG§Aªº³]©w³£¨S¦³°ÝÃD¡A¨ºÀ³¸Ó·|¦³¤@Ó¥s test.ps ªºÀɮײ£¥Í§A¥i¥H¸Õ µÛ¥Î gv+ghostscript ©Î¬O ghostview+ghostscript ¨Ó¬Ý²£¥ÍªºÀɮצ³¨S¦³ ¿ù»~¡C ¦pªG¦³°ÝÃD¡A½Ð°Ñ¦Òµ{¦¡¿é¥Xªº¿ù»~°T®§¨ÃÀˬd§Aªº³]©wÀÉ¡C°£¤F ¥Î³]©wÀɮרӳ]©w¦L¦C°Ñ¼Æ¡A§A¤]¥i¥H¦b©R¥O¦C¨Ó±±¨î¤@¨Ç¦L¦Cªº °Ñ¼Æ¡C½Ð ¥Î bg5ps -h ¨Ó¬Ý¦³¨º¨Ç°Ñ¼Æ¥i¥H¨Ï¥Î¡C 3. ¨Ï¥Î¤èªk bg5ps ¥i¥H¥H¿W¥ß(stand along)©Î¬O·í¦¨¹LÂo¾¹(filter)¨Ó¨Ï¥Î¡C 1. ¥H¿W¥ß¤è¦¡°õ¦æ¡C ¦pªG§Aªº³]©wÀɨS¦³°ÝÃD¡A¦b¤j¦h¼Æªº®ÉÔ§A¥u¶·¤U¹F bg5ps -if yourfile.big5 -of yourfile.ps ´N¥i¥H±N big5 ½s½XªºÀÉ®×Âন¥i¥H¦L¦Cªº postscript ÀɮסC ¦b¤j³¡¥÷ªº Ãþ UNIX ªº¨t²Î¸Ì¡A¨Ï¥Î lpr yourfile.ps ´N¥i±N postscript ÀɮצL¥X¡C»Ýnª`·Nªº¬O§A¥²¶·n¦³ postscript ¦Lªí ¾÷©Î¬O¥Î ghostscript ¼ÒÀÀ postscript ªº¦Lªí ¾÷¤Î¦Lªí¹LÂo¾¹¡C¦¹¥~§A ÁÙ»Ýn½T©w§A¬O§_¥¿½Tªº«ü©w¦Lªí¾÷¡C ¦pªG§A·Qn±N mpage ¤Î netscape ©Ò²£¥Íªº postscript¤¤ªº big5 ½X°µ³B ²z¡A¨Ï¨ä¦¨¬°¥i¥H¦L¦C big5 ¤¤¤åªº postscriptÀÉ¡C ¨º§A»Ýn¥[¤W "-nps y" ³oӿﶵ¦p¤U bg5ps -nps y -if netscape.ps -of cnetscape.ps ¦]¬°¦b netscape ²£¥Íªº postscript Àɤ¤ªº^¤å¬O¥iÅܼe«×ªº¦r«¬¡A ©Ò¥H ¦³®É·|¦³©M¤¤¤å¹ï¤£»ôªºª¬ªpµo¥Í¡C¦p¥Î mpage «h¨S¦³³o¤è± ªº°ÝÃD¡C¥Î mpage+bg5ps ¬O¥Î¨Ó¹wÄý¤jªº¤¤¤åÀɮ׸`¬Ù¯È±iªº¦n¤è ®×¡C 2. ·í¦¨¹LÂo¾¹¨Ï¥Î¡C bg5ps ¤]¥i¥H§Q¥Î UNIX ¤¤ªººÞ ¹D(pipe)·í¦¨¹LÂo¾¹¨Ï¥Î¡C¤èªk¦p¤U cat yourfile.big5 | bg5ps > yourfile.ps cat yourfile.big5 | bg5ps | lpr ©Î cat netscape.ps | bg5ps -nps y > yourfile.ps cat netscape.ps | bg5ps | lpr 4. ¿ï¶µ bg5ps ¦³¤U¦Cªº¿ï¶µ¥i¥H¨Ï¥Î * -fp ChineseFontPath: «ü©w¤¤¤å¦r«¬ªº¸ô®|(¹w³]È: »P bg5ps ¦P) * -fn ChineseFontName: «ü©w¤¤¤å¦r«¬ªºÀɮצWºÙ(¹w³]È: ntu_kai) * -o [0|1]: 0 ¤£¿é¥X©_¼Æ¶¡A1 ¿é¥X©_¼Æ¶(¹w³]È: 1) * -e [0|1]: 0 ¤£¿é¥X°¸¼Æ¶¡A1 ¿é¥X°¸¼Æ¶(¹w³]È: 1) * -s num: «ü©w¿é¥X¦r«¬ªº¤j¤p(¹w³]È: 12) * -ls num: «ü©w¦æ¶Z(¹w³]È: 6.0) * -cs num: «ü©w¦r¶Z(¹w³]È: 2.0) * -lm num: «ü©w¥ªÃä¬É(¹w³]È: 72.0) * -rm num: «ü©w¥kÃä¬É(¹w³]È: 72.0) * -tm num: «ü©w¤WÃä¬É(¹w³]È: 72.0) * -bm num: «ü©w¤UÃä¬É(¹w³]È: 72.0) * -if filename: «ü©w¿é¤JÀÉÀɦW * -of filename: «ü©w¿é¥XÀÉÀɦW * -cf filename: «ü©w³]©wÀÉ(¹w³]È: /.bg5ps.conf) * -nps [y|n]: y ¨Ï¥Î nps ¼Ò¦¡¡An ¤£¨Ï¥Î nps ¼Ò¦¡(¹w³]È: n) ½d¨Ò: bg5ps -fn ntu_kai -e 0 -o 1 -s 18 -cs 3 -if mybig5.txt -of myps.ps 5. ³]©wÀÉ(Configuration file) bg5ps ªº³]©wÀɨä¹ê¨C¤@¦æ³£¬O python script »y¨¥ªº¤@ ¦æ«ü¥O¡A¥Ñ bg5ps ¥D µ{¦¡¥h©I¥s°õ¦æ¡A©Ò¥H¥i¯à¦³¦w¥þ©Ê¤Wªº °ÝÃD¡C½Ð°O±on±N³]©wÀɧ令°ßŪ¡C¦] ¬°³]©wÀɤ]¬O python script¡A©Ò¥H ¨C¤@¦æªº¶}©l¬O¤£¯à¦³ªÅ®æªº¡C bg5ps ³]©wÀɦ³¤U¦C°Ñ¼Æ¥i¥H§ïÅÜ * chineseFontPath: «ü©w¤¤¤å¦r«¬ªº¸ô®|(¹w³]È: »P bg5ps ¦P) * fontName: «ü©w¤¤¤å¦r«¬ªºÀɮצWºÙ(¹w³]È: ntu_kai) * oddPages: 0 ¤£¿é¥X©_¼Æ¶¡A1 ¿é¥X©_¼Æ¶(¹w³]È: 1) * evenPages: 0 ¤£¿é¥X°¸¼Æ¶¡A1 ¿é¥X°¸¼Æ¶(¹w³]È: 1) * size: «ü©w¿é¥X¦r«¬ªº¤j¤p(¹w³]È: 12) * lineSpace: «ü©w¦æ¶Z(¹w³]È: 6.0) * chrSpace: «ü©w¦r¶Z(¹w³]È: 2.0) * leftMargin: «ü©w¥ªÃä¬É(¹w³]È: 72.0) * rightMargin: «ü©w¥kÃä¬É(¹w³]È: 72.0) * topMargin: «ü©w¤WÃä¬É(¹w³]È: 72.0) * bottomMargin: «ü©w¤UÃä¬É(¹w³]È: 72.0) ½d¨Ò: chineseFontPath="/home/cschin/lib/cfonts" fontName="ntu_kai" oddPages=1 evenPages=1 6. ª`·N¨Æ¶µ»P¯äÂÎ ¬°¤F¥iÄâ©Ê¡Abg5ps ²£¥Íªº postscript Àɮפ¤¬O¥]§t¦r«¬ ªº¡A³o¼Ë¥i¥H¦b¨S¦³ ³s¨ìpostscript ¦Lªí¾÷ªº¹q¸£¤W°õ¦æ¡AµM«á¥ÎºÏ¤ù ©Î¬O¥Îºô¸ô¶Ç¨ì¥i¥H¦Lªº¾÷ ¾¹¤W¡A§Ú¦Û¤v¥Î¤F¤@¦~¤F¡A¤jP¤W¨S¦³«Ü¤jªº °ÝÃD¡A¦³®É¤]³\¬O¦r«¬¸ê®Æ¤Ó¤j¦³ ¨Ç¦Lªí¾÷¥i¯àµLªk³B²z¡A³o¼Ë§A¥i¯à»Ý n¥Î¤ñ¸û¦nªº postscript ¦Lªí¾÷¡A¤£µM ´N¬O¥Î Linux+ghostscript¡A³o ¼Ëªº²Õ¦X¨ì²{¦b§ÚÁÙ¨S¦³¥X¹L¬Æ»ò°ÝÃD¡C°ß¤@n ª`·Nªº¬O¦pªG¥Î HP ¼Q¾¥ ¦Lªí¾÷¡A³Ì¦n¦b³]©w ghostscript ªº¿ï¶µ®É¥[¤W -dDepletion=2 ¥i§ïµ½¥Î¾¥¹L¦hªº±¡ªp¡C¨ä¥Lªº¼Q¾¥¦Lªí¾÷§Ú ´N¨S¦³¸Õ¹L¤F¡C¤] ³\¥H«á¬Ý¬Ý¦³¨S¦³¾÷·|¼g¥Î¯x°}¦r«¬ªºª©¥»¨Ó§ïµ½¼Q¾¥ ¹L¦hªº°ÝÃD¡C bg5ps 1.1b2 §ï¼g¤F nps ¼Ò¦¡¤U§PÂ_¤¤¤å big5 ½s½X³¡¥÷ªº postscript ½X¡A©Ò ¥H²{¦bÀ³¸Ó¦b¤j³¡¥÷ªºª¬ªp¤U³£¯à°÷¥¿½T§PÂ_ netscape ©Ò²£¥Íªº postscript ªº big5 ½X¡C§Ú¥Îªº netscape ª©¥»¬O 4.05¡Ampage ¬O 2.4¡A¦p¨Ï¥Î¨ä¥Lª©¥»¡A ½Ð¦Û¦æ¸Õ¥Î¬Ý¬Ý¡C³B²z netscape ²£¥Íªº postscript ÀɮɡA¦]¬°¨Ï¥Î¥iÅܦr«¬ ¤]¨S¦³¥H "¦æ" ¬°³æ¦ì¿é¥X postscript ½X¡A©Ò¥H¦³®É·|¦³¤@¨Ç«Å|ªº²{¶H¡AÁÙ ¨S¦³·Q¨ì ¤èªk¸Ñ¨M³oÓ°ÝÃD¡A¦pªG HTML ÀɨS¦³«Ü½ÆÂøªº½s±Æªº®ÉÔ¦h¥b¨S¦³¬Æ »ò °ÝÃD¡C ¬°¤F¦Ò¼{¨ì python 1.4 ªº¨Ï¥ÎªÌ¡Abg5ps ¥Î¤F¤@Ó python ªºªº¼Ò²Õ regex ¡A¦b python 1.5.* ¤§«á³oÓ¼Ò²Õ³Q re ¼Ò²Õ¨ú¥N¡AÁöµM 1.5.* ª©ÁÙ¦³¤ä´© regex¡A¦ý¤£³Q¹ªÀy¡C ©Ò¥H¦pªGÁÙ¦³¾÷·|¥X·sª©¥»¡A§Ú±N·|§ï¥Î re ¼Ò²Õ¡C ¦pªG§Aµo²{¦³¬Æ»ò°ÝÃD¡A¯äÂΡA©Î¬O«Øij¡A½Ð¹q¶l¨ì§Úªº¹q¤l¶l¥ó«H ½c cschin@u.washington.edu¡AÁÂÁ¡C ¦pªG§Aı±o³oÓµ{¦¡¦n¥Î¡A¦pªG¤è«K¡A¥i¥H©M§Ú¥æ´«©ú«H¤ùµ¹§Ú¹ªÀy ¤@¤U¡A§Úªº ¦a§}¬O (98¤Î99¦~) Chen-Shan Chin PO BOX 95644 Seattle, WA 98145-2644 U.S.A. ¦pªG§Ú¦¬¨ì§Aªº©ú«H¤ù¡A§Ú¤]·|±Hµ¹§A Seattle ·í¦a©Î¬O§Ú¥X¥h®È¹C®É ¶Rªº©ú «H¤ù¡AÁÂÁ¡C 7. ª©Åv bg5ps 1.1b µ{¦¡¨Ï¥Î GNU General Public License¡A½Ð°Ñ·Ó©Ò¥Iªº COPYING.txt ÀɮסC ttf2psm.c ¬O§ï¦Û Liangsheng Wu ªº ttf2ps.c¡A ½Ð°Ñ¦Ò ttf2ps.doc ÀÉ¡C