Chapter 8. ¤¤¤åªº¦C¦L

Table of Contents
8.1. bg5ps - ¨Ï¥Î TTF ¦r«¬Âà´«¤¤¤å Big5/GB ½s½X¤å¥ó¦¨¬° Portscript
8.2. enscript+ghostscript6
8.3. gb2ps - Âà´«¤¤¤å GB ½s½X¤å¥ó¦¨¬° PostScript
8.4. gbscript - Âà´«¤¤¤å GB ½s½X¤å¥ó¦¨¬° PostScript
8.5. moefonts-cid - ¥Ñ Adobe ÂàĶ MOE CIDFonts
8.6. tocps - Âà´«¤¤¤å½s½X¤å¥ó¦¨¬° PostScript
8.7. vflib - ¨Ï¥Î¦Û¥Ñ¦V¶q¦r«¬ªº¦V¶q¦r«¬¨ç¦¡®w¡A¤ä´© BIG5 ©M GB

­º¥ý±z¥²¶·³]©w¦n±zªº /etc/printcap ¥H¤Î¨ä¥L³¡¥÷¡A ¦¹³¡¥÷½Ð°Ñ¦Ò zh-handbook ©Î¬O­^¤åª© FreeBSD handbook¡C ¥H¤U¬O¤@¥x PostScript2 USB ¦Lªí¾÷ªº³]©w¡G(¦pªG±z¨S¦³Postscript¦Lªí¾÷¡A½Ð¦w¸Ë ports/chinese/ghostscript6 ¨Ó¼ÒÀÀ PostScript)¡C

¦ý¬O¦pªG±zªº¦Lªí¾÷¥u¤ä´© Windows ©Î¬O MacOS¡A¨º»ò½Ð¥Î ps2pdf12/ ps2pdf13 ±N¤U­±¦U¤è¦¡°µ¥Xªº output.ps Âন pdf Àɮרì windows ¤U¥h¦C¦L¡C¥u­n¥´¡G ps2pdf1x output.ps output.pdf §Y¥i¡C(¨ä¹ê­Y¬O¦³¦¹±¡ªp¡A §Ú­Ì«ØÄ³±zª½±µ±N­ì¥»»Ý­n¦C¦LªºÀɮת½±µ¶Ç¦Ü¦Lªí¾÷©Ò¦bªº¾÷¾¹¦C¦L§Y¥i)

    lp|local line printer:\
            :sh:\
            :mx=0:\  #³]©wµL³Ì¤jÀɮפj¤p
            :lp=/dev/ulpt0:\ #¦¹¶µ½Ð¨Ì·Ó±z¦Lªí¾÷©Ò¦bªºport§ï¦¨lpt0©Î¬O¨ä¥Lport
            sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:
     

¤U¨Ó½Ð¦w¸Ë (½Ð°O±o¨Ï¥Îmake WANT_GS6=yes install)

  1. ports/chinese/arphicttf

  2. ports/chinese/bg5ps

    (½Ð°O±o cp /usr/local/etc/bg5ps.conf.samle /usr/local/etc/bg5ps.conf)

  3. ports/chinese/enscript

  4. ports/chinese/ghostscript6

  5. ports/moefonts-cid

±µ¤U¨Ó«Ü²³æ,§Ú­Ì¨Ó¬Ý¦C¦L¦UºØ¤£¦P¤å¥óªº¤èªk

¥H¤U¬O¤@­Ó¤p script¡AÀ°±z¦Û°Ê±N¤å¦rÀɤÀ­¶

    #!/usr/bin/perl -w
    #
    # This tiny script converts ^L to empty lines
    # to fit a2ps
    # Currently it only eats from STDIN and output to STDOUT.
    # Fine enough.
    # Customize the $expbl (Expected blank lines) to meet your
                     needs.
    my $expbl=40; # Customize THIS !!!
    meow
    my $lc=0, $restlc=0 ;
    foreach (<>) {
        if (/^L/) {
            $restlc = $expbl - (($lc % $expbl))  ;
            for ($i=1; $i < $restlc; $i++) {
                $lc++ ;
                # print "$lc " . "\n" ;
                # You could comment out above line to see the
              line number.
                print "\n" ;
            }
        }
        s/^L// ;
        if (/\n/) { $lc++ ;}
        # print "$lc " .$_ ;
        # You could comment out above line to see the line
                         number.
        print $_ ;
    }
     

8.1. bg5ps - ¨Ï¥Î TTF ¦r«¬Âà´«¤¤¤å Big5/GB ½s½X¤å¥ó¦¨¬° Portscript

bg5ps ¬O¤@­Ó¨Ï¥Î¥¨Á¯´y­z»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 FreeBSD ¤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

bg5ps ªº¦w¸Ë¡G

    # cd /usr/ports/chinese/bg5ps
    # make install
         

¥Ø«e bg5ps ¬O±Ä¥Î moettf ¬°¦C¦Lªº¦r«¬¡C±z¥²¶·³]©w TTF ¦r«¬¸ô®| ¡A¦b¦w¸Ë§¹¤§«á¡A±z¥²¶·°Ñ¦Ò /usr/local/etc/bg5ps/bg5ps.conf.sample ¡A¨Ã±N±zªº³]©wÀɸm©ó ~/.bg5ps.conf ©Î /usr/local/etc/bg5ps/bg5ps.conf¡C

¥Î¥¦©Òªþªº½d¨Ò¨Ó´ú¸Õ¡A¨Ã¥Î ghostview ©Î gv Æ[¬Ýµ²ªG¡G

    % cd /usr/local/share/doc/bg5ps
    % bg5ps -if bg5ps.txt -of bg5ps.ps
    % ghostview bg5ps.ps
         

bg5ps -h ¨Ó¬Ý¦³¨º¨Ç°Ñ¼Æ¥i¥H¨Ï¥Î¡C

¨Ï¥Î¤èªk

bg5ps ¥i¥H¥H¿W¥ß(stand along)©Î¬O·í¦¨¹LÂo¾¹(filter)¨Ó¨Ï¥Î¡C

¥H¿W¥ß¤è¦¡°õ¦æ¡C

¦pªG±zªº³]©wÀɨS¦³°ÝÃD¡A¦b¤j¦h¼Æªº®É­Ô±z¥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±z¥²¶·­n¦³ postscript ¦Lªí ¾÷©Î¬O¥Î ghostscript ¼ÒÀÀ postscript ªº¦Lªí ¾÷¤Î¦Lªí¹LÂo¾¹¡C¦¹¥~±z Áٻݭn½T©w±z¬O§_¥¿½Tªº«ü©w¦Lªí¾÷¡C ¦pªG±z·Q­n±N mpage ¤Î netscape ©Ò²£¥Íªº postscript¤¤ªº big5 ½X°µ³B ²z¡A¨Ï¨ä¦¨¬°¥i¥H¦L¦C big5 ¤¤¤åªº postscriptÀÉ¡C ¨º±z»Ý­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

·í¦¨¹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
         

¿ï¶µ

       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
         

³]©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±o­n±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¨Ò¡G

    chineseFontPath="/home/cschin/lib/cfonts"
    fontName="ntu_kai"
    oddPages=1
    evenPages=1
         

Note: ¦pªG¦b netscape ªº¦C¦L«ü¥O¸Ì­±§â "lpr" ´«¦¨ "bg5ps -nps y | lpr"¡A´N¥i¥H¦C¦L¤¤¤åºô­¶¤F¡C

WWW: http://weber.u.washington.edu/%7Ecschin/chinhome.html

Author: Chen-Shan Chin