% \iffalse meta-comment
%<*internal>
\begingroup
\input docstrip.tex
\keepsilent
\askforoverwritefalse

\preamble
  ____________________________________________________
  The LXfonts package 
  Copyright (C) 2008-2025 Claudio Beccari 
  All rights reserved
  
  Distributable under the LaTeX Project Public 
  License, version 1.3c or higher (your choice). 
  The latest version of this license is at: 
  http://www.latex-project.org/lppl.txt
\endpreamble
\postamble
Read the README.txt test file for further details
\endpostamble


\generate{\file{lxfonts.sty}{\from{lxfonts.dtx}{lxsty}}}
\generate{\file{ot1llcmss.fd}{\from{lxfonts.dtx}{lxot1ssfd}}}
\generate{\file{ot1llcmtt.fd}{\from{lxfonts.dtx}{lxot1ttfd}}}
\generate{\file{t1llcmss.fd}{\from{lxfonts.dtx}{lxt1ssfd}}}
\generate{\file{t1llcmtt.fd}{\from{lxfonts.dtx}{lxt1ttfd}}}
\generate{\file{ts1llcmss.fd}{\from{lxfonts.dtx}{lxts1ssfd}}}
\generate{\file{omlllcmm.fd}{\from{lxfonts.dtx}{lxomlmmfd}}}
\generate{\file{omsllcmsy.fd}{\from{lxfonts.dtx}{lxomssyfd}}}
\generate{\file{omxllcmex.fd}{\from{lxfonts.dtx}{lxomxexfd}}}
\generate{\file{ulmsa.fd}{\from{lxfonts.dtx}{lxumsafd}}}
\generate{\file{ulmsb.fd}{\from{lxfonts.dtx}{lxumsbfd}}}
\generate{\file{ulllasy.fd}{\from{lxfonts.dtx}{lxultxfd}}}
\generate{\file{lxfonts.map}{\from{lxfonts.dtx}{lxmap}}}
\generate{\file{lgrllcmss.fd}{\from{lxfonts.dtx}{lxlgrfd}}}
\generate{\file{lgrllcmtt.fd}{\from{lxfonts.dtx}{lxlgrttfd}}}

\def\tmpa{plain}
\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
\endgroup
%</internal>
% \fi
%
% \iffalse
%<*driver>
\documentclass{ltxdoc}
\ProvidesFile{lxfonts.dtx}[2025-02-03 v.3.0 Documented TeX file for
the LXfonts bundle]
\GetFileInfo{lxfonts.dtx}
\title{The LXfonts bundle}
\date{\fileversion\space--- \filedate}
 \author{Claudio Beccari
 \\[1ex]
 \texttt{claudio.beccari(at)gmail.com}}
 
\usepackage{mflogo}
%\usepackage{textcomp}
\usepackage[LGR,T1]{fontenc}

\def\prog#1{\textsf{#1}}
\def\pack#1{\textsf{\slshape#1}}
\def\file#1{\texttt{\itshape#1}}
\DeclareRobustCommand\AMS{\ensuremath{\mathcal{A\!_{\textstyle M}\mkern-2mu S}}}

\begin{document}\errorcontextlines=9
\maketitle
 \setlength\hfuzz{20pt}
 \DocInput{lxfonts.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{0}
%
% This self extracting documented file
% |lxfonts.dtx|, besides the |lxfonts.sty| file,
% produces the font description files necessary to
% use the LX fonts in any document, preferably
% presentations, but not only. It documents
% why they were made and the choices made in
% selecting which fonts to convert to this style.
%
% These fonts should be useful for typesetting 
% documents with T1 encoding (the old OT1 encoding
% is also supported) and blends text and math fonts
% in the proper way; AMS fonts are  supported. For
% legacy reasons the \LaTeX\ special symbol set is
% also accordingly restyled, but users are suggested
% to avoid their usage; they should prefer the AMS
% fonts.
%
% \section{The LX fonts}
% In the first eighties, when \LaTeX\ was conceived,
% Leslie Lamport  created a stand alone program,
% or better, a mark-up \SliTeX\ format that could be
% used in place of \LaTeX\ when it was necessary to
% create transparencies for conferences, lectures,
% and presentations; when \LaTeXe\ was made
% available in the early nineties, that set of
% mark-up macros and format did not exist any more,
% and in its place there was the new class
% \pack{slides}.
%
% The processing of the source files was almost
% identical, although the new class \pack{slides}
% had more typesetting power thanks to the \LaTeXe\ 
% more powerful macros.
% 
% Both processes produced printed documents that
% could be photocopied onto methacrylate
% transparencies and used with overhead projectors.
%
% Since the advent of beamer projectors, that can
% operate directly from a computer, and the
% availability of the \prog{pdfLaTeX} typesetting
% program, a set of packages was made available to
% the \TeX\ community so as to produce wonderful
% presentations, possibly together with their 
% printed handouts, that quickly replaced the old
% and honorable \SliTeX\ format and the
% \pack{slides} class.
% 
% The fonts that Leslie Lamport had devised to use
% with \SliTeX\ and \pack{slides} had a great
% advantage over the default \TeX\ system fonts,
% namely the traditional Computer Modern ones, and,
% after the introduction of the  new encoding T1, of
% the European Computer fonts and, later on, of the
% Latin Modern vector ones.
%
% It was \emph{legibility}.
%
% This advantage was obtained from the sans serif
% quotation fonts designed by D.E.~Knuth himself;
% he used them to typeset the witty quotations at
% each chapter end of both his \TeX\ and \MF\ books.
%
% But these Knuthian fonts had a disadvantage: the
% capital `I' and the lower case `l' were hardly
% distinguishable from one another and from the
% absolute value vertical bar. Leslie Lamport
% solved in part this problem by changing the sans
% serif ‘I’ with a serifed one; this was fine most
% of the time, but did not solve the similarity of
% the sans serif lower case `l' with the math
% absolute value bar.
%
% Moreover when typesetting math in those old
% fashioned transparencies, only the
% |operators| font was changed to a sans serif one,
% while the |letters| math italics font, together
% with the other |symbols| normal and
% |largesymbols| large symbol fonts remained the
% same; the result was that some math glyphs,
% obtained by juxtaposition of symbols coming from
% the operator font and some other math font,
% resulted clearly inadequate.
%
% The solution of such problems consisted in
% redesigning the shape of the lower case `l', so as
% to be more similar to an upright italic one, with
% a curved bottom, and to restyle all the math fonts
% with the same graphic font settings of the Lamport
% fonts, both in OT1 and T1 encoding, and in the
% math encodings OML, OMS OMX, plus the Text
% Companion TS1 encoded fonts\footnote{Recently the \TeX\ Companion fonts were split in several subsets and the realtive macros are included in the \LaTeX\ kernel, therefore it is not necessary to load the \pack{texcomp} package.}, the \AMS\ fonts and
% the vintage \LaTeX\ symbol fonts.
% 
% This is all what concerns these extended slide LX
% fonts; while doing this extensions I had to change
% the metadescription of several glyphs, but the
% overall work was not that complicated; it was just
% heavy because the large number of fonts involved,
% and therefore the overall glyph number.
% 
% This package redefines both the text and math font
% families; checks if the \AMS\ fonts have been
% called for, avoids to redefine the nice glyphs of
% the \AMS\ collection with the \LaTeX\ symbol
% fonts, although it will redefine the latter ones
% in case the user wants to use them, but did not
% load the \AMS\ font collections.
%
% These settings are deferred at begin document
% time, so that the necessary checks may be used
% after other fonts are possibly loaded.
%
% As a bonus the typewriter fonts are loaded in a
% scaled up version so that their x-height matches
% the larger LX fonts x-height. Such fonts are
% scaled 25\% up so that the 8pt design size
% typewriter font x-height matches the corresponding
% height of the LX fonts.
%
% These LX fonts are available in both vector and
% bitmapped form; I made the whole work by working
% on the \MF\ source files; when I was satisfied
% with the bitmapped fonts produced with \MF, I
% traced them by means of the \prog{mftrace}
% program, by Han-Wen Nien­huys, and produced
% the .pfb files containing the vector description
% of the glyphs. In order to use them with
% \prog{pdfLaTeX} it is necessary to have available
% the .map file, that I provided as part of this
% package. As a consequence of the method I
% followed, this bundle contains also the
% \file{.tfm} metric information
%
% \section{Usage}
% The only action needed to use these LX fonts is to
% call 
%\begin{verbatim}
%\usepackage{lxfonts}
%\end{verbatim}
% in the preamble; there are no options to set.
%
% If you use \pack{beamer} to create your
% presentation you might need to specify
%\begin{verbatim}
%\usefonttheme{professionalfonts}
%\end{verbatim}
% in order to avoid that beamer resets some math
% fonts the way it defaults to; for the rest you
% don't need to follow a particular loading order,
% although it might be clearer if you loaded your
% fonts after specifying the input and outout
% font encoding(s).
%
% \section{Standalone usage of the LX fonts}\label{sec:standalone}
%
% The style file \pack{lxfonts.sty} changes all
% the default font settings so that you cannot use
% any other font together with the LX ones.
%
% You can circumvent this rigidity by using the
% explicit declaration of the font family you want
% to use; for example, if you called this package
% and at a certain point you want to typeset
% something with a serifed font, say, the T1 encoded 
% Latin Modern Roman font, you can define a macro
% declaration or explicitly specify:
%\begin{verbatim}
%{\usefont{T1}{lmr}{m}{n} Words\ldots words}
%\end{verbatim}
% By so doing the “Words\ldots words” will be
% typeset in roman medium Latin Modern T1 encoded
% font at the current size
%
% On the opposite if you want to show a sample text
% written with the LX fonts while you are
% typesetting with other fonts, you don't use the
% above \file{.sty} file package, but use a macro
% declaration or the explicit command:
%\begin{verbatim}
%{\usefont{T1}{llcmss}{m}{n} Words\ldots words}
%\end{verbatim}
% and you get {\usefont{T1}{llcmss}{m}{n} Words\dots
% words} at the current type size; notice though,
% how larger the script appears thanks to the larger
% x-height, but uppercase letters are the same size
% as the serifed ones.
%
% With the previous version 1.0 of this package,
% this functionality was not available.
%
% \section{Integration of the Latin and  the Greek scripts}  
%
% The Greek CB fonts contain also the  families and
% shapes for slides; the style is the same as that
% of these LX fonts, but the different script does
% not require any restyling of any glyph; so they
% can be used directly; but the script changing
% mechanism simply implies the change of the
% encoding; therefore in order to  use the above
% Greek CB fonts, it is simply necessary to have
% available new font description files whose name is
% the agglutination of the Greek encoding name (in
% lower case) with the family name (identical to
% that of the Latin script); the contents of such
% files, of course, retrieves the glyphs from the
% Greek fonts files.
%
% Therefore it should not be difficult in a
% presentation to specify the Greek language in the
% preamble of the source file, and use the
% \pack{babel} language switching commands to as to
% write something like this:
% {\usefont{LGR}{llcmss}{m}{n} Kal’ hm'era!}
% means \emph{Good day!}. 
%
% More comfortably, while typesetting with
% \prog{pdflatex}, load package \pack{begingreek}
% that provides an environment the contents of
% which is assumed to be in Greek.                                                                                                                                                                                                                                                                                                             
%
% \section{ The LX fonts demo presentation}
%
% This bundle, besides this documentation, is
% shipped with a demo presentation where most
% features of the LX fonts are shown; the slides
% clearly show the features of these fonts, both the
% positive  and negative ones.  The
% \emph{legibility}, in my opinion, is excellent; if
% it was not for this point I would not have
% undertaken the work of restyling all these fonts.
% But there are also some little glitches that are
% partly inherent to the chosen one-size
% continuously scalable font. Moreover the Greek
% fonts, which are not part in themselves of my LX
% project, require some adjustments in several
% kerning values, but at the moment it is
% acceptable, even if its kerning is not perfect. 
% 
% While typesetting math it is clearly noticeable
% the lack of optical sizes: the super and
% subscripts appear definitely of the right size,
% but their scaling makes them appear lighter than
% they should be; this is common with all fonts that
% come in one size only, and this happens with the
% majority of the Type~1 and OpenType fonts
% distributed with the \TeX\ system.
%
% The Greek font kerning adjustment is on my TODO
% list.
%
% \section{Acknowledgemts}
%
% I would like to thank all the users who
% appreciated these fonts and gave me some feedback
% remarking some glitches; in particular I would
% like to acknowledge the interaction with Günter
% Milde, who gave me precious suggestions, among
% which that of detaching the font description
% files form the \file{lxfonts.sty} file.
% I would like to express my thanks to \@miticollo, 
% a very attentive and expert frequenter of the
% Italian TUG forum, for suggesting smart solutions
% to correct some glitches that were determinant
% when typesetting with \\prog{LuaLaTeX} and
% \pack{polyglossia}.
%
% \StopEventually{}^^A This macro argument can be a bibliography, for example.
%
% \section{Documented code}
% \subsection{The package code}
% The settings relative to the LX fonts are 
% deferred to the |\AtEndPreamble| hook (defined by
% package |etoolbox|) so that any previous font
% setting is replaced by the ones relative to the
% LX fonts; this is particularly useful when
% preparing source files for a presentation; in this 
% way all the fonts connected to the the slide show
% will be homogeneously styled the same way.

% Of course this is not a serious drawback in other
% situations, since I have shown in
% section~\ref{sec:standalone} what to do in order
% to overcome this apparent limitation.
% 
% First I test if certain packages have been loaded,
% specifically package \pack{latexsym} and
% \pack{amsfonts}; if so, certain switches are set
% |true|.
% At the proper point these switches will be used in
% order to load or to avoid to load certain font
% description files that will supersede the ones
% called by such named packages.
%
% At the same time the text and math defaults are
% set or reset so as to use only the LX fonts.
% \iffalse
%<*lxsty>
% \fi
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2023/01/01]
\ProvidesPackage{lxfonts}[2025/02/03 v.3.0 Macros for using LX fonts]
\newif\if@lasy \@lasyfalse
\newif\if@AMSfonts \@AMSfontsfalse
\RequirePackage{etoolbox}
\AtEndPreamble{%
\@ifpackageloaded{latexsym}{\@lasytrue}{}
\@ifpackageloaded{amsfonts}{\@AMSfontstrue}{}
\def\rmdefault{llcmss}        % no roman
\def\sfdefault{llcmss}
\def\ttdefault{llcmtt}
\def\itdefault{sl}
\def\sldefault{sl}
\def\bfdefault{bx}
\SetSymbolFont{operators}{normal}{OT1}{llcmss}{m}{n}
\SetSymbolFont{letters}{normal}{OML}{llcmm}{m}{it}
\SetSymbolFont{symbols}{normal}{OMS}{llcmsy}{m}{n}
\SetSymbolFont{largesymbols}{normal}{OMX}{llcmex}{m}{n}
	
\SetSymbolFont{operators}{bold}{OT1}{llcmss} {bx}{n}
\SetSymbolFont{letters}  {bold}{OML}{llcmm} {bx}{it}
\SetSymbolFont{symbols}  {bold}{OMS}{llcmsy}{bx}{n}
\SetSymbolFont{largesymbols}{bold}{OMX}{llcmex}{m}{n} % no bold!
	
\DeclareSymbolFontAlphabet{\mathrm}    {operators}
\DeclareSymbolFontAlphabet{\mathnormal}{letters}
\DeclareSymbolFontAlphabet{\mathcal}   {symbols}
	
\DeclareMathAlphabet   {\mathbf}{OT1}{llcmss}{bx}{n}
\DeclareMathAlphabet   {\mathsf}{OT1}{llcmss}{m}{n}
\DeclareMathAlphabet   {\mathit}{OT1}{llcmss}{m}{sl}
\DeclareMathAlphabet   {\mathtt}{OT1}{llcmtt}{m}{n}
	
\SetMathAlphabet\mathsf{bold}{OT1}{llcmss}{bx}{n}
\SetMathAlphabet\mathit{bold}{OT1}{llcmss}{bx}{sl}
%    \end{macrocode}
%
% The next few commands were suggested by
% \@miticollo, who suggested these macros to be
% applied to the ordinary teletype CM fonts by a
% factor that enlarges their x-height by a 25\%
% percentage, so that the x-height equals that of
% the LX roman and italic fonts.
%    \begin{macrocode}
\newfont{\cit}{cmssqi8 scaled 1250}
\newfont{\lit}{lcmssi8 scaled 1250}
\newfont{\cir}{cmssq8 scaled 1250} 
\newfont{\lir}{lcmss8 scaled 1250}
\DeclareFixedFont{\cmsyx}{OMS}{cmsy}{m}{n}{12.5}
\DeclareFixedFont{\cmssx}{OT1}{cmss}{m}{n}{12.5}

\makeatletter
\input{t1llcmtt.fd}  % loads T1/llcmtt
\input{omxllcmex.fd} % loads OMX/llcmex

\DeclareFontShape{T1}{llcmtt}{m}{n}{<-> [1.25]ecltt8}{}
\DeclareFontShape{T1}{llcmtt}{m}{it}{<-> [1.25]ecit0800}{}
\DeclareFontShape{OMX}{llcmex}{m}{n}{<-> lcmex8}{}
\DeclareEncodingSubset{TS1}{llcmss}{0}
%    \end{macrocode}

% The following tests are needed to load the \AMS\ 
% and the \LaTeX\ symbols fonts; in order to use
% them it is necessary to input the relevant font
% description files subject to the switches status;
% and then it is necessary to redeclare the math
% fonts accordingly.
%
% The |\Join| and |\leadsto| characters had to be
% redefined or declared to be aliases of some
% particular symbol command; the |\Join| macro had
% to be redefined because the dimensions of the new
% font don't agree with the kerning fixed in the
% |amssymb| package; of course, while I was at it,
% I might have designed a real glyph for |\Join|,
% but I thought that it was better to avoid
% conflicts with the existing \AMS\ symbol
% definitions.
% The |\leadsto| character has been let to
% |\rightsquigarrow| in order to name the same glyph
% also with the \LaTeX\ symbols font command.
% In this way it is possible to avoid loading the
% \LaTeX\ symbols font if the \AMS\ fonts have been
% already loaded.
%    \begin{macrocode}
\if@AMSfonts
	\input{ulmsa.fd}
	\input{ulmsb.fd}
	\SetSymbolFont{AMSa}{normal}{U}{lmsa}{m}{n}
	\SetSymbolFont{AMSb}{normal}{U}{lmsb}{m}{n}
	\xdef\Join{\mathrel{\mathchar"0\hexnumber@\symAMSb 6F%
	\mkern-14.2mu\mathchar"0\hexnumber@\symAMSb 6E}}
	\global\let\leadsto\rightsquigarrow
\fi
\if@lasy
	\if@AMSfonts%
		\PackageWarning{lxfonts}{%
		I did not load the LaTeX symbol 
		fonts\MessageBreak
		because its glyphs are already provided by the 
		AMS fonts\MessageBreak}
	\else	
		\input{ulllasy.fd}
		\SetSymbolFont{lasy}{normal}{U}{lllasy}{m}{n}
		\SetSymbolFont{lasy}{bold}{U}{lllasy}{b}{n}
	\fi
\fi
%    \end{macrocode}
%
% The following commands are defined so as to
% implement part of the functionality of the old
% \LaTeX\,209 ones, with some significant
% modification: their effects are cumulative as they 
% are in \LaTeXe; at the same time they can be used
% also in mathematics. These commands pamper those
% users who think that the \LaTeXe\ commands are too 
% lengthy to write, but such users forgot that the
% old commands did not cumulate their effects,
% therefore they were not as flexible as the
% \LaTeXe\ font commands. On the opposite these
% definitions produce the same cumulative effects as
% the \LaTeXe\ commands; I do not think the habit of
% using the old commands is correct, but it does
% not harm anybody who has correct habits: it's not
% compulsory to use them even if they are available.
%    \begin{macrocode}
\DeclareOldFontCommand{\rm}{\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\slshape}{\relax}
\DeclareOldFontCommand{\sc}{\scshape}{\relax}
}
%    \end{macrocode}
% \iffalse
%</lxsty>
% \fi
%
% \subsection{Fonts in OT1 encoding}
% As long as the maths fonts are arranged the way
% they are, it is necessary to have the OT1 encoded
% text fonts even if the user specifies the T1
% option to the \pack{fontenc} package; this is due
% to the fact that the |operators| font in math mode
% is always defined as the the OT1 encoded set.

% At the same time those who don't need to use the
% many diacritics taken care of by the T1 encoded
% fonts, can simply avoid to call the \pack{fontenc}
% package, and get along without any problem.
% \iffalse
%<*lxot1ssfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{OT1}{llcmss}{\hyphenchar\font45}
\DeclareFontShape{OT1}{llcmss}{m}{n}{<-> llcmss8}{}
\DeclareFontShape{OT1}{llcmss}{m}{sl}{<-> llcmssi8}{}
\DeclareFontShape{OT1}{llcmss}{m}{it}{<->ssub* llcmss/m/sl}{}
\DeclareFontShape{OT1}{llcmss}{bx}{n}{<-> llcmssb8}{}
\DeclareFontShape{OT1}{llcmss}{bx}{sl}{<-> llcmsso8}{}
\DeclareFontShape{OT1}{llcmss}{bx}{it}{<->ssub* llcmss/bx/sl}{}
%
\DeclareFontShape{OT1}{llcmss}{m}{ui}{<-> ssub* llcmss/m/n}{}
\DeclareFontShape{OT1}{llcmss}{bx}{ui}{<->ssub* llcmss/bx/n}{}
%    \end{macrocode}
% \iffalse
%</lxot1ssfd>
% \fi
%
% The typewriter fonts are loaded as the usual OT1
% encoded Computer Modern ones just scaled up by
% 25\% so as to have them with the same x-height as
% the LX fonts. Substitutions are provided for the
% missing shapes and series.
% \iffalse
%<*lxot1ttfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{OT1}{llcmtt}{\hyphenchar\font-1}
\DeclareFontShape{OT1}{llcmtt}{m}{n}{<-> [1.25]cmtt8}{}
\DeclareFontShape{OT1}{llcmtt}{m}{it}{<-> [1.25]cmti8}{}
\DeclareFontShape{OT1}{llcmtt}{m}{sl}{<-> ssub* llcmtt/m/it}{}
\DeclareFontShape{OT1}{llcmtt}{bx}{n}{<-> ssub* llcmtt/m/n}{}
\DeclareFontShape{OT1}{llcmtt}{bx}{it}{<-> ssub* llcmtt/m/it}{}
\DeclareFontShape{OT1}{llcmtt}{bx}{sl}{<-> ssub* llcmtt/m/it}{}
%    \end{macrocode}
% \iffalse
%</lxot1ttfd>
% \fi
% 
% \subsection{Fonts in T1 encoding}
% The T1 encoded fonts are now described by the
% suitable font description files; such fonts are
% essential for typesetting most languages that use
% the Latin script. Actually I know that there exist
% some languages that usually don't use diacritics;
% but even in such languages sometimes it is
% necessary to typeset a foreign name or to typeset
% some phrases or paragraphs in an ancient version
% of the same language and diacritics pop up again.
% Personally I believe that T1 encoded fonts should
% be the only ones to be used, unless the user has
% access to suitable UNICODE encoded OpenType fonts,
% but this is out of topic since these LX fonts can
% be used only by \prog{pdfLaTeX}, that cannot
% directly handle OpenType fonts.
% \iffalse
%<*lxt1ssfd>
% \fi
%    \begin{macrocode}
 \DeclareFontFamily{T1}{llcmss}{\hyphenchar\font45}
 \DeclareFontShape{T1}{llcmss}{m}{n}{<-> leclq8}{}
 \DeclareFontShape{T1}{llcmss}{m}{sl}{<-> lecli8}{}
 \DeclareFontShape{T1}{llcmss}{m}{it}{<->ssub* llcmss/m/sl}{}
 \DeclareFontShape{T1}{llcmss}{bx}{n}{<-> leclb8}{}
 \DeclareFontShape{T1}{llcmss}{bx}{sl}{<-> leclo8}{}
 \DeclareFontShape{T1}{llcmss}{bx}{it}{<->ssub*llcmss/bx/sl}{}
%
\DeclareFontShape{T1}{llcmss}{m}{ui}{<->ssub*llcmss/m/n}{}
\DeclareFontShape{T1}{llcmss}{bx}{ui}{<->ssub*llcmss/bx/n}{}
%    \end{macrocode}
% \iffalse
%</lxt1ssfd>
% \fi
%
% In this case of T1 encoded typewriter fonts I
% don't use any magnification, as it was done for
% the OT1 encoded ones, because the upright font
% exists at the design size of 8pt, but the italic
% one does not; therefore for homogeneity I thought
% it was better to use them at a design size of 10pt
% without any scaling. The differences are so tiny,
% that are invisible at naked eye.
%
% But since the |lcmtt| family is already defined
% as a standard family, we need a different family
% name in order to avoid confusion; this is because
% we use a single size to be enlarged or shrunk as
% it is done with the main text font.
% \iffalse
%<*lxt1ttfd>
% \fi
%    \begin{macrocode}
 \DeclareFontFamily{T1}{llcmtt}{\hyphenchar\font-1}
 \DeclareFontShape{T1}{llcmtt}{m}{n}{<-> ec-lmtt10}{}
 \DeclareFontShape{T1}{llcmtt}{m}{it}{<-> ec-lmtti10}{}
 \DeclareFontShape{T1}{llcmtt}{m}{sl}{<-> ssub* llcmtt/m/it}{}
 \DeclareFontShape{T1}{llcmtt}{bx}{n}{<-> ssub* llcmtt/m/n}{}
 \DeclareFontShape{T1}{llcmtt}{bx}{it}{<-> ssub* llcmtt/m/it}{}
 \DeclareFontShape{T1}{llcmtt}{bx}{sl}{<-> ssub* llcmtt/m/it}{}
%    \end{macrocode}
% \iffalse
%</lxt1ttfd>
% \fi
%
% \subsection{Fonts in TS1 encoding}
% The Text Companion fonts are also restyled so that
% these font must be redeclared in case the user
% wants to use them.
% \iffalse
%<*lxts1ssfd>
% \fi
%    \begin{macrocode}
 \DeclareFontFamily{TS1}{llcmss}{\hyphenchar\font45}
 \DeclareFontShape{TS1}{llcmss}{m}{n}{<-> ltclq8}{}
 \DeclareFontShape{TS1}{llcmss}{m}{sl}{<-> ltcli8}{}
 \DeclareFontShape{TS1}{llcmss}{m}{it}{<-> ssub*llcmss/m/sl}{}
 \DeclareFontShape{TS1}{llcmss}{bx}{n}{<-> ltclb8}{}
 \DeclareFontShape{TS1}{llcmss}{bx}{sl}{<-> ltclo8}{}
 \DeclareFontShape{TS1}{llcmss}{bx}{it}{<-> ssub*llcmss/bx/sl}{}
 \DeclareFontShape{TS1}{llcmss}{m}{ui}{<-> ssub*llcmss/m/n}{}
 \DeclareFontShape{TS1}{llcmss}{bx}{ui}{<-> ssub*llcmss/bx/n}{}
%    \end{macrocode}
% \iffalse
%</lxts1ssfd>
% \fi
% \section {Math fonts and special fonts}
% \subsection{Math fonts in OML encoding}
% The math italic letters font has been restyled as
% the text fonts.
% \iffalse
%<*lxomlmmfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{OML}{llcmm}{\skewchar\font'177}
\DeclareFontShape{OML}{llcmm}{m}{it}{<-> lcmmi8}{}
\DeclareFontShape{OML}{llcmm}{bx}{it}{<-> lcmmib8}{}

\DeclareFontFamily{OML}{llcmss}{}
\DeclareFontShape{OML}{llcmss}{m}{n}{<-> ssub*llcmm/m/it}{}
%    \end{macrocode}
% \iffalse
%</lxomlmmfd>
% \fi
%
% \subsection{Math fonts in OMS encoding}
% The math symbol font was restyled as the text
% fonts.
% \iffalse
%<*lxomssyfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{OMS}{llcmsy}{\skewchar\font'60}
\DeclareFontShape{OMS}{llcmsy}{m}{n}{<-> lcmsy8}{}
\DeclareFontShape{OMS}{llcmsy}{bx}{n}{<-> lcmbsy8}{}

\DeclareFontFamily{OMS}{llcmss}{\skewchar\font'60}
\DeclareFontShape{OMS}{llcmss}{m}{n}{<->ssub*llcmsy/m/n}{}
%    \end{macrocode}
% \iffalse
%</lxomssyfd>
% \fi
%
% \subsection{Math fonts in OMX encoding}
% The large operators and delimiters font was
% restyled as the text fonts.
% \iffalse
%<*lxomxexfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{OMX}{llcmex}{}
\DeclareFontShape{OMX}{llcmex}{m}{n}{<-> sfixed* lcmex8}{}
%    \end{macrocode}
% \iffalse
%</lxomxexfd>
% \fi
% \subsection {The \AMS\ fonts}
% Since the \AMS\ fonts are used so often, either
% directly or through the \pack{amssymb} package, I
% restyled both families |msam| and |msbm|.
% In the .sty file I kept the math group names the
% same so that the symbol definitions keep making
% reference to the same encoding and slot positions,
% but they take the glyphs from different files.
%
% In both cases the |\DeclareFontFamily| statement
% appears to be unnecessary because these font
% description files are loaded only if the
% \pack{amsfonts} package has been called. But we
% have seen above that these font description
% files are reloaded at the |\AtEndPreamble| hook;
% moreover if these fonts are used as standalone
% ones, the declaration is absolutely necessary.
% \iffalse
%<*lxumsafd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{U}{lmsa}{}
\DeclareFontShape{U}{lmsa}{m}{n}{<-> lmsam8}{}
\DeclareFontShape{U}{lmsa}{bx}{n}{<-> ssub* lmsa/m/n}{}
%    \end{macrocode}
% \iffalse
%</lxumsafd>
% \fi
%
% \iffalse
%<*lxumsbfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{U}{lmsb}{}
\DeclareFontShape{U}{lmsb}{m}{n}{<-> lmsbm8}{}
\DeclareFontShape{U}{lmsb}{bx}{n}{<-> ssub* lmsb/m/n}{}
%    \end{macrocode}
% \iffalse
%</lxumsbfd>
% \fi
%
% \subsection{The \LaTeX\ symbol fonts}
% The same treatment is used for the \LaTeX\ symbol
% fonts as it was done with the teletype text font:
% a different family name, but one font to be
% enlarged or shrunk as the main text font.
% \iffalse
%<*lxultxfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{U}{lllasy}{}
\DeclareFontShape{U}{lllasy}{m}{n}{<-> llasy8}{}
\DeclareFontShape{U}{lllasy}{b}{n}{<-> llasyb8}{}
%    \end{macrocode}
% \iffalse
%</lxultxfd>
% \fi
%
% \subsection{The Greek font for slides}
% The CB Greek font collection contains also the
% family and shape of the slides fonts; of course
% with the Greek script there is no problem with
% possible confusions of capital `I' and lower case
% `l', therefore they did not need any restyling.
% The only question related to Greek fonts is that
% the same font family names for the Latin Script
% must be associated with the Greek script with the
% Greek encoding LGR, instead of the Latin encoding
% T1. The Greek font description files, therefore,
% have a different prefix (LGR), the same family
% name (llcmss for proportional sans serif fonts, or 
% lcmtt for monospaced ones), but the glyphs are
% taken from the relevant Greek fonts.
% \iffalse
%<*lxlgrfd>
% \fi
%    \begin{macrocode}
\DeclareFontFamily{LGR}{llcmss}{\hyphenchar\font45}
\DeclareFontShape{LGR}{llcmss}{m}{n}{<-> glmn0800}{}
\DeclareFontShape{LGR}{llcmss}{m}{sl}{<-> glmo0800}{}
\DeclareFontShape{LGR}{llcmss}{m}{it}{<-> ssub* llcmss/m/sl}{}
\DeclareFontShape{LGR}{llcmss}{bx}{n}{<-> glxn0800}{}
\DeclareFontShape{LGR}{llcmss}{bx}{sl}{<-> glxo0800}{}
\DeclareFontShape{LGR}{llcmss}{bx}{it}{<-> ssub* llcmss/bx/sl}{}
\DeclareFontShape{LGR}{llcmss}{m}{ui}{<-> ssub* llcmss/m/n}{}
\DeclareFontShape{LGR}{llcmss}{bx}{ui}{<-> ssub* llcmss/bx/n}{}
%    \end{macrocode}
% \iffalse
%</lxlgrfd>
% \fi
% The same action is taken for the teletype fonts,
% even if it is less probable that such fonts are
% used in a presentations, since the teletype font
% is normally used for typesetting programming code
% texts, very seldom written in Greek.
% \iffalse
%<*lxlgrttfd>
% \fi
%    \begin{macrocode}
 \DeclareFontFamily{LGR}{llcmtt}{\hyphenchar\font-1}
 \DeclareFontShape{LGR}{llcmtt}{m}{n}{<-> gltn1000}{}
 \DeclareFontShape{LGR}{llcmtt}{m}{it}{<-> glto1000}{}
 \DeclareFontShape{LGR}{llcmtt}{m}{sl}{<-> ssub* lcmtt/m/it}{}
 \DeclareFontShape{LGR}{llcmtt}{bx}{n}{<-> ssub* lcmtt/m/n}{}
 \DeclareFontShape{LGR}{llcmtt}{bx}{it}{<-> ssub* lcmtt/m/it}{}
 \DeclareFontShape{LGR}{llcmtt}{bx}{sl}{<-> ssub* lcmtt/m/it}{}
%    \end{macrocode}
% \iffalse
%</lxlgrttfd>
% \fi
%
%\subsection{The map file}
% The map file is necessary in order to reconfigure
% the |updmap.cfg| so as to let \prog{pdftex} access
% these fonts. Notice that this reconfiguration is
% done by the system installation macros and the
% user should not play around with such delicate
% questions; it must be remarked also that the
% methods for reconfiguring that file are being
% updated in a significant way in certain
% distribution of the \TeX\ system, and it would be
% very dangerous to describe the actual procedure,
% when it possible that in 2014 it is a different
% one. In any case users who really need to install
% these fonts “by hand” is advised to read the
% documentation of their current distribution of the 
% \TeX\ system so as to upgrade the update map
% correct configuration procedure.
% \iffalse
%<*lxmap>
% \fi
%    \begin{macrocode}
lcmbsy8   lcmbsy8   <lcmbsy8.pfb
lcmex8    lcmex8    <lcmex8.pfb
lcmmi8    lcmmi8    <lcmmi8.pfb
lcmmib8   lcmmib8   <lcmmib8.pfb
lcmsy8    lcmsy8    <lcmsy8.pfb
leclb8    leclb8    <leclb8.pfb
lecli8    lecli8    <lecli8.pfb
leclo8    leclo8    <leclo8.pfb
leclq8    leclq8    <leclq8.pfb
llasy8    llasy8    <llasy8.pfb
llasyb8   llasyb8   <llasyb8.pfb
llcmss8   llcmss8   <llcmss8.pfb
llcmssb8  llcmssb8  <llcmssb8.pfb
llcmssi8  llcmssi8  <llcmssi8.pfb
llcmsso8  llcmsso8  <llcmsso8.pfb
lmsam8    lmsam8    <lmsam8.pfb
lmsbm8    lmsbm8    <lmsbm8.pfb
ltclb8    ltclb8    <ltclb8.pfb
ltcli8    ltcli8    <ltcli8.pfb
ltclo8    ltclo8    <ltclo8.pfb
ltclq8    ltclq8    <ltclq8.pfb
%    \end{macrocode}
% \iffalse
%<*lxmap>
% \fi
% The Greek CB fonts need not to be listed in this
% map file, because they are already listed in the
% CB font map file that is being already used in
% the installation of that Greek font collection.
% \Finale
% \endinput