home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / answers / postscript / faq / part1-4 next >
Encoding:
Text File  |  1994-09-27  |  55.5 KB  |  1,414 lines

  1. Newsgroups: comp.lang.postscript,comp.answers,news.answers
  2. Path: bloom-beacon.mit.edu!grapevine.lcs.mit.edu!olivea!spool.mu.edu!sgiblab!brunix!doorknob.cs.brown.edu!jgm
  3. From: Jonathan Monsarrat <postscript-request@cs.brown.edu>
  4. Subject: PostScript monthly FAQ v2.3 07-07-94 [01-04 of 11]
  5. Message-ID: <JGM.94Sep27192914@vegas.cs.brown.edu>
  6. Followup-To: poster
  7. Summary: Useful facts about the PostScript graphics programming language
  8. Sender: news@cs.brown.edu
  9. Supersedes: <JGM.93Apr16124153@vegas.cs.brown.edu>
  10. Reply-To: postscript-request@cs.brown.edu (PostScript FAQ comments address)
  11. Organization: Brown University Department of Computer Science
  12. Date: Tue, 27 Sep 1994 23:29:14 GMT
  13. Approved: news-answers-request@MIT.Edu
  14. Expires: Thu, 27 Oct 1994 00:00:00 GMT
  15. Lines: 1396
  16. Xref: bloom-beacon.mit.edu comp.lang.postscript:12348 comp.answers:7473 news.answers:26396
  17.  
  18. Archive-name: postscript/faq/part1-4
  19. Last-modified: 1993/07/07
  20. Version: 2.3
  21.  
  22.                               -- PostScript -- 
  23.  
  24.                             Answers to Questions 
  25.  
  26.                     (the comp.lang.postscript FAQ v2.3) 
  27.  
  28.                                Jon Monsarrat 
  29.  
  30.                               jgm@cs.brown.edu 
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                      This FAQ is formatted as a digest. 
  38.  
  39.                 Most news readers can skip from one question 
  40.  
  41.                 to the next by pressing control-G. GNUs uses 
  42.  
  43.                    C-c C-n to skip to the next question. 
  44.  
  45.  
  46.     Changes since the last version are marked with a '|' in the table 
  47.     of contents and in the sections in the text-only format of the FAQ. 
  48.  
  49.     Now that there is Linux and NetBSD and BSD 386 UNIX IBM PC (and 
  50.     clone) users can run any of the X-windows and UNIX programs in the 
  51.     utilities section. See any of comp.os.linux.{ 
  52.     admin,development,help,misc}. Also, there is now GhostScript for 
  53.     the Macintosh. 
  54.  
  55.     Many thanks to Dan Carrigan for reformatting the books and 
  56.     publishers section. 
  57.  
  58.     The utilities index from the comp.sources.postscript FAQ will be 
  59.     posted in comp.lang.postscript now too. 
  60.  
  61.     Please help fix the FAQ! All comments should be mailed to 
  62.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is 
  63.     when it is accompanied by a section of the FAQ that is edited and 
  64.     mailed to me verbatim as an example. If you would like to 
  65.     contribute, please read the section ``about the FAQ'' first. Thank 
  66.     you! 
  67.  
  68.     Books and programs are referred to by name only. See the book 
  69.     sections for book information, and the comp.sources.postscript FAQ 
  70.     for a full list of all PostScript related programs. I have archived 
  71.     a number of the small utilities in 
  72.     wilma.cs.brown.edu:pub/postscript. You can get the 
  73.     comp.sources.postscript FAQ from 
  74.     wilma.cs.brown.edu:pub/comp.sources.postscript. 
  75.  
  76.     Related FAQs: comp.text, comp.text.tex, comp.fonts, comp.graphics, 
  77.     comp.sys.mac.apps, comp.sources.postscript. 
  78.  
  79.     Table of Contents 
  80.  
  81.  
  82.     This FAQ has 11 sections. It is available by anonymous ftp to 
  83.     wilma.cs.brown.edu:pub/comp.lang.postscript/FAQ.txt in ASCII, and 
  84.     there are also LaTeX, DVI, and PostScript formats. 
  85.  
  86.   
  87.       1 General Questions 
  88.          1.1 What is PostScript? 
  89.          1.2 How can I tell how many pages my document will have? 
  90.          1.3 How can I print just one page or a few pages from a big 
  91.          1.4 How can I print more than one page per sheet of paper? 
  92.          1.5 How can I edit a PostScript picture? 
  93.          1.6 How can I print PostScript on a non-PostScript printer? 
  94.          1.7 How do I print a file containing 8-bit characters? 
  95.          1.8 What other graphics languages are there? 
  96.       2 Printers 
  97.          2.1 How can I get my printer to talk back to me? 
  98.          2.2 Should I leave my printer on? 
  99.          2.3 How do you print double-sided on a single-sided printer? 
  100.          2.4 How do I suppress the power-on start page? 
  101.          2.5 How do I make a downloaded font ``persistent''? 
  102.          2.6 How do I remove a persistent (``permanent'') downloaded font? 
  103.          2.7 How do I reset the printer without power-cycling? 
  104.          2.8 About saving files 
  105.          2.9 What's the control-D business? 
  106.          2.10 Why does the printer say ``still busy'' when my document is 
  107.          2.11 How should I set up my spoolers? 
  108.          2.12 What are PPD files? 
  109.          2.13 What's a timeout error? 
  110.          2.14 Can I tell if my printer is color or black/white? 
  111.       3 Formats and Conversions 
  112.          3.1 How can I convert PostScript to some other graphics format? 
  113.          3.2 How can I convert PostScript to a bitmap or pixmap? 
  114.          3.3 How can I convert HPGL to PostScript? 
  115.          3.4 How can I convert DVI to PostScript? 
  116.          3.5 How can I convert HP Laserjet language (PCL) to PostScript? 
  117.          3.6 How can I convert TeX PK format font to PostScript? 
  118.          3.7 How do I embed PostScript into troff? 
  119.          3.8 How do I embed PostScript into LaTeX or TeX? 
  120.          3.9 How can I convert an image to PostScript? 
  121.          3.10 How can I convert ASCII text to PostScript? 
  122.          3.11 How can I convert PostScript to ASCII? 
  123.          3.12 How do I convert between PFB, PFA, Mac, PFM, and AFM? 
  124.       4 Fonts  
  125.          4.1 What are .PFB and .PFA files? 
  126.          4.2 How does Macintosh Store PostScript Fonts?
  127.          4.3 How can I convert a PostScript font to TeX's PK format? 
  128.          4.4 Why are Adobe fonts hidden? 
  129.          4.5 How do I get bitmap representations of Adobe fonts? 
  130.          4.6 What are some good ftp sites for fonts? 
  131.          4.7 How can I re-encode a font? 
  132.          4.8 What's the difference between a Type 1 and a Type 3 font? 
  133.          4.9 What vendors sell fonts for PostScript printers? 
  134.          4.10 What are ATM fonts? 
  135.          4.11 What are Multiple Master Fonts? 
  136.          4.12 Do I need a Level Two printer to use Multiple Master Fonts? 
  137.          4.13 What are Type 4 fonts? 
  138.          4.14 What are Type 5 fonts? 
  139.          4.15 Is there an editor for Type 1 Fonts? 
  140.       5 Books 
  141.          5.1 Books 
  142.          5.2 Publishers 
  143.       6 About Adobe 
  144.          6.1 How do I get in touch with Adobe? 
  145.          6.2 What can Adobe do for me? 
  146.       7 Programming in PostScript 
  147.          7.1 What is PostScript level 2? 
  148.          7.2 Should I learn level 2 PostScript? 
  149.          7.3 Where can I find examples of PostScript code? 
  150.          7.4 What is the physical size of the page? 
  151.          7.5 What is the Imagable Area of the page 
  152.          7.6 Why can't I do a pathforall after a charpath ? 
  153.          7.7 How do I center a string of text around a point? 
  154.          7.8 How can I concatenate two strings together? 
  155.          7.9 What do I do when I get stack overflow/underflow? 
  156.          7.10 How can I print in landscape mode? 
  157.       8 Computer-specific PostScript 
  158.          8.1 Sun Workstations 
  159.          8.2 IBM PC 
  160.          8.3 Apple Macintosh 
  161.       9 Encapsulated PostScript 
  162.          9.1 What is Encapsulated PostScript? 
  163.          9.2 What are EPSI and EPSF? 
  164.          9.3 How do I convert PostScript to EPS? 
  165.          9.4 How do I get the bounding box of a PostScript picture? 
  166.       10 About The Comp.Lang.PostScript FAQ 
  167.          10.1 The PostScript FAQ: What is it? 
  168.          10.2 How to get the FAQ files 
  169.          10.3 How to write a FAQ answer 
  170.          10.4 The FAQ can contain LaTeX and PostScript inserts 
  171.          10.5 Revising the FAQ 
  172.          10.6 How to submit new information 
  173.          10.7 How to add a program description to the FAQ index 
  174.          10.8 How to add a book description to the FAQ 
  175.          10.9 Questions that need answers 
  176.       11 About PostScript 2 
  177.          11.1 What printers support Level 2 PostScript? 
  178.          11.2 What is PostScript Level 2? 
  179.          11.3 [ Color Extensions ] 
  180.          11.4 [ Composite Font Extensions ] 
  181.          11.5 [ Display PostScript Extensions ] 
  182.          11.6 [ Overview of Level 2 Features ] 
  183.          11.7 Filters 
  184.          11.8 Binary Encoding 
  185.          11.9 Optimized graphics operators 
  186.          11.10 Optimized text operators 
  187.          11.11 Forms 
  188.          11.12 Patterns 
  189.          11.13 Images 
  190.          11.14 Composite Fonts 
  191.          11.15 New Color Spaces 
  192.          11.16 New screening/halftoning technology 
  193.          11.17 Improved printer support features 
  194.          11.18 Interpreter parameters 
  195.          11.19 Resources 
  196.          11.20 Dictionaries 
  197.          11.21 When did Level 2 products come available? 
  198.          11.22 Are Level 1 and Level 2 implementations compatible? 
  199.   
  200.  
  201.  
  202. ------------------------------
  203.  
  204. Subject: 1 General Questions 
  205.  
  206.  
  207. ------------------------------
  208.  
  209. Subject: 1.1 What is PostScript? 
  210.  
  211.     PostScript is a page description programming language. 
  212.  
  213.     It is perhaps the most versatile and loved language for printers, 
  214.     being used in printers world-wide. It is capable of drawing to 
  215.     computer screens and any kind of drawing device. PostScript is 
  216.     interpreted, stack based and has latent typing. It somewhat 
  217.     resembles the computer language FORTH. 
  218.  
  219.     A number of programmers write PostScript programs directly for a 
  220.     variety of drawing applications. The NeXTSTEP Operating System, 
  221.     running on Intel-486 and Motorola machines, uses Display PostScript 
  222.     Level II to manage the display. However, PostScript programs are 
  223.     usually documents meant to be printed that have been generated by a 
  224.     program written in some compiled language. 
  225.  
  226.  
  227. ------------------------------
  228.  
  229. Subject: 1.2 How can I tell how many pages my document will have? 
  230.  
  231.     The easiest way to count pages is view your document on-line with a 
  232.     PostScript previewer. Some previewers like Ghostview and GSPreview 
  233.     count the pages for you. (See the comp.sources.postscript FAQ, 
  234.     which has a section ``PostScript Interpreters and Utilities''.) 
  235.  
  236.     If your document is generated by a program compliant with the 
  237.     Document Structuring Conventions, you should be able to just count 
  238.     the number of ``%%Page:'' comments imbedded in the document. 
  239.     With UNIX you can type 
  240.   
  241.   grep -c %%Page: document.ps
  242.   
  243.     to do this counting. (See Section 9, ``Encapsulated PostScript''.) 
  244.  
  245.     You could use the program pspages posted to 
  246.     comp.sources.postscript, volume 2, issue 5, by Kevin Grover. 
  247.  
  248.     The only completely reliable way to count pages is to ask the 
  249.     printer after the job is printed. PostScript printers maintain a 
  250.     page counter that can be queried before and and after the job is 
  251.     printed, and the page count is a simple subtraction. This tends to 
  252.     require rather sophisticated spooling systems and a communications 
  253.     channel that is bidirectional. However, some printers allow you to 
  254.     submit jobs on one port, and issue queries on another. 
  255.  
  256.     Send this PostScript through a bidirectional I/O port and you'll 
  257.     get back the page count, nominally the total number of pages 
  258.     printed since manufacture: 
  259.  
  260.     statusdict begin pagecount == end flush 
  261.  
  262.     Experts using a level 2 printer can use the SerialOff.PS and 
  263.     SerialEHandlder.ps programs to communicate bidirectionally to the 
  264.     printer. 
  265.  
  266.  
  267. ------------------------------
  268.  
  269. Subject: 1.3 How can I print just one page or a few pages from a big 
  270.     document? How can I print pages in reverse order? 
  271.  
  272.     Try using a host-specific program, like the UNIX command psrev, 
  273.     which is part of the TranScript suite of software from Adobe 
  274.     Systems. Or use the more general utilities Ghostview, psutils or 
  275.     psxlate. 
  276.  
  277.     There is no guarantee that a given PostScript document can be split 
  278.     in such a manner. The reason is that some programs which generate 
  279.     PostScript code don't conform to the Adobe Document Structuring 
  280.     Conventions (DSC). (See Section 9, ``Encapsulated PostScript''.) A 
  281.     notable example of this is Microsoft Word. 
  282.  
  283.  
  284. ------------------------------
  285.  
  286. Subject: 1.4 How can I print more than one page per sheet of paper? 
  287.  
  288.     Use psnup or pstext or enscript. 
  289.  
  290.     These programs redefine the PostScript ``showpage'' command to do 
  291.     multiple PostScript pages per physical page. If one program doesn't 
  292.     work with a complex document, try out other ones. 
  293.  
  294.     Some PostScript programs can't work with these programs because 
  295.     they break the EPS conventions (See Section 9, ``Encapsulated 
  296.     PostScript''.). The reason is that some Postscript operators (such 
  297.     as initgraphics, the list is in the Red book) change the printer 
  298.     state so "violently", that software trying to do things like n-up 
  299.     will get confused. Theoretically, an EPS shouldn't have any of 
  300.     these operators, but it may not really be an EPS, or there may be a 
  301.     weird interaction between TeX, the EPS and the inclusion mechanism 
  302.     that breaks psnup. 
  303.  
  304.  
  305. ------------------------------
  306.  
  307. Subject: 1.5 How can I edit a PostScript picture? 
  308.  
  309.     If you know the PostScript programming language, just use any text 
  310.     editor to edit the code directly. 
  311.  
  312.     If you want to do it visually, you can use Canvas on the Macintosh. 
  313.     Arts & Letters software package from Computer Support Corporation 
  314.     is supposed to be able to read arbitrary EPS files, using a 
  315.     software converter called Decipher. Also, Island Graphics has a 
  316.     trio of software packages called, appropriately, Island 
  317.     Draw/Paint/Write. This is also supposed to include a full-blown 
  318.     PostScript interpreter, and be able to read and edit arbitrary 
  319.     PostScript files. 
  320.  
  321.  
  322. ------------------------------
  323.  
  324. Subject: 1.6 How can I print PostScript on a non-PostScript printer? 
  325.  
  326.     You need a tool that converts to something that your printer knows 
  327.     how to print. Use Freedom of Press, GhostScript, pageview, TScript, 
  328.     or UltraScript PC. Or, use a printer cartridge if your printer 
  329.     manufacturer sells one. 
  330.  
  331.  
  332. ------------------------------
  333.  
  334. Subject: 1.7 How do I print a file containing 8-bit characters? 
  335.  
  336.     If you only have Transcript you just don't. Transcript uses 
  337.     "enscript" to convert a "text" file to a PostScript file and 
  338.     "enscript" is not able to deal with 8-bit characters. 
  339.  
  340.     You have to use one of the many programs that convert text to 
  341.     PostScript, like a2ps, which not only handles the 8-bit characters 
  342.     in a very nice way using the standard ISO Latin 1 character 
  343.     encoding, but it also produces outputs in a series of very well 
  344.     set, nice an paper saving formats, much nicer than the ones 
  345.     produced by enscript. 
  346.  
  347.  
  348. ------------------------------
  349.  
  350. Subject: 1.8 What other graphics languages are there? 
  351.  
  352.     HPGL is for pen plotters. PCL is for HP Laser printers (and 
  353.     compatibles). Both are by HP, and PCL5 is supposed to allow 
  354.     inclusion of HPGL commands, preceded by an appropriate escape code, 
  355.     however I have found this to give errors and abort even for simple 
  356.     HPGL code that plots fine on a plotter. 
  357.  
  358. ------------------------------
  359.  
  360. Subject: 2 Printers 
  361.  
  362.  
  363. ------------------------------
  364.  
  365. Subject: 2.1 How can I get my printer to talk back to me? 
  366.  
  367.     Experts using a level 2 printer can use the SerialOff.PS and 
  368.     SerialEHandlder.ps programs to communicate bidirectionally to the 
  369.     printer. 
  370.  
  371.     If you just need the error returns from the printer, you can spawn 
  372.     a 
  373.   
  374.   cat < port >> logfile&
  375.   
  376.     in your system startup. Then you will get a log of everything the 
  377.     printer says. This works on any serial-port connected printer. 
  378.  
  379.  
  380. ------------------------------
  381.  
  382. Subject: 2.2 Should I leave my printer on? 
  383.  
  384.     Most laser printers consume several hundred watts while idle in 
  385.     order to keep the fuser warm. A few models shut down automatically 
  386.     after a while, and this feature seems to be the wave of the future. 
  387.  
  388.     Wear-and-tear due to power cycling is no longer the problem it once 
  389.     was. The advice in the FAQ would have been appropriate in the 
  390.     1970s, but no longer. A good modern rule of thumb is to turn off 
  391.     electronic equipment if it won't be used for a few hours (overnight 
  392.     or weekends), otherwise to leave it on. 
  393.  
  394.  
  395. ------------------------------
  396.  
  397. Subject: 2.3 How do you print double-sided on a single-sided printer? 
  398.  
  399.     The biggest problem comes in jamming when you feed the document 
  400.     through the second time to print the backside. To minimize this 
  401.     problem, you want to minimize the curl that the paper acquires in 
  402.     passing through the printer. So, if your printer normally stacks 
  403.     face down (to make the page order come out right) rearrange it 
  404.     (often this involves flipping out a plastic paper catcher on the 
  405.     end) so the pages feed straight through and stack face up. Then 
  406.     acquire and build psutils, and run your document through the 
  407.     following commands: 
  408.  
  409.   
  410.        pstops '2:0'           <original.ps >odd.ps
  411.        pstops '2:1U@1(1w,1h)' <original.ps >even.ps
  412.   
  413.     This puts the even and odd pages in different files, and rotates 
  414.     the even pages 180 degrees so the top and bottom are reversed. This 
  415.     lets you feed the paper back through with the old trailing edge at 
  416.     the front; since pages get the most severe curl at the leading edge 
  417.     this also helps reduce jamming. Print odd.ps, flip the output pile 
  418.     face down and backwards, put it back in the input magazine, and 
  419.     print even.ps. 
  420.  
  421.     If the printer is fed by a shared print queue, you can leave the 
  422.     paper magazine out after you put the first pass pages into it, 
  423.     before you submit the second half, then make sure your job is at 
  424.     the front of the queue (waiting for you to replace the paper tray) 
  425.     before you reinsert the tray. 
  426.  
  427.     Alternatively, particularly with serially-interfaced printers, 
  428.     there's a long enough delay to pull the paper tray out between two 
  429.     print jobs, so you can submit them both, then pull the tray out as 
  430.     soon as the last page of the first job finishes. The ``pstops'' 
  431.     invocations report how many pages they emit, so you can count pages 
  432.     to determine when the first one is done. 
  433.  
  434.  
  435. ------------------------------
  436.  
  437. Subject: 2.4 How do I suppress the power-on start page? 
  438.  
  439.     Disabling the start page is described in your printer's PostScript 
  440.     supplement. The most common sequence is ``serverdict begin 0 
  441.     exitserver statusdict begin false setdostartpage end''. 
  442.  
  443.  
  444. ------------------------------
  445.  
  446. Subject: 2.5 How do I make a downloaded font ``persistent''? 
  447.  
  448.   
  449.   %!PS-Adobe-2.0 ExitServer
  450.   %%BeginExitServer: 0
  451.   serverdict begin 0 exitserver
  452.   %%EndExitServer
  453.   % Test for existence of font, abort if present.
  454.   % This won't work on a printer with a hard disk!
  455.   /str 32 string def
  456.   /Eurostile dup FontDirectory exch known
  457.   { str cvs print ( is already loaded!\n) print flush quit }
  458.   { (loading font ) print str cvs print (\n) print flush }
  459.   ifelse
  460.   %% Font follows...
  461.   
  462.     The part following ``%%EndExitServer'' is optional. If you use 
  463.     it, change Eurostile to the name of the font. The default PFA 
  464.     behavior is to use up additional VM for the new copy if another 
  465.     copy has already been downloaded. 
  466.  
  467.  
  468. ------------------------------
  469.  
  470. Subject: 2.6 How do I remove a persistent (``permanent'') downloaded font? 
  471.  
  472.     In PostScript Level 2, you can use the undefinefont operator to 
  473.     remove fonts selectively. 
  474.  
  475.     The only reliable method in PostScript Level 1 is to restart the 
  476.     printer, for example with: 
  477.  
  478.   
  479.     serverdict begin 0 exitserver
  480.     systemdict /quit get exec
  481.   
  482.     Of course, the real solution is just to not download persistent 
  483.     fonts unless you really want them to persist indefinitely. If you 
  484.     want them only for one job, download them as part of the job. 
  485.  
  486.  
  487. ------------------------------
  488.  
  489. Subject: 2.7 How do I reset the printer without power-cycling? 
  490.  
  491.     Most printers can be reset by issuing ``serverdict begin 0 
  492.     exitserver systemdict /quit get exec''. 
  493.  
  494.  
  495. ------------------------------
  496.  
  497. Subject: 2.8 About saving files 
  498.  
  499.     Adobe recommends that driver writers do not put EOT (control-D) 
  500.     into files when saving to disk. Normally, the EOT is a part of the 
  501.     protocol for parallel and serial ports and never hits the 
  502.     PostScript interpreter. 
  503.  
  504.     Drivers that do embed EOD can create problems for devices that 
  505.     allow other communication methods (e.g. AppleTalk, Ethernet, and 
  506.     SCSI) where the EOT is not part of the communications protocol. It 
  507.     is useful to redefine EOT in these instances so that the 
  508.     interpreter does not generate an error. The recommended 
  509.     redefinition is: 
  510.  
  511.   
  512.                    (\004) cvn {} def
  513.   
  514.     This should convert any stand-alone embedded EOTs into a null 
  515.     procedure. This definition does not cause all 004 characters to be 
  516.     consumed, it just prevents an "undefined" error if you try to 
  517.     execute one. 
  518.  
  519.  
  520. ------------------------------
  521.  
  522. Subject: 2.9 What's the control-D business? 
  523.  
  524.     PostScript printers communicating over serial lines use control-D 
  525.     as an end of job indicator. The host computer should then wait for 
  526.     the printer to send a control-D back to indicate that the job has 
  527.     finished. Managing the serial protocol between host and printer 
  528.     should be done by some form of print service, but if you're unsure 
  529.     whether your print service is doing it, it's an idea to send one 
  530.     yourself. 
  531.  
  532.     PC type computers frequently do not have any kind of printer 
  533.     manager and applications end up sending control-D characters to the 
  534.     printer, sometimes before and after a job. PC applications 
  535.     frequently embed a control-D as the first character in the print 
  536.     file, presumably to flush out any other jobs, and thereby breaking 
  537.     the Adobe Document Structuring Conventions. There is a way to turn 
  538.     off generation off the control-D in Windows (anybody know it?). 
  539.  
  540.     According to the PRINTERS.WRI file that is included with MS Windows 
  541.     3.x and up, you can place a line 
  542.  
  543.   
  544.                   CtrlD=0
  545.   
  546.     in the WIN.INI sections for any postscript printers for which you 
  547.     wish to supress the Control-D generation. This usually works as 
  548.     long as you're using a specific printer, i.e. Apple LaserWriter, 
  549.     QMS820, etc ] . However if you use the generic ``PostScript 
  550.     printer'' driver, it does not work. There is a freeware program 
  551.     called ctrld that will let users select if a given ps driver should 
  552.     output control-D's or not. It can be found at ftp.cica.indiana.edu 
  553.     in the file ftp/pub/pc/win3/misc/ctrld10.zip. 
  554.  
  555.     The shareware package WLPRSPL (an LPR spooler for Windows) includes 
  556.     a convenient utility program for listing the relevant printers and 
  557.     turning the option off or on. 
  558.  
  559.     If you want to prevent applications from doing this, you could use 
  560.     a spooler which would look at the end of every outgoing file and 
  561.     drop the control-D on the end if there happened to be one. 
  562.  
  563.     If you want a spooler, check out lprps. 
  564.  
  565.  
  566. ------------------------------
  567.  
  568. Subject: 2.10 Why does the printer say ``still busy'' when my document is 
  569.     done printing? 
  570.  
  571.     Sometimes when you finish a print job, the printer ``Ready'' light 
  572.     keeps flashing for a minute or so. Somehow, the printer has 
  573.     received some character(s) after the control-D which was sent 
  574.     immediately after the PostScript file. The most common is that a 
  575.     newline has been inserted after the control-D. The printer took 
  576.     these character(s) to be another program, and eventually timed-out 
  577.     while waiting for the rest of it. This can happen because of the 
  578.     host not waiting for the printer to finish. 
  579.  
  580.  
  581. ------------------------------
  582.  
  583. Subject: 2.11 How should I set up my spoolers? 
  584.  
  585.     Since PostScript usually is prefixed with ``%!'', it's easy to 
  586.     educate your spooler to autoselect between passing raw PostScript 
  587.     through to the printer or doing an ``ASCII-to-PostScript'' 
  588.     conversion first. There are many packages that will do this, 
  589.     including Transcript and psxlate. 
  590.  
  591.     Unfortunately, many PostScript applications generate PostScript 
  592.     without a proper ``%!'' magic cookie. 
  593.  
  594.     The spooler should be responsible for transmitting the ``job 
  595.     termination code'' (a control-D on serially-connected printers) to 
  596.     the printer, not the application. Do yourself a favor and disable 
  597.     (or filter out) control-Ds in your applications and generate them 
  598.     in the spooler. This will be far more reliable in the face of 
  599.     arbitrary input. 
  600.  
  601.  
  602. ------------------------------
  603.  
  604. Subject: 2.12 What are PPD files? 
  605.  
  606.     Adobe Postscript Printer Description (PPD) files describe how to 
  607.     use the special features for a specific Postscript printer. They 
  608.     are suppose to be human-readable, but they are really only readable 
  609.     by PostScript gurus. It is the responsibility of the printer 
  610.     manufacturer to supply PPD files. However, the Adobe mail server 
  611.     has many of them. (see the Section 6, ``About Adobe'') 
  612.  
  613.     Adobe Technical Document 5003 - PPD Specification describes how to 
  614.     read and parse PPD files. You can find it on the Adobe mail server, 
  615.     or by anonymous ftp to ftp.adobe.com:/pub/adobe/Documents/5003.PPD 
  616.     _Spec.ps. 
  617.  
  618.  
  619. ------------------------------
  620.  
  621. Subject: 2.13 What's a timeout error? 
  622.  
  623.     The wait timeout is the maximum time the PostScript interpreter 
  624.     will wait for input before aborting. The timeout interval begins 
  625.     when the interpreter finishes executing everything it has received 
  626.     so far and starts waiting for the host to send it more data. If 
  627.     this timeout expires and no more data arrives, a timeout occurs. 
  628.  
  629.     In particular, a compute-bound job (or one that goes into an 
  630.     infinite loop) will not encounter a wait timeout, since it is not 
  631.     waiting. The long diatribe about the need to "keep sending stuff" 
  632.     and problems with long compute-bound jobs is totally off the mark. 
  633.     The data channel may stop due to flow control, and may stay stopped 
  634.     for long periods if the printer is very busy. This is perfectly OK 
  635.     and won't cause a timeout. 
  636.  
  637.     Don't disable the wait timeout. The whole point of the wait timeout 
  638.     is to prevent the interpreter from being indefinitely tied up by a 
  639.     host application that has crashed, a communication channel that has 
  640.     been disconnected, or whatever. This is particularly important for 
  641.     networked printers. The only situation in which disabling timeouts 
  642.     is appropriate is when debugging applications or drivers, since you 
  643.     don't want the printer timing out while the host is at a breakpoint 
  644.     or something. 
  645.  
  646.  
  647. ------------------------------
  648.  
  649. Subject: 2.14 Can I tell if my printer is color or black/white? 
  650.  
  651.     If you tried testing for the presence of ``colorimage'', your 
  652.     application will fail on PostScript level 2 printers. Several 
  653.     applications make this mistake, simply testing for the presence of 
  654.     a color operator (``colorimage'', ``setcmykcolor'', etc.). This is 
  655.     not sufficient -- some level 1 PostScript black and white devices 
  656.     and all level 2 devices include the color operators. 
  657.  
  658.     However, before you do this, you should ask yourself *why* you want 
  659.     to know. There are really two reasons an application might care 
  660.     about the color capabilities of a printer. 
  661.  
  662.     1. To determine if the printer will accept PostScript language 
  663.     programs using the color extensions (colorimage, setcmykcolor, 
  664.     etc.) 
  665.  
  666.     2. To determine if the printer, as currently configured, will 
  667.     actually produce color output. This is what processcolors tells 
  668.     you. 
  669.  
  670.     These are entirely different questions, and developers should make 
  671.     sure they are asking the right one. (1) is a language compatibility 
  672.     question, similar to the issue of Level 1 versus Level 2 (see red 
  673.     book, appendices A and D). (2) is a device dependent query, which 
  674.     is essentially independent of (1). 
  675.  
  676.     In particular, it makes sense to ask (2) only if the application 
  677.     intends to take different actions depending on the outcome. For 
  678.     example, a CAD application might paint objects with stipple 
  679.     patterns on a monochrome device but true color on a color device. 
  680.     Or a prepress application might want to query and/or change the 
  681.     many Level 2 page device parameters dealing with production of 
  682.     separations (see PostScript Language Supplement for version 2012 or 
  683.     greater). 
  684.  
  685.     On the other hand, if an application is not going to do such 
  686.     things, it should ask only question (1). If the printer will accept 
  687.     the color extensions, the application should sent it color output, 
  688.     whether or not the printer will actually produce color. That way, 
  689.     the PostScript language file captures the application's intent, and 
  690.     color will be produced if the file is later diverted to a color 
  691.     printer. 
  692.  
  693.     Some times it's sensible to make such a test, though. For example, 
  694.     an application might want to display red and green on a color 
  695.     device, but a varying fill pattern on a black and white device 
  696.     since red and green are difficult to distinguish when rendered as 
  697.     gray. 
  698.  
  699.     In ``statusdict'', the ``processcolors'' operator, if present, 
  700.     returns the number of device colors. Black and white level 2 
  701.     devices I have tested (TI microLaser Turbo, Apple LaserWriter IIg) 
  702.     omit ``processcolors''. Level 2 Color devices (such as the 
  703.     Tektronix Phaser III PXi) include it, and it returns the number of 
  704.     device colors. 
  705.  
  706.     So, on both level 1 and level 2, the correct technique is to test 
  707.     for the presence of ``processcolors'' in ``statusdict'' and assume 
  708.     black and white if it is not present. If it is present, execute it 
  709.     and test the result for a ``1'', indicating black and white. 
  710.  
  711.   
  712.           % returns true for black & white, false otherwise
  713.    
  714.           /black-and-white-device
  715.           {       statusdict begin
  716.                   /processcolors where
  717.                   { pop processcolors } { 1 } ifelse
  718.                   end
  719.                   1 eq
  720.           } def
  721.   
  722.  
  723. ------------------------------
  724.  
  725. Subject: 3 Formats and Conversions 
  726.  
  727.     This section describes formats that can be converted to and from 
  728.     PostScript, and how to convert them. Encapsulated PostScript and 
  729.     Fonts have their own sections. 
  730.  
  731.  
  732. ------------------------------
  733.  
  734. Subject: 3.1 How can I convert PostScript to some other graphics format? 
  735.  
  736.     Since PostScript is not just a picture-description language, but in 
  737.     fact a complete programming language, you will need a complete 
  738.     PostScript interpreter to convert or display a PostScript graphic. 
  739.     See the comp.sources.postscript FAQ for an index of all PostScript 
  740.     related programs. 
  741.  
  742.     Try using Ghostscript. 
  743.  
  744.  
  745. ------------------------------
  746.  
  747. Subject: 3.2 How can I convert PostScript to a bitmap or pixmap? 
  748.  
  749.     Use Ghostscript, and build the devices under gs pbmraw, pbm.dev, 
  750.     etc. (See devs.mak under the sources for gs) The following converts 
  751.     file.ps in file.ppm: 
  752.  
  753.     gs -sDEVICE=ppmraw -sOutputFile=file.ppm file.ps 
  754.  
  755.     Or try using the Ghostscript tools ps2image.ps or pstoppm.ps. Or 
  756.     use the NETPBM tool pstopnm. Netpbm (a descendant of the PBMPLUS 
  757.     utilities) can then convert that image into whatever format you 
  758.     want. 
  759.  
  760.     You can also use the ImageMagick-tools program ``convert''. Try 
  761.     ftp.x.org in contrib/ImageMagick.tar.Z. 
  762.  
  763.     If you have the new xv installed, it can now read PostScript files, 
  764.     and it stores them to any format. 
  765.  
  766.  
  767. ------------------------------
  768.  
  769. Subject: 3.3 How can I convert HPGL to PostScript? 
  770.  
  771.     Use hp2ps. 
  772.  
  773.  
  774. ------------------------------
  775.  
  776. Subject: 3.4 How can I convert DVI to PostScript? 
  777.  
  778.     Use dvips. 
  779.  
  780.  
  781.     3.5 How can I convert HP Laserjet language (PCL) to PostScript? 
  782.  
  783.     Use lj2ps for simple PCL. Alternatively, another lj2ps, from 
  784.     psroff3.0, is a little more complete. 
  785.  
  786.     hp2pbm can convert all of PCL4 (up to and including rasters, 
  787.     downloaded fonts and macros) into PostScript, G3 and any other 
  788.     PBM-supposed format. 
  789.  
  790.  
  791. ------------------------------
  792.  
  793. Subject: 3.6 How can I convert TeX PK format font to PostScript? 
  794.  
  795.     Psroff3.0 contains programs that can convert TeX PK format or HP 
  796.     SFP format fonts into PostScript bitmap fonts along with 
  797.     rearranging encoding, etc. While bitmap bfonts scale poorly, this 
  798.     is sometimes of use in special circumstances. 
  799.  
  800.  
  801. ------------------------------
  802.  
  803. Subject: 3.7 How do I embed PostScript into troff? 
  804.  
  805.     Most troffs can be ``coerced'' into including PostScript figures. 
  806.     The best approach is a configuration that takes EPS PostScript and 
  807.     can automatically scale it, or tell troff how big the picture is. 
  808.     Groff and DWB 3 have this built in. 
  809.  
  810.     psfig is an add-on EPS inclusion handler that can add this 
  811.     capability to other versions of troff, provided that a compatible 
  812.     PostScript driver is used (Psroff 3.0 for ditroff or CAT troff, 
  813.     Transcript for ditroff). See the comp.text FAQ for more detail. 
  814.  
  815.  
  816. ------------------------------
  817.  
  818. Subject: 3.8 How do I embed PostScript into LaTeX or TeX? 
  819.  
  820.     You should use an add-on program for seamless PostScript inclusion. 
  821.  
  822.     Use psfig. 
  823.  
  824.     If your LaTeX is simple, but your PostScript is fancy, try using 
  825.     LameTeX. 
  826.  
  827.     If you need a good compromise, use pstricks. 
  828.  
  829.     See the comp.text.tex FAQ. 
  830.  
  831.  
  832. ------------------------------
  833.  
  834. Subject: 3.9 How can I convert an image to PostScript? 
  835.  
  836.     First determine what format your images are in. PBMPLUS will have 
  837.     converters for most image formats. 
  838.  
  839.     To convert an image to PostScript with the X Window System, you can 
  840.     display the image on the screen, and grab it with xv, which can 
  841.     save the image in a PostScript file. 
  842.  
  843.     A more general alternative in X Window System would be to use the 
  844.     PPM, PGM and PBM utilities in the X11R4 and X11R5 distributions. 
  845.  
  846.  
  847. ------------------------------
  848.  
  849. Subject: 3.10 How can I convert ASCII text to PostScript? 
  850.  
  851.     Unless your printer is smart about raw ASCII, you can't just send 
  852.     the ASCII to a PostScript printer, because the printer will attempt 
  853.     to interpret your ASCII file as PostScript code. You need a program 
  854.     which will wrap some PostScript code around your ASCII file. 
  855.  
  856.     Try any of the following programs: asciiprint.ps, ato2pps, cz, 
  857.     ETSR, i2ps, lpp, lwf, POSTPRN, printer, psf, psfx80, PSR, ps2txt, 
  858.     pstext, swtext, text2ps, TranScript, spike.ps, enscript, nenscript, 
  859.     a2ps, asc2ps, ascii2ps, crossword.ps, double.ps, landscape.ps, 
  860.     numbered.ps, portrait.ps, or wide.ps. 
  861.  
  862.     If you want to make something fancy, why not use a word processor? 
  863.     Most of them can ``include'' ASCII directly from a file and produce 
  864.     PostScript. 
  865.  
  866.  
  867. ------------------------------
  868.  
  869. Subject: 3.11 How can I convert PostScript to ASCII? 
  870.  
  871.     In general, when you say ``I want to convert PostScript to ASCII'' 
  872.     what you really mean is ``I want to convert MacWrite (which makes 
  873.     PostScript output) to ASCII'' or ``I want to convert somebody's TeX 
  874.     document (which I have in PostScript) to ASCII''. 
  875.  
  876.     Unfortunately, programs like these (if they're smart) do a lot of 
  877.     fancy stuff like kerning, which means that where they would 
  878.     normally execute the postscript command for 
  879.  
  880.   
  881.       ``print water fountain''
  882.   
  883.     instead they execute the postscript command for 
  884.  
  885.   
  886.       ``print wat''      (move a little to get the spacing *just* right)
  887.       ``print er''       (move a little to get the spacing *just* right)
  888.       ``print foun''     (move a little to get the spacing *just* right)
  889.       ``print tain''     (move a little to get the spacing *just* right)
  890.   
  891.     So if I write a program to look through a PostScript file for 
  892.     strings, like ps2ascii.pl, It can't tell where the words really 
  893.     end. Here my program would see 4 strings 
  894.  
  895.   
  896.   ``wat'' ``er'' ``foun'' ``tain''
  897.   
  898.     And it doesn't see any difference between the spacing between 
  899.     ``found'' and ``tain'' (not a word break) and the spacing between 
  900.     ``er'' and ``foun'' (a real word break). 
  901.  
  902.     The problem is that PostScript for text formatting is usually 
  903.     produced machine generated by a text formatter. A PostScript 
  904.     generator like dvips might have a special command like ``boop'' 
  905.     that differentiates between a real world break and a fake one. But 
  906.     every text formatter that generates PostScript has their own name 
  907.     for the ``boop'' command. 
  908.  
  909.     So you really want a ``PostScript to ASCII converter for dvips 
  910.     output''. 
  911.  
  912.     The only general solution I can see would be to redefine the show 
  913.     operator to print out the currentpoint for every letter being 
  914.     printed, like gs2asc, and then make up an ASCII page based on this 
  915.     by sticking ASCII characters where they go in a two-dimensional 
  916.     array. That would convert PostScript to ASCII ``formatted''. 
  917.  
  918.     But even that wouldn't solve the problem, because special bitmap 
  919.     fonts and and standard fonts like Symbol don't always print a ``P'' 
  920.     when you say the letter ``P''. Sometimes they print the greek Pi 
  921.     symbol or a chess piece or a ZapfDingBat. 
  922.  
  923.     Use ps2a, ps2ascii, ps2txt, ps2ascii.ps or ps2ascii.pl. 
  924.  
  925.  
  926. ------------------------------
  927.  
  928. Subject: 3.12 How do I convert between PFB, PFA, Mac, PFM, and AFM? 
  929.  
  930.     Write or call Y and Y Software, listed in the fonts section as a 
  931.     vendor. For NEXTSTEP systems, write or call Trilithon Software, 
  932.     also listed in the fonts section as a vendor. 
  933.  
  934.  
  935. ------------------------------
  936.  
  937. Subject: 4 Fonts 
  938.  
  939.     This section answers questions about fonts as they pertain to 
  940.     PostScript. See the comp.fonts FAQ for more information about 
  941.     fonts. 
  942.  
  943.  
  944. ------------------------------
  945.  
  946. Subject: 4.1 What are .PFB and .PFA files? 
  947.  
  948.     ``PFB'' stands for Printer Font Binary, and is a STORAGE FORMAT in 
  949.     which Adobe Type 1 font programs are usually distributed for IBM PC 
  950.     and compatibles. Many application programs support fonts in PFB 
  951.     format, and refer to them as ``downloadable''. 
  952.  
  953.     Macintosh uses a radically different binary storage format than PC. 
  954.     See below for some details. 
  955.  
  956.     PFB files usually appear in several sections, each section preceded 
  957.     by a binary header containing the type of the section (ASCII, 
  958.     binary, or end of file) and the length of the section. Because of 
  959.     the presence of the binary section headers, and the possible 
  960.     presence of binary data sections, PFB files cannot in general be 
  961.     sent directly to a PostScript printer. Application programs like 
  962.     dvips which use fonts in PFB format unpack the font into ASCII 
  963.     format before sending it to the printer. If you would like to use a 
  964.     font which is in PFB format, you must unpack the font to make a PFA 
  965.     (Printer Font ASCII) file. Adobe Systems supply a font downloader 
  966.     for PC's which turns the PFB format into PFA format on the fly as 
  967.     it's being downloaded. 
  968.  
  969.     ``PFA'' stands for Printer Font ASCII, which is the unpacked 
  970.     version of a PFB file. In PFB, the data is stored as-is. In a PFA, 
  971.     any binary data present in a former PFB file is stored as ``ascii 
  972.     hex''--meaning each byte of binary data is turned into two ASCII 
  973.     characters representing the hexdecimal value. 
  974.  
  975.     Once you have the PFA file, just send it to the printer ahead of 
  976.     your file, and use the font like any other. There are several 
  977.     programs which can do the conversion from PFB to PFA for you. Try 
  978.     t1utils. 
  979.  
  980.     Details of the PFB format can be found in Adobe Technical Note # 
  981.     5040, ``Supporting Downloadable PostScript Fonts''. 
  982.  
  983.  
  984. ------------------------------
  985.  
  986. Subject: 4.2 How does Macintosh Store PostScript Fonts? 
  987.  
  988.     To start off understanding how Macintosh stores PostScript fonts, 
  989.     first you need to know that a Macintosh file consists of two 
  990.     different parts, called ``forks''. The two forks of a Macintosh 
  991.     file are called the ``resource fork'' and the ``data fork''. 
  992.  
  993.     The data fork normally contains the data of the file. In the case 
  994.     of a text editor, for instance, the data fork contains the text. 
  995.  
  996.     The resource fork contains system (resource) information about the 
  997.     file: who owns the file, its icon maybe, and other information. The 
  998.     various bits of information in the resource fork are contained in a 
  999.     complex structure. One of the items is a resource map, detailing 
  1000.     the different kinds of resources and their positions in the 
  1001.     resource fork. 
  1002.  
  1003.     The reason you need to know all this is because PostScript Type 1 
  1004.     fonts are stored in the resource fork of Macintosh files. Why this 
  1005.     was done is a historical mystery now, because the information could 
  1006.     just as easily have been stored in the data fork in a format 
  1007.     similar to PFB, and unpacking fonts would have been a whole lot 
  1008.     easier. 
  1009.  
  1010.     PostScript Type 1 fonts are stored in resources with the name 
  1011.     POST''. If you aren't familiar with the layout of resource forks, 
  1012.     study the ``Resource Manager'' chapter of the Inside Macintosh 
  1013.     books. Details of Macintosh PostScript Type 1 storage format can be 
  1014.     found in Adobe Technical Note # 5040, ``Supporting Downloadable 
  1015.     PostScript Fonts''. The information in the Adobe Technical Note is 
  1016.     incomplete in the sense that you need to understand the layout of 
  1017.     Macintosh resource forks to make sense of the information. 
  1018.  
  1019.     In the majority of cases, you can assume that the POST resources 
  1020.     are stored contiguously in the resource fork. Unfortunately, there 
  1021.     are a few cases where this isn't true, and the resulting PFA file 
  1022.     will be incorrect. 
  1023.  
  1024.     POST resources occur in five types. Type 0 are comments. Type 1 are 
  1025.     ASCII data. Type 2 are binary data. Type 3 are end of this font 
  1026.     program. Type 4 means that the remainder of this font appears in 
  1027.     the data fork of the file! Type 5 means end of file. 
  1028.  
  1029.     Having talked about PostScript Type 1 fonts being stored in the 
  1030.     resource fork, why is there a case where the font comes out of the 
  1031.     data fork? Some PostScript Type 3 fonts are stored in this manner. 
  1032.  
  1033.  
  1034. ------------------------------
  1035.  
  1036. Subject: 4.3 How can I convert a PostScript font to TeX's PK format? 
  1037.  
  1038.     Use ps2pk or try out the GNU font utilities in fontutils. 
  1039.  
  1040.  
  1041. ------------------------------
  1042.  
  1043. Subject: 4.4 Why are Adobe fonts hidden? 
  1044.  
  1045.     In PostScript level 1, Adobe's fonts were hidden because they 
  1046.     didn't want people pirating copies instead of paying for them. 
  1047.     That's why you can't do a pathforall on a charpath. 
  1048.  
  1049.     PostScript Level Two has removed the restriction, in the words of 
  1050.     the new Red Book, ``for most fonts''. There will still be some 
  1051.     vendors who will want to restrict access. Japanese font vendors, 
  1052.     for example, are concerned about piracy -- given the work that goes 
  1053.     into an 8,000-character Kanji font. 
  1054.  
  1055.  
  1056. ------------------------------
  1057.  
  1058. Subject: 4.5 How do I get bitmap representations of Adobe fonts? 
  1059.  
  1060.     On the IBM PC, use the Font Foundry program included with the font. 
  1061.     If you don't have it, contact Adobe for an upgrade. 
  1062.  
  1063.  
  1064. ------------------------------
  1065.  
  1066. Subject: 4.6 What are some good ftp sites for fonts? 
  1067.  
  1068.   
  1069.   ftp.cs.umb.edu
  1070.   sumex-aim.stanford.edu
  1071.   archive.umich.edu
  1072.   ftp.cica.indiana.edu    /pub/pc/win3/fonts
  1073.   colonsay.dcs.ed.ac.uk   /pub/postscript/fonts
  1074.   
  1075.   
  1076.   For the NeXT platform, fonts are available on the NeXT-FTP-archives,
  1077.           sonata.cc.purdue.edu :/pub/next/graphics/fonts
  1078.           fiasko.rz-berlin.mpg.de :/pub/next/fonts
  1079.   
  1080.     For Macintosh, look in sumex-aim.stanford.edu, 
  1081.     mac.archive.umich.edu, and ftp.cs.umb.edu (192.12.26.23), in 
  1082.     pub/tex/ps-screenfonts.tar.Z. 
  1083.  
  1084.     Color PostScript samples and many other PostScript programs are 
  1085.     available from irisa.irisa.fr. 
  1086.  
  1087.  
  1088. ------------------------------
  1089.  
  1090. Subject: 4.7 How can I re-encode a font? 
  1091.  
  1092.     See ddev.ps for an example for code that does this. You can find it 
  1093.     by ftp to wilma.cs.brown.edu:pub/postscript/ddev.ps. 
  1094.  
  1095.  
  1096. ------------------------------
  1097.  
  1098. Subject: 4.8 What's the difference between a Type 1 and a Type 3 font? 
  1099.  
  1100.     The Type 1 font format is a compact way of describing a font 
  1101.     outline using a well-defined language that can be quickly 
  1102.     interpreted. The language contains operations to provide the 
  1103.     rasterizer with additional information about a character, known as 
  1104.     hints. The hints are additional information which describes how to 
  1105.     adjust the representation of the character to make it look good 
  1106.     when the font size is small compared to the device resolution. The 
  1107.     Type 1 font format is defined in the book ``The Adobe Type 1 Font 
  1108.     Format'', also known as the black book, for the colors on its 
  1109.     cover. 
  1110.  
  1111.     The Type 1 font format has nothing to do with TrueType, which is 
  1112.     another font format defined by Apple. The Type 1 font format has 
  1113.     been around quite a while, and is used on a wide variety of 
  1114.     platforms to obtain scalable fonts. 
  1115.  
  1116.     Most clone interpreters will not have Adobe's proprietary rendering 
  1117.     technology which interprets font hints to improve the appearance of 
  1118.     fonts shown at small sizes on low-resolution devices. The 
  1119.     exceptions (PowerPage and UltraScript) have their own hint 
  1120.     interpreters. 
  1121.  
  1122.     The Type 3 font format is a way of packaging up PostScript 
  1123.     descriptions of characters into a font, so that the PostScript 
  1124.     interpreter can rasterize them. 
  1125.  
  1126.     It is easier to create a Type 3 font program by hand than to create 
  1127.     the corresponding Type 1 font program. Type 3 font programs have 
  1128.     access to the entire PostScript language to do their imaging, 
  1129.     including the 'image' operator. They can be used for bitmapped 
  1130.     fonts, although that is certainly not a requirement. The Type 3 
  1131.     font format contains no provisions for 'hinting', and as such Type 
  1132.     3 font programs cannot be of as high a quality at low resolutions 
  1133.     as the corresponding Type 1 font program. 
  1134.  
  1135.     Both formats are scalable formats, and both can be run on any 
  1136.     PostScript interpreter. However, because of the requirement that a 
  1137.     Type 3 font program have a full PostScript interpreter around, Type 
  1138.     3 font programs cannot be understood by the Adobe Type Manager. 
  1139.     Only Type 1 font programs can. 
  1140.  
  1141.     Why bother making a font that's just made up of bitmaps? Once a 
  1142.     character from a font has been rendered, the bitmap will be saved 
  1143.     in a cache, and another instance of the same character at the same 
  1144.     size and orientation can be quickly drawn without recalculation. 
  1145.  
  1146.     Because of Adobe Type Manager's wide availability on a large number 
  1147.     of platforms (PC, Mac, and Unix), the Type 1 font format makes an 
  1148.     excellent cross-platform scalable font standard. 
  1149.  
  1150.  
  1151. ------------------------------
  1152.  
  1153. Subject: 4.9 What vendors sell fonts for PostScript printers? 
  1154.  
  1155.     PostScript font vendors are many and varied. Here is a partial 
  1156.     list. 
  1157.  
  1158.  
  1159.  
  1160.     Adobe Systems 
  1161.       sells a variety of fonts. With the huge number of third-party 
  1162.       Type 1 vendors, in recent years Adobe have specialized in 
  1163.       creating their own ``Adobe Originals'' -- high-quality fonts, 
  1164.       some of which are their renditions of classic faces (Adobe 
  1165.       Garamond) and some of their own devising (Stone, Utopia, ...). 
  1166.       Adobe Systems, 1585 Charleston Road, Mountain View, CA 94039. 
  1167.       (415) 961-4400 
  1168.  
  1169.  
  1170.     AGFA Compugraphic, 
  1171.       90 Industrial Way, Wilmington, Massachusetts 01887. (508) 
  1172.       658-5600. 
  1173.  
  1174.  
  1175.     Bear Rock Technologies 
  1176.       specializes in bar code fonts. 4140 Mother Lode Drive, Suite 100, 
  1177.       Shingle Springs California 95682. 
  1178.  
  1179.  
  1180.     Bitstream, 
  1181.       Athenaeum House, Cambridge, MA 02142. (617) 497-6222. 
  1182.  
  1183.  
  1184.     Callifonts 
  1185.       has a really nice looking set of calligraphy typefaces. P.O. Box 
  1186.       224891, Dallas, TX 75222. (214) 504-8808. 
  1187.  
  1188.  
  1189.     Casady and Greene, 
  1190.       22734 Portola Drive, Salinas, CA 93908. (408) 484-9228. 
  1191.  
  1192.  
  1193.     Ecological Linguistics, 
  1194.       specializes in non-Roman alphabets. Ecological Linguistics, P. O. 
  1195.       Box 15156, Washington D. C. 20003. 
  1196.  
  1197.  
  1198.     Emigre Graphics 
  1199.       4475 ``D'' Street / Sacramento CA 95819 (800) 944 9021 ] Over 70 
  1200.       faces, all PostScript Type 1 ATM compatible, including the 
  1201.       omnipresent Modula and infamous Template Gothic. Almost all faces 
  1202.       are ``must haves'' for graphic designers. Call for free catalog. 
  1203.  
  1204.  
  1205.     The Font Company 
  1206.       12629 North Tatum Boulevard, Suite 210, Phoenix Arizona 85032. 
  1207.       (602) 998-9711. 
  1208.  
  1209.  
  1210.     Image Club, 
  1211.       # 5 1902 11th St Southeast, Calgary, Alberta T2G 2G2, Canada. 
  1212.       (403) 262-8008. 
  1213.  
  1214.  
  1215.     Lanston 
  1216.       specializes in display faces. 
  1217.  
  1218.  
  1219.     Letraset 
  1220.       specializes in fancy kinds of script fonts, Letraset, 40 
  1221.       Eisenhower Drive, Paramus, New Jersey 07652. (201) 845-6100 
  1222.  
  1223.  
  1224.     Linguists Software 
  1225.       specializes in non-Roman alphabets (Farsi, Greek, Hangul, Kanji, 
  1226.       etc.) Linguists Software, P. O. Box 580, Edmonds, Washington 
  1227.       98020-0580. (206) 775-1130. 
  1228.  
  1229.  
  1230.     Monotype, 
  1231.       53 West Jackson Boulevard, Suite 504, Chicago, IL 60604. 
  1232.  
  1233.  
  1234.     Page Studio Graphics, 
  1235.       Chandler, Arizona, specialize in symbols fonts such as Mac icons, 
  1236.       keyboards, and others, Page Studio Graphics, 3175 North Price 
  1237.       Road, # 1050, Chandler, Arizona 85224. (602) 839-2763. 
  1238.  
  1239.  
  1240.     Software Complement 
  1241.       specializes in creating logo fonts. 8 Penn Avenue, Metamoras, 
  1242.       Pennsylvania 18366 USA. 
  1243.  
  1244.  
  1245.     The Font Company 
  1246.  
  1247.  
  1248.     TreacyFaces 
  1249.  
  1250.  
  1251.     Trilithon Software, 
  1252.       Portola Valley, California can supply fonts from the Adobe Type 
  1253.       library for NEXTSTEP. If you're working on NEXTSTEP, getting 
  1254.       fonts in the correct form with ancillary information and 
  1255.       downloaders and such is important. You can convert Mac fonts to 
  1256.       NEXTSTEP (PFA) format, but NEXTSTEP demands AFM files as well, 
  1257.       and many Mac/PC font vendors omit AFM files because Mac/PC apps 
  1258.       don't use them. For Adobe fonts for NEXTSTEP, save yourself a lot 
  1259.       of hassle by getting the fonts from Trilithon. 
  1260.  
  1261.       If you want non-Adobe fonts for NEXTSTEP, Trilithon Software can 
  1262.       supply font conversion tools to go from Macintosh or PC format to 
  1263.       NEXTSTEP format. The conversion tools generate AFM files if none 
  1264.       are supplied with the fonts, and sanity check AFM files for 
  1265.       correctness when they are supplied. 
  1266.  
  1267.       Two Ohlone, Portola Valley, California 94028 USA. Telephone: 
  1268.       (415) 325-0767, FAX: (415) 325-0768. E-Mail: info@trilithon.com. 
  1269.  
  1270.  
  1271.     URW 
  1272.       supplies high-quality fonts at low prices. They are also the 
  1273.       creators of the top of the line font creation and editing 
  1274.       software called Ikarus. URW, 4 Manchester Street, Nashua, New 
  1275.       Hampshire 03060. (603) 882-7445. 
  1276.  
  1277.  
  1278.     Y and Y Software 
  1279.       , 106 Indian Hill, Carlisle Massachusetts 10741 USA. (508) 
  1280.       371-3286. Sells a Font Metric Manipulation Package for DOS with 
  1281.       lots of interesting utilities. 
  1282.  
  1283.     Many more font vendors exist. Look in magazines and other sources. 
  1284.     Check the Usenet newsgroup comp.fonts. Look in U & lc, published by 
  1285.     ITC, for long lists of vendors. 
  1286.  
  1287.  
  1288. ------------------------------
  1289.  
  1290. Subject: 4.10 What are ATM fonts? 
  1291.  
  1292.     There has been a rash of misunderstanding about the nature of Type 
  1293.     1 fonts and what people call ATM fonts. ATM fonts are Adobe Type 1 
  1294.     fonts. ATM stands for Adobe Type Manager -- a utility to render 
  1295.     smooth characters on Macintosh and PC screens, from font outlines 
  1296.     (Type 1 fonts) instead of using bitmap fonts. In one sense, there's 
  1297.     no such thing as an ``ATM font'' -- ATM interprets Type 1 fonts, so 
  1298.     there's no need to create a new name. A correctly constructed Type 
  1299.     1 font can be interpreted by ATM. 
  1300.  
  1301.  
  1302. ------------------------------
  1303.  
  1304. Subject: 4.11 What are Multiple Master Fonts? 
  1305.  
  1306.     Multiple Master Fonts are an extension to the Adobe font format. 
  1307.     providing the ability to interpolate smoothly between several 
  1308.     ``design axes'' from a single font. Design axes can include weight, 
  1309.     size, and even some whacko notions like serif to sans serif. 
  1310.     Adobes' first Multiple Master Font was Myriad -- a two-axis font 
  1311.     with WEIGHT (light to black) on one axis, and WIDTH (condensed to 
  1312.     expanded) along the other axis. In the case of Myriad, there are 
  1313.     four ``polar'' designs at the ``corners'' of the design space. The 
  1314.     four designs are light condensed, black condensed, light expanded, 
  1315.     and black expanded. 
  1316.  
  1317.     Given polar designs, you can set up a ``weight vector'' which 
  1318.     interpolates to any point within the design space to produce a 
  1319.     unique font for a specific purpose. So you can get a ``more or less 
  1320.     condensed, somewhat black face''. 
  1321.  
  1322.  
  1323. ------------------------------
  1324.  
  1325. Subject: 4.12 Do I need a Level Two printer to use Multiple Master Fonts? 
  1326.  
  1327.     No -- Multiple Master Fonts can be used on any PostScript printer. 
  1328.     Multiple Master Fonts need a new PostScript operator known as 
  1329.     makeblendedfont. The current crop of Multiple Master Fonts supply 
  1330.     an emulation of this operator so the printer doesn't need this 
  1331.     operator. 
  1332.  
  1333.     A short tutorial on Multiple Master Fonts and makeblendedfont 
  1334.     appears in PostScript by Example, by Henry McGilton and Mary 
  1335.     Campione, published by Addison-Wesley. 
  1336.  
  1337.  
  1338. ------------------------------
  1339.  
  1340. Subject: 4.13 What are Type 4 fonts? 
  1341.  
  1342.     Type 4 fonts are actually Type 3 fonts which contains a Type 1 
  1343.     font. They're stored on hard disk in a special way to save space 
  1344.     when they're loaded into printer RAM by findfont. Your interpreter 
  1345.     must have the extra PostScript operator CCrun to handle Type 4 
  1346.     fonts. They are usually used for Kanji (Japanese) characters. 
  1347.  
  1348.  
  1349. ------------------------------
  1350.  
  1351. Subject: 4.14 What are Type 5 fonts? 
  1352.  
  1353.     Type 5 fonts are actually Type 1 fonts, but stored in printer ROM 
  1354.     in a special compressed format. They're also known as CROM fonts 
  1355.     (for Compressed ROM fonts). The contents of the CharStrings entries 
  1356.     in Type 5 will probably be different from Type 1. 
  1357.  
  1358.  
  1359. ------------------------------
  1360.  
  1361. Subject: 4.15 Is there an editor for Type 1 Fonts? 
  1362.  
  1363.     Fontographer for the Macintosh and MS-Windows under DOS is 
  1364.     available from Altsys Corporation, 269 West Renner Road, 
  1365.     Richardson, Texas 75080 USA. (214) 680-2060. 
  1366.  
  1367.     Ikarus-M is availble for the Macintosh from URW, Harksheider 
  1368.     Strasse 102, 2000 Hamburg 65, GERMANY. (040) 60 60 50 Or URW 
  1369.     Software and Type, 4 Manchester Street, Nashua, New Hampshire 
  1370.     03060. (800) 229-8791 in USA. (603) 882-7445 otherwise. 
  1371.  
  1372.     Acknowledgments 
  1373.  
  1374.  
  1375.     This FAQ was compiled based heavily on the contributions of and 
  1376.     with the help of Henry McGilton, Dick Dunn, Howard Gayle, Dan 
  1377.     Carrigan, Carl Orthlieb, Ed Garay, Robert Lerche, Bruno Hall, Tom 
  1378.     Epperly, and Chris Lewis. 
  1379.  
  1380.     Also thanks to contributors Paul Balyoz, Karl Berry, Jerry Black, 
  1381.     Charles Cashion, Jim DeLaHunt, Leonard Hamey, Chris Herborth, Steve 
  1382.     Kinzler, Bill Lee, Timo Lehtinen, Carl Lydick, Otto Makela, Bill 
  1383.     Pringle, Tony Valsamidis, and Jamie Zawinski. 
  1384.  
  1385.     Special thanks to Ken Porter, who originally compiled and organized 
  1386.     this FAQ. 
  1387.  
  1388.   
  1389.   
  1390.   Ver  Date     Reason
  1391.   ----------------------------------------------------------------
  1392.   1.00 12-18-90 Creation by Ken Porter
  1393.   1.06  5-29-91 expanded on EPS explanation, general updates
  1394.   2.00 10-25-92 Brought up to date and expanded, by Jon Monsarrat
  1395.   2.1   5-21-93 Revised because of new comp.sources.postscript group.
  1396.   2.2  12-26-93 Finally incorporated all the '93 comments and suggestions.
  1397.   2.3  07-07-94 Incorporated early '94 comments and suggestions.  
  1398.   
  1399.     This FAQ is copyright (C) 1994 by Jonathan Monsarrat. Permission is 
  1400.     granted to freely edit and distribute as long as this copyright 
  1401.     notice is included. 
  1402.  
  1403.     This document was written with the LaTeX language and formatted by 
  1404.     LameTeX, the PostScript hacker's LaTeX. 
  1405.  
  1406. %! Jon Monsarrat     jgm@cs.brown.edu     moderator, comp.sources.postscript %!
  1407. (LcHdBidZi_hdQ6[PaVa1b4c6F"J4b/>$O<)(di_zk{:UFfUg;ABF)(2n>]Eh:u?<)(P"M#R\(:$T<)
  1408. ([gXfSZ]f\\dZbeZeb^fH;`?dR=ZS7)(K P!U!: H<)(9l9cCf:o?$)(7W4]6`:X;=)(U"W#_%:"R-)
  1409. (A 5"<&Y%K"F"M,M,S\)i3e.M5F_PZR9>lP-)(wBxEuEs7x;uBq:q<q>hFh7o:=Nj<)(Z#]#b#:$R-)
  1410. (m+m+k3S!R+d,;"^<)(GFP\\RamZf;TAP{X{fd<{C7)(4840N2:6N=)([ Z#^&:!c<)(<%?$C$:#8<)
  1411. (D!J"L#:!B<)/a{def}def/M{exch}a/S{repeat}a/Q{{40 add}if}a 18{{}forall/R M a/x 2
  1412. /y 3/z 5 3{R M mod 1 eq a}S x Q M y Q moveto 57 sub{3{y Q M x Q M 6 2 roll}S
  1413. curveto}S z{fill}{stroke}ifelse}S showpage
  1414.