Lars Hellström Lars.Hellstrom@math.umu.se
Mon, 27 Aug 2001 19:33:01 +0200


At 20.15 +0200 2001-08-26, B. & C. van der Hoeff wrote:
>----- Original Message -----
>From: "Lars Hellström" <Lars.Hellstrom@math.umu.se>
>To: "B. & C. van der Hoeff" <v.d.hoeff@hccnet.nl>
>Cc: "Fontinst-Mailinglist" <fontinst@cogs.susx.ac.uk>
>Sent: Sunday, August 26, 2001 2:57 PM
>Subject: Re:
>
>
>> You could try using xfntinst.sty instead---that contains some
>variant code
>> which was intended for cases like this.
>
>Unfortunately, it did not work :-(
>
>> If that doesn't work then you'll
>> have to use the \installfont command to make the fonts, which
>shouldn't be
>> too hard as the main reason \latinfamily fails is that it isn't
>looking for
>> the fonts you have.
>
>I am lost here because I cannot find a proper example. How do I
>create the `psbx' and `psbj' equivalents by using the \installfonts
>command?

As you don't seem to have any expert fonts in the family, there is no need
to create a psbx family. As for the psbj family, most of the \installfont
commands should look like

\installfont{#1}{#2,latin}{t1}{T1}{psbj}{#3}{#4}{}

where
  #1: name of VF to create
  #2: name of (reencoded) base font(s) to base it on
  #3: LaTeX series
  #4: LaTeX shape

Thus you get for example

\installfont{psbrij8t}{psbrij8r,latin}{t1}{T1}{psbj}{m}{it}{}
\installfont{psbrcj8t}{psbrc8r,latin}{t1}{T1}{psbj}{m}{sc}{}
\installfont{psbbj8t}{psbbj8r,latin}{t1}{T1}{psbj}{b}{n}{}

and the corrsponding lines for OT1 would be

\installfont{psbrij7t}{psbrij8r,latin}{ot1}{OT1}{psbj}{m}{it}{}
\installfont{psbrcj7t}{psbrc8r,latin}{ot1}{OT1}{psbj}{m}{sc}{}
\installfont{psbbj7t}{psbb8r,latin}{ot1}{OT1}{psbj}{b}{n}{}

Note that you should not use t1c, t1j, or any of the other variants instead
of t1 here as those assume that the glyphs have their proper names instead
of (as is the case with your fonts) the closest equivalent found in Adobe's
StandardEncoding. (Adobe likes to use that whenever they can as some of the
features in type 1 fonts aren't available for glyphs not in this encoding.)

The only tricky case is that of the nonitalic regular weight font, as that
doesn't contain all the glyphs you need. If you have fontinst v1.9 then you
can use \reglyphfont to manufacture a fake expert font from the smallcaps
font as has been described previously on this list. Otherwise you can make
it work with a bit of editing. First make all the 8r-encoded fonts you will
need on one fontinst run.

\input fontinst.sty
\transformfont{psbb8r}{\reencodefont{8r}{\fromafm{psbb8a}}}
\transformfont{psbbi8r}{\reencodefont{8r}{\fromafm{psbbi8a}}}
\transformfont{psbbij8r}{\reencodefont{8r}{\fromafm{psbbij8a}}}
\transformfont{psbbj8r}{\reencodefont{8r}{\fromafm{psbbj8a}}}
\transformfont{psbr8r}{\reencodefont{8r}{\fromafm{psbr8a}}}
\transformfont{psbrc8r}{\reencodefont{8r}{\fromafm{psbrc8a}}}
\transformfont{psbri8r}{\reencodefont{8r}{\fromafm{psbri8a}}}
\transformfont{psbrij8r}{\reencodefont{8r}{\fromafm{psbrij8a}}}
\transformfont{psbbo8r}{\slantfont{167}{\frommtx{psbb8r}}}
\transformfont{psbbjo8r}{\slantfont{167}{\frommtx{psbbj8r}}}
\transformfont{psbro8r}{\slantfont{167}{\frommtx{psbr8r}}}
\transformfont{psbrco8r}{\slantfont{167}{\frommtx{psbrc8r}}}
\bye

should do that for you. You should replace 167 by the italic slant of your
raw italic fonts (look in e.g. psbri8a.mtx for this number). Then open the
MTX files with a c in their names and copy the lines which say

\setrawglyph{zero}{...

or any of the other digit glyph names (one, two, ...), paste them into the
corresponding file without a c in its name, and append an `oldstyle' to
each of these glyph names in the new lines, to viz.

\setrawglyph{zerooldstyle}{...

After that, the line

\installfont{psbrj8t}{psbr8r,latin}{t1j}{T1}{psbj}{m}{n}{}
\installfont{psbrjo8t}{psbro8r,latin}{t1j}{T1}{psbj}{m}{sl}{}

should make you normal and slanted shapes with oldstyle digits instead of
the lining ones. Here you need to use t1j to get the glyphs that you want
put in the font.

A final note concerning bold smallcaps: There is no real such font, so
you'll probably want to fake it. That is done as

\installfont{psbbcj8t}{psbbj8r,latin}{t1cj}{T1}{psbj}{b}{sc}{}

To make this fake smallcaps go reasonably well with the real one you'll
probably have to adjust the factor by which the capitals are scaled to fake
the smallcaps. This can be done by including the command

  \setint{smallcapsscale}{<factor>}

in your command file BEFORE the \installfonts command. A suitable value for
<factor> is 1000*XHeight/CapHeight, where XHeight and CapHeight are those
font parameters from psbrc8a.afm.

As for the TS1 encoded fonts, there is no difference between oldstyle and
non-oldstyle fonts there. You can use the same fonts as you've presumably
already generated for the psb family. Copying the FD file and changing all
{psb} in the copy to {psbj} should accomplish this.

Lars Hellström