%%% ====================================================================
%%% @LaTeX-file{
%%%   filename        = "euscript.dtx",
%%%   version         = "2.2d",
%%%   date            = "2001/10/01",
%%%   time            = "11:53:06 EDT",
%%%   checksum        = "51492 201 926 8086",
%%%   author          = "American Mathematical Society",
%%%   copyright       = "Copyright 2001 American Mathematical Society,
%%%                      all rights reserved.  Copying of this file is
%%%                      authorized only if either:
%%%                      (1) you make absolutely no changes to your copy,
%%%                      including name; OR
%%%                      (2) if you do make changes, you first rename it
%%%                      to some other name.",
%%%   address         = "American Mathematical Society,
%%%                      Technical Support,
%%%                      Publications Technical Group,
%%%                      P. O. Box 6248,
%%%                      Providence, RI 02940,
%%%                      USA",
%%%   telephone       = "401-455-4080 or (in the USA and Canada)
%%%                      800-321-4AMS (321-4267)",
%%%   FAX             = "401-331-3842",
%%%   email           = "tech-support@ams.org (Internet)",
%%%   codetable       = "ISO/ASCII",
%%%   keywords        = "latex, amslatex, ams-latex, amsfonts, euscript,
%%%                      eucal, mathcal",
%%%   supported       = "yes",
%%%   abstract        = "This is part of the AMSFonts distribution.
%%%                      It is a \LaTeX{} package that sets up some
%%%                      font shape definitions to use the Euler
%%%                      script symbols in math mode. These fonts are
%%%                      part of the AMSFonts font collection.",
%%%   docstring       = "The checksum field above contains a CRC-16
%%%                      checksum as the first value, followed by the
%%%                      equivalent of the standard UNIX wc (word
%%%                      count) utility output of lines, words, and
%%%                      characters.  This is produced by Robert
%%%                      Solovay's checksum utility.",
%%% }
%%% ====================================================================
%
%\iffalse
%<*driver>
\documentclass{amsdtx}
\usepackage{eucal}
\begin{document}
\title{The \pkg{eucal} and \pkg{euscript} packages}
\author{Frank Mittelbach\and Rainer Sch\"opf\and Michael Downes}
\date{Version \fileversion, \filedate}
\hDocInput{euscript.dtx}
\end{document}
%</driver>
%\fi
%
% \maketitle
%
% \section{Introduction}
%
%    This package was written originally by Frank Mittelbach and Rainer
%    Sch\"opf; later it was moved into the AMSFonts distribution
%    with only minor modifications. It can be used with \LaTeXe{} with
%    no dependency on the \pkg{amsmath} package.
%
%    This file sets up some font shape definitions to use the Euler
%    script symbols in math mode. These fonts are part of the AMSFonts
%    collection which can be found on many \TeX{} servers. It is also
%    directly available from the AMS and from \TeX{} user groups.
%
% \DescribeMacro\EuScript
%    The expected normal use of the Euler Script alphabet is as a
%    substitute for the Computer Modern calligraphic alphabet found in
%    \fn{cmsy}. Therefore we change the meaning of \cn{mathcal}.
% \begin{verbatim}
% \[ \mathcal{A} = \EuScript{A} \neq \CMcal{A} \]
%\end{verbatim}
%     will produce
% \[ \mathcal{A} = \EuScript{A} \neq \CMcal{A} \]
%
% Here is a complete table of the  beautiful letters drawn by Hermann
% Zapf:
% \begin{displaymath}
%   \newcommand{\E}[1]{\EuScript{#1} &}
%   \begin{array}{*{10}c}
%     \E{A} \E{B} \E{C} \E{D} \E{E} \E{F} \E{G} \E{H} \E{I} \\
%     \E{J} \E{K} \E{L} \E{M} \E{N} \E{O} \E{P} \E{Q} \E{R} \\
%     \E{S} \E{T} \E{U} \E{V} \E{W} \E{X} \E{Y} \E{Z}
%   \end{array}
% \end{displaymath}
%
% \StopEventually{}
%
% \section{The Implementation}
%
%    Package identification.
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}% LaTeX 2.09 can't be used (nor non-LaTeX)
[1994/12/01]% LaTeX date must be December 1994 or later
%<euscript>\ProvidesPackage{euscript}[2001/10/01 v2.2d Euler Script fonts]
%<eucal>\ProvidesPackage{eucal}[2001/10/01 v2.2d Euler Script fonts]
%    \end{macrocode}
%
%    We have three things to do: 1) identify the current package,
%    2) enlarge the font shape tables and 3) define the \meta{math
%    alphabet identifier}.
%
%    The font shapes for the Euler Script medium and bold are defined
%    in the amsfonts.fdd file which comes with the AMS font package.
%    We repeat their default definition here for reference only.
%    \begin{verbatim}
% \DeclareFontFamily{U}{eus}{\skewchar\font'60}
% \DeclareFontShape{U}{eus}{m}{n}{%
%     <5><6><7><8><9>gen*eusm%
%    <10><10.95><12><14.4><17.28><20.74><24.88>eusm10}{}
% \DeclareFontShape{U}{eus}{b}{n}{%
%     <5><6><7><8><9>gen*eusb%
%    <10><10.95><12><14.4><17.28><20.74><24.88>eusb10}{}
%\end{verbatim}
%
% \begin{macro}{\EuScript}
%    Now we define the \meta{math alphabet identifier} \cn{EuScript}
%    both for the normal and the bold math version
%    \begin{macrocode}
\DeclareMathAlphabet\EuScript{U}{eus}{m}{n}
\SetMathAlphabet\EuScript{bold}{U}{eus}{b}{n}
%    \end{macrocode}
% \end{macro}
%
%    For flexibility and backward compatibility with versions 2.1c and
%    earlier, we save the old meaning of \cn{mathcal} as \cn{CMcal}, and
%    use \cn{EuScript} as the initial name of the new math alphabet.
%    Notice that we don't do any checking to make sure the previous
%    version of \cn{mathcal} actually refers to \fn{cmsy}.
%    \begin{macrocode}
\newcommand{\CMcal}{}
\let\CMcal=\mathcal
%    \end{macrocode}
%
%    The \opt{psamsfonts} option is intended to mean that the Y\&Y/Blue Sky
%    Research PostScript versions of the AMSFonts should be used. In
%    that font set, the only \fn{.tfm} files provided below size 10 are
%    5 and 7, rather than 5,6,7,8,9. See \fn{amsfonts.dtx} for more
%    discussion.
%    \begin{macrocode}
\DeclareOption{psamsfonts}{%
  \DeclareFontFamily{U}{eus}{\skewchar\font'60}%
  \DeclareFontShape{U}{eus}{m}{n}{<-6>eusm5<6-8>eusm7<8->eusm10}{}%
  \DeclareFontShape{U}{eus}{b}{n}{<-6>eusb5<6-8>eusb7<8->eusb10}{}%
}
%    \end{macrocode}
%
%    Here is a table describing the action of the \pkg{eucal},
%    \pkg{euscript}, and \pkg{eufrak} packages.
% \begin{center}
% \begin{tabular}{lll}
%    Package&  Option&    Commands provided\\
%    \hline
%    \pkg{eucal}&    none&      \cn{mathcal}\\
%    \pkg{eucal}&    \opt{[mathcal]}& \cn{mathcal}\\
%    \pkg{eucal}&    \opt{[mathscr]}& \cn{mathscr} (\cn{mathcal} unchanged)\\
%    \pkg{euscript}& none&      \cn{EuScript} (obsolete)\\
%    \pkg{euscript}& \opt{[mathcal]}& \cn{mathcal}\\
%    \pkg{eufrak}&   none&      \parbox[t]{14pc}{\cn{mathfrak} (also
%                               obsolete \cn{EuFrak} for compatibility)}
% \end{tabular}
% \end{center}
%
%    \begin{macrocode}
\DeclareOption{mathcal}{\renewcommand{\mathcal}{\EuScript}}
\DeclareOption{mathscr}{%
  \providecommand{\mathscr}{}\renewcommand{\mathscr}{\EuScript}%
%<eucal>  \let\mathcal=\CMcal
}
%    \end{macrocode}
%
%    Process the package options.
%    \begin{macrocode}
%<eucal>\ExecuteOptions{mathcal}
\ProcessOptions
%    \end{macrocode}
%
%    The usual \cs{endinput} to ensure that random garbage at the end of
%    the file doesn't get copied by \fn{docstrip}.
%    \begin{macrocode}
\endinput
%    \end{macrocode}
%
% \changes{v2.1a}{93/12/12}{Update for LaTeX2e}
% \changes{v2.1c}{1994/05/08}{Changed to new documentation standards.}
% \changes{v2.1d}{1994/10/14}{Moved to AMS-LaTeX distribution (mjd).}
% \changes{v2.1d}{1994/10/18}{Added psamsfonts option}
% \changes{v2.1d}{1994/10/18}{Changed cmd names to mathcal/mathscr}
% \changes{v2.1d}{1994/10/18}{Added eucal package}
% \changes{v2.1d}{1994/10/21}{Some documentation cleanup}
% \changes{v2.2}{1995/01/06}{Moved to amsfonts distrib}
% \changes{v2.2c}{1997/05/15}{%
%    Removed dependency on mixed-case fd file names}
%
% \CheckSum{34}
% \Finale
