outline-files in map-fragments

Lars Hellström Lars.Hellstrom@math.umu.se
Sun, 29 Sep 2002 13:16:22 +0200


At 17.17 +0200 2002-09-28, Fernando Q. Gouvea wrote:
>**** On Fri, 27 Sep 2002 17:16:18 +0200, Chris Kuhn said:
>
>Chris> i just found out how good the map fragment writer of fontinst
>Chris> works. one problem: the entries all rely on .pfa-outlines. is there
>Chris> an option to change, or is the map file to be changed?
>
>I've never been able to quite understand how this is used. Can someone post
>a sample.tex that uses the map fragment writer?

Here's a more complicated example that tests x-scaling and y-scaling fonts.
(Don't worry about the names of the fonts made; they are quite nonstandard.)
============ v1914test.tex ===========
\input fontinst.sty

\recordtransforms{v1914test.recs}

\transformfont{padr8r}{\reencodefont{8r}{\fromafm{padr8a}}}
\for(x){0}{2}{1}
   \for(y){0}{2}{1}
      \transformfont{p-ad-rr--8r--\strint{x}=\strint{y}}{
         \xscalefont{\add{\mul{\int{x}}{300}}{700}}{
         \yscalefont{\add{\mul{\int{y}}{300}}{700}}{
         \frommtx{padr8r}}}}
   \endfor(y)
\endfor(x)

\installfonts
   \installfamily{T1}{padxy}{}
   \installfamily{8r}{padxy}{}
   \for(x){0}{2}{1}
      \for(y){0}{2}{1}
         \installfont{p-ad-rr--8t--\strint{x}=\strint{y}}
            {p-ad-rr--8r--\strint{x}=\strint{y},latin}
            {t1}{T1}{padxy}{m\strint{x}\strint{y}}{n}{}
         \installrawfont{p-ad-rr--8r--\strint{x}=\strint{y}}
            {p-ad-rr--8r--\strint{x}=\strint{y},8r}
            {8r}{8r}{padxy}{m\strint{x}\strint{y}}{n}{}
      \endfor(y)
   \endfor(x)
\endinstallfonts

\endrecordtransforms

\bye
========== end v1914test.tex ===========

=========== v1914testmap.tex ===========
\input finstmsc.sty
\AssumeLWFN % Probably only useful on Mac OS.
\adddriver{dvips}{v1914test.map}
\input v1914test.recs
\donedrivers
\bye
========= end v1914testmap.tex =========

This generates the following v1914test.map (lines manually wrapped):

p-ad-rr--8r--0=0 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont "
p-ad-rr--8r--0=1 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont 0.7 ExtendFont "
p-ad-rr--8r--0=2 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont 0.538 ExtendFont "
p-ad-rr--8r--1=0 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont 1.429 ExtendFont "
p-ad-rr--8r--1=1 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont "
p-ad-rr--8r--1=2 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont 0.769 ExtendFont "
p-ad-rr--8r--2=0 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont 1.857 ExtendFont "
p-ad-rr--8r--2=1 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont 1.3 ExtendFont "
p-ad-rr--8r--2=2 AGaramond-Regular <8r.enc <AGarReg
        " TeXBase1Encoding ReEncodeFont "

The various ExtendFont factors are $(700+300x)/(700+300y)$ for $x,y \in
\{0,1,2\}$.

In 8rpadxy.fd (which isn't really needed for anything) one finds the entries:

\DeclareFontFamily{8r}{padxy}{}

\DeclareFontShape{8r}{padxy}{m00}{n}{
   <-> [0.7] p-ad-rr--8r--0=0
}{}

\DeclareFontShape{8r}{padxy}{m01}{n}{
   <-> p-ad-rr--8r--0=1
}{}

\DeclareFontShape{8r}{padxy}{m02}{n}{
   <-> [1.3] p-ad-rr--8r--0=2
}{}

\DeclareFontShape{8r}{padxy}{m10}{n}{
   <-> [0.7] p-ad-rr--8r--1=0
}{}

\DeclareFontShape{8r}{padxy}{m11}{n}{
   <-> p-ad-rr--8r--1=1
}{}

\DeclareFontShape{8r}{padxy}{m12}{n}{
   <-> [1.3] p-ad-rr--8r--1=2
}{}

\DeclareFontShape{8r}{padxy}{m20}{n}{
   <-> [0.7] p-ad-rr--8r--2=0
}{}

\DeclareFontShape{8r}{padxy}{m21}{n}{
   <-> p-ad-rr--8r--2=1
}{}

\DeclareFontShape{8r}{padxy}{m22}{n}{
   <-> [1.3] p-ad-rr--8r--2=2
}{}


Lars Hellström