% A package to generate LaTeX logos using the code developed for
% TUGboat.

\newcommand\DeclareLaTeXLogo[5]{\expandafter\def
  \csname @LaTeX@#1/#2/#3\endcsname{{#4}{#5}}}
%    \end{macrocode}
%
% The default values are as used in the source of \LaTeX{} itself:
%
%    \begin{macrocode}
\def\@LaTeX@default{{.36}{.15}}
%    \end{macrocode}
%
%
% Redefine \cs{LaTeX} to choose the parameters for the current font,
% or to use the default value otherwise:
%
%    \begin{macrocode}
\DeclareRobustCommand\LaTeX{\expandafter\let\expandafter\reserved@a
  \csname @LaTeX@\f@family/\f@series/\f@shape\endcsname
  \ifx\reserved@a\relax\let\reserved@a\@LaTeX@default\fi
  \expandafter\@LaTeX\reserved@a}
%    \end{macrocode}
%
% Here's the body of what was originally \cs{LaTeX}, pulled out with its
% roots dripping onto the smoking ruin of original \LaTeX, and then
% bits stuck in on the side.
%
% \cs{@LaTeX@default} provides parameters as one finds in the
% original; other versions are added as needed.
%
%    \begin{macrocode}
\newcommand\@LaTeX[2]{L\kern-#1em
        {\sbox\z@ T%
         \vbox to\ht0{\hbox{$\m@th$%
                            \csname S@\f@size\endcsname
                            \fontsize\sf@size\z@
                            \math@fontsfalse\selectfont
                            A}%
                      \vss}%
        }%
        \kern-#2em%
        \TeX}
%    \end{macrocode}
%
% Three more defined in the initial version, for bold CM sans (which is
% used as \cs{SecTitleFont}), and CM italic medium and bold:
%
%    \begin{macrocode}
\DeclareOption{cm}{%
  \DeclareLaTeXLogo{cmss}{bx}n{.3}{.15}%
  \DeclareLaTeXLogo{cmr}m{it}{.3}{.27}%
  \DeclareLaTeXLogo{cmr}{bx}{it}{.3}{.27}%
}
\DeclareOption{mbvx}{%
  \DeclareLaTeXLogo{mbvx}{m}{n}{.27}{.08}%
  \DeclareLaTeXLogo{mbvx}{m}{it}{.23}{.10}%
  \DeclareLaTeXLogo{mbvx}{b}{n}{.23}{.10}%
  \DeclareLaTeXLogo{mbvx}{b}{it}{.21}{.10}%
}
\DeclareOption*{\PackageWarning{ltx-logo}{No LaTeX logo shapes defined
    for font family \CurrentOption\space-- yet}}
\ProcessOptions
%    \end{macrocode}
