[comp.text.tex] Font aliasing under DVIPS

JOHNGALT%UACCIT@ARIZONA.BITNET (John Galt) (06/22/91)

Tony Cooper <tony%marcam.dsir.govt.nz@SHSU.BITNET> asked some questions.
As I am going through the exact thing he is, I thought I would attempt to
answer some of the questions.  If anyone is clearer on all of this, then
I would like to be enlightened as well... :-)


>I am new to the TeX installation process and I have just installed
>TeX3.14 and dvips 5.47 on our SunOS 4.1 Sparc. No problems. Everything
>works fine.

        Not according to what you say next...  ;-)

>The problem is that we used to use old font names for Postscript fonts
>and I want those files to still work. Eg the new name for Helvetica is
>rphvr but we used to use ppshlv since that is what our Vax/VMS system
>uses. My question is simple: how do I set things up so that both rphvr
>and ppshlv are recognised as being Helvetica?

        What DVI driver did you used to use and what is being used
        on the VAX?  Might have to drag them kicking and screaming
        into the new scheme...

>The psfonts.map file has the line
>
>rphvr   Helvetica
>
>in it and the tfm and vf files rphvr.tfm and phvr.vf exist. I tried
>adding the line
>
>rphvr ppshlv

        In this context, DVIPS will try to look for a font called
        ppshlv to be resident in the Postscript printer.

        There are two ways of approaching this:

        1) Change that line to:

                ppshlv  Helvetica

        and then create a .tfm file by copying the rphvr.tfm
        to ppshlv.tfm.

        (OR)

        2) Take that line out completely and create .tfm and .vf
        files for ppshlv.  This may be as simple as just copying
        the phvr.vf and phvr.tfm files to ppshlv.vf and ppshlv.tfm.
        If there is no phvr.tfm, you will have to create one by
        using afm2tfm and vptovf on the .afm file.  (Should be
        something like "Helvetica.afm" or some such...)  For exact
        instructions, see later in this message, in the section about
        small caps, but before doing either of the above, read on...

>and used dvips on an old (version 2.991) dvi file. The printout was
>lousy. The fonts were wrong, the spacing terrible, and the ligatures
>were missing. What did I do wrong?

        If I understand the DVIPS documentation correctly, the
        "rphvr" file is a "raw" tfm file which has a one to one
        correspondence with the Postscript font.  Since Postscript
        fonts have a different positioning for the characters than
        TeX does, the ligatures are normally unavailable.  That is why
        the "phvr" font is neccessary, as it is a remapped file which
        points to the correct locations for the ligatures.  Try
        using the phvr font as a test.  This is why you might prefer
        to use method 2 above.

>So I TeX'ed a new (version 3.14) dvi file. TeX couldn't find
>ppshlv.tfm. I made a link to rphvr.tfm. Then TeX couldn't find
>ppstime.tfm. I gave up at that stage cos there was no equivalent new
>file. ppstime refers to Times-Extension - I don't have that in the new
>tfm or afm files. I have Times-Extended and/or Times-Expanded (I don't
>know the difference) but I'm not sure which is which.

        Create ppshlv.tfm as above.  Also sounds like ppstime.tfm is
        another font that you will have to create in much the same
        way; that is, by using some other font files and renaming them,
        or by building the files with afm2tfm from the .afm files.  To
        be honest, this is where I start to scratch my head...  I have
        read page 13 of the DVIPS manual, and can only guess that
        Times-Extended is an actual font and that Times-Expanded is
        a horizontally stretched version of Times-Roman.

>Also I need a
>Small Caps font but don't know how to make a tfm file using the 5.47
>afm2tfm. I could make a Small Caps vf file but don't know how to get
>TeX to recognize it without a tfm file.

        Decide which font you want to use for the small caps, and
        come up with some name for it that you can use.  Read section
        6 in the DVIPS manual for naming conventions.  For instance,
        if you want to use Helvetica for a small caps font, use the
        name "phvrc" (Postscript, HelVetica, Regular weight, small
        Caps).  After deciding on the font and name, use AFM2TFM on
        the Adobe Font Metric (.afm) file to make the "virtual
        property list" file.  For instance, with a Helvetica.afm file:

                afm2tfm Helvetica -V phvrc

        Make sure it is a capital V, to create the small caps.  If
        you are creating a "normal" font, use a lower case "v".
        ( Sheesh do I hate UNIX sometimes! )

        Then you need to convert the newly created phvrc.vpl file
        into the virtual font (.vf) and TeX font metric (.tfm)
        files.  Use the VPtoVF program:

                vptovf phvrc.vpl phvrc.vf phvrc.tfm

        Now copy the phvrc.tfm file into the directory with the
        other .tfm files, and copy the phvrc.vf file into the
        directory with the other .vf files.  Now you can use the
        font phvrc and have small caps.

>Basically I'm confused over vf and tfm files, 3 names for the same
>font, Extended vs Extension vs Expanded, why does the psfonts.map file
>allow creation of afm Extended (Oblique etc) files but not afm Small
>Caps files and can I do the aliasing without creating both old name and
>new name .tfm files? And why didn't it work when I tried the old dvi
>file?

        I was confused, too.  Think of .vf files as corresponding to
        .pk files, but you only need one, because Postscript fonts
        can be scaled.  These .vf and .pk files actually "contain"
        the fonts.  The .tfm files are just descriptions of what is
        in the .vf and .pk files.  The psfonts.map file is like a
        .vf or .pk file in that it "contains" the fonts that are
        resident in the printer.  They are "exact" fonts that point
        directly to the fonts in the printer without the remapping
        of ligatures, or TeX style spacing (kerning).  If you want
        the TeX style kerning and ligatures, you have to use a mapped
        font file (.vf).  Note that those "extended fonts" in the
        psfonts.map file are the "exact" fonts that do not have the
        mapping to the ligatures.  The psfonts.map file allows "on-
        the-fly" modifications to existing fonts inside the printer.
        Since there don't appear to be any small caps fonts resident
        in the printer, you have to create a different mapping to
        only the capital letters, which must be contained in a separate
        .vf file.  I don't think that you can do any aliasing of old
        versus new fonts without .tfm files, unless you actually put it
        inside of each document (something like the pslatex stuff that
        comes with DVIPS).  As to the Extended vs. Expanded, I'll
        let someone else tackle that.  (Sounds like something a DOS
        person should handle...  [GRIN] )

        P.S.  If you want to save a LOT of time creating .tfm and .vf
        files, get Tom Rokicki's dvipslib.tar.Z file from Neon.Stanford.EDU.
        It contains a lot of pre-made .vf and .tfm files.

Hope this has helped!
If you have any questions, don't hesitate to ask...
-John
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  "Dr. John Galt"                Internet : johngalt@ccit.arizona.edu   %
%  University of Arizona          BITNET   : johngalt@arizrvax           %
%  P.O. Box 3328                  Voice    : (602) 623-5444              %
%  Tucson, AZ 85722                                                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%