%%% ====================================================================
%%%  @TeX-font-metrics-file{
%%%     author          = "Alan Jeffrey and Ulrik Vieth and
%%%                        Lars Hellstr{\"o}m",
%%%     version         = "1.923",
%%%     date            = "2003-03-29",
%%%     time            = "16:12:42 +01:00",
%%%     filename        = "lubuild.mtx",
%%%     email           = "fontinst@tug.org",
%%%     URL             = "http://www.tug.org/applications/fontinst/",
%%%     checksum        = "",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "metrics, TeX, PostScript",
%%%     supported       = "yes",
%%%     abstract        = "This is a font metrics file, for use with the
%%%                        fontinst utility. It builds upper case latin
%%%                        letters.",
%%%     package         = "fontinst",
%%%     dependencies    = "fontinst.sty, fontdoc.sty",
%%%  }
%%% ====================================================================

\relax

\documentclass[twocolumn]{article}

\usepackage{fontdoc}[2002/03/01]
\showbranches

\title{Building upper case}
\author{Alan Jeffrey\and Ulrik Vieth\and Lars Hellstr\"om}
\date{4 January 2002\\Version 1.923}

\begin{document}
\maketitle

\section{Introduction}

This file builds upper case (full capitals, \texttt{u} case) latin 
letters, or more precisely, it makes sure that a set of glyphs is 
defined that cover the upper case letters used in European latin scripts. 
Even that is a slight exaggeration, because there are a couple of 
``exotic'' letters that are missing, but most people never try to use 
those anyway.

For the glyphs set in this file to look anything like the letters they 
are supposed to be, it is necessary that the glyphs for unaccented 
letters and for accents already exist and look like they are supposed 
to. In that case, the commands below will manufacture decent 
substitutes for the missing glyphs by composing letters and accents. 
If some of these base glyphs are missing, then a ``missing glyph'' 
substitute will be supplied for them. Such substitutes will show up in 
print as black squares, and most DVI drivers will emit a warning when 
producing them.

The most common case encountered is that almost all unaccented letters 
and accents are available, but only about half of the accented 
letters. Then for the other half, quite decent substitutes are made, 
but a few letters only show up as ``missing glyph'' boxes. 


\metrics

\needsfontinstversion{1.910}
\usemtxpackage{ltcmds}

\ProvidesMtxPackage{lubuild}

\begincomment
\section{Base upper case glyphs}

The following commands make sure all the unaccented letter glyphs and 
accent glyphs are set. If any of them are not already set at this 
point, then those will be set to ``missing glyph'' boxes.

\subsection{Letters}
\endcomment

\unfakable{A}
\unfakable{AE}
\unfakable{B}
\unfakable{C}
\unfakable{D}
\unfakable{E}
\unfakable{Eng}
\unfakable{Eth}
\unfakable{F}
\unfakable{G}
\unfakable{H}
\unfakable{I}
\unfakable{J}
\unfakable{K}
\unfakable{L}
\unfakable{M}
\unfakable{N}
\unfakable{O}
\unfakable{OE}
\unfakable{Oslash}
\unfakable{P}
\unfakable{Q}
\unfakable{R}
\unfakable{S}
\unfakable{T}
\unfakable{Thorn}
\unfakable{U}
\unfakable{V}
\unfakable{W}
\unfakable{X}
\unfakable{Y}
\unfakable{Z}

\begincomment
\subsection{Accents}

The accents on designed full capitals are often different from the 
accents on lower case letters: strokes are generally at a smaller 
angle to the horizontal, so that the accent is compressed in the 
vertical direction. Most fonts do not provide those accents as 
separate characters, but one should nonetheless try to use them 
whenever possible. The standard names appear (see for example the 
\emph{Adobe Glyph List}) to be the same as for the 
normal accents, but with the first letter in upper case. 
When these accents are not available, it is anyway 
possible to make do with the ordinary accents.
\endcomment


\unfakabletopaccent{grave}
\unfakabletopaccent{acute}
\unfakabletopaccent{circumflex}
\unfakabletopaccent{tilde}
\unfakabletopaccent{dieresis}
\unfakabletopaccent{hungarumlaut}
\unfakabletopaccent{ring}
\unfakabletopaccent{caron}
\unfakabletopaccent{breve}
\unfakabletopaccent{macron}
\unfakabletopaccent{dotaccent}
\unfakable{cedilla}
\unfakable{ogonek}
\unfakable{quoteright}
\unfakable{lslashslash}


\setglyph{Acute}
   \glyph{acute}{1000}
\endsetglyph

\setglyph{Grave}
   \glyph{grave}{1000}
\endsetglyph

\setglyph{Circumflex}
   \glyph{circumflex}{1000}
\endsetglyph

\setglyph{Tilde}
   \glyph{tilde}{1000}
\endsetglyph

\setglyph{Dieresis}
   \glyph{dieresis}{1000}
\endsetglyph

\setglyph{Breve}
   \glyph{breve}{1000}
\endsetglyph

\setglyph{Dotaccent}
   \glyph{dotaccent}{1000}
\endsetglyph

\setglyph{Caron}
   \glyph{caron}{1000}
\endsetglyph

\setglyph{Hungarumlaut}
   \glyph{hungarumlaut}{1000}
\endsetglyph

\setglyph{Ring}
   \glyph{ring}{1000}
\endsetglyph

\setglyph{Macron}
   \glyph{macron}{1000}
\endsetglyph

\setglyph{Cedilla}
   \glyph{cedilla}{1000}
\endsetglyph

\setglyph{Ogonek}
   \glyph{ogonek}{1000}
\endsetglyph

\begincomment
Note that the \TeX\ accenting algorithm assumes that accents are 
positioned correctly for being placed on a letter whose height is the 
x-height. It might happen that a font with special upper case accents, 
made for use with some other typesetting engine, instead has these 
glyphs positioned correctly for being placed on a capital. In such a 
case, one would first have to adjust the accent positions before they 
can be used.
\endcomment


\begincomment
\section{Building accented letters}
\endcomment


\setglyph{Aacute}
   \topaccent{A}{Acute}{500}
\endsetglyph

\setglyph{Abreve}
   \topaccent{A}{Breve}{500}
\endsetglyph

\setglyph{Acircumflex}
   \topaccent{A}{Circumflex}{500}
\endsetglyph

\setglyph{Adieresis}
   \topaccent{A}{Dieresis}{500}
\endsetglyph

\setglyph{Agrave}
   \topaccent{A}{Grave}{500}
\endsetglyph

\setglyph{Aogonek}
   \botaccent{A}{Ogonek}{900}
\endsetglyph

\setglyph{Aring}
   \topaccent{A}{Ring}{500}
\endsetglyph

\setglyph{Atilde}
   \topaccent{A}{Tilde}{500}
\endsetglyph

\setglyph{Cacute}
   \topaccent{C}{Acute}{500}
\endsetglyph

\setglyph{Ccaron}
   \topaccent{C}{Caron}{500}
\endsetglyph

\setglyph{Ccedilla}
   \botaccent{C}{Cedilla}{500}
\endsetglyph

\setglyph{Dcaron}
   \topaccent{D}{Caron}{450}
\endsetglyph

\setglyph{Eacute}
   \topaccent{E}{Acute}{500}
\endsetglyph

\setglyph{Ecaron}
   \topaccent{E}{Caron}{500}
\endsetglyph

\setglyph{Ecircumflex}
   \topaccent{E}{Circumflex}{500}
\endsetglyph

\setglyph{Edieresis}
 \topaccent{E}{Dieresis}{500}
\endsetglyph

\setglyph{Egrave}
   \topaccent{E}{Grave}{500}
\endsetglyph

\setglyph{Eogonek}
   \botaccent{E}{Ogonek}{850}
\endsetglyph

\setglyph{Gbreve}
   \topaccent{G}{Breve}{500}
\endsetglyph

\setglyph{Iacute}
   \topaccent{I}{Acute}{500}
\endsetglyph

\setglyph{Icircumflex}
   \topaccent{I}{Circumflex}{500}
\endsetglyph

\setglyph{Idieresis}
   \topaccent{I}{Dieresis}{500}
\endsetglyph

\setglyph{Idotaccent}
   \topaccent{I}{Dotaccent}{500}
\endsetglyph

\setglyph{Igrave}
   \topaccent{I}{Grave}{500}
\endsetglyph

\setglyph{Lacute}
   \topaccent{L}{Acute}{250}
\endsetglyph

\setglyph{Lcaron}
   \glyph{L}{1000}
   \ifisint{monowidth}\then\Else
      \movert{-200}
   \Fi
   \glyph{quoteright}{1000}
\endsetglyph

\setglyph{Nacute}
   \topaccent{N}{Acute}{500}
\endsetglyph

\setglyph{Ncaron}
   \topaccent{N}{Caron}{500}
\endsetglyph

\setglyph{Ntilde}
   \topaccent{N}{Tilde}{500}
\endsetglyph

\setglyph{Oacute}
   \topaccent{O}{Acute}{500}
\endsetglyph

\setglyph{Ocircumflex}
   \topaccent{O}{Circumflex}{500}
\endsetglyph

\setglyph{Odieresis}
   \topaccent{O}{Dieresis}{500}
\endsetglyph

\setglyph{Ograve}
   \topaccent{O}{Grave}{500}
\endsetglyph

\setglyph{Ohungarumlaut}
   \topaccent{O}{Hungarumlaut}{500}
\endsetglyph

\setglyph{Otilde}
   \topaccent{O}{Tilde}{500}
\endsetglyph

\setglyph{Racute}
   \topaccent{R}{Acute}{500}
\endsetglyph

\setglyph{Rcaron}
   \topaccent{R}{Caron}{500}
\endsetglyph

\setglyph{Sacute}
   \topaccent{S}{Acute}{500}
\endsetglyph

\setglyph{Scaron}
   \topaccent{S}{Caron}{500}
\endsetglyph

\setglyph{Scedilla}
   \botaccent{S}{Cedilla}{500}
\endsetglyph

\setglyph{Tcaron}
   \topaccent{T}{Caron}{500}
\endsetglyph

\setglyph{Tcedilla}
   \botaccent{T}{Cedilla}{500}
\endsetglyph

\setglyph{Uacute}
   \topaccent{U}{Acute}{500}
\endsetglyph

\setglyph{Ucircumflex}
   \topaccent{U}{Circumflex}{500}
\endsetglyph

\setglyph{Udieresis}
   \topaccent{U}{Dieresis}{500}
\endsetglyph

\setglyph{Ugrave}
   \topaccent{U}{Grave}{500}
\endsetglyph

\setglyph{Uhungarumlaut}
   \topaccent{U}{Hungarumlaut}{500}
\endsetglyph

\setglyph{Uring}
   \topaccent{U}{Ring}{500}
\endsetglyph

\setglyph{Yacute}
   \topaccent{Y}{Acute}{500}
\endsetglyph

\setglyph{Ydieresis}
   \topaccent{Y}{Dieresis}{500}
\endsetglyph

\setglyph{Zacute}
   \topaccent{Z}{Acute}{500}
\endsetglyph

\setglyph{Zcaron}
   \topaccent{Z}{Caron}{500}
\endsetglyph

\setglyph{Zdotaccent}
   \topaccent{Z}{Dotaccent}{500}
\endsetglyph


\begincomment
\section{Other glyphs that can be built}
\endcomment

\setglyph{Lslash}
   \glyph{lslashslash}{1000}
   \movert{\kerning{lslashslash}{L}}
   \glyph{L}{1000}
\endsetglyph

\setglyph{Ng}
   \glyph{Eng}{1000}
   \comment{This is simply an alias.}
\endsetglyph

\setglyph{dotlessI}
   \glyph{I}{1000}
   \comment{This simplifies making all-caps fonts.}
\endsetglyph

\setglyph{dotlessJ}
   \glyph{J}{1000}
   \comment{This simplifies making all-caps fonts.}
\endsetglyph


\setglyph{IJ}
   \glyph{I}{1000}
   \movert{\kerning{I}{J}}
   \glyph{J}{1000}
\endsetglyph

\setglyph{SS}
   \glyph{S}{1000}
   \movert{\kerning{S}{S}}
   \glyph{S}{1000}
\endsetglyph


\begincomment
\subsection{All-caps spaced digraphs}

These glyphs are combinations of upper case letters in which the 
distances between them have been increased by 
$\TypesetIntegerExpression{\int{capspacing}}$. These are intended for 
use in all-caps fonts that are made with a nonzero 
$\TypesetIntegerExpression{\int{letterspacing}}$ equal to the
$\TypesetIntegerExpression{\int{capspacing}}$.
\endcomment

\ifisint{letterspacing}\then
   \setint{capspacing}{\int{letterspacing}}
\Else
   \setint{capspacing}{0}
\Fi


\setglyph{FFspaced}
   \glyph{F}{1000}
   \movert{\add{\kerning{F}{F}}{\int{capspacing}}}
   \glyph{F}{1000}
\endsetglyph
\setleftrightkerning{FFspaced}{F}{1000}
\setleftrightkerning{Dbar}{Eth}{1000}


\setglyph{FIspaced}
   \glyph{F}{1000}
   \movert{\add{\kerning{F}{I}}{\int{capspacing}}}
   \glyph{I}{1000}
\endsetglyph
\setleftkerning{FIspaced}{F}{1000}
\setrightkerning{FIspaced}{I}{1000}

\setglyph{FLspaced}
   \glyph{F}{1000}
   \movert{\add{\kerning{F}{L}}{\int{capspacing}}}
   \glyph{L}{1000}
\endsetglyph
\setleftkerning{FLspaced}{F}{1000}
\setrightkerning{FLspaced}{L}{1000}

\setglyph{FFIspaced}
   \glyph{FFspaced}{1000}
   \movert{\add{\kerning{FFspaced}{I}}{\int{capspacing}}}
   \glyph{I}{1000}
\endsetglyph
\setleftkerning{FFIspaced}{F}{1000}
\setrightkerning{FFIspaced}{I}{1000}

\setglyph{FFLspaced}
   \glyph{FFspaced}{1000}
   \movert{\add{\kerning{FFspaced}{L}}{\int{capspacing}}}
   \glyph{L}{1000}
\endsetglyph
\setleftkerning{FFLspaced}{F}{1000}
\setrightkerning{FFLspaced}{L}{1000}

\setglyph{IJspaced}
   \glyph{I}{1000}
   \movert{\add{\kerning{I}{J}}{\int{capspacing}}}
   \glyph{J}{1000}
\endsetglyph
\setleftkerning{IJspaced}{I}{1000}
\setrightkerning{IJspaced}{J}{1000}

\setglyph{SSspaced}
   \glyph{S}{1000}
   \movert{\add{\kerning{S}{S}}{\int{capspacing}}}
   \glyph{S}{1000}
\endsetglyph
\setleftrightkerning{SSspaced}{S}{1000}




\begincomment
\section{All-caps kerning}
\endcomment

\setleftrightkerning{dotlessI}{I}{1000}
\setleftrightkerning{dotlessJ}{J}{1000}


\setleftrightkerning{Aacute}{A}{1000}
\setleftrightkerning{Abreve}{A}{1000}
\setleftrightkerning{Acircumflex}{A}{1000}
\setleftrightkerning{Adieresis}{A}{1000}
\setleftrightkerning{Agrave}{A}{1000}
\setleftrightkerning{Aogonek}{A}{1000}
\setleftrightkerning{Aring}{A}{1000}
\setleftrightkerning{Atilde}{A}{1000}

\setleftrightkerning{Cacute}{C}{1000}
\setleftrightkerning{Ccaron}{C}{1000}
\setleftrightkerning{Ccedilla}{C}{1000}

\setleftrightkerning{Dcaron}{D}{1000}

\setleftrightkerning{Eacute}{E}{1000}
\setleftrightkerning{Ecaron}{E}{1000}
\setleftrightkerning{Ecircumflex}{E}{1000}
\setleftrightkerning{Edieresis}{E}{1000}
\setleftrightkerning{Egrave}{E}{1000}
\setleftrightkerning{Eogonek}{E}{1000}

\setleftrightkerning{Gbreve}{G}{1000}

\setleftkerning{IJ}{I}{1000}

\setleftrightkerning{Iacute}{I}{1000}
\setleftrightkerning{Icircumflex}{I}{1000}
\setleftrightkerning{Idieresis}{I}{1000}
\setleftrightkerning{Idotaccent}{I}{1000}
\setleftrightkerning{Igrave}{I}{1000}

\setrightkerning{IJ}{J}{1000}

\setleftrightkerning{Lacute}{L}{1000}
\setleftrightkerning{Lslash}{L}{1000}
\setleftkerning{Lcaron}{L}{1000}

\setleftrightkerning{Nacute}{N}{1000}
\setleftrightkerning{Ncaron}{N}{1000}
\setleftrightkerning{Ntilde}{N}{1000}

\setleftkerning{Ng}{N}{1000}
\setrightkerning{Ng}{J}{1000}

\setleftrightkerning{Oacute}{O}{1000}
\setleftrightkerning{Ocircumflex}{O}{1000}
\setleftrightkerning{Odieresis}{O}{1000}
\setleftrightkerning{Ograve}{O}{1000}
\setleftrightkerning{Ohungarumlaut}{O}{1000}
\setleftrightkerning{Oslash}{O}{1000}
\setleftrightkerning{Otilde}{O}{1000}

\setleftrightkerning{Rcaron}{R}{1000}
\setleftrightkerning{Racute}{R}{1000}

\setleftrightkerning{SS}{S}{1000}
\setleftrightkerning{Sacute}{S}{1000}
\setleftrightkerning{Scaron}{S}{1000}
\setleftrightkerning{Scedilla}{S}{1000}

\setleftrightkerning{Tcaron}{T}{1000}
\setleftrightkerning{Tcedilla}{T}{1000}

\setleftrightkerning{Uacute}{U}{1000}
\setleftrightkerning{Ucircumflex}{U}{1000}
\setleftrightkerning{Udieresis}{U}{1000}
\setleftrightkerning{Ugrave}{U}{1000}
\setleftrightkerning{Uhungarumlaut}{U}{1000}
\setleftrightkerning{Uring}{U}{1000}

\setleftrightkerning{Yacute}{Y}{1000}
\setleftrightkerning{Ydieresis}{Y}{1000}

\setleftrightkerning{Zacute}{Z}{1000}
\setleftrightkerning{Zcaron}{Z}{1000}
\setleftrightkerning{Zdotaccent}{Z}{1000}



\endmetrics


\section{Changes}

The original version of this file was created in February 2003, 
although it is based on code from the traditional \texttt{latin.mtx}. 
The changes that have been made after that are as follows.

2003/03/15: Using \verb|\unfakabletopaccent| for the accent 
characters. This should change the appearence of accented letters 
built using such a character from ``a black square'' to ``a letter 
with a black square above''. Neither is satisfactory, but the latter 
conveys more information. (LH)

2003/03/29: Added some code (from \texttt{latin.mtx}) for all-caps 
glyphs that had been forgotten. (LH)

2005/05/21: Improved default for 
$\TypesetIntegerExpression{\int{capspacing}}$. (LH)

\end{document}