transformfont to slanted and 8r

Christian Kuhn Christian.Kuhn@qno.de
Mon, 11 Feb 2002 23:45:04 +0100


Hi Lars, hi all,

Sorry for answering so late, but i do not earn my money with
TeX-related things :-(

On Mon, 4 Feb 2002 18:18:39 +0100, Lars Hellström wrote:
>I can understand if the map file fragment writer is "magic" --- it is
>certainly fairly advanced string-processing in a language that wasn't
>designed for that --- and the documentation can certainly do with
>improvements, but I have hard to see how "Making map file fragments"
>(Subsection 3.4 of the source) is documentation only "for experts". What is
>there about it that is so "expert"?

The Subsection indeed does not read "magic", but very clearly. So i
tried it again (i remember that i thought about it as magic because
it did not work some time ago). Here is what i did:

I'm still dealing with the FSGaramond from the FontSite-CD. For the
use of fontinst, i wrote the following instfgm.tex (still not
dealing with expert and SC+OsF-Fonts):

---instfgm.tex---
\input fontinst.sty
\needsfontinstversion{1.914}

\installfonts

\recordtransforms{fgmmap.tex}

\transformfont{fgmr8r}{\reencodefont{8r}{\fromafm{fgmr8a}}}
\transformfont{fgmri8r}{\reencodefont{8r}{\fromafm{fgmri8a}}}
\transformfont{fgmb8r}{\reencodefont{8r}{\fromafm{fgmb8a}}}
\transformfont{fgmbi8r}{\reencodefont{8r}{\fromafm{fgmbi8a}}}
\transformfont{fgmr8rc}{\reencodefont{8r}{\fromafm{fgmr8ac}}}
\transformfont{fgmri8rc}{\reencodefont{8r}{\fromafm{fgmri8ac}}}
\transformfont{fgmb8rc}{\reencodefont{8r}{\fromafm{fgmb8ac}}}
\transformfont{fgmbi8rc}{\reencodefont{8r}{\fromafm{fgmbi8ac}}}
\transformfont{fgml8rc}{\reencodefont{8r}{\fromafm{fgml8ac}}}
\transformfont{fgmli8rc}{\reencodefont{8r}{\fromafm{fgmli8ac}}}

\installfamily{8r}{fgm}{}
\installfamily{OT1}{fgm}{}
\installfamily{T1}{fgm}{}
\installfamily{TS1}{fgm}{}
\installfamily{8r}{fgmr}{}
\installfamily{OT1}{fgmr}{}
\installfamily{T1}{fgmr}{}
\installfamily{TS1}{fgmr}{}
\installfamily{8r}{fgmc}{}
\installfamily{OT1}{fgmc}{}
\installfamily{T1}{fgmc}{}
\installfamily{TS1}{fgmc}{}

\installrawfont{fgmr8r}{fgmr8r,8r}{8r}{8r}{fgm}{m}{n}{}
\installfont{fgmr7t}{fgmr8r,latin}{OT1}{OT1}{fgm}{m}{n}{}
\installfont{fgmr8t}{fgmr8r,latin}{T1}{T1}{fgm}{m}{n}{}
\installfont{fgmr8c}{fgmr8r,textcomp}{TS1}{TS1}{fgm}{m}{n}{}

\installrawfont{fgmri8r}{fgmri8r,8r}{8r}{8r}{fgm}{m}{it}{}
\installfont{fgmri7t}{fgmri8r,latin}{OT1}{OT1}{fgm}{m}{it}{}
\installfont{fgmri8t}{fgmri8r,latin}{T1}{T1}{fgm}{m}{it}{}
\installfont{fgmri8c}{fgmri8r,textcomp}{TS1}{TS1}{fgm}{m}{it}{}

\installrawfont{fgmb8r}{fgmb8r,8r}{8r}{8r}{fgm}{b}{n}{}
\installfont{fgmb7t}{fgmb8r,latin}{OT1}{OT1}{fgm}{b}{n}{}
\installfont{fgmb8t}{fgmb8r,latin}{T1}{T1}{fgm}{b}{n}{}
\installfont{fgmb8c}{fgmb8r,textcomp}{TS1}{TS1}{fgm}{b}{n}{}

\installrawfont{fgmbi8r}{fgmbi8r,8r}{8r}{8r}{fgm}{b}{it}{}
\installfont{fgmbi7t}{fgmbi8r,latin}{OT1}{OT1}{fgm}{b}{it}{}
\installfont{fgmbi8t}{fgmbi8r,latin}{T1}{T1}{fgm}{b}{it}{}
\installfont{fgmbi8c}{fgmbi8r,textcomp}{TS1}{TS1}{fgm}{b}{it}{}

\installrawfont{fgmr8rc}{fgmr8rc,8r}{8r}{8r}{fgm}{mc}{n}{}
\installfont{fgmr7tc}{fgmr8rc,latin}{OT1}{OT1}{fgm}{mc}{n}{}
\installfont{fgmr8tc}{fgmr8rc,latin}{T1}{T1}{fgm}{mc}{n}{}
\installfont{fgmr8cc}{fgmr8rc,textcomp}{TS1}{TS1}{fgm}{mc}{n}{}

\installrawfont{fgmri8rc}{fgmri8rc,8r}{8r}{8r}{fgm}{mc}{it}{}
\installfont{fgmri7tc}{fgmri8rc,latin}{OT1}{OT1}{fgm}{mc}{it}{}
\installfont{fgmri8tc}{fgmri8rc,latin}{T1}{T1}{fgm}{mc}{it}{}
\installfont{fgmri8cc}{fgmri8rc,textcomp}{TS1}{TS1}{fgm}{mc}{it}{}

\installrawfont{fgmb8rc}{fgmb8rc,8r}{8r}{8r}{fgm}{bc}{n}{}
\installfont{fgmb7tc}{fgmb8rc,latin}{OT1}{OT1}{fgm}{bc}{n}{}
\installfont{fgmb8tc}{fgmb8rc,latin}{T1}{T1}{fgm}{bc}{n}{}
\installfont{fgmb8cc}{fgmb8rc,textcomp}{TS1}{TS1}{fgm}{bc}{n}{}

\installrawfont{fgmbi8rc}{fgmbi8rc,8r}{8r}{8r}{fgm}{bc}{it}{}
\installfont{fgmbi7tc}{fgmbi8rc,latin}{OT1}{OT1}{fgm}{bc}{it}{}
\installfont{fgmbi8tc}{fgmbi8rc,latin}{T1}{T1}{fgm}{bc}{it}{}
\installfont{fgmbi8cc}{fgmbi8rc,textcomp}{TS1}{TS1}{fgm}{bc}{it}{}

\installrawfont{fgml8rc}{fgml8rc,8r}{8r}{8r}{fgm}{lc}{n}{}
\installfont{fgml7tc}{fgml8rc,latin}{OT1}{OT1}{fgm}{lc}{n}{}
\installfont{fgml8tc}{fgml8rc,latin}{T1}{T1}{fgm}{lc}{n}{}
\installfont{fgml8cc}{fgml8rc,textcomp}{TS1}{TS1}{fgm}{lc}{n}{}

\installrawfont{fgmli8rc}{fgmli8rc,8r}{8r}{8r}{fgm}{lc}{it}{}
\installfont{fgmli7tc}{fgmli8rc,latin}{OT1}{OT1}{fgm}{lc}{it}{}
\installfont{fgmli8tc}{fgmli8rc,latin}{T1}{T1}{fgm}{lc}{it}{}
\installfont{fgmli8cc}{fgmli8rc,textcomp}{TS1}{TS1}{fgm}{lc}{it}{}

\installrawfont{fgmr8r}{fgmr8r,8r}{8r}{8r}{fgmr}{m}{n}{}
\installfont{fgmr7t}{fgmr8r,latin}{OT1}{OT1}{fgmr}{m}{n}{}
\installfont{fgmr8t}{fgmr8r,latin}{T1}{T1}{fgmr}{m}{n}{}
\installfont{fgmr8c}{fgmr8r,textcomp}{TS1}{TS1}{fgmr}{m}{n}{}

\installrawfont{fgmri8r}{fgmri8r,8r}{8r}{8r}{fgmr}{m}{it}{}
\installfont{fgmri7t}{fgmri8r,latin}{OT1}{OT1}{fgmr}{m}{it}{}
\installfont{fgmri8t}{fgmri8r,latin}{T1}{T1}{fgmr}{m}{it}{}
\installfont{fgmri8c}{fgmri8r,textcomp}{TS1}{TS1}{fgmr}{m}{it}{}

\installrawfont{fgmb8r}{fgmb8r,8r}{8r}{8r}{fgmr}{b}{n}{}
\installfont{fgmb7t}{fgmb8r,latin}{OT1}{OT1}{fgmr}{b}{n}{}
\installfont{fgmb8t}{fgmb8r,latin}{T1}{T1}{fgmr}{b}{n}{}
\installfont{fgmb8c}{fgmb8r,textcomp}{TS1}{TS1}{fgmr}{b}{n}{}

\installrawfont{fgmbi8r}{fgmbi8r,8r}{8r}{8r}{fgmr}{b}{it}{}
\installfont{fgmbi7t}{fgmbi8r,latin}{OT1}{OT1}{fgmr}{b}{it}{}
\installfont{fgmbi8t}{fgmbi8r,latin}{T1}{T1}{fgmr}{b}{it}{}
\installfont{fgmbi8c}{fgmbi8r,textcomp}{TS1}{TS1}{fgmr}{b}{it}{}

\installrawfont{fgmr8rc}{fgmr8rc,8r}{8r}{8r}{fgmc}{m}{n}{}
\installfont{fgmr7tc}{fgmr8rc,latin}{OT1}{OT1}{fgmc}{m}{n}{}
\installfont{fgmr8tc}{fgmr8rc,latin}{T1}{T1}{fgmc}{m}{n}{}
\installfont{fgmr8cc}{fgmr8rc,textcomp}{TS1}{TS1}{fgmc}{m}{n}{}

\installrawfont{fgmri8rc}{fgmri8rc,8r}{8r}{8r}{fgmc}{m}{it}{}
\installfont{fgmri7tc}{fgmri8rc,latin}{OT1}{OT1}{fgmc}{m}{it}{}
\installfont{fgmri8tc}{fgmri8rc,latin}{T1}{T1}{fgmc}{m}{it}{}
\installfont{fgmri8cc}{fgmri8rc,textcomp}{TS1}{TS1}{fgmc}{m}{it}{}

\installrawfont{fgmb8rc}{fgmb8rc,8r}{8r}{8r}{fgmc}{b}{n}{}
\installfont{fgmb7tc}{fgmb8rc,latin}{OT1}{OT1}{fgmc}{b}{n}{}
\installfont{fgmb8tc}{fgmb8rc,latin}{T1}{T1}{fgmc}{b}{n}{}
\installfont{fgmb8cc}{fgmb8rc,textcomp}{TS1}{TS1}{fgmc}{b}{n}{}

\installrawfont{fgmbi8rc}{fgmbi8rc,8r}{8r}{8r}{fgmc}{b}{it}{}
\installfont{fgmbi7tc}{fgmbi8rc,latin}{OT1}{OT1}{fgmc}{b}{it}{}
\installfont{fgmbi8tc}{fgmbi8rc,latin}{T1}{T1}{fgmc}{b}{it}{}
\installfont{fgmbi8cc}{fgmbi8rc,textcomp}{TS1}{TS1}{fgmc}{b}{it}{}

\installrawfont{fgml8rc}{fgml8rc,8r}{8r}{8r}{fgmc}{l}{n}{}
\installfont{fgml7tc}{fgml8rc,latin}{OT1}{OT1}{fgmc}{l}{n}{}
\installfont{fgml8tc}{fgml8rc,latin}{T1}{T1}{fgmc}{l}{n}{}
\installfont{fgml8cc}{fgml8rc,textcomp}{TS1}{TS1}{fgmc}{l}{n}{}

\installrawfont{fgmli8rc}{fgmli8rc,8r}{8r}{8r}{fgmc}{l}{it}{}
\installfont{fgmli7tc}{fgmli8rc,latin}{OT1}{OT1}{fgmc}{l}{it}{}
\installfont{fgmli8tc}{fgmli8rc,latin}{T1}{T1}{fgmc}{l}{it}{}
\installfont{fgmli8cc}{fgmli8rc,textcomp}{TS1}{TS1}{fgmc}{l}{it}{}

\endrecordtransforms

\endinstallfonts
\bye
------

Everything seems to work fine. All .pl and .vpl are produced
properly, and so
fgmmap.tex:

---fgmmap.tex---
\storemapdata{fgmr8a}{\fromafm{fgmr8a}{FSGaramond}}{}
\storemapdata{fgmr8r}{\frommtx{fgmr8a}}{\reencodefont{8r}}
\storemapdata{fgmri8a}{\fromafm{fgmri8a}{FSGaramond-Italic}}{}
\storemapdata{fgmri8r}{\frommtx{fgmri8a}}{\reencodefont{8r}}
\storemapdata{fgmb8a}{\fromafm{fgmb8a}{FSGaramond-Bold}}{}
\storemapdata{fgmb8r}{\frommtx{fgmb8a}}{\reencodefont{8r}}
\storemapdata{fgmbi8a}{\fromafm{fgmbi8a}{FSGaramond-BoldItalic}}{}
\storemapdata{fgmbi8r}{\frommtx{fgmbi8a}}{\reencodefont{8r}}
\storemapdata{fgmr8ac}{\fromafm{fgmr8ac}{GaramondCond}}{}
\storemapdata{fgmr8rc}{\frommtx{fgmr8ac}}{\reencodefont{8r}}
\storemapdata{fgmri8ac}{\fromafm{fgmri8ac}{GaramondCond-Italic}}{}
\storemapdata{fgmri8rc}{\frommtx{fgmri8ac}}{\reencodefont{8r}}
\storemapdata{fgmb8ac}{\fromafm{fgmb8ac}{GaramondCond-Bold}}{}
\storemapdata{fgmb8rc}{\frommtx{fgmb8ac}}{\reencodefont{8r}}
\storemapdata{fgmbi8ac}{\fromafm{fgmbi8ac}{GaramondCond-BoldItalic}}
{}
\storemapdata{fgmbi8rc}{\frommtx{fgmbi8ac}}{\reencodefont{8r}}
\storemapdata{fgml8ac}{\fromafm{fgml8ac}{GaramondCondLight}}{}
\storemapdata{fgml8rc}{\frommtx{fgml8ac}}{\reencodefont{8r}}
\storemapdata{fgmli8ac}{\fromafm{fgmli8ac}{GaramondCondLight-Italic}
}{}
\storemapdata{fgmli8rc}{\frommtx{fgmli8ac}}{\reencodefont{8r}}
\makemapentry{fgmr8r}
\makemapentry{fgmr8r}
\makemapentry{fgmr8r}
\makemapentry{fgmr8r}
\makemapentry{fgmri8r}
\makemapentry{fgmri8r}
\makemapentry{fgmri8r}
\makemapentry{fgmri8r}
\makemapentry{fgmb8r}
\makemapentry{fgmb8r}
\makemapentry{fgmb8r}
\makemapentry{fgmb8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmr8rc}
\makemapentry{fgmr8rc}
\makemapentry{fgmr8rc}
\makemapentry{fgmr8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgml8rc}
\makemapentry{fgml8rc}
\makemapentry{fgml8rc}
\makemapentry{fgml8rc}
\makemapentry{fgmli8rc}
\makemapentry{fgmli8rc}
\makemapentry{fgmli8rc}
\makemapentry{fgmli8rc}
\makemapentry{fgmr8r}
\makemapentry{fgmr8r}
\makemapentry{fgmr8r}
\makemapentry{fgmr8r}
\makemapentry{fgmri8r}
\makemapentry{fgmri8r}
\makemapentry{fgmri8r}
\makemapentry{fgmri8r}
\makemapentry{fgmb8r}
\makemapentry{fgmb8r}
\makemapentry{fgmb8r}
\makemapentry{fgmb8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmbi8r}
\makemapentry{fgmr8rc}
\makemapentry{fgmr8rc}
\makemapentry{fgmr8rc}
\makemapentry{fgmr8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmri8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmb8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgmbi8rc}
\makemapentry{fgml8rc}
\makemapentry{fgml8rc}
\makemapentry{fgml8rc}
\makemapentry{fgml8rc}
\makemapentry{fgmli8rc}
\makemapentry{fgmli8rc}
\makemapentry{fgmli8rc}
\makemapentry{fgmli8rc}
------

Again, everything seems to work fine. So, according to the
documentation, i wrote a file mapinstfgm.tex to create a fgm.map:

---mapinstfgm.tex---
\input finstmsc.sty
\adddriver{debug}{fgm.map}
\input fgmmap.tex
\donedrivers
\bye
------

If the documentation is written clearly, then i did everything
allright until now, and everything should work fine. If not, it is
not written clearly. Anyway, now comes the magic: after tex
mapinstfgm.tex, i first get a complaint about a missing { in
\makemapentry{fgmr8r}. Next is a prompt after \input fgmmap.tex.
I'll mail you the complete logfile mapinstfgm.log privately. The
produced fgm.map reads:

---fgm.map---
Driver data for font fgmr8r:
   Source font TeX name: fgmr8a
------

That's all. Not very helpful, you'll agree.

When writing about the expert-only documentation of fontinst, i did
not know how you are related with fontinst. I read the documents;
normally i only read the authors when i have to cite a certain
document. So i did not intend to attack you. Now i try to make my
point of view comprehensible: there's a piece of software, and
there's a documentation about that software. Following the "simple"
part of the documentation does not work, so i have to read the
source code. But i did not and will not deal with TeX, i'm just
working with LaTeX. Understanding the source code of fontinst is -
in my private view - something only an expert is able to. I'm not
an expert for TeX, i'm just a normal user of LaTeX, and i want to
be a user of some nice fonts. So i have to deal with fontinst, and
i just show the points where i hang. Others may have other or no
such points, but for me, the docu is a bit too much "expert-only".

Kind regards,
Chris