From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 fonts/gillcm/gillcm.dtx | 747 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 747 insertions(+)
 create mode 100644 fonts/gillcm/gillcm.dtx

(limited to 'fonts/gillcm/gillcm.dtx')

diff --git a/fonts/gillcm/gillcm.dtx b/fonts/gillcm/gillcm.dtx
new file mode 100644
index 0000000000..f2a228a7de
--- /dev/null
+++ b/fonts/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
-- 
cgit v1.2.3

