home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-08-27 | 43.2 KB | 1,080 lines |
- Newsgroups: comp.lang.postscript,comp.answers,news.answers
- Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!brunix!doorknob!jgm
- From: jgm@cs.brown.edu (Jonathan Monsarrat)
- Subject: PostScript monthly FAQ v2.1 05-21-93 [01-04 of 11]
- Message-ID: <JGM.93Aug26102850@vegas.cs.brown.edu>
- Followup-To: poster
- Summary: Useful facts about the PostScript graphics programming language
- Sender: news@cs.brown.edu
- Supersedes: <JGM.93Apr16124153@vegas.cs.brown.edu>
- Reply-To: jgm@cs.brown.edu (PostScript FAQ comments address)
- Organization: Brown University Department of Computer Science
- Date: Thu, 26 Aug 1993 15:28:50 GMT
- Approved: news-answers-request@MIT.Edu
- Expires: Mon, 27 Sep 1993 00:00:00 GMT
- Lines: 1062
- Xref: senator-bedfellow.mit.edu comp.lang.postscript:20190 comp.answers:1745 news.answers:11810
-
- Archive-name: postscript/faq/part1-4
- Last-modified: 1993/05/21
- Version: 2.1
-
- -- PostScript --
-
- Answers to Questions
-
- (the comp.lang.postscript FAQ v2.1)
-
- Jon Monsarrat
-
- jgm@cs.brown.edu
-
-
-
-
-
-
- This FAQ is formatted as a digest.
-
- Most news readers can skip from one question
-
- to the next by pressing control-G.
-
-
- Changes since the last version are marked with a '|' in the table
- of contents and in the sections in the text-only format of the FAQ.
-
- Now that there is Linux and BSD 386 UNIX IBM PC (and clone) users
- can run any of the X-windows and UNIX programs in the utilities
- section. See comp.os.linux. Also, there is now GhostScript for the
- Macintosh.
-
- Section 12, Utilities, will be posted in comp.sources.postscript
- along with the global index from now on.
-
- Please help fix the FAQ! All comments should be mailed to
- jgm@cs.brown.edu. My favorite way to receive a change suggestion is
- when it is accompanied by a section of the FAQ that is edited and
- mailed to me verbatim as an example. If you would like to
- contribute, please read the section ``about the FAQ'' first. Thank
- you!
-
- Books and programs are referred to by name only. See the book
- sections for book information, and the comp.sources.postscript FAQ
- for a full list of all PostScript related programs. I have
- archived a number of the small utilities in
- wilma.cs.brown.edu:pub/postscript. You can get the
- comp.sources.postscript FAQ from
- wilma.cs.brown.edu:pub/comp.sources.postscript.
-
- Related FAQs: comp.text, comp.text.tex, comp.fonts, comp.graphics,
- comp.mac.sys.apps, comp.sources.postscript.
-
- Table of Contents
-
-
- This FAQ has 11 sections. It is available by anonymous ftp to
- wilma.cs.brown.edu:pub/comp.lang.postscript/FAQ.txt in ASCII, and
- there are also LaTeX, DVI, and PostScript formats.
-
-
- 1 General Questions
- 1.1 What is PostScript?
- 1.2 How can I tell how many pages my document will have?
- 1.3 How can I print just one page or a few pages from a big
- 1.4 How can I print more than one page per sheet of paper?
- 1.5 How can I edit a PostScript picture?
- 1.6 How can I print PostScript on a non-PostScript printer?
- 1.7 What other graphics languages are there?
- 2 Printers
- 2.1 How can I get my printer to talk back to me?
- 2.2 Should I leave my printer on?
- 2.3 How do I suppress the power-on start page?
- 2.4 How do I make a downloaded font ``persistent''?
- 2.5 How do I remove a persistent (``permanent'') downloaded font?
- 2.6 How do I reset the printer without power-cycling?
- 2.7 About saving files
- 2.8 What's the control-D business?
- 2.9 Why does the printer say ``still busy'' when my document is
- 2.10 How should I set up my spoolers?
- 2.11 What are PPD files?
- 2.12 What's a timeout error?
- 3 Formats and Conversions
- 3.1 How can I convert PostScript to some other graphics format?
- 3.2 How can I convert DVI to PostScript?
- 3.3 How can I convert HP Laserjet language (PCL) to PostScript?
- 3.4 How can I convert TeX PK format font to PostScript?
- 3.5 How do I embed PostScript into troff?
- 3.6 How do I embed PostScript into LaTeX or TeX?
- 3.7 How can I convert an image to PostScript?
- 3.8 How can I convert ASCII text to PostScript?
- 3.9 How can I convert PostScript to ASCII?
- 3.10 How do I convert between PFB, PFA, Mac, PFM, and AFM?
- 4 Fonts
- 4.1 What are .PFB and .PFA files?
- 4.2 How can I convert a PostScript font to TeX's PK format?
- 4.3 Why are Adobe fonts hidden?
- 4.4 How do I get bitmap representations of Adobe fonts?
- 4.5 What are some good ftp sites for fonts?
- 4.6 How can I re-encode a font?
- 4.7 What's the difference between a Type 1 and a Type 3 font?
- 4.8 What vendors sell fonts for PostScript printers?
- 4.9 What are ATM fonts?
- 4.10 What are Multiple Master Fonts?
- 4.11 Do I need a Level Two printer to use Multiple Master Fonts?
- 4.12 What are Type 4 fonts?
- 4.13 What are Type 5 fonts?
- 4.14 Is there an editor for Type 1 Fonts?
- 5 Books
- 5.1 Books
- 5.2 Publishers
- 6 About Adobe
- 6.1 How do I get in touch with Adobe?
- 6.2 What can Adobe do for me?
- 7 Programming in PostScript
- 7.1 What is PostScript level 2?
- 7.2 Should I learn level 2 PostScript?
- 7.3 Where can I find examples of PostScript code?
- 7.4 How do I get the physical size of a page?
- 7.5 Why can't I do a pathforall after a charpath ?
- 7.6 How do I center a string of text around a point?
- 7.7 How can I concatenate two strings together?
- 7.8 What do I do when I get stack overflow/underflow?
- 7.9 How can I print in landscape mode?
- 8 Computer-specific PostScript
- 8.1 Sun Workstations
- 8.2 IBM PC
- 8.3 Apple Macintosh
- 9 Encapsulated PostScript
- 9.1 What is Encapsulated PostScript?
- 9.2 What are EPSI and EPSF?
- 9.3 How do I convert PostScript to EPS?
- 9.4 How do I get the bounding box of a PostScript picture?
- 10 About The Comp.Lang.PostScript FAQ (and Usenet Guide to
- 10.1 The PostScript FAQ: What is it?
- 10.2 How to get the FAQ files
- 10.3 How to write a FAQ answer
- 10.4 The FAQ can contain LaTeX and PostScript inserts
- 10.5 Revising the FAQ
- 10.6 How to submit new information
- 10.7 How to add a program description to the FAQ index
- 10.8 How to add a book description to the FAQ
- 10.9 Questions that need answers
- 11 About PostScript 2
- 11.1 What printers support Level 2 PostScript?
- 11.2 What is PostScript Level 2?
- 11.3 [ Color Extensions ]
- 11.4 [ Composite Font Extensions ]
- 11.5 [ Display PostScript Extensions ]
- 11.6 [ Overview of Level 2 Features ]
- 11.7 Filters
- 11.8 Binary Encoding
- 11.9 Optimized graphics operators
- 11.10 Optimized text operators
- 11.11 Forms
- 11.12 Patterns
- 11.13 Images
- 11.14 Composite Fonts
- 11.15 New Color Spaces
- 11.16 New screening/halftoning technology
- 11.17 Improved printer support features
- 11.18 Interpreter parameters
- 11.19 Resources
- 11.20 Dictionaries
- 11.21 When did Level 2 products come available?
- 11.22 Are Level 1 and Level 2 implementations compatible?
-
-
- Subject: 1 General Questions
-
-
- Subject: 1.1 What is PostScript?
-
- PostScript is a page description programming language.
-
- It is perhaps the most versatile and loved language for printers,
- being used in printers world-wide. It is capable of drawing to
- computer screens and any kind of drawing device. PostScript is
- interpreted, stack based and has latent typing. It somewhat
- resembles the computer language FORTH.
-
- A number of programmers write PostScript programs directly for a
- variety of drawing applications. However, PostScript programs are
- usually documents meant to be printed that have been generated by a
- program written in some compiled language.
-
-
- Subject: 1.2 How can I tell how many pages my document will have?
-
- The easiest way to count pages is view your document on-line with a
- PostScript previewer. Some previewers like Ghostview and GSPreview
- count the pages for you. (See Section 12, ``PostScript Interpreters
- and Utilities''.)
-
- If your document is generated by a program compliant with the
- Document Structuring Conventions, you should be able to just count
- the number of ``%%Page:'' comments imbedded in the document.
- With UNIX you can type
-
- grep -c %%Page: document.ps
-
- to do this counting. (See Section 9, ``Encapsulated PostScript''.)
-
- The only completely reliable way to count pages is to ask the
- printer after the job is printed. PostScript printers maintain a
- page counter that can be queried before and and after the job is
- printed, and the page count is a simple subtraction. This tends to
- require rather sophisticated spooling systems and a communications
- channel that is bidirectional. However, some printers allow you to
- submit jobs on one port, and issue queries on another.
-
- Send this PostScript through a bidirectional I/O port and you'll
- get back the page count, nominally the total number of pages
- printed since manufacture:
-
- statusdict begin pagecount == end flush
-
- Experts using a level 2 printer can use the SerialOff.PS and
- SerialEHandlder.ps programs to communicate bidirectionally to the
- printer.
-
-
- Subject: 1.3 How can I print just one page or a few pages from a big
- document? How can I print pages in reverse order?
-
- Try using a host-specific program, like the UNIX command psrev,
- which is part of the TranScript suite of software from Adobe
- Systems. Or use the more general utilities Ghostview, psutils or
- psxlate.
-
- There is no guarantee that a given PostScript document can be split
- in such a manner. The reason is that some programs which generate
- PostScript code don't conform to the Adobe Document Structuring
- Conventions (DSC). (See Section 9, ``Encapsulated PostScript''.) A
- notable example of this is Microsoft Word.
-
-
- Subject: 1.4 How can I print more than one page per sheet of paper?
-
- Use psnup or pstext or enscript.
-
- These programs redefine the PostScript ``showpage'' command to do
- multiple PostScript pages per physical page. If one program doesn't
- work with a complex document, try out other ones.
-
- Some PostScript programs can't work with these programs because
- they break the EPS conventions (See Section 9, ``Encapsulated
- PostScript''.). The reason is that some Postscript operators (such
- as initgraphics, the list is in the Red book) change the printer
- state so "violently", that software trying to do things like n-up
- will get confused. Theoretically, an EPS shouldn't have any of
- these operators, but it may not really be an EPS, or there may be a
- weird interaction between TeX, the EPS and the inclusion mechanism
- that breaks psnup.
-
-
- Subject: 1.5 How can I edit a PostScript picture?
-
- If you know the PostScript programming language, just use any text
- editor to edit the code directly.
-
- If you want to do it visually, you can use Canvas on the Macintosh.
-
-
- Subject: 1.6 How can I print PostScript on a non-PostScript printer?
-
- You need a tool that converts to something that your printer knows
- how to print. Use Freedom of Press, GhostScript, pageview, TScript,
- or UltraScript PC. Or, use a printer cartridge if your printer
- manufacturer sells one.
-
-
- Subject: 1.7 What other graphics languages are there?
-
- HPGL is for pen plotters. PCL is for HP Laser printers (and
- compatibles). Both are by HP, and PCL5 is supposed to allow
- inclusion of HPGL commands, preceded by an appropriate escape code,
- however I have found this to give errors and abort even for simple
- HPGL code that plots fine on a plotter.
-
- Subject: 2 Printers
-
-
- Subject: 2.1 How can I get my printer to talk back to me?
-
- Experts using a level 2 printer can use the SerialOff.PS and
- SerialEHandlder.ps programs to communicate bidirectionally to the
- printer.
-
- If you just need the error returns from the printer, you can spawn
- a
-
- cat < port >> logfile&
-
- in your system startup. Then you will get a log of everything the
- printer says. This works on any serial-port connected printer.
-
-
- Subject: 2.2 Should I leave my printer on?
-
- The consensus seems to be that most computer equipment lasts longer
- if left on. This presents less thermal stress to the components.
-
-
- Subject: 2.3 How do I suppress the power-on start page?
-
- Disabling the start page is described in your printer's PostScript
- supplement. The most common sequence is ``serverdict begin 0
- exitserver statusdict begin false setdostartpage end''.
-
-
- Subject: 2.4 How do I make a downloaded font ``persistent''?
-
-
- %!PS-Adobe-2.0 ExitServer
- %%BeginExitServer: 0
- serverdict begin 0 exitserver
- %%EndExitServer
- % Test for existence of font, abort if present.
- % This won't work on a printer with a hard disk!
- /str 32 string def
- /Eurostile dup FontDirectory exch known
- { str cvs print ( is already loaded!\n) print flush quit }
- { (loading font ) print str cvs print (\n) print flush }
- ifelse
- %% Font follows...
-
- The part following ``%%EndExitServer'' is optional. If you use
- it, change Eurostile to the name of the font. The default PFA
- behavior is to use up additional VM for the new copy if another
- copy has already been downloaded.
-
-
- Subject: 2.5 How do I remove a persistent (``permanent'') downloaded font?
-
- In PostScript Level 2, you can use the undefinefont operator to
- remove fonts selectively.
-
- The only reliable method in PostScript Level 1 is to restart the
- printer, for example with:
-
-
- serverdict begin 0 exitserver
- systemdict /quit get exec
-
- Of course, the real solution is just to not download persistent
- fonts unless you really want them to persist indefinitely. If you
- want them only for one job, download them as part of the job.
-
-
- Subject: 2.6 How do I reset the printer without power-cycling?
-
- Most printers can be reset by issuing ``serverdict begin 0
- exitserver systemdict /quit get exec''.
-
-
- Subject: 2.7 About saving files
-
- Adobe recommends that driver writers do not put EOT (control-D)
- into files when saving to disk. Normally, the EOT is a part of the
- protocol for parallel and serial ports and never hits the
- PostScript interpreter.
-
- Drivers that do embed EOD can create problems for devices that
- allow other communication methods (e.g. AppleTalk, Ethernet, and
- SCSI) where the EOT is not part of the communications protocol. It
- is useful to redefine EOT in these instances so that the
- interpreter does not generate an error. The recommended
- redefinition is:
-
-
- (\004) cvn {} def
-
- This should convert any stand-alone embedded EOTs into a null
- procedure.
-
-
- Subject: 2.8 What's the control-D business?
-
- PostScript printers communicating over serial lines use control-D
- as an end of job indicator. The host computer should then wait for
- the printer to send a control-D back to indicate that the job has
- finished. Managing the serial protocol between host and printer
- should be done by some form of print service, but if you're unsure
- whether your print service is doing it, it's an idea to send one
- yourself.
-
- PC type computers frequently do not have any kind of printer
- manager and applications end up sending control-D characters to the
- printer, sometimes before and after a job. PC applications
- frequently embed a control-D as the first character in the print
- file, presumably to flush out any other jobs, and thereby breaking
- the Adobe Document Structuring Conventions.
-
- If you want to prevent applications from doing this, you could use
- a spooler which would look at the end of every outgoing file and
- drop the control-D on the end if there happened to be one.
-
- If you want a spooler, check out lprps.
-
-
- Subject: 2.9 Why does the printer say ``still busy'' when my document is
- done printing?
-
- Sometimes when you finish a print job, the printer ``Ready'' light
- keeps flashing for a minute or so. Somehow, the printer has
- received some character(s) after the control-D which was sent
- immediately after the PostScript file. The most common is that a
- newline has been inserted after the control-D. The printer took
- these character(s) to be another program, and eventually timed-out
- while waiting for the rest of it. This can happen because of the
- host not waiting for the printer to finish.
-
-
- Subject: 2.10 How should I set up my spoolers?
-
- Since PostScript usually is prefixed with ``%!'', it's easy to
- educate your spooler to autoselect between passing raw PostScript
- through to the printer or doing an ``ASCII-to-PostScript''
- conversion first. There are many packages that will do this,
- including Transcript and psxlate.
-
- Unfortunately, many PostScript applications generate PostScript
- without a proper ``%!'' magic cookie.
-
- The spooler should be responsible for transmitting the ``job
- termination code'' (a control-D on serially-connected printers) to
- the printer, not the application. Do yourself a favor and disable
- (or filter out) control-Ds in your applications and generate them
- in the spooler. This will be far more reliable in the face of
- arbitrary input.
-
-
- Subject: 2.11 What are PPD files?
-
- Adobe Postscript Printer Description (PPD) files describe how to
- use the special features for a specific Postscript printer. They
- are suppose to be human-readable, but they are really only readable
- by PostScript gurus. It is the responsibility of the printer
- manufacturer to supply PPD files. However, the Adobe mail server
- has many of them. (see the Section 6, ``About Adobe'')
-
-
- Subject: 2.12 What's a timeout error?
-
- Paul Balyoz has this to say about timeout errors:
-
- A timeout error means the the printer has decided to abort the
- print job because one of its internal timers ran out. There are
- three standard timers configured in a PostScript printer. These are
- documented in appendix D of the Red Book*, but here's more detail:
-
-
-
- job timeout
- The maximum time a single print job is allowed to run, in
- seconds. If it doesn't finish in this amount of time, it is
- aborted, and the current page has a "timeout" error printed on
- it. The rest of the job is thrown away, like with most PostScript
- errors.
-
-
- manual feed timeout
- The amount of time the printer will wait for someone to
- manual-feed a sheet of paper (or envelope) before giving up and
- aborting the print job, in seconds.
-
-
- wait timeout
- The amount of time the printer will wait after it stops receiving
- a flow of PostScript from the host before aborting the print job,
- in seconds. The idea here is, "if the print job is still running
- even though we haven't seen any new data for a long time, then
- there may be a problem like an infinite- loop, so let's stop the
- job."
-
- We have two HP Laserjet III printers with the PostScript cards
- installed (Level 1 PostScript). This printer has an 8 ppm print
- engine with moderately slow PostScript (in my opinion).
-
- For a long time we have had problems with large print jobs timing
- out. Documents longer than about 9 pages would never come out
- without some kind of timeout error every time. Single page graphics
- such as screen snapshots would even fail from time to time! I knew
- it wasn't a hardware failure, because both of our printers would do
- it all the time. Calls to HP technical
-
- flow-control and tried direct-connecting the printer, no
- improvement.
-
- The actual solution was to change the timeout values to:
-
- 0 60 0
-
- In other words, no job timeout, and no wait timeout. The concept of
- these timeouts makes no sense when you realize that a single
- ordinary job could take a long time to print. I have a 1-page
- graphic that takes >5 minutes of thinking time once it is sent to
- the printer! If the printer is working and there's nothing wrong
- with the job, why should it be aborted?
-
- The wait timeout makes even less sense than the job timeout.
- PostScript is a programming language, for goodness sake. A legal
- print job that takes 10 seconds to send to the printer at 9600 baud
- could generate 100 pages or more of full-page output, if it needed
- too. That's going to take some time to print, but it took very
- little time to transfer. Why require the computer to "keep sending
- stuff", just so the job can complete?
-
- And of course the reverse. Hugely complex drawings that compute for
- a long time in the printer before ejecting even the first page. An
- example of this would be a poster-sized drawing that's being
- printed on ordinary paper, so that you can cut and paste with
- scissors and tape to put it together. The usual way of doing this
- is drawing the ENTIRE poster on each page of paper, and letting the
- clipping algorithm remove the parts that won't fit on the page.
- Then just reposition the origin for each page to get a different
- portion of the big drawing on each page.
-
- Faster PostScript print systems would help here, but only up to a
- point. People usually want any size printout to work on their
- printer, even if it has to take a long time. We have one faculty
- person here who regularly prints things overnight, because it takes
- about 4-6 hours (!) to print his whole document (10 - 20 pages).
-
- All of these timeouts can be configured in the printer by talking
- to it directly. There are two ways to change parameters: just for
- the current print job, and as the default for all future print
- jobs. The default settings stay set in the printer even during
- power off; the printer usually has some kind of non-volatile memory
- (probably RAM memory with a battery for power). Please see the Red
- Book for details on changing these parameters (look for
- "setjobtimeout" and "setdefaulttimeouts").
-
- Subject: 3 Formats and Conversions
-
- This section describes formats that can be converted to and from
- PostScript, and how to convert them. Encapsulated PostScript and
- Fonts have their own sections.
-
-
- Subject: 3.1 How can I convert PostScript to some other graphics format?
-
- Since PostScript is not just a picture-description language, but in
- fact a complete programming language, you will need a complete
- PostScript interpreter to convert or display a PostScript graphic.
- See the comp.sources.postscript FAQ for an index of all PostScript
- related programs.
-
- Try using GhostScript.
-
-
- Subject: 3.2 How can I convert DVI to PostScript?
-
- Use dvips.
-
-
- Subject: 3.3 How can I convert HP Laserjet language (PCL) to PostScript?
-
- Use lj2ps for simple PCL. Alternatively, another lj2ps, from
- psroff3.0, is a little more complete.
-
- hp2pbm can convert all of PCL4 (up to and including rasters,
- downloaded fonts and macros) into PostScript, G3 and any other
- PBM-supposed format.
-
-
- Subject: 3.4 How can I convert TeX PK format font to PostScript?
-
- Psroff3.0 contains programs that can convert TeX PK format or HP
- SFP format fonts into PostScript bitmap fonts along with
- rearranging encoding, etc. While bitmap bfonts scale poorly, this
- is sometimes of use in special circumstances.
-
-
- Subject: 3.5 How do I embed PostScript into troff?
-
- Most troffs can be ``coerced'' into including PostScript figures.
- The best approach is a configuration that takes EPS PostScript and
- can automatically scale it, or tell troff how big the picture is.
- Groff and DWB 3 have this built in.
-
- psfig is an add-on EPS inclusion handler that can add this
- capability to other versions of troff, provided that a compatible
- PostScript driver is used (Psroff 3.0 for ditroff or CAT troff,
- Transcript for ditroff). See the comp.text FAQ for more detail.
-
-
- Subject: 3.6 How do I embed PostScript into LaTeX or TeX?
-
- You should use an add-on program for seamless PostScript inclusion.
-
- Use psfig.
-
- If your LaTeX is simple, but your PostScript is fancy, try using
- LameTeX.
-
- If you need a good compromise, use pstricks.
-
- See the comp.text.tex FAQ.
-
-
- Subject: 3.7 How can I convert an image to PostScript?
-
- First determine what format your images are in. PBMPLUS will have
- converters for most image formats.
-
- To convert an image to PostScript in X windows, you can display the
- image on the screen, and grab it with xv, which can save the image
- in a PostScript file.
-
- A more general alternative in X windows would be to use the PPM,
- PGM and PBM utilities in the X11R4 and X11R5 distributions.
-
-
- Subject: 3.8 How can I convert ASCII text to PostScript?
-
- Unless your printer is smart about raw ASCII, you can't just send
- the ASCII to a PostScript printer, because the printer will attempt
- to interpret your ASCII file as PostScript code. You need a program
- which will wrap some PostScript code around your ASCII file.
-
- Try any of the following programs: asciiprint.ps, ato2pps, cz,
- ETSR, i2ps, lpp, lwf, POSTPRN, printer, psf, psfx80, PSR, ps2txt,
- pstext, swtext, text2ps, TranScript, spike.ps, enscript, nenscript,
- a2ps, asc2ps, ascii2ps, crossword.ps, double.ps, landscape.ps,
- numbered.ps, portrait.ps, or wide.ps.
-
- If you want to make something fancy, why not use a word processor?
- Most of them can ``include'' ASCII directly from a file and produce
- PostScript.
-
-
- Subject: 3.9 How can I convert PostScript to ASCII?
-
- In general, when you say ``I want to convert PostScript to ASCII''
- what you really mean is ``I want to convert MacWrite (which makes
- PostScript output) to ASCII'' or ``I want to convert somebody's TeX
- document (which I have in PostScript) to ASCII''.
-
- Unfortunately, programs like these (if they're smart) do a lot of
- fancy stuff like kerning, which means that where they would
- normally execute the postscript command for
-
-
- ``print water fountain''
-
- instead they execute the postscript command for
-
-
- ``print wat'' (move a little to get the spacing *just* right)
- ``print er'' (move a little to get the spacing *just* right)
- ``print foun'' (move a little to get the spacing *just* right)
- ``print tain'' (move a little to get the spacing *just* right)
-
- So if I write a program to look through a PostScript file for
- strings, like ps2ascii.pl, It can't tell where the words really
- end. Here my program would see 4 strings
-
-
- ``wat'' ``er'' ``foun'' ``tain''
-
- And it doesn't see any difference between the spacing between
- ``found'' and ``tain'' (not a word break) and the spacing between
- ``er'' and ``foun'' (a real word break).
-
- The problem is that PostScript for text formatting is usually
- produced machine generated by a text formatter. A PostScript
- generator like dvips might have a special command like ``boop''
- that differentiates between a real world break and a fake one. But
- every text formatter that generates PostScript has their own name
- for the ``boop'' command.
-
- So you really want a ``PostScript to ASCII converter for dvips
- output''.
-
- The only general solution I can see would be to redefine the show
- operator to print out the currentpoint for every letter being
- printed, like gs2asc, and then make up an ASCII page based on this
- by sticking ASCII characters where they go in a two-dimensional
- array. That would convert PostScript to ASCII ``formatted''.
-
- But even that wouldn't solve the problem, because special bitmap
- fonts and and standard fonts like Symbol don't always print a ``P''
- when you say the letter ``P''. Sometimes they print the greek Pi
- symbol or a chess piece or a ZapfDingBat.
-
- Use ps2a, ps2ascii, ps2txt, ps2ascii.ps or ps2ascii.pl.
-
-
- Subject: 3.10 How do I convert between PFB, PFA, Mac, PFM, and AFM?
-
- Write or call Y and Y Software, listed in the fonts section as a
- vendor.
-
-
- Subject: 4 Fonts
-
- This section answers questions about fonts as they pertain to
- PostScript. See the comp.fonts FAQ for more information about
- fonts.
-
-
- Subject: 4.1 What are .PFB and .PFA files?
-
- ``PFB'' stands for Printer Font Binary, and is a binary format in
- which Adobe Type 1 font programs are usually distributed for IBM PC
- and compatibles. Many application programs support fonts in this
- format, and refer to them as ``downloadable''. The Macintosh uses a
- different binary storage format than does the PC.
-
- PFB files are encrypted and have a header, and as a result, cannot
- be sent directly to a PostScript printer. Application programs like
- dvips which use fonts in this format unencrypt the font before
- sending it to the printer. If you would like to use a font which is
- in PFB format, it is necessary to unencrypt it first to make a PFA
- file. Adobe Systems supply a font downloader for PC's which turns
- the PFB format into PFA format on the fly as it's being downloaded.
-
- ``PFA'' stands for Printer Font ASCII, which is the unencrypted
- version of a PFB file. In PFB, the data is stored as-is. In a PFA,
- it's stored as ``ascii hex''--meaning each byte of data is turned
- into two ascii characters representing the hex value.
-
- Once you have the PFA file, just send it to the printer ahead of
- your file, and use the font like any other. There are several
- programs which can do the conversion from PFB to PFA for you. Try
- t1utils.
-
-
- Subject: 4.2 How can I convert a PostScript font to TeX's PK format?
-
- Use ps2pk or try out the GNU font utilities in fontutils.
-
-
- Subject: 4.3 Why are Adobe fonts hidden?
-
- In PostScript level 1, Adobe's fonts were hidden because they
- didn't want people pirating copies instead of paying for them.
- That's why you can't do a pathforall on a charpath.
-
- PostScript Level Two has removed the restriction, in the words of
- the new Red Book, ``for most fonts''. There will still be some
- vendors who will want to restrict access. Japanese font vendors,
- for example, are concerned about piracy -- given the work that goes
- into an 8,000-character Kanji font.
-
-
- Subject: 4.4 How do I get bitmap representations of Adobe fonts?
-
- On the IBM PC, use the Font Foundry program included with the font.
- If you don't have it, contact Adobe for an upgrade.
-
-
- Subject: 4.5 What are some good ftp sites for fonts?
-
-
- ftp.cs.umb.edu
- sumex-aim.stanford.edu
- archive.umich.edu
- ftp.cica.indiana.edu /pub/pc/win3/fonts
- colonsay.dcs.ed.ac.uk /pub/postscript/fonts
-
-
- For the NeXT platform, fonts are available on the NeXT-FTP-archives,
- sonata.cc.purdue.edu :/pub/next/graphics/fonts
- fiasko.rz-berlin.mpg.de :/pub/next/fonts
-
- For Macintosh, look in sumex-aim.stanford.edu,
- mac.archive.umich.edu, and ftp.cs.umb.edu (192.12.26.23), in
- pub/tex/ps-screenfonts.tar.Z.
-
- Color PostScript samples and many other PostScript programs are
- available from irisa.irisa.fr.
-
-
- Subject: 4.6 How can I re-encode a font?
-
- See ddev.ps for an example for code that does this. You can find it
- by ftp to wilma.cs.brown.edu:pub/postscript/ddev.ps.
-
-
- Subject: 4.7 What's the difference between a Type 1 and a Type 3 font?
-
- The Type 1 font format is a compact way of describing a font
- outline using a well-defined language that can be quickly
- interpreted. The language contains operations to provide the
- rasterizer with additional information about a character, known as
- hints. The hints are additional information which describes how to
- adjust the representation of the character to make it look good
- when the font size is small compared to the device resolution. The
- Type 1 font format is defined in the book ``The Adobe Type 1 Font
- Format'', also known as the black book, for the colors on its
- cover.
-
- The Type 1 font format has nothing to do with TrueType, which is
- another font format defined by Apple. The Type 1 font format has
- been around quite a while, and is used on a wide variety of
- platforms to obtain scalable fonts.
-
- Most clone interpreters will not have Adobe's proprietary rendering
- technology which interprets font hints to improve the appearance of
- fonts shown at small sizes on low-resolution devices. The
- exceptions (PowerPage and UltraScript) have their own hint
- interpreters.
-
- The Type 3 font format is a way of packaging up PostScript
- descriptions of characters into a font, so that the PostScript
- interpreter can rasterize them.
-
- It is easier to create a Type 3 font program by hand than to create
- the corresponding Type 1 font program. Type 3 font programs have
- access to the entire PostScript language to do their imaging,
- including the 'image' operator. They can be used for bitmapped
- fonts, although that is certainly not a requirement. The Type 3
- font format contains no provisions for 'hinting', and as such Type
- 3 font programs cannot be of as high a quality at low resolutions
- as the corresponding Type 1 font program.
-
- Both formats are scalable formats, and both can be run on any
- PostScript interpreter. However, because of the requirement that a
- Type 3 font program have a full PostScript interpreter around, Type
- 3 font programs cannot be understood by the Adobe Type Manager.
- Only Type 1 font programs can.
-
- Why bother making a font that's just made up of bitmaps? Once a
- character from a font has been rendered, the bitmap will be saved
- in a cache, and another instance of the same character at the same
- size and orientation can be quickly drawn without recalculation.
-
- Because of Adobe Type Manager's wide availability on a large number
- of platforms (PC, Mac, and Unix), the Type 1 font format makes an
- excellent cross-platform scalable font standard.
-
-
- Subject: 4.8 What vendors sell fonts for PostScript printers?
-
- PostScript font vendors are many and varied. Here is a partial
- list.
-
-
-
- Adobe Systems
- sells a variety of fonts. With the huge number of third-party
- Type 1 vendors, in recent years Adobe have specialized in
- creating their own ``Adobe Originals'' -- high-quality fonts,
- some of which are their renditions of classic faces (Adobe
- Garamond) and some of their own devising (Stone, Utopia, ...).
- Adobe Systems, 1585 Charleston Road, Mountain View, CA 94039.
- (415) 961-4400
-
-
- AGFA Compugraphic,
- 90 Industrial Way, Wilmington, Massachusetts 01887. (508)
- 658-5600.
-
-
- Bear Rock Technologies
- specializes in bar code fonts. 4140 Mother Lode Drive, Suite 100,
- Shingle Springs California 95682.
-
-
- Bitstream,
- Athenaeum House, Cambridge, MA 02142. (617) 497-6222.
-
-
- Casady and Greene,
- 22734 Portola Drive, Salinas, CA 93908. (408) 484-9228.
-
-
- Ecological Linguistics,
- specializes in non-Roman alphabets. Ecological Linguistics, P. O.
- Box 15156, Washington D. C. 20003.
-
-
- Emigre Graphics
- 4475 ``D'' Street / Sacramento CA 95819 (800) 944 9021 ] Over 70
- faces, all PostScript Type 1 ATM compatible, including the
- omnipresent Modula and infamous Template Gothic. Almost all faces
- are ``must haves'' for graphic designers. Call for free catalog.
-
-
- Image Club,
- # 5 1902 11th St Southeast, Calgary, Alberta T2G 2G2, Canada.
- (403) 262-8008.
-
-
- Lanston
- specializes in display faces.
-
-
- Letraset
- specializes in fancy kinds of script fonts, Letraset, 40
- Eisenhower Drive, Paramus, New Jersey 07652. (201) 845-6100
-
-
- Linguists Software
- specializes in non-Roman alphabets (Farsi, Greek, Hangul, Kanji,
- etc.) Linguists Software, P. O. Box 580, Edmonds, Washington
- 98020-0580. (206) 775-1130.
-
-
- Monotype,
- 53 West Jackson Boulevard, Suite 504, Chicago, IL 60604.
-
-
- Page Studio Graphics,
- Chandler, Arizona, specialize in symbols fonts such as Mac icons,
- keyboards, and others, Page Studio Graphics, 3175 North Price
- Road, # 1050, Chandler, Arizona 85224. (602) 839-2763.
-
-
- RightBrain Software,
- Palo Alto, CA (415 326-2974) carry the Adobe Type library for the
- NeXT platform. If you're working on NeXT, getting fonts in the
- correct form with all the ancillary information and downloaders
- and such is important. You can convert a Mac font to NeXT (PFA)
- format, but the NeXT demands an AFM file as well, and many Mac/PC
- font vendors omit AFM files because Mac/PC apps don't use them.
- For Adobe fonts for the NeXT, save yourself a lot of hassle by
- getting the fonts from RightBrain -- they often have sales.
-
-
- The Font Company
-
-
- TreacyFaces
-
-
- URW
- supplies high-quality fonts at low prices. They are also the
- creators of the top of the line font creation and editing
- software called Ikarus. URW, 4 Manchester Street, Nashua, New
- Hampshire 03060. (603) 882-7445.
-
-
- Y and Y Software
- , 106 Indian Hill, Carlisle Massachusetts 10741 USA. (508)
- 371-3286. Sells a Font Metric Manipulation Package for DOS with
- lots of interesting utilities.
-
- Many more font vendors exist. Look in magazines and other sources.
- Check the Usenet newsgroup comp.fonts. Look in U & lc, published by
- ITC, for long lists of vendors.
-
-
- Subject: 4.9 What are ATM fonts?
-
- There has been a rash of misunderstanding about the nature of Type
- 1 fonts and what people call ATM fonts. ATM fonts are Adobe Type 1
- fonts. ATM stands for Adobe Type Manager -- a utility to render
- smooth characters on Macintosh and PC screens, from font outlines
- (Type 1 fonts) instead of using bitmap fonts. In one sense, there's
- no such thing as an ``ATM font'' -- ATM interprets Type 1 fonts, so
- there's no need to create a new name. A correctly constructed Type
- 1 font can be interpreted by ATM.
-
-
- Subject: 4.10 What are Multiple Master Fonts?
-
- Multiple Master Fonts are an extension to the Adobe font format.
- providing the ability to interpolate smoothly between several
- ``design axes'' from a single font. Design axes can include weight,
- size, and even some whacko notions like serif to sans serif.
- Adobes' first Multiple Master Font was Myriad -- a two-axis font
- with WEIGHT (light to black) on one axis, and WIDTH (condensed to
- expanded) along the other axis. In the case of Myriad, there are
- four ``polar'' designs at the ``corners'' of the design space. The
- four designs are light condensed, black condensed, light expanded,
- and black expanded.
-
- Given polar designs, you can set up a ``weight vector'' which
- interpolates to any point within the design space to produce a
- unique font for a specific purpose. So you can get a ``more or less
- condensed, somewhat black face''.
-
-
- Subject: 4.11 Do I need a Level Two printer to use Multiple Master Fonts?
-
- No -- Multiple Master Fonts can be used on any PostScript printer.
- Multiple Master Fonts need a new PostScript operator known as
- makeblendedfont. The current crop of Multiple Master Fonts supply
- an emulation of this operator so the printer doesn't need this
- operator.
-
- A short tutorial on Multiple Master Fonts and makeblendedfont
- appears in PostScript by Example, by Henry McGilton and Mary
- Campione, published by Addison-Wesley.
-
-
- Subject: 4.12 What are Type 4 fonts?
-
- Type 4 fonts are actually Type 3 fonts which contains a Type 1
- font. They're stored on hard disk in a special way to save space
- when they're loaded into printer RAM by findfont. Your interpreter
- must have the extra PostScript operator CCrun to handle Type 4
- fonts. They are usually used for Kanji (Japanese) characters.
-
-
- Subject: 4.13 What are Type 5 fonts?
-
- Type 5 fonts are actually Type 1 fonts, but stored in printer ROM
- in a special compressed format. They're also known as CROM fonts
- (for Compressed ROM fonts). The contents of the CharStrings entries
- in Type 5 will probably be different from Type 1.
-
-
- Subject: 4.14 Is there an editor for Type 1 Fonts?
-
- Fontographer for the Macintosh is available from Altsys
- Corporation, 269 West Renner Road, Richardson, Texas 75080 USA.
- (214) 680-2060.
-
- Ikarus-M is availble for the Macintosh from URW, Harksheider
- Strasse 102, 2000 Hamburg 65, GERMANY. (040) 60 60 50 Or URW
- Software and Type, 4 Manchester Street, Nashua, New Hampshire
- 03060. (800) 229-8791 in USA. (603) 882-7445 otherwise.
-
- Acknowledgments
-
-
- This FAQ was compiled based heavily on the contributions of and
- with the help of Henry McGilton, Dick Dunn, Howard Gayle, Carl
- Orthlieb, Ed Garay, Robert Lerche, Bruno Hall, Tom Epperly, and
- Chris Lewis.
-
- Also thanks to contributors Paul Balyoz, Karl Berry, Jerry Black,
- Charles Cashion, Jim DeLaHunt, Leonard Hamey, Chris Herborth, Steve
- Kinzler, Bill Lee, Timo Lehtinen, Carl Lydick, Otto Makela, Bill
- Pringle, Tony Valsamidis, and Jamie Zawinski.
-
- Special thanks to Ken Porter, who originally compiled and organized
- this FAQ.
-
-
-
- Ver Date Reason
- ----------------------------------------------------------------
- 1.00 12-18-90 Creation by Ken Porter
- 1.06 5-29-91 expanded on EPS explanation, general updates
- 2.00 10-25-92 Brought up to date and expanded, by Jon Monsarrat
- 2.1 5-21-93 Revised because of new comp.sources.postscript group.
-
-
- This FAQ is copyright (C) 1993 by Jonathan Monsarrat. Permission is
- granted to freely edit and distribute as long as this copyright
- notice is included.
-
- This document was written with the LaTeX language and formatted by
- LameTeX, the PostScript hacker's LaTeX.
-
-
- %! Jon Monsarrat jgm@cs.brown.edu moderator, comp.sources.postscript %!
- (LcHdBidZi_hdQ6[PaVa1b4c6F"J4b/>$O<)(di_zk{:UFfUg;ABF)(2n>]Eh:u?<)(P"M#R(:$T<)
- ([gXfSZ]f"dZbeZeb^fH;`?dR=ZS7)(K P!U!: H<)(9l9cCf:o?$)(7W4]6`:X;=)(U"W#_%:"R-)
- (A 5"<&Y%K"F"M,M,S)i3e.M5F_PZR9>lP-)(wBxEuEs7x;uBq:q<q>hFh7o:=Nj<)(Z#]#b#:$R-)
- (m+m+k3S!R+d,;"^<)(GFP"RamZf;TAP{X{fd<{C7)(4840N2:6N=)([ Z#^&:!c<)(<%?$C$:#8<)
- (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
- /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
- curveto}S z{fill}{stroke}ifelse}S showpage
-