summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/gillcm/gillcm.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/gillcm/gillcm.dtx')
-rw-r--r--Master/texmf-dist/doc/latex/gillcm/gillcm.dtx747
1 files changed, 747 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/gillcm/gillcm.dtx b/Master/texmf-dist/doc/latex/gillcm/gillcm.dtx
new file mode 100644
index 00000000000..f2a228a7de8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/gillcm/gillcm.dtx
@@ -0,0 +1,747 @@
+% \iffalse
+% $Id: gillcm.dtx,v 1.6 2010-07-30 20:40:55 boris Exp $
+%
+% Copyright (c) 2010, Boris Veytsman
+%
+% All rights reserved.
+%
+% Redistribution and use in source and binary forms, with or without
+% modification, are permitted provided that the following conditions
+% are met:
+%
+% * Redistributions of source code must retain the above copyright
+% notice, this list of conditions and the following disclaimer.
+% * Redistributions in binary form must reproduce the above
+% copyright notice, this list of conditions and the following
+% disclaimer in the documentation and/or other materials provided
+% with the distribution.
+% * Neither the name of the original author nor the names of the
+% contributors may be used to endorse or promote products derived
+% from this software without specific prior written permission.
+%
+% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+% CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+% INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+% MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+% DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+% BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+% TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+% DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+% ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+% OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+% OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+% POSSIBILITY OF SUCH DAMAGE.
+%
+% \fi
+% \CheckSum{138}
+%
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+%\iffalse
+% Taken from xkeyval.dtx
+%\fi
+%\makeatletter
+%\def\DescribeOption#1{\leavevmode\@bsphack
+% \marginpar{\raggedleft\PrintDescribeOption{#1}}%
+% \SpecialOptionIndex{#1}\@esphack\ignorespaces}
+%\def\PrintDescribeOption#1{\strut\emph{option}\\\MacroFont #1\ }
+%\def\SpecialOptionIndex#1{\@bsphack
+% \index{#1\actualchar{\protect\ttfamily#1}
+% (option)\encapchar usage}%
+% \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar
+% usage}\@esphack}
+%\def\DescribeOptions#1{\leavevmode\@bsphack
+% \marginpar{\raggedleft\strut\emph{options}%
+% \@for\@tempa:=#1\do{%
+% \\\strut\MacroFont\@tempa\SpecialOptionIndex\@tempa
+% }}\@esphack\ignorespaces}
+%\makeatother
+%
+%
+% \MakeShortVerb{|}
+% \GetFileInfo{gillcm.dtx}
+% \title{Unslanted Italic Computer Modern Fonts Based on Eric Gill's Ideas}
+% \author{Boris Veytsman\thanks{%
+% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}},
+% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}}
+% \date{\filedate, \fileversion}
+% \maketitle
+% \begin{abstract}
+% This is a demonstration of the use of virtual fonts for unusual
+% effects. We employ virtual fonts to implement an old idea of Eric
+% Gill. This package was written for the author's talk
+% at TUG'2010.
+% \end{abstract}
+% \tableofcontents
+% \listoffigures
+% \listoftables
+% \clearpage
+%
+% \changes{v1.0}{2010/05/08}{First fully functional version}
+% \changes{v1.1}{2010/07/28}{Documentation update}
+%
+%\section{Introduction}
+%\label{sec:intro}
+%
+% This package is mostly a demonstration of the use of
+% \textsf{Fontinst}~\cite{Jeffrey04:Fontinst} for mixing and changing
+% fonts. I wrote it as an appendix for my talk at TUG'2010. Of
+% course, as it happens with many teachers, I myself learned a lot
+% while making this demo.
+%
+% The demo assumes some knowledge of \TeX{} and the way of writing
+% |dtx| files~\cite{Clsguide}.
+%
+% Eric Gill said that unslanted italics should use Roman uppercase
+% letters~\cite{Gill:Typography}:
+% \begin{quote}
+% Properly speaking, there is no such thing as an alphabet of italic
+% capitals, and where upright or nearly upright italics are used
+% ordinary upright Roman capitals go perfectly well with them.
+% \end{quote}
+%
+% Let us create a font with italic lowercase and upright uppercase.
+% Actually we create \emph{two} fonts: one based on ``normal'', i.e.
+% slanted italics, and one based on unslanted ones (we call them
+% |gishape| and |gushape|). In both cases we start with Computer
+% Modern Italics, and perform all changes using virtual fonts
+% mechanism.
+%
+% Alan Hoenig in his book~\cite{Hoenig98:TeXUnbound} gives another
+% example of a font based on Gill's idea.
+%
+%
+% A couple words about the installation of the system. You need the file
+% \url{http://ctan.tug.org/install/fonts/psfonts/public/gillcm.tds.zip}/
+% Unzip this file in \path{$TEXMF}. Add |+cmg.map| to the
+% configuration files of dvips, pdftex and your dvi previewer. How
+% exactly you do this depends on the \TeX{} distribution you use. For \TeX Live you create a file
+% \path{$TEXMF/updmap.d/50gcm.cfg} with just the line
+% \begin{verbatim}
+% Map gcm.map
+% \end{verbatim}
+% and then run |texhash| and |updmap|. If you use Debian or Ubuntu,
+% the system-wide |updmap.d| directory is located in |/etc|, and you
+% need to create the file |gcm.list| in
+% \path{/var/lib/tex-common/fontmap-cfg/} with the line
+% \begin{verbatim}
+% 50gcm
+% \end{verbatim}
+%
+%
+% If you use Mik\TeX2.6, run
+% \begin{verbatim}
+% initexmf --edit-config-file updmap
+% \end{verbatim}
+% Add to the config file
+% \begin{verbatim}
+% Map gcm.map
+% \end{verbatim}
+% save, exit and run |updmap|.
+%
+% If you use Mik\TeX2.5 or earlier, edit
+% \path{localtexmf\web2c\updmap.cfg}, adding the line
+% \begin{verbatim}
+% Map gcm.map
+% \end{verbatim}
+% and run |updmap|.
+%
+% After this run updmap and texhash programs to update the
+% configuration files and file names database.
+%
+% Refer to your distribution documentation for the further details.
+%
+%
+%
+%
+%\DescribeMacro{\gishape}
+%\DescribeMacro{\gushape}
+% To use the fonts in \LaTeX{} just add
+% |\usepackage{gillcm}| to the preamble of your document. The style
+% adds two new commands |\gishape| and |\gushape| that typeset
+% ``Gillized'' italics and ``Gillized'' upright italics.
+%
+%
+%
+%
+% \StopEventually{
+%
+% \section{Acknowledgements}
+%
+% Most of the things I know about virtual fonts I learned from the
+% excellent book~\cite{Hoenig98:TeXUnbound} and the
+% manual~\cite{fontinstallationguide}. I am grateful to \TeX{} Users
+% Group and Karl Berry for encouraging my interest in virtual fonts
+% and to my consulting customers for their support of my font
+% projects.
+%
+% \bibliography{gillcm}
+% \bibliographystyle{unsrt}}
+%
+%\section{Implementation}
+%\label{sec:impl}
+%
+%\subsection{Identification}
+%\label{sec:ident}
+%
+%
+% We start with the declaration who we are. Most |.dtx| files put
+% driver code in a separate driver file |.drv|. We roll this code into the
+% main file, and use the pseudo-guard |<gobble>| for it. This means
+% that the text between |<*gobble>| and |</gobble>| will \emph{not}
+% end in any derived file, but it will be used to typeset this manual.
+%
+% We also use the following guards: |<style>| for \LaTeX{} style,
+% |<drv>| for \textsf{Fontinst} driver |drv.tex|, |<map>| for
+% \textsf{Fontinst} map generator |map.tex| and |<mtx>| for the font
+% metrics file |delupper.mtx|. More about these files below. Note
+% that |mtx| files do not allow \LaTeX{} command |\ProvidesFile|, so
+% we do not put it there.
+% \begin{macrocode}
+%<style>\NeedsTeXFormat{LaTeX2e}
+%<*gobble>
+\ProvidesFile{gillcm.dtx}
+%</gobble>
+%<style>\ProvidesClass{gillcm}
+%<drv>\ProvidesFile{drv.tex}
+%<map>\ProvidesFile{map.tex}
+%<*!mtx>
+[2010/07/28 v1.1 Computer Modern Italics with Gill extensions]
+%</!mtx>
+% \end{macrocode}
+% And the driver code:
+% \begin{macrocode}
+%<*gobble>
+\documentclass{ltxdoc}
+\usepackage{booktabs,amsmath}
+\usepackage{url}
+\usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black,
+ pagecolor=black,urlcolor=black,hyperindex=false]{hyperref}
+\PageIndex
+\CodelineIndex
+\RecordChanges
+\EnableCrossrefs
+\begin{document}
+ \DocInput{gillcm.dtx}
+\end{document}
+%</gobble>
+% \end{macrocode}
+%
+% \subsection{Preparation of Computer Modern Fonts}
+%
+% We deal with Type~1 fonts, so we need Computer Modern Roman and
+% Italic in the PFB formats. They are provided, for example, by
+% \textsf{cm-super} package. We need the files listed in
+% Table~\ref{tab:cm}. We copy them into the working directory. Since
+% \textsf{Fontinst} prefers ASCII files, we extract metric information
+% from them using |pf2afm| utility.
+%
+% The famous |make| program allows us to write down these operations
+% succinctly as shown on Figure~\ref{fig:afm}. Here the first
+% paragraph lists our PFB files, the second one says that each PFB
+% file corresponds to one AFM file, the third paragraph tells |make|
+% to copy the PFB file from wherever they are (since |kpsewhich|) to
+% the current directory, and the last paragraph instructs |make| to
+% apply |pf2afm| to each PFB file. Of course if you do not want to
+% use |make|, you can perform all these operations manually.
+%
+% \begin{figure}
+% \centering
+% \begin{verbatim}
+% PFB =\
+% cmti10.pfb\
+% cmr10.pfb \
+% cmbxti10.pfb \
+% cmbx10.pfb
+%
+% AFM = ${PFB:%.pfb=%.afm}
+%
+% %.pfb:
+% cp `kpsewhich $@` .
+%
+% %.afm: %.pfb
+% pf2afm $<
+% \end{verbatim}
+% \caption{Creating AFM Files Using \texttt{Makefile}}
+% \label{fig:afm}
+% \end{figure}
+%
+%
+% \begin{table}
+% \centering
+% \caption{Computer Modern Font Files}
+% \label{tab:cm}
+% \begin{tabular}{ll}
+% \toprule
+% File & Font\\
+% \midrule
+% |cmti10.pfb| & Computer Modern Italic\\
+% |cmr10.pfb| & Computer Modern Roman \\
+% |cmbxti10.pfb| & Computer Modern Bold Italic\\
+% |cmbx10.pfb| & Computer Modern Bold\\
+% \bottomrule
+% \end{tabular}
+% \end{table}
+%
+%\subsection{Fontinst Driver}
+%\label{sec:drv}
+%
+% In this section we construct the file |drv.tex| which does most of
+% the work.
+%
+%
+% First, we read the \textsf{Fontinst} program |fontinst.sty|:
+% \begin{macrocode}
+%<*drv>
+\input fontinst.sty
+% \end{macrocode}
+%
+%
+% We want to ``unslant'' the fonts. This can be imagined as negative
+% slanting. The characteristic angle of Computer Modern Italics is
+% $167/1000$ (technically, this is the tangent of the angle, so the
+% angle itself is $\tan^{-1}(0.167) = 9^{\circ}28'51''$), so we use
+% $-167/1000$ as our characteristic angle:
+% \begin{macrocode}
+\setint{slant}{-167}
+% \end{macrocode}
+%
+% Now it is time to uncover a white lie in Table~\ref{tab:cm}: the
+% ``bold'' fonts listed there are actually bold extended fonts: they
+% are slightly widened in the horizontal direction. By tradition we
+% call them nevertheless bold. The next line facilitates this white
+% lie: it instructs \textsf{Fontinst} to silently substitute bold
+% extended fonts whenever a user request bold fonts.
+% \begin{macrocode}
+\substitutesilent{bx}{b}
+% \end{macrocode}
+%
+%
+%
+% \textsf{Fontinst} is designed to create virtual font files for \TeX.
+% However, it also can be used to automatically create ``font maps'':
+% special files read by |dvips| or |pdftex| to map PFB files into the
+% virtual fonts. To do this we need to \emph{record transformations}
+% of Type~1 fonts for the map creation program. Fortunately,
+% \textsf{Fontinst} can do this for us too. The following command
+% starts this recording:
+% \begin{macrocode}
+\recordtransforms{rec.tex}
+% \end{macrocode}
+% The command |\endrecordtransforms| below dumps these recordings
+% into the file |rec.tex|. The resulting file is shown on
+% Figure~\ref{fig:rec}.
+%
+% \begin{figure}
+% \centering
+% \begin{verbatim}
+% \storemapdata{cmr10}{\fromafm{cmr10}{CMR10}}{}
+% \storemapdata{cmgm8r}{\frommtx{cmr10}}{\reencodefont{8r}}
+% \storemapdata{cmti10}{\fromafm{cmti10}{CMTI10}}{}
+% \storemapdata{cmgmi8r}{\frommtx{cmti10}}{\reencodefont{8r}}
+% \storemapdata{cmti10}{\fromafm{cmti10}{CMTI10}}{}
+% \storemapdata{cmgmiu8r}{\frommtx{cmti10}}{\reencodefont{8r}\transformfont{1000}{-167}}
+% \storemapdata{cmbx10}{\fromafm{cmbx10}{CMBX10}}{}
+% \storemapdata{cmgb8r}{\frommtx{cmbx10}}{\reencodefont{8r}}
+% \storemapdata{cmbxti10}{\fromafm{cmbxti10}{CMBXTI10}}{}
+% \storemapdata{cmgbi8r}{\frommtx{cmbxti10}}{\reencodefont{8r}}
+% \storemapdata{cmbxti10}{\fromafm{cmbxti10}{CMBXTI10}}{}
+% \storemapdata{cmgbiu8r}{\frommtx{cmbxti10}}{\reencodefont{8r}\transformfont{1000}{-167}}
+% \makemapentry{cmgmi8r}
+% \makemapentry{cmgm8r}
+% \makemapentry{cmgbi8r}
+% \makemapentry{cmgb8r}
+% \makemapentry{cmgmiu8r}
+% \makemapentry{cmgm8r}
+% \makemapentry{cmgbiu8r}
+% \makemapentry{cmgb8r}
+% \makemapentry{cmgmi8r}
+% \makemapentry{cmgm8r}
+% \makemapentry{cmgbi8r}
+% \makemapentry{cmgb8r}
+% \makemapentry{cmgmiu8r}
+% \makemapentry{cmgm8r}
+% \makemapentry{cmgbiu8r}
+% \makemapentry{cmgb8r}
+% \makemapentry{cmgmi8r}
+% \makemapentry{cmgm8r}
+% \makemapentry{cmgbi8r}
+% \makemapentry{cmgb8r}
+% \makemapentry{cmgmiu8r}
+% \makemapentry{cmgm8r}
+% \makemapentry{cmgbiu8r}
+% \makemapentry{cmgb8r}
+% \end{verbatim}
+% \caption{File \texttt{rec.tex} (created automatically)}
+% \label{fig:rec}
+% \end{figure}
+%
+%
+% Now we can create the fonts to play with. We will follow Karl
+% Berry's scheme~\cite{fontname} for naming them. The font family
+% will be called |cmg| (Computer Modern Gillized). The next letters
+% are |m| for medium, |mi| for medium italic, |miu| for medium
+% italic unslanted, and |b|, |bi|, |biu| for the corresponding bold
+% variants. The last symbols correspond to font encoding.
+%
+% We start with the fonts in the |8r| (\TeX{} Base 1) encoding.
+%
+% First, let us create a medium Roman font. We take Computer Modern
+% Roman file |cmr10.afm| and reencode it. The main command is
+% |\trnasformfont|. Its first argument (|cmgm8r|) is the resulting
+% font (remember, the family is |cmg|, the weight is |m| and the
+% encoding is |8r|). Its second argument is the source. This argument
+% says that we take |cmr10.afm| (|\fromafm| command) and reencode it
+% to the required encoding (|\reencodefont|):
+% \begin{macrocode}
+\transformfont{cmgm8r}{\reencodefont{8r}{\fromafm{cmr10}}}
+% \end{macrocode}
+%
+% In the same way we create medium italic font |cmgmi8r| from the file
+% |cmti10.afm|:
+% \begin{macrocode}
+\transformfont{cmgmi8r}{\reencodefont{8r}{\fromafm{cmti10}}}
+% \end{macrocode}
+%
+% The italic unslanted font |cmgmiu8r| is different: not only we
+% reencode the source, we also unslant it, or, rather, slant it using
+% the negative angle |\int{slant}| defined above. This is done by the
+% command |\slantfont|:
+% \begin{macrocode}
+\transformfont{cmgmiu8r}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{cmti10}}}
+% \end{macrocode}
+%
+% In the similar manner we create three bold fonts: Roman, italic and
+% italic unslanted:
+% \begin{macrocode}
+\transformfont{cmgb8r}{\reencodefont{8r}{\fromafm{cmbx10}}}
+\transformfont{cmgbi8r}{\reencodefont{8r}{\fromafm{cmbxti10}}}
+\transformfont{cmgbiu8r}{\slantfont{\int{slant}}%
+ \reencodefont{8r}{\fromafm{cmbxti10}}}
+% \end{macrocode}
+%
+%
+% Fonts in \TeX{} Base 1 encoding are useful for manipulation, but
+% they are not directly usable in \TeX{} or \LaTeX{} documents. In
+% this package we create fonts in the traditional \TeX{} encoding
+% (|OT1|) and Cork encoding (|T1|). \textsf{Fontinst} can create for
+% us both virtual font files and \LaTeX{} font description files
+% (|.fd|). This is (rather unfortunately) called font installation.
+% All font installation commands must be bracketed between
+% |\installfonts| and |\endinstallfonts| directives. so we start with
+% the first one:
+% \begin{macrocode}
+\installfonts
+% \end{macrocode}
+%
+% Then we declare the family and encoding we are going to install.
+% Let us start with |OT1|. Do not worry about the third (empty)
+% argument of the |\installfamily| command.
+% \begin{macrocode}
+\installfamily{OT1}{cmg}{}
+% \end{macrocode}
+%
+% Now the real work begins. Let us construct ``Gillized'' Computer
+% Modern Italic font. According to our scheme it will be called
+% |cmgmi7t|. This name is the first argument of |\installfont|
+% command.
+%
+% The second argument is the set of MTX files; one can view it as
+% instructions to \textsf{Fontinst} describing \emph{how} to construct
+% the file. We start from the file |cmgmi8r|, created on the previous
+% step. It is just Computer Modern Italic. The next instruction is
+% |delupper|. It refers to the file |delupper.mtx|, which we create
+% below (Section~\ref{sec:delupper}). For now it is enough to say
+% that this file deletes from the font all uppercase letters. If we
+% would stop here, the resulting font would have empty spaces instead
+% of letters A, B, \dots{} However, we do not stop and add another
+% instruction, |cmgm8r|. Let us recall that |cmgm8r| is Computer
+% Modern Roman. Therefore \textsf{Fontinst} will take the characters
+% from this font and add it to the font created so far. Which
+% characters will be added? The lowercase characters a, b, \dots{}
+% are already filled up (\textsf{Fontinst} does not fill the slots
+% already taken), so only empty spaces will be taken from the Roman
+% font---i.e. the spaces that our |delupper.mtx| emptied. We get a
+% combined font! The last instruction, |latin| tells
+% \textsf{Fontinst} how to construct the characters that are absent
+% from the fonts (like the euro sign). It is always prudent to
+% include it as the last resort.
+%
+% The next argument of the |\installfont| command is the encoding of
+% the result (actually, it can include a list of the so called ETX
+% files).
+%
+% The last four arguments are used to construct \LaTeX{} font
+% definition files. They say that \LaTeX{} should consider the
+% resulting file to have encoding |OT1|, belong to the family |cmg|,
+% have medium weight (|m|) and ``Gill Italic'' shape (|gi|). Again,
+% do not mind the last (empty) argument.
+%
+% So the command looks like the following:
+% \begin{macrocode}
+\installfont{cmgmi7t}{cmgmi8r,delupper,cmgm8r,latin}{ot1}{OT1}{cmg}{m}{gi}{}
+% \end{macrocode}
+%
+% We repeat this with bold weight:
+% \begin{macrocode}
+\installfont{cmgbi7t}{cmgbi8r,delupper,cmgb8r,latin}{ot1}{OT1}{cmg}{bx}{gi}{}
+% \end{macrocode}
+%
+% Unslanted italics are made in the same way, using |cmgmiu8r| and
+% |cmgbiu8r| as the source:
+% \begin{macrocode}
+\installfont{cmgmiu7t}{cmgmiu8r,delupper,cmgm8r,latin}{ot1}{OT1}{cmg}{m}{gu}{}
+\installfont{cmgbiu7t}{cmgbiu8r,delupper,cmgb8r,latin}{ot1}{OT1}{cmg}{bx}{gu}{}
+% \end{macrocode}
+%
+% We repeat this with |T1| encoding. Note that for |T1| the
+% ``instructions of the last resort'' are in the file |newlatin.mtx|:
+% \begin{macrocode}
+\installfamily{T1}{cmg}{}
+\installfont{cmgmi8t}{cmgmi8r,delupper,cmgm8r,newlatin}{t1}{T1}{cmg}{m}{gi}{}
+\installfont{cmgbi8t}{cmgbi8r,delupper,cmgb8r,newlatin}{t1}{T1}{cmg}{bx}{gi}{}
+\installfont{cmgmiu8t}{cmgmiu8r,delupper,cmgm8r,newlatin}{t1}{T1}{cmg}{m}{gu}{}
+\installfont{cmgbiu8t}{cmgbiu8r,delupper,cmgb8r,newlatin}{t1}{T1}{cmg}{bx}{gu}{}
+% \end{macrocode}
+%
+% Fonts in |T1| encoding should be accompanied by fonts in the ``text
+% companion'' encoding |TS1|. They include special symbols and
+% accents:
+% \begin{macrocode}
+\installfamily{TS1}{cmg}{}
+\installfont{cmgmi8c}{cmgmi8r,delupper,cmgm8r,textcomp}{ts1}{TS1}{cmg}{m}{gi}{}
+\installfont{cmgbi8c}{cmgbi8r,delupper,cmgb8r,textcomp}{ts1}{TS1}{cmg}{bx}{gi}{}
+\installfont{cmgmiu8c}{cmgmiu8r,delupper,cmgm8r,textcomp}{ts1}{TS1}{cmg}{m}{gu}{}
+\installfont{cmgbiu8c}{cmgbiu8r,delupper,cmgb8r,textcomp}{ts1}{TS1}{cmg}{bx}{gu}{}
+% \end{macrocode}
+%
+% This finishes our file. Let us just close the open groups:
+% \begin{macrocode}
+\endinstallfonts
+\endrecordtransforms
+\bye
+%</drv>
+% \end{macrocode}
+%
+%
+%\subsection{Fontmap Generation}
+%\label{sec:fontmap}
+%
+% The file |map.tex| is used to create font map file. In this section
+% we create it.
+%
+% First, we read the corresponding \textsf{Fontinst} file:
+% \begin{macrocode}
+%<*map>
+\input finstmsc.sty
+% \end{macrocode}
+%
+% Next, we tell \textsf{Fontinst} that our Postscript files have the
+% extension |.pfb| and that the resulting map should be called |cmg.map|:
+% \begin{macrocode}
+\resetstr{PSfontsuffix}{.pfb}
+\adddriver{dvips}{cmg.map}
+% \end{macrocode}
+%
+% Then we read the file |rec.tex| which is generated by the run of
+% |drv.tex| (Figure~\ref{fig:rec}):
+% \begin{macrocode}
+\input rec.tex
+% \end{macrocode}
+%
+% And that is all:
+% \begin{macrocode}
+\donedrivers
+\bye
+%</map>
+% \end{macrocode}
+%
+%
+%\subsection{Deleting Uppercase Glyphs}
+%\label{sec:delupper}
+%
+%
+% Our |\installfont| instructions include deleting all uppercase
+% letters from the italic fonts. This is done by the file
+% |delupper.mtx|, which we describe here.
+%
+%
+% Everything between |\relax| and |\metrix| is just a comment:
+% \begin{macrocode}
+%<*mtx>
+\relax
+Unset all uppercase letters and punctuation
+\metrics
+% \end{macrocode}
+%
+% The file itself uses the command |\unsetglyph|. We unset the
+% uppercase letters, parenthesizes, etc.
+% \begin{macrocode}
+\unsetglyph{A}
+\unsetglyph{B}
+\unsetglyph{C}
+\unsetglyph{D}
+\unsetglyph{E}
+\unsetglyph{F}
+\unsetglyph{G}
+\unsetglyph{H}
+\unsetglyph{I}
+\unsetglyph{J}
+\unsetglyph{K}
+\unsetglyph{L}
+\unsetglyph{M}
+\unsetglyph{N}
+\unsetglyph{O}
+\unsetglyph{P}
+\unsetglyph{Q}
+\unsetglyph{R}
+\unsetglyph{S}
+\unsetglyph{T}
+\unsetglyph{U}
+\unsetglyph{V}
+\unsetglyph{W}
+\unsetglyph{X}
+\unsetglyph{Y}
+\unsetglyph{Z}
+\unsetglyph{AE}
+\unsetglyph{OE}
+\unsetglyph{Oslash}
+\unsetglyph{exclam}
+\unsetglyph{parenleft}
+\unsetglyph{parenright}
+\unsetglyph{comma}
+\unsetglyph{period}
+\unsetglyph{slash}
+\unsetglyph{zero}
+\unsetglyph{one}
+\unsetglyph{two}
+\unsetglyph{three}
+\unsetglyph{four}
+\unsetglyph{five}
+\unsetglyph{six}
+\unsetglyph{seven}
+\unsetglyph{eight}
+\unsetglyph{nine}
+\unsetglyph{colon}
+\unsetglyph{semicolon}
+\unsetglyph{exclamdown}
+\unsetglyph{questiondown}
+\unsetglyph{question}
+\unsetglyph{bracketleft}
+\unsetglyph{bracketright}
+\endmetrics
+%</mtx>
+% \end{macrocode}
+%
+%
+%\subsection{Creation of Fonts}
+%\label{sec:creation}
+%
+% Now we are ready to create fonts. We need to run
+% \begin{verbatim}
+% latex drv.tex
+% latex map.tex
+% \end{verbatim}
+% This will create a lot of |.pl| and |.vpl| files. They should be
+% converted into binary format using utilities |pltotf| and |vptovf|.
+% On Figure~\ref{fig:tfm} we show how to do all these tasks using
+% |make|. Of course, we can run all these commands manually.
+%
+% \begin{figure}
+% \centering
+% \begin{verbatim}
+% %.map: drv.tex map.tex $(AFM)
+% pdflatex drv.tex
+% pdflatex map.tex
+% for x in *.pl; do pltotf $$x; done
+% for x in *.vpl; do vptovf $$x; done
+% \end{verbatim}
+% \caption{Creating TFM and VF Files using \texttt{Makefile}}
+% \label{fig:tfm}
+% \end{figure}
+%
+%\subsection{Style File}
+%\label{sec:style}
+%
+% To use the fonts in \LaTeX{} let us define commands |\gishape| and
+% |\gushape| that select Gill Italic and Gill Unslanted Italic
+% correspondingly. Note that they should work only in text mode;
+% math mode should use ``normal'' italics. Here we are:
+% \begin{macrocode}
+%<*style>
+\DeclareRobustCommand\gishape
+ {\not@math@alphabet\itshape\mathit
+ \fontshape{gi}\fontfamily{cmg}\selectfont}
+\DeclareRobustCommand\gushape
+ {\not@math@alphabet\itshape\mathit
+ \fontshape{gu}\fontfamily{cmg}\selectfont}
+%</style>
+% \end{macrocode}
+%
+%
+%\subsection{Creation of Installation Archive}
+%\label{sec:tds}
+%
+% The last step is to put all the files in the structure suitable for
+% the modern \TeX{} installations (the so called TDS structure). We
+% will create the archive |gillcm.tds.zip| with the relevant files.
+% The archive is packed into the |gillcm.tgz| file ready to be shipped
+% to CTAN. Of course, we do not want to ship Computer Modern fonts,
+% so we delete them from the directory first.
+%
+% The corresponding fragment of |Makefile| is shown on
+% Figure~\ref{fig:archive}.
+%
+% \begin{figure}
+% \centering
+% \begin{verbatim}
+% archive: all clean
+% $(RM) cmr*.tfm cmt*.tfm cmb*.tfm
+% $(RM) cmr*.afm cmt*.afm cmb*.afm
+% $(RM) cmr*.vf cmt*.vf cmb*.vf
+% mkdir -p fonts/tfm/$(FOUNDRY)/$(PACKAGE)
+% cp *.tfm fonts/tfm/$(FOUNDRY)/$(PACKAGE)
+% mkdir -p fonts/vf/$(FOUNDRY)/$(PACKAGE)
+% cp *.vf fonts/vf/$(FOUNDRY)/$(PACKAGE)
+% mkdir -p fonts/map/dvips/$(PACKAGE)
+% cp *.map fonts/map/dvips/$(PACKAGE)
+% mkdir -p tex/latex/$(PACKAGE)
+% cp *.fd *.sty tex/latex/$(PACKAGE)
+% mkdir -p doc/latex/$(PACKAGE)
+% cp README *.pdf *.tex *.bib *.dtx *.ins doc/latex/$(PACKAGE)
+% zip -r $(PACKAGE).tds.zip fonts tex doc
+% tar -czvf $(PACKAGE).tgz \
+% README $(PACKAGE).tds.zip *.tex *.pdf *.bib *.dtx *.ins
+% \end{verbatim}
+% \caption{Creation of Installation File for CTAN}
+% \label{fig:archive}
+% \end{figure}
+%
+%
+% This finishes our task!
+%
+%\Finale
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
+%
+\endinput