home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / unixtex-6.1b-bin0.lha / info / dvips.info-1 next >
Encoding:
GNU Info File  |  1996-10-12  |  45.6 KB  |  1,115 lines

  1. This is Info file dvips.info, produced by Makeinfo-1.64 from the input
  2. file /ade-src/contrib/unixtex/dvipsk/dvips.texi.
  3.  
  4. START-INFO-DIR-ENTRY
  5. * DVIps: (dvips).         DVI-to-PostScript translator.
  6. END-INFO-DIR-ENTRY
  7.  
  8. 
  9. File: dvips.info,  Node: Top,  Next: Why dvips,  Up: (dir)
  10.  
  11. Dvips
  12. *****
  13.  
  14.   This manual documents Dvips, a program to translate a DVI file into
  15. PostScript.  It corresponds to version 5.58f of the Dvipsk
  16. distribution, a slightly modified variant of the original `dvips'
  17. progam with path searching rules consistent with TeX, the GNU font
  18. utilities, and Xdvik.  Tom Rokicki wrote and maintains `dvips';
  19. `kb@cs.umb.edu' made the Dvipsk modifications.
  20.  
  21. * Menu:
  22.  
  23. * Why dvips::                   Why use dvips?
  24. * Using dvips::                 Minimal usage information.
  25. * Paper Size and Landscape::
  26. * Including PostScript::        Including PostScript graphics.
  27. * PostScript fonts::            Using PostScript fonts, resident or downloaded.
  28. * Invoking dvips::            Command-line options, etc.
  29. * Config File::                 Configuration file(s) and how they're found.
  30. * Font Generation::             Automatic font generation with MakeTeXPK.
  31. * Environment Variables::
  32. * Bells and Whistles::          Other nifty things
  33. * MS-DOS::                      MS-DOS support in dvips
  34. * Installation::                How to compile and install dvips.
  35. * Problems::                    Diagnosing problems.
  36. * Color::                       Using color with dvips.
  37. * Index::
  38.  
  39.  -- The Detailed Node Listing --
  40.  
  41. Including PostScript Graphics
  42.  
  43. * Bounding Box::                The Bounding Box Comment
  44. * EPSF Macros::                 Using the EPSF Macros
  45. * Header Files::                Header Files
  46. * Literal PS::                  Literal PostScript
  47. * Literal headers::             Literal Headers
  48. * Graphics Support::            Other Graphics Support
  49. * Dynamic Creation of Graphics::
  50.  
  51. Using PostScript Fonts
  52.  
  53. * afm2tfm::
  54. * Changing Encodings::
  55. * Special Font Effects::
  56. * Non-resident Fonts::
  57. * Invoking Afm2tfm::
  58.  
  59. Configuration File Searching
  60.  
  61. * Config File Options::
  62.  
  63. Diagnosing problems
  64.  
  65. * Debug Options::
  66. * No Output::                   No Output At All
  67. * Small or Inverted::           Output Too Small or Inverted
  68. * Printer Errors::              Error Messages From Printer
  69. * 400 DPI::                     400 DPI Is Used Instead Of 300 DPI
  70. * Long Documents Fail::         Long Documents Fail To Print
  71. * Including Graphics Fails::    Including Graphics Fails
  72. * Unable to Generate Fonts::    Unable to Generate Fonts
  73.  
  74. Using Color with dvips
  75.  
  76. * Macro Files::
  77. * User Definable Colors::       User Definable Colors
  78. * Color Subtleties::            Subtleties in Using Color
  79. * Ted Turner::                  Printing in Black/White, after Colorizing
  80. * Color Configuration ::        Configuring dvips for Color Devices
  81. * Color Support Details::       Color Support Details
  82.  
  83. 
  84. File: dvips.info,  Node: Why dvips,  Next: Using dvips,  Prev: Top,  Up: Top
  85.  
  86. Why Use dvips?
  87. **************
  88.  
  89.   The `dvips' program has a number of features that set it apart from
  90. other PostScript drivers for TeX.  This rather long section describes
  91. the advantages of using dvips, and may be skipped if you are just
  92. interested in learning how to use the program.  *Note Installation::,
  93. for details of compilation and installation.
  94.  
  95.   The dvips driver generates excellent, standard PostScript, that can
  96. be included in other documents as figures or printed through a variety
  97. of spoolers.  The generated PostScript requires very little printer
  98. memory, so very complex documents with a lot of fonts can easily be
  99. printed even on PostScript printers without much memory, such as the
  100. original Apple LaserWriter.  The PostScript output is also compact,
  101. requiring less disk space to store and making it feasible as a transfer
  102. format.
  103.  
  104.   Even those documents that are too complex to print in their entirety
  105. on a particular printer can be printed, since dvips will automatically
  106. split such documents into pieces, reclaiming the printer memory between
  107. each piece.
  108.  
  109.   The dvips program supports graphics in a natural way, allowing
  110. PostScript graphics to be included and automatically scaled and
  111. positioned in a variety of ways.
  112.  
  113.   Printers with resolutions other than 300 dpi are also supported, even
  114. if they have different resolutions in the horizontal and vertical
  115. directions.  High resolution output is supported for typesetters,
  116. including an option that compresses the bitmapped fonts so that
  117. typesetter virtual memory is not exhausted.  This option also
  118. significantly reduces the size of the PostScript file and decoding in
  119. the printer is very fast.
  120.  
  121.   Missing fonts can be automatically generated if METAFONT exists on
  122. the system, or fonts can be converted from `gf' to `pk' format on
  123. demand.  If a font cannot be generated, a scaled version of the same
  124. font at a different size can be used instead, although dvips will
  125. complain loudly about the poor aesthetics of the resulting output.
  126.  
  127.   Users will appreciate features such as collated copies and support for
  128. `tpic', `psfig', `emtex', and `METAPOST'; system administrators will
  129. love the support for multiple printers, each with their own
  130. configuration file, and the ability to pipe the output directly to a
  131. program such as `lpr'.  Support for MS-DOS, OS/2, and VMS in addition
  132. to UNIX is provided in the standard distribution, and porting to other
  133. systems is easy.
  134.  
  135.   One of the most important features is the support of virtual fonts,
  136. which add an entirely new level of flexibility to TeX.  Virtual fonts
  137. are used to give dvips its excellent PostScript font support, handling
  138. all the font remapping in a natural, portable, elegant, and extensible
  139. way.  The dvips `afm2tfm' driver even comes with its own `afm2tfm'
  140. program that creates the necessary virtual fonts and TeX font metric
  141. files automatically from the Adobe font metric files.
  142.  
  143.   Source is provided and freely distributable, so adding a
  144. site-specific feature is possible.  Adding such features is made easier
  145. by the highly modular structure of the program.
  146.  
  147.   There is really no reason to use another driver, and the more people
  148. use dvips, the less time will be spent fighting with PostScript and the
  149. more time will be available to create beautiful documents.  So if you
  150. don't use dvips on your system, get it today.
  151.  
  152. 
  153. File: dvips.info,  Node: Using dvips,  Next: Paper Size and Landscape,  Prev: Why dvips,  Up: Top
  154.  
  155. Using dvips
  156. ***********
  157.  
  158.   To use dvips, simply type
  159.  
  160.      dvips foo
  161.  
  162. where `foo.dvi' is the output of TeX that you want to print.  If dvips
  163. has been installed correctly, the document should come out of your
  164. default printer.
  165.  
  166.   If you use fonts that have not been used on your system before, they
  167. may be automatically generated; this process can take a few minutes.
  168. The next time that document is printed, these fonts will already exist,
  169. so printing will go much faster.
  170.  
  171.   Many options are available; they are described in a later section.
  172. For a brief summary of available options, just type
  173.  
  174.      dvips
  175.  
  176. 
  177. File: dvips.info,  Node: Paper Size and Landscape,  Next: Including PostScript,  Prev: Using dvips,  Up: Top
  178.  
  179. Paper Size and Landscape Orientation
  180. ************************************
  181.  
  182.   Most TeX documents at a particular site are designed to use the
  183. standard paper size (letter size in the United States, A4 in Europe.)
  184. The dvips program defaults to these paper sizes and can be customized
  185. for the defaults at each site or on each printer.
  186.  
  187.   But many documents are designed for other paper sizes.  For instance,
  188. you may want to design a document that has the long edge of the paper
  189. horizontal.  This can be useful when typesetting booklets, brochures,
  190. complex tables, or many other documents.  This type of paper orientation
  191. is called landscape orientation (the `normal' orientation is portrait).
  192. Alternatively, a document might be designed for ledger or A3 paper.
  193.  
  194.   Since the intended paper size is a document design decision, and not a
  195. decision that is made at printing time, such information should be given
  196. in the TeX file and not on the dvips command line.  For this reason,
  197. dvips supports a `papersize' special.  It is hoped that this special
  198. will become standard over time for TeX previewers and other printer
  199. drivers.
  200.  
  201.   The format of the `papersize' special is
  202.  
  203.      \special{papersize=8.5in,11in}
  204.  
  205. where the dimensions given above are for a standard letter sheet.  The
  206. first dimension given is the horizontal size of the page, and the
  207. second is the vertical size.  The dimensions supported are the same as
  208. for TeX; namely, in (inches), cm (centimeters), mm (millimeters), pt
  209. (points), sp (scaled points), bp (big points, the same as the default
  210. PostScript unit), pc (picas), dd (didot points), and cc (ciceros).
  211.  
  212.   For a landscape document, the `papersize' comment would be given as
  213.  
  214.      \special{papersize=11in,8.5in}
  215.  
  216. An alternate specification of `landscape' is to have a special of the
  217. form
  218.  
  219.      \special{landscape}
  220.  
  221. This is supported for backward compatibility, but it is hoped that
  222. eventually the `papersize' comment will dominate.
  223.  
  224.   Of course, using such a command only informs dvips of the desired
  225. paper size; you must still adjust the `hsize' and `vsize' in your TeX
  226. document to actually use the full page.
  227.  
  228.   The `papersize' special must occur somewhere on the first page of the
  229. document.
  230.  
  231. 
  232. File: dvips.info,  Node: Including PostScript,  Next: PostScript fonts,  Prev: Paper Size and Landscape,  Up: Top
  233.  
  234. Including PostScript Graphics
  235. *****************************
  236.  
  237.   Scaling and including PostScript graphics is a breeze--if the
  238. PostScript file is correctly formed.  Even if it is not, however, the
  239. file can usually be accommodated with just a little more work.  The
  240. most important feature of a good PostScript file--from the standpoint
  241. of including it in another document--is an accurate bounding box
  242. comment.
  243.  
  244. * Menu:
  245.  
  246. * Bounding Box::                The Bounding Box Comment
  247. * EPSF Macros::                 Using the EPSF Macros
  248. * Header Files::                Header Files
  249. * Literal PS::                  Literal PostScript
  250. * Literal headers::             Literal Headers
  251. * Graphics Support::            Other Graphics Support
  252. * Dynamic Creation of Graphics::
  253.  
  254. 
  255. File: dvips.info,  Node: Bounding Box,  Next: EPSF Macros,  Up: Including PostScript
  256.  
  257. The Bounding Box Comment
  258. ========================
  259.  
  260.   Every well-formed PostScript file has a comment describing where on
  261. the page the graphic is located, and how big that graphic is.  This
  262. information is given in terms of the lower left and upper right corners
  263. of a box just enclosing the graphic, and is thus referred to as a
  264. bounding box.  These coordinates are given in PostScript units (there
  265. are precisely 72 PostScript units to the inch) with respect to the
  266. lower left corner of the sheet of paper.
  267.  
  268.   To see if a PostScript file has a bounding box comment, just look at
  269. the first few lines of the file.  (PostScript is standard ASCII, so you
  270. can use any text editor to do this.) If within the first few dozen
  271. lines there is a line of the form
  272.  
  273.      %%BoundingBox: 0 1 2 3
  274.  
  275. (with any numbers), chances are very good that the file is Encapsulated
  276. PostScript and will work easily with dvips.  If the file contains
  277. instead a line like
  278.  
  279.      %%BoundingBox: (atend)
  280.  
  281. the file is still probably Encapsulated PostScript, but the bounding
  282. box (that dvips needs to position the graphic) is at the end of the
  283. file and should be moved to the position of the line above.  This can be
  284. done with that same text editor, or with a simple Perl script.
  285.  
  286.   If the document lacks a bounding box altogether, one can easily be
  287. added.  Simply print the file.  Now, take a ruler, and make the
  288. following measurements.  All measurements should be in PostScript
  289. units, so measure it in inches and multiply by 72.  Alternatively, the
  290. `bbfig' program distributed with dvips in the `contrib' directory can
  291. be used to automate this process.
  292.  
  293.   From the left edge of the paper to the leftmost mark on the paper is
  294. LLX, the first number.  From the bottom edge of the paper to the
  295. bottommost mark on the paper is LLY, the second number.  From the left
  296. edge of the paper to the rightmost mark on the paper is URX, the third
  297. number.  The fourth and final number, URY, is the distance from the
  298. bottom of the page to the uppermost mark on the paper.
  299.  
  300.   Now, add a comment of the following form as the second line of the
  301. document.  (The first line should already be a line starting with the
  302. two characters `%!'; if it is not, the file probably isn't PostScript.)
  303.  
  304.      %%BoundingBox: LLX LLY URX URY
  305.  
  306. Or, if you don't want to modify the file, you can simply write these
  307. numbers down in a convenient place and use them when you import the
  308. graphic.
  309.  
  310.   If the document does not have such a bounding box, or if the bounding
  311. box is given at the end of the document, please complain to the authors
  312. of the software package that generated the file; without such a line,
  313. including PostScript graphics can be tedious.
  314.  
  315. 
  316. File: dvips.info,  Node: EPSF Macros,  Next: Header Files,  Prev: Bounding Box,  Up: Including PostScript
  317.  
  318. Using the EPSF Macros
  319. =====================
  320.  
  321.   Now you are ready to include the graphic into a TeX file.  Simply add
  322. to the top of your TeX file a line like
  323.  
  324.      \input epsf
  325.  
  326. (or, if your document is in LaTeX or SliTeX, add the `epsf' style
  327. option, as was done to the following line).
  328.  
  329.      \documentstyle[12pt,epsf]{article}
  330.  
  331. This only needs to be done once, no matter how many figures you plan to
  332. include.  Now, at the point you want to include the file, enter a line
  333. such as
  334.  
  335.      \epsffile{foo.ps}
  336.  
  337. If you are using LaTeX or SliTeX, you may need to add a `\leavevmode'
  338. command immediately before the `\epsffile' command to get certain
  339. environments to work correctly.  If your file did not (or does not
  340. currently) have a bounding box comment, you should supply those numbers
  341. you wrote down as in the following example:
  342.  
  343.      \epsffile[100 100 500 500]{foo.ps}
  344.  
  345. (in the same order they would have been in a normal bounding box
  346. comment).  Now, save your changes and run TeX and dvips; the output
  347. should have your graphic positioned at precisely the point you
  348. indicated, with the proper amount of space reserved.
  349.  
  350.   The effect of the `epsffile' macro is to typeset the figure as a TeX
  351. `vbox' at the point of the page that the command is executed.  By
  352. default, the graphic will have its `natural' width (namely, the width
  353. of its bounding box).  The TeX box will have depth zero and a `natural'
  354. height.  The graphic will be scaled by any `dvi' magnification in
  355. effect at the time.
  356.  
  357.   Any PostScript graphics included by any method in this document
  358. (except `bop-hook' and its ilk) are scaled by the current `dvi'
  359. magnification.  For graphics included with `epsffile' where the size is
  360. given in TeX dimensions, this scaling will produce the correct, or
  361. expected, results.  For compatibility with old PostScript drivers, it
  362. is possible to turn this scaling off with the following TeX command:
  363.  
  364.      \special{! /magscale false def}
  365.  
  366. Use of this command is not recommended because it will make the
  367. `epsffile' graphics the wrong size if global magnification is used in a
  368. `dvi' document, and it will cause any PostScript graphics to appear
  369. improperly scaled and out of position if a `dvi' to `dvi' program is
  370. used to scale or otherwise modify the document.
  371.  
  372.   You can enlarge or reduce the figure by putting
  373.  
  374.      \epsfxsize=DIMEN
  375.  
  376. right before the call to `epsffile'.  Then the width of the TeX box
  377. will be DIMEN and its' height will be scaled proportionately.
  378. Alternatively you can force the vertical size to a particular size with
  379.  
  380.      \epsfysize=DIMEN
  381.  
  382. in which case the height will be set and the width will be scaled
  383. proportionally.  If you set both, the aspect ratio of the included
  384. graphic will be distorted but both size specifications will be honored.
  385.  
  386.   By default, clipping is disabled for included EPSF images.  This is
  387. because clipping to the bounding box dimensions often cuts off a small
  388. portion of the figure, due to slightly inaccurate bounding box
  389. arguments.  The problem might be subtle; lines around the boundary of
  390. the image might be half their intended width, or the tops or bottoms of
  391. some text annotations might be sliced off.  If you want to turn
  392. clipping on, just use the command
  393.  
  394.      \epsfclipon
  395.  
  396. and to turn clipping back off, use
  397.  
  398.      \epsfclipoff
  399.  
  400.   A more general facility for sizing is available by defining the
  401. `epsfsize' macro.   You can redefine this macro to do almost anything.
  402. This TeX macro is passed two parameters by `epsffile'.  The first
  403. parameter is the natural horizontal size of the PostScript graphic, and
  404. the second parameter is the natural vertical size.  This macro is
  405. responsible for returning the desired horizontal size of the graph (the
  406. same as assigning `epsfxsize' above).
  407.  
  408.   In the definitions given below, only the body is given; it should be
  409. inserted in
  410.  
  411.      \def\epsfsize#1#2{BODY}
  412.  
  413. Some common definitions are:
  414.  
  415. `epsfxsize'
  416.      This definition (the default) enables the default features listed
  417.      above, by setting `epsfxsize' to the same value it had before the
  418.      macro was called.
  419.  
  420. `0pt'
  421.      This definition forces natural sizes for all graphics by setting
  422.      the width to zero, which turns on horizontal scaling.
  423.  
  424. `#1'
  425.      This forces natural sizes too, by returning the first parameter
  426.      only (the natural width) and setting the width to it.
  427.  
  428. `hsize'
  429.      This forces all graphics to be scaled so they are as wide as the
  430.      current horizontal size.  (In LaTeX, use `textwidth' instead of
  431.      `hsize'.)
  432.  
  433. `0.5#1'
  434.      This scales all figures to half of their natural size.
  435.  
  436. `\ifnum#1>\hsize\hsize\else#1\fi'
  437.      This keeps graphics at their natural size, unless the width would
  438.      be wider than the current `hsize', in which case the graphic is
  439.      scaled down to `hsize'.
  440.  
  441.   If you want TeX to report the size of the figure as a message on your
  442. terminal when it processes each figure, give the command
  443.  
  444.      \epsfverbosetrue
  445.  
  446. 
  447. File: dvips.info,  Node: Header Files,  Next: Literal PS,  Prev: EPSF Macros,  Up: Including PostScript
  448.  
  449. Header Files
  450. ============
  451.  
  452.   Often in order to get a particular graphic file to work, a certain
  453. header file might need to be sent first.  Sometimes this is even
  454. desirable, since the size of the header macros can dominate the size of
  455. certain PostScript graphics files.  The dvips program provides support
  456. for this with the `header=' special command.  For instance, to ensure
  457. that `foo.ps' gets downloaded as part of the header material, the
  458. following command should be added to the TeX file:
  459.  
  460.      \special{header=foo.ps}
  461.  
  462. The dictionary stack will be at the `userdict' level when these header
  463. files are included.
  464.  
  465.   For these and all other header files (including the headers required
  466. by dvips itself and any downloaded fonts), the printer VM budget is
  467. debited by some value.  If the header file has, in its first 1024 bytes,
  468. a line of the form
  469.  
  470.      %%VMusage: MIN MAX
  471.  
  472. then the maximum value is used.  If it doesn't, then the total size of
  473. the header file in bytes is used as an approximation of the memory
  474. requirements.
  475.  
  476. 
  477. File: dvips.info,  Node: Literal PS,  Next: Literal headers,  Prev: Header Files,  Up: Including PostScript
  478.  
  479. Literal PostScript
  480. ==================
  481.  
  482.   For simple graphics, or just for experimentation, literal PostScript
  483. graphics can be included.  Simply use a `\special' beginning with a
  484. double quote (`"') (no closing `"').
  485.  
  486.   For instance, the following (simple) graphic:
  487.  
  488. was created by typing:
  489.  
  490.      \vbox to 100bp{\vss % a bp is the same as a PostScript unit
  491.      \special{" newpath 0 0 moveto 100 100 lineto 394 0 lineto
  492.      closepath gsave 0.8 setgray fill grestore stroke}}
  493.  
  494.   [ There is a picture of a triangle on hardcopy printouts and in the
  495. PostScript file generated by `dvips'.  (You are responsible for leaving
  496. space for such literal graphics.) Literal graphics are discouraged
  497. because of their nonportability.
  498.  
  499. 
  500. File: dvips.info,  Node: Literal headers,  Next: Graphics Support,  Prev: Literal PS,  Up: Including PostScript
  501.  
  502. Literal Headers
  503. ===============
  504.  
  505.   Similarly, you can define your own macros for use in such literal
  506. graphics through the use of literal macros.  Literal macros are defined
  507. just like literal graphics, only you begin the special with an
  508. exclamation point instead of a double quote.  These literal macros are
  509. included as part of the header material in a special dictionary called
  510. `SDict'.  This dictionary is the first one on the PostScript dictionary
  511. stack when any PostScript graphic is included, whether by literal
  512. inclusion or through the `epsffile' macros.
  513.  
  514. 
  515. File: dvips.info,  Node: Graphics Support,  Next: Dynamic Creation of Graphics,  Prev: Literal headers,  Up: Including PostScript
  516.  
  517. Other Graphics Support
  518. ======================
  519.  
  520.   There are other ways to include graphics with dvips.  One is to use an
  521. existing package, such as `emtex', `psfig', `tpic', or `METAPOST', all
  522. of which `dvips' supports.
  523.  
  524.   Other facilities are available for historical reasons, but their use
  525. is discouraged, in hope that some `sane' form of PostScript inclusion
  526. shall become standard.  The main advantage of the `epsffile' macros is
  527. that they can be adapted for whatever form of special eventually becomes
  528. standard, and thus only minor modifications to that one file need to be
  529. made, rather than revising an entire library of TeX documents.
  530.  
  531.   Most of these specials use a flexible key and value scheme:
  532.  
  533.      \special{psfile=FILENAME.PS[KEY=VALUE]*}
  534.  
  535. This will download the PostScript file called `filename.ps' such that
  536. the current point will be the origin of the PostScript coordinate
  537. system.  The optional key/value assignments allow you to specify
  538. transformations on the PostScript.
  539.  
  540.   The possible keys are:
  541.  
  542. `hoffset'
  543.      The horizontal offset (default 0)
  544.  
  545. `voffset'
  546.      The vertical offset (default 0)
  547.  
  548. `hsize'
  549.      The horizontal clipping size (default 612)
  550.  
  551. `vsize'
  552.      The vertical clipping size (default 792)
  553.  
  554. `hscale'
  555.      The horizontal scaling factor (default 100)
  556.  
  557. `vscale'
  558.      The vertical scaling factor (default 100)
  559.  
  560. `angle'
  561.      The rotation (default 0)
  562.  
  563. `clip'
  564.      Enable clipping to the bounding box
  565.  
  566.   The dimension parameters are all given in PostScript units.  The
  567. `hscale' and `vscale' are given in non-dimensioned percentage units,
  568. and the rotation value is specified in degrees.  Thus
  569.  
  570.      \special{psfile=foo.ps hoffset=72 hscale=90 vscale=90}
  571.  
  572. will shift the graphics produced by file `foo.ps' right by one inch and
  573. will draw it at 0.9 times normal size.  Offsets are given relative to
  574. the point of the special command, and are unaffected by scaling or
  575. rotation.  Rotation is counterclockwise about the origin.  The order of
  576. operations is to rotate the figure, scale it, then offset it.
  577.  
  578.   For compatibility with older PostScript drivers, it is possible to
  579. change the units that `hscale' and `vscale' are given in.  This can be
  580. done by redefining `@scaleunit' in `SDict' by a TeX command such as
  581.  
  582.      \special{! /@scaleunit 1 def}
  583.  
  584. The `@scaleunit' variable, which is by default 100, is what `hscale'
  585. and `vscale' are divided by to yield an absolute scale factor.
  586.  
  587.   All of the methods for including graphics we have described so far
  588. enclose the graphic in a PostScript save/restore pair, guaranteeing that
  589. the figure will have no effect on the rest of the document.  Another
  590. type of special command allows literal PostScript instructions to be
  591. inserted without enclosing them in this protective shield; users of this
  592. feature are supposed to understand what they are doing (and they
  593. shouldn't change the PostScript graphics state unless they are willing
  594. to take the consequences).  This command can take many forms, because it
  595. has had a torturous history; any of the following will work:
  596.  
  597.      \special{ps:TEXT}
  598.      \special{ps::TEXT}
  599.      \special{ps::[begin]TEXT}
  600.      \special{ps::[end]TEXT}
  601.  
  602. (with longer forms taking precedence over shorter forms, when they are
  603. used).  Note that `ps::' and `ps::[end]' do not do any positioning, so
  604. they can be used to continue PostScript literals started with `ps:' or
  605. `ps::[begin]'.  There is also the command
  606.  
  607.      \special{ps: plotfile FILENAME}
  608.  
  609. which will copy the commands from FILENAME verbatim into the output
  610. (but omitting lines that begin with %).  An example of the proper use
  611. of literal specials can be found in the file `rotate.tex' which makes
  612. it easy to typeset text turned 90 degrees.
  613.  
  614.   To finish off this section, the following examples are presented
  615. without explanation:
  616.  
  617.      \def\rotninety{\special{ps:currentpoint currentpoint translate 90
  618.      rotate neg exch neg exch translate}}\font\huge=cmbx10 at 14.4truept
  619.      \setbox0=\hbox to0pt{\huge A\hss}\vskip16truept\centerline{\copy0
  620.      \special{ps:gsave}\rotninety\copy0\rotninety\copy0\rotninety
  621.      \box0\special{ps:grestore}}\vskip16truept
  622.  
  623.   [ There are 4 `A' characters, each rotated 90 degrees about a
  624. common center point ]
  625.  
  626.      \vbox to 2truein{\special{ps:gsave 0.3 setgray}\hrule height 2in
  627.      width\hsize\vskip-2in\special{ps:grestore}\font\big=cminch\big
  628.      \vss\special{ps:gsave 1 setgray}\vbox to 0pt{\vskip2pt
  629.      \line{\hss\hskip4pt NEAT\hss}\vss}\special{ps:0 setgray}%
  630.      \hbox{\raise2pt\line{\hss NEAT\hss}\special{ps:grestore}}\vss}
  631.  
  632.   [ There is a big gray box with the word `NEAT' inside in big letters ]
  633.  
  634.   Some caveats are in order when using the above forms.  Make sure that
  635. each `gsave' on a page is matched with a `grestore' on the same page.
  636. Do not use `save' or `restore'.  Use of these macros can interact with
  637. the PostScript generated by dvips if care is not taken; try to
  638. understand what the above macros are doing before writing your own.
  639. The `\rotninety' macro especially has a useful trick that appears again
  640. and again.
  641.  
  642. 
  643. File: dvips.info,  Node: Dynamic Creation of Graphics,  Prev: Graphics Support,  Up: Including PostScript
  644.  
  645. Dynamic Creation of PostScript Graphics Files
  646. =============================================
  647.  
  648.   PostScript is an excellent page description language--but it does
  649. tend to be rather verbose.  Compressing PostScript graphics files can
  650. often reduce them by more than a factor of five.  For this reason, if
  651. the filename parameter to one of the graphics inclusion techniques
  652. starts with a backtick (``'), the filename is instead interpreted as a
  653. command to execute that will send the actual file to standard output.
  654. Thus,
  655.  
  656.      \special{psfile="`zcat foo.ps.Z"}
  657.  
  658. will include the uncompressed version of `foo.ps'.  Since such a
  659. command is not accessible to TeX, if you use this facility with the
  660. `EPSF' macros, you need to supply the bounding box parameter yourself,
  661. as in
  662.  
  663.      \epsffile[72 72 540 720]{"`zcat screendump.ps.Z"}
  664.  
  665. to include `screendump.ps'.  Of course, the commands to be executed can
  666. be anything, including using a file conversion utility such as `tek2ps'
  667. or whatever is appropriate.
  668.  
  669.   This extension is not portable to other DVI-to-PostScript translators.
  670.  
  671. 
  672. File: dvips.info,  Node: PostScript fonts,  Next: Invoking dvips,  Prev: Including PostScript,  Up: Top
  673.  
  674. Using PostScript Fonts
  675. **********************
  676.  
  677.   Thanks to Donald E. Knuth, the dvips driver now supports PostScript
  678. fonts through the virtual font capability.  PostScript fonts are (or
  679. should be) accompanied by a font metric file such as `Times-Roman.afm',
  680. which describes characteristics of a font called Times-Roman.  To use
  681. such fonts with TeX, we need `tfm' files that contain similar
  682. information. These can be generated from `afm' files by running the
  683. program `afm2tfm', supplied with dvips.  This program also creates
  684. virtual fonts with which you can use normal plain TeX conventions.  See
  685. Donald E. Knuth, `TUGboat' v. 11, no. 1, Apr. 1990, pp. 13-23, "Virtual
  686. Fonts: More Fun for Grand Wizards", for a general introduction to
  687. virtual fonts.
  688.  
  689.   Non-resident downloaded PostScript fonts tend to use a great deal of
  690. printer virtual memory.  PostScript printers typically have between
  691. 130,000 and 400,000 bytes of available virtual memory; each downloaded
  692. font will require approximately 30,000 bytes of that.  For many
  693. applications, bitmapped fonts work much better, even at typesetter
  694. resolutions (with the `-Z' option).
  695.  
  696.   Even resident PostScript fonts can take a fair amount of memory, but
  697. less with this release of dvips than previously.  Also, bitmapped fonts
  698. tend to image faster than PostScript fonts.
  699.  
  700. * Menu:
  701.  
  702. * afm2tfm::
  703. * Changing Encodings::
  704. * Special Font Effects::
  705. * Non-resident Fonts::
  706. * Invoking Afm2tfm::
  707.  
  708. 
  709. File: dvips.info,  Node: afm2tfm,  Next: Changing Encodings,  Up: PostScript fonts
  710.  
  711. The Afm2tfm Program
  712. ===================
  713.  
  714.   In its simplest use, `afm2tfm' converts an Adobe `afm' file (e.g.,
  715. `Times-Roman.afm') into a `raw' TeX TFM file (say, `rptmr.tfm' with the
  716. command
  717.  
  718.      afm2tfm Times-Roman rptmr
  719.  
  720. This file is raw because it does no character remapping; it simply
  721. converts the character information on a one-to-one basis to TeX
  722. characters *with the same code*.  (It would be better to have eschewed
  723. the use of the `r' prefix in favor of using a variant letter to specify
  724. the encoding; but we didn't think of that at the time, and it's too
  725. late to change existing fonts.  *Note Top: (fontname)Top.)
  726.  
  727.   In the following examples, we will use the font Times-Roman to
  728. illustrate the conversion process.  For the standard 35 LaserWriter
  729. fonts, however, it is highly recommended that you use the supplied
  730. `tfm' and `vf' files that come with dvips, as these files contain some
  731. additional changes that make them work better with TeX than they
  732. otherwise would.
  733.  
  734.   Standard PostScript fonts have a different encoding scheme from that
  735. of plain TeX. Although both schemes are based on ASCII, special
  736. characters such as ligatures and accents are handled quite differently.
  737. Therefore we obtain best results by using a `virtual font' interface,
  738. which makes TeX see a standard TeX encoding for the PostScript font.
  739. Such a virtual font can be obtained, for example, by the command
  740.  
  741.      afm2tfm Times-Roman -v ptmr rptmr
  742.  
  743. This produces two files as output, namely the `virtual property list'
  744. file `ptmr.vpl', and the raw font metric file `rptmr.tfm'.  (The upper
  745. case `-V' also produces a `vpl' file, but maps a set of small caps into
  746. the lower case alphabet.) To use the font in TeX, you should first run
  747.  
  748.      vptovf ptmr.vpl ptmr.vf ptmr.tfm
  749.  
  750. and then install the virtual font file `ptmr.vf' where Dvips will see
  751. it, and install `ptmr.tfm' and `rptmr.tfm' where TeX and Dvips will see
  752. them.
  753.  
  754.   You can also make more complex virtual fonts by editing `ptmr.vpl'
  755. before running `vptovf'; such editing might add the uppercase Greek
  756. characters in the standard TeX positions, for instance.  (This has
  757. already been done for the font files that come with Dvips.)  Once this
  758. has been done, you're all set. You can use code like this in TeX
  759. henceforth:
  760.  
  761.      \font\myfont = ptmr at 12pt
  762.      \myfont Hello, I am being typeset in 12-point Times-Roman.
  763.  
  764.   Thus we have two fonts, one actual (`rptmr', which is analogous to
  765. the font in the printer) and one virtual (`ptmr', which has been
  766. remapped to the standard TeX encoding (almost), and has typesetting
  767. know-how added. You could also say
  768.  
  769.      \font\PTR = rptmr at 10pt
  770.  
  771. and typeset directly with that, but then you would have no ligatures or
  772. kerning, and you would have to use Adobe character positions for
  773. special letters like the ligature 'AE'.  The virtual font called `ptmr'
  774. not only has ligatures and kerning, and most of the standard accent
  775. conventions of TeX, it also has a few additional features not present
  776. in the Computer Modern fonts. For example, it includes all the Adobe
  777. characters (such as the Polish ogonek and the French guillemots).  The
  778. only things you lose from ordinary TeX text fonts are the dotless `j'
  779. (which can be hacked into the VPL file with literal PostScript specials
  780. if you have the patience) and uppercase Greek letters (which just don't
  781. exist unless you buy them separately).
  782.  
  783.   The remapped `p*' fonts mostly follow plain TeX conventions for
  784. accents.  The exceptions: the Hungarian umlaut (which is at position
  785. `0x7D' in `cmr10', but position `0xCD' in `ptmr'); the dot accent (at
  786. positions `0x5F' and `0xC7', respectively); and `\AA', which neds
  787. different tweaking.  In order to use these accents with PostScript
  788. fonts or in math mode when `\textfont0' is a PostScript font, you will
  789. need to use the following definitions.  These definitions will not work
  790. with the Computer Modern fonts for the relevant accents.  They are
  791. already part of the distributed `psfonts.sty' for use with LaTeX.
  792.  
  793.      \def\H#1{{\accent"CD #1}}
  794.      \def\.#1{{\accent"C7 #1}}
  795.      \def\dot{\mathaccent"70C7 }
  796.      \newdimen\aadimen
  797.      \def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0
  798.        \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen
  799.        \hbox to \wd0{\hss\char'27\hss}}A}
  800.  
  801.   These PostScript fonts can be scaled to any size.  Go wild!  Using
  802. PostScript fonts, however, does use up a great deal of the printer's
  803. memory and it does take time.  You may find downloading bitmapped fonts
  804. (possibly compressed) to be faster than using the built-in PostScript
  805. fonts!
  806.  
  807. 
  808. File: dvips.info,  Node: Changing Encodings,  Next: Special Font Effects,  Prev: afm2tfm,  Up: PostScript fonts
  809.  
  810. Changing a Font's Encoding
  811. ==========================
  812.  
  813.   The `afm2tfm' program also allows you to specify a different encoding
  814. for a PostScript font.  This can be done at two levels.
  815.  
  816.   You can specify a different output encoding with `-t'. This only
  817. applies when you are building a virtual font, and it tells `afm2tfm' to
  818. attempt to remap the font to match the output encoding as closely as
  819. possible.  In such an output encoding, you can also specify ligature
  820. pairs and kerning information that will be used in addition to the
  821. information in the `afm' file.
  822.  
  823.   You can also specify a different PostScript encoding with `-p'.  This
  824. changes both the raw `tfm' file created by Afm2tfm and the `vf' and
  825. `tfm' files created by VPtoVF.  It also requires that the encoding file
  826. be downloaded as part of any document that uses this font.  This is the
  827. only way to access characters in a PostScript font that are neither
  828. encoded in the `afm' file nor built from other characters (constructed
  829. characters).  For instance, `Times-Roman' contains the extra characters
  830. `trademark' and `registered' (among others) that can only be accessed
  831. through such a PostScript reencoding.  Any ligature or kern information
  832. specified in the PostScript encoding is ignored by `afm2tfm'.
  833.  
  834.   To combine the effects of `-p' and `-t', use `-T'.  If you make
  835. regular use of a private non-standard reencoding `-T' is usually the
  836. better idea, since you can get unexpected inconsistencies in mapping
  837. otherwise.
  838.  
  839.   Afm2tfm's encoding files have precisely the same format as an
  840. encoding vector in any PostScript font.  Specifically:
  841.  
  842.      % Comments are ignored, unless the first word after the percent sign
  843.      % is LIGKERN -- see below.
  844.      /MyEncoding [ /Alpha /Beta /Gamma /Delta ...
  845.           /A /B ... /Z % exactly 256 entries, each with a / at the front
  846.           /wfooaccent /xfooaccent /yfooaccent /zfooaccent ] def
  847.  
  848.   Comments, which start with a percent sign and continue until the end
  849. of the line, are ignored unless they start with `LIGKERN'.  The first
  850. `word' of the file must start with a forward slash (a PostScript
  851. literal name) and defines the name of the encoding.  The next word must
  852. be an left bracket `['.  Following that must be precisely 256 character
  853. names; use `/.notdef' for any that you do not want defined.  Finally,
  854. there must be a matching right bracket `]'.  A final `def' token is
  855. optional.  All names are case sensitive.
  856.  
  857.   Any ligature or kern information is given in the comments.  If the
  858. first word after the percent sign is `LIGKERN', then the entire rest of
  859. the line is parsed for ligature and kern information.  This ligature
  860. and kern information is given in groups of words, each group of which
  861. must be terminated by a semicolon (with a space before and after it,
  862. unless it occurs at the end of a line.)
  863.  
  864.   In these `LIGKERN' statements, three types of information may be
  865. specified.  These three types are ligature pairs, kerns to remove or
  866. ignore, and the character value of this font's boundary character.
  867. Which of the types the particular set of words corresponds to is
  868. automatically determined by the allowable syntax.
  869.  
  870.   Throughout a `LIGKERN' statement, the boundary character is specified
  871. as `||'.
  872.  
  873.   To set the boundary character value, a command such as `|| = 39 ;'
  874. must be used.
  875.  
  876.   To indicate a kern to remove, give the names of the two characters
  877. (without the leading slash) separated by `{}', as in `one {} one ;'.
  878. This is similar to the way you might use `{}' in a TeX file to turn off
  879. ligatures or kerns at a particular location.  Either or both of the
  880. character names can be given as `*', which is a wild card matching any
  881. character; thus, all kerns can be removed with `* {} * ;'.
  882.  
  883.   To specify a ligature, specify the names of the pair of characters,
  884. followed by the ligature `operation' (as in METAFONT), followed by the
  885. replacing character name.  Either (but not both) of the first two
  886. characters can be `||' to indicate a word boundary.
  887.  
  888.   Normally the `operation' is `=:' meaning that both characters are
  889. removed and replaced by the third character, but by adding `|'
  890. characters on either side of the `=:', you can specify which of the two
  891. leading characters to retain.  In addition, by suffixing the ligature
  892. operation with one or two `>' signs, you can indicate that the ligature
  893. scanning operation should skip that many characters before proceeding.
  894. This works just like in METAFONT.  A typical ligature might be
  895. specified with `ff i =: ffi ;'.  A more convoluted ligature is `one one
  896. |=:|>> exclam ;' which indicates that every pair of adjacent `1''s
  897. should be separated by an exclamation point, and then two of the
  898. resulting characters should be skipped over before continuing searching
  899. for ligatures and kerns.  You cannot give more `>''s in an ligature
  900. operation as you did `|', so there are a total of eight possible
  901. ligature operations:
  902.  
  903.      =: |=: |=:> =:| =:|> |=:| |=:|> |=:|>>
  904.  
  905. The default set of ligatures and kerns built in to `afm2tfm' can be
  906. specified with:
  907.      % LIGKERN question quoteleft =: questiondown ;
  908.      % LIGKERN exclam quoteleft =: exclamdown ;
  909.      % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ;
  910.      % LIGKERN quoteleft quoteleft =: quotedblleft ;
  911.      % LIGKERN quoteright quoteright =: quotedblright ;
  912.      % LIGKERN space {} * ; * {} space ; 0 {} * ; * {} 0 ;
  913.      % LIGKERN 1 {} * ; * {} 1 ; 2 {} * ; * {} 2 ; 3 {} * ; * {} 3 ;
  914.      % LIGKERN 4 {} * ; * {} 4 ; 5 {} * ; * {} 5 ; 6 {} * ; * {} 6 ;
  915.      % LIGKERN 7 {} * ; * {} 7 ; 8 {} * ; * {} 8 ; 9 {} * ; * {} 9 ;
  916.  
  917. 
  918. File: dvips.info,  Node: Special Font Effects,  Next: Non-resident Fonts,  Prev: Changing Encodings,  Up: PostScript fonts
  919.  
  920. Special Font Effects
  921. ====================
  922.  
  923.   Afm2tfm can do other manipulations as well.  For example, to make an
  924. obliqued variant of Times Roman:
  925.  
  926.      afm2tfm Times-Roman -s .167 -v ptmro rptmro
  927.  
  928. which creates `ptmro.vpl' and `rptmro.tfm'.  To use this, put the line
  929.  
  930.      rptmro Times-Roman ".167 SlantFont"
  931.  
  932. into `psfonts.map'.  Then `rptmro' (our name for the obliqued Times)
  933. will act as if it were a resident font, although it is actually
  934. constructed from Times-Roman via the PostScript routine `SlantFont'
  935. (which slants everything 1/6 to the right, in this case).
  936.  
  937.   Similarly, you can get an expanded font with
  938.  
  939.      afm2tfm Times-Roman -e 1.2 -v ptmrre rptmrre
  940.  
  941. and by recording the pseudo-resident font
  942.  
  943.      rptmrre Times-Roman "1.2 ExtendFont"
  944.  
  945. in `psfonts.map'.
  946.  
  947.   You can also create a small caps font with a command such as
  948.  
  949.      afm2tfm Times-Roman -V ptmrc rptmrc
  950.  
  951. This will generate a set of small caps mapped into the usual lower case
  952. positions and scaled down to 0.8 of the normal cap dimensions.  You can
  953. also specify the scaling as something other than the default 0.8:
  954.  
  955.      afm2tfm Times-Roman -c 0.7 -V ptmrc rptmrc
  956.  
  957.   It is unfortunately not possible to increase the width of the small
  958. caps independently of the rest of the font.  If you want a really
  959. professional looking set of small caps you will have to make up a
  960. custom pair of ``tfm'' and ``vpl'' files using the `-e' option, change
  961. the name and checksum of the D 1 font in `ptmrc.vpl' to match the
  962. customized raw `tfm', and replace the small caps at the lower case
  963. mappings with the small caps in the customized file.  You can then
  964. throw away the customized `vpl' file, but not the customized `tfm'.
  965. That must be identified with an appropriate line in `psfonts.map'.
  966.  
  967.   To change the `PaintType' in a font from filled (0) to outlined (2),
  968. you can add `"/PaintType 2 store"' to `psfonts.map', as in the
  969. following:
  970.  
  971.      rphvrl   Helvetica "/PaintType 2 store"
  972.  
  973.   If you change the PostScript encoding of a font, you must specify the
  974. input file as a header file, as well as give a reencoding command.  For
  975. instance, let us say we are using Times-Roman reencoded according to
  976. the encoding `MyEncoding' (stored in the file `myenc.enc') as `rptmrx'.
  977. In this case, our `psfonts.map' entry would look like
  978.  
  979.      rptmrx Times-Roman "MyEncoding ReEncodeFont" <myenc.enc
  980.  
  981.   The `afm2tfm' program prints out the precise line you need to add to
  982. `psfonts.map' to use that font, assuming the font is resident in the
  983. printer; if the font is not resident, you must add the header command
  984. to download the font yourself.  Each identical line only needs to be
  985. specified once in the `psfonts.map' file, even though many different
  986. fonts (small caps variants, or ones with different output encodings)
  987. may be based on it.
  988.  
  989. 
  990. File: dvips.info,  Node: Non-resident Fonts,  Next: Invoking Afm2tfm,  Prev: Special Font Effects,  Up: PostScript fonts
  991.  
  992. Non-resident PostScript Fonts
  993. =============================
  994.  
  995.   If you want to use a non-printer-resident PostScript font for which
  996. you have a `pfb' or `pfa' file (an Adobe Type 1 font program), you can
  997. make it act like a resident font by putting a `<' sign and the name of
  998. the `pfb' or `pfa' file just after the font name in the `psfonts.map'
  999. file entry. For example,
  1000.  
  1001.      rpstrn StoneInformal <StoneInformal.pfb
  1002.  
  1003. will cause dvips to include `StoneInformal.pfb' in your document as if
  1004. it were a header file, whenever the pseudo-resident font StoneInformal
  1005. is used in a document.  Similarly, you can generate transformed fonts
  1006. and include lines like
  1007.  
  1008.      rpstrc StoneInformal <StoneInformal.pfb ".8 ExtendFont"
  1009.  
  1010. in `psfonts.map', in which case `StoneInformal.pfb' will be loaded
  1011. whenever StoneInformal-Condensed is used. Each header file is loaded at
  1012. most once per document.
  1013.  
  1014.   If you are using a `pfb' file that is also has a different PostScript
  1015. encoding, you need to download multiple header files in `psfonts.map'.
  1016. If, for instance, `Optima' was both non-resident and you wanted to
  1017. reencode it in PostScript with `MyEncoding' stored in `myenc.enc', you
  1018. need:
  1019.  
  1020.      rpstrnx Optima "MyEncoding ReEncodeFont" <myenc.enc <Optima.pfb
  1021.  
  1022.   When using PFB files, dvips is smart enough to unpack the binary PFB
  1023. format into printable ASCII so there is no need to perform this
  1024. conversion yourself.  In addition, it will scan the font to determine
  1025. its memory usage, as it would for any header file.
  1026.  
  1027.   Here is a brief description of the contents of `psfonts.map'.  If a
  1028. line is empty or begins with a space, percent, asterisk, semicolon, or
  1029. hash mark, it is ignored.  Otherwise, the line is separated into words,
  1030. where words are separated by spaces or tabs, except that if a word
  1031. begins with a double quote, it extends until the next double quote or
  1032. the end of the line.  If a word starts with a less than character, it is
  1033. treated as a font header file (or a downloaded PostScript font).  There
  1034. can be more than one such header for a given font.  If a word starts
  1035. with a double quote, it is a special instruction for generating that
  1036. font.  Otherwise it is a name.  The first such name is the TFM file that
  1037. a virtual font file can refer to.  If there is another name, it is used
  1038. as the PostScript name; if there is only one name, it is used for both
  1039. the TeX name and the PostScript name.
  1040.  
  1041. 
  1042. File: dvips.info,  Node: Invoking Afm2tfm,  Prev: Non-resident Fonts,  Up: PostScript fonts
  1043.  
  1044. Invoking Afm2tfm
  1045. ================
  1046.  
  1047.   The command line switches to `afm2tfm' are:
  1048.  
  1049. `-c RATIO'
  1050.      See `-V'; overrides the default ratio of 0.8 for the scaling of
  1051.      small caps.
  1052.  
  1053. `-e RATIO'
  1054.      All characters are stretched horizontally by the stated ratio; if
  1055.      it is less than 1.0, you get a condensed font.
  1056.  
  1057. `-O'
  1058.      This option forces all character codes in the output `vpl' file be
  1059.      given as octal values; this is useful for symbol or other
  1060.      special-purpose fonts where character names such as `A' have no
  1061.      meaning.
  1062.  
  1063. `-p FILE'
  1064.      This specifies a file to use for the PostScript encoding of the
  1065.      font.  This file must also be mentioned as a header file for the
  1066.      font in `psfonts.map', and that ligature and kern information in
  1067.      this file is ignored.
  1068.  
  1069. `-T FILE'
  1070.      This option specifies that FILE is to be used for both the
  1071.      PostScript and target TeX encodings of the font.
  1072.  
  1073. `-t FILE'
  1074.      This specifies a file to use for the target TeX encoding of the
  1075.      font.  Ligature and kern information may also be specified in this
  1076.      file; the file need not be mentioned in `psfonts.map'.
  1077.  
  1078. `-s SLANT'
  1079.      All characters are slanted to the right by SLANT.  If SLANT is
  1080.      negative, the letters slope to the left (or they might be upright
  1081.      if you start with an italic font).
  1082.  
  1083. `-u'
  1084.      This option indicates that `afm2tfm' should use only those
  1085.      characters that are required by the output encoding, and no
  1086.      others.  Normally, `afm2tfm' tries to include both characters that
  1087.      fit the output encoding and any additional characters that might
  1088.      exist in the font.  This option forbids those additional
  1089.      characters from being added.
  1090.  
  1091. `-v FILE'
  1092.      Generate a virtual property list `vpl' file as well as a `tfm'
  1093.      file.
  1094.  
  1095. `-V FILE'
  1096.      Same as `-v', but the virtual font generated is a small caps font
  1097.      obtained by scaling uppercase letters by 0.8 to typeset lowercase.
  1098.      This font handles accented letters and retains proper kerning.
  1099.  
  1100.   Here are the `CODINGSCHEMES' that result from the various possible
  1101. choices for reencoding.
  1102.  
  1103. `default encoding'
  1104.           (CODINGSCHEME TeX text + AdobeStandardEncoding)
  1105.  
  1106. `-p DC.enc'
  1107.           (CODINGSCHEME TeX text + DCEncoding)
  1108.  
  1109. `-t DC.enc'
  1110.           (CODINGSCHEME DCEncoding + AdobeStandardEncoding)
  1111.  
  1112. `-T DC.enc'
  1113.           (CODINGSCHEME DCEncoding + DCEncoding)
  1114.  
  1115.