%\iffalse % MetaComment
%%
%% + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
%% |            Copyright(C) 1997-2010 by F. Bosisio             |
%% |                                                             |
%% | This program can be redistributed and/or modified under	 |
%% | the terms of the LaTeX Project Public License, either       |
%% | version 1.3 of this license or (at your option) any later   |
%% | version. The latest version of this license is in           |
%% |   http://www.latex-project.org/lppl.txt                     |
%% | and version 1.3 or later is part of all LaTeX distributions |
%% | version 2005/12/01 or later.                                |
%% |                                                             |
%% | This work has the LPPL maintenance status `maintained'.     |
%% | The Current Maintainer of this work is F. Bosisio.          |
%% |                                                             |
%% | This work consists of files dblfont.dtx and dblfont.html    |
%% | and of the derived files dblfont.sty and dblfont.pdf.       |
%% |                                                             |
%% | E-mail:   fbosisio@bigfoot.com                              |
%% | CTAN location: macros/latex/contrib/bosisio/                |
%% + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
%%
%%	If you make any improvment, find any bug or have
%%	any suggestion, please let me know about it.
%%
%<*package,driver>
%\fi
%
\def\FileName{dblfont}
%\iffalse % MetaComment
%</package,driver>
%<*package>
%\fi
\def\fileversion{2.2}
\def\filedate{1997/12/13}
\def\docdate{2005/04/09}
\def\filedescr{Blackboard-bold symbols (FB)}
%
%\iffalse % MetaComment
%</package>
%<*dtx>
%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%		This section is the installation driver
%
\def\batchfile{\FileName.dtx}
%
\input docstrip
%
\keepsilent
% \askforoverwritefalse
%
\generateFile{\FileName.sty}{f}{\from{\FileName.dtx}{package}}
%
\generateFile{\FileName.drv}{f}{\from{\FileName.dtx}{driver}}
%
\Msg{******************************************************}
\Msg{*}
\Msg{* To produce the documentation run the}
\Msg{* file `\FileName.drv' through LaTeX.}
\Msg{*}
\Msg{******************************************************}
%
\endbatchfile
%
%		End of the installation driver
%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%</dtx>
%
%		This section is the documentation driver
%
%<+driver>\documentclass[12pt,a4paper]{ltxdoc}
%<+driver>  \EnableCrossrefs
%<+driver>  \CodelineIndex
%<+driver>  \RecordChanges
%<+driver>  %\OnlyDescription   % Uncomment not to see the implementation
%<+driver>\begin{document}
%<+driver>  \DocInput{\FileName.dtx}
%<+driver>  \PrintIndex
%<+driver>  \PrintChanges
%<+driver>\end{document}
%
%		End of the documentation driver
%- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%<*package>
%\fi
%
% \changes{v0.1}{1 November 1997}{First release}
% \changes{v1.0}{7 November 1997}{Documentation added}
% \changes{v1.1}{17 November 1997}{Added options in ``XX'' format}
% \changes{v2.0}{13 December 1997}{Used ``newcommand*'' instead of ``def''}
% \changes{v2.1}{5 March 1999}{Added copyright notice and changed addresses}
% \changes{v2.2}{9 April 2005}{Usage of the double-quote character (") avoided}
%
% \MakeShortVerb{\|}
%
% \title{Package \texttt{\FileName}\thanks{This is version \fileversion,
% last revised \filedate; documentation date \docdate}}
% \author{F. Bosisio\\\normalsize E-mail: \texttt{fbosisio@bigfoot.com}}
% \date{\filedate}
% \maketitle
%
% \begin{abstract}
%	Documentation for the package \texttt{\FileName}.
% \end{abstract}
%
% \section{Introduction}
%	This package provides the font ``|\DblFont|'' (font |msbm10|), which
%	corresponds to the so called blackdoard-bold symbols.
%
% \section{The options}
%	For each uppercase letter ``|X|'' a corresponding ``|X|'' and ``|XX|''
%	options exist: they declare the commands ``|\X|'' and ``|\XX|'' which
%	both generate the letter |X| in |DblFont|.
%	If a command named ``|\X|'' or ``|\XX|'' already exists in \LaTeX{},
%	its definition is first saved in ``|\BackDoubleX|'' or
%       ``|\BackDoubleXX|'', respectively.
%
%	\noindent
%	Also a ``|RT|'' option exists: it declares the ``|\RT|'' command,
%	which generates the two letters |RT| in |DblFont| (used for the
%	Raviart-Thomas spaces).
%
% \StopEventually{}
% \newpage
% \section{Implementation}
%
%    \begin{macrocode}
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{\FileName}[\filedate\space v\fileversion\space\filedescr]
%    \end{macrocode}
%
%    The font ``|\DblFont|'' is loaded, if not already done.
%    \begin{macrocode}
%%
\newfont{\DblFont}{msbm10 scaled \magstep1}
%    \end{macrocode}
%
%    The  ``|\DeclareDblFontSymbol|'' has one argument which is used
%    both as the command name to define and as the output it should
%    generate (in |\DblFont|).
%    The ``|\csname #1 \endcsname|'' sequence adds a backslash in front
%    of the argument, to get the command name.
%    \begin{macrocode}
%%
\newcommand*\DeclareDblFontSymbol[1]{%
\expandafter\newcommand*\csname #1\endcsname{\ensuremath{\mathbb{#1}}}%
}
%    \end{macrocode}
%    The  ``|\dECL@REdBLfONTsYMBOL|'' has one argument which is used
%    both as the command name to define (doubled) and as the output
%    it should generate (in |\DblFont|).
%    The ``|\csname #1#1 \endcsname|'' sequence adds a backslash in front
%    of the argument and doubles it, to get the command name.
%    \begin{macrocode}
\newcommand*\dECL@REdBLfONTsYMBOL[1]{%
\expandafter\newcommand*\csname #1#1\endcsname{\ensuremath{\mathbb{#1}}}%
}
%    \end{macrocode}
%
%    The command ``|\BackUpL@texCmd{<X>}|'' saves the command ``|\<X>|'' in
%    the macro ``|\BackDouble<X>|'' and then undefines ``|\<X>|'', so that a
%    ``|\newcommand*\<X>{..}|'' can be used to redefine it.
%    \begin{macrocode}
%%
\newcommand*\BackUpL@texCmd[1]{%
\expandafter\let\csname BackDouble#1\endcsname=\csname #1\endcsname%
\expandafter\let\csname #1\endcsname\undefined%
\typeout{*** Command name ``#1'' has been replaced by ``BackDouble#1''! ***}%
}
%    \end{macrocode}
%
%    An option exists for each uppercase letter: it declares the
%    command ``|\X|'' which generates the letter |X| in |DblFont|,
%    where |X| denotes the letter under consideration.
%    If a command named ``|\X|'' already exists in \LaTeX{}, its definition
%    is saved in ``|\BackDoubleX|'', before being redefined.
%    \begin{macrocode}
%%
\DeclareOption{A}{\DeclareDblFontSymbol{A}}
\DeclareOption{B}{\DeclareDblFontSymbol{B}}
\DeclareOption{C}{\DeclareDblFontSymbol{C}}
\DeclareOption{D}{\DeclareDblFontSymbol{D}}
\DeclareOption{E}{\DeclareDblFontSymbol{E}}
\DeclareOption{F}{\DeclareDblFontSymbol{F}}
\DeclareOption{G}{\DeclareDblFontSymbol{G}}
\DeclareOption{H}{\BackUpL@texCmd{H} \DeclareDblFontSymbol{H}}
\DeclareOption{I}{\DeclareDblFontSymbol{I}}
\DeclareOption{J}{\DeclareDblFontSymbol{J}}
\DeclareOption{K}{\DeclareDblFontSymbol{K}}
\DeclareOption{L}{\BackUpL@texCmd{L} \DeclareDblFontSymbol{L}}
\DeclareOption{M}{\DeclareDblFontSymbol{M}}
\DeclareOption{N}{\DeclareDblFontSymbol{N}}
\DeclareOption{O}{\BackUpL@texCmd{O} \DeclareDblFontSymbol{O}}
\DeclareOption{P}{\BackUpL@texCmd{P} \DeclareDblFontSymbol{P}}
\DeclareOption{Q}{\DeclareDblFontSymbol{Q}}
\DeclareOption{R}{\DeclareDblFontSymbol{R}}
\DeclareOption{S}{\BackUpL@texCmd{S} \DeclareDblFontSymbol{S}}
\DeclareOption{T}{\DeclareDblFontSymbol{T}}
\DeclareOption{U}{\DeclareDblFontSymbol{U}}
\DeclareOption{V}{\DeclareDblFontSymbol{V}}
\DeclareOption{W}{\DeclareDblFontSymbol{W}}
\DeclareOption{X}{\DeclareDblFontSymbol{X}}
\DeclareOption{Y}{\DeclareDblFontSymbol{Y}}
\DeclareOption{Z}{\DeclareDblFontSymbol{Z}}
%    \end{macrocode}
%
%    An option ``|XX|'' exists for each uppercase letter ``|X|'': it declares
%    the command ``|\XX|'' which generates the letter |X| in |DblFont|.
%    If a command named ``|\XX|'' already exists in \LaTeX{}, its
%    definition is saved in ``|\BackDoubleXX|'', before being redefined.
%    \begin{macrocode}
%%
\DeclareOption{AA}{\dECL@REdBLfONTsYMBOL{A}}
\DeclareOption{BB}{\dECL@REdBLfONTsYMBOL{B}}
\DeclareOption{CC}{\dECL@REdBLfONTsYMBOL{C}}
\DeclareOption{DD}{\dECL@REdBLfONTsYMBOL{D}}
\DeclareOption{EE}{\dECL@REdBLfONTsYMBOL{E}}
\DeclareOption{FF}{\dECL@REdBLfONTsYMBOL{F}}
\DeclareOption{GG}{\dECL@REdBLfONTsYMBOL{G}}
\DeclareOption{HH}{\dECL@REdBLfONTsYMBOL{H}}
\DeclareOption{II}{\dECL@REdBLfONTsYMBOL{I}}
\DeclareOption{JJ}{\dECL@REdBLfONTsYMBOL{J}}
\DeclareOption{KK}{\dECL@REdBLfONTsYMBOL{K}}
\DeclareOption{LL}{\dECL@REdBLfONTsYMBOL{L}}
\DeclareOption{MM}{\dECL@REdBLfONTsYMBOL{M}}
\DeclareOption{NN}{\dECL@REdBLfONTsYMBOL{N}}
\DeclareOption{OO}{\dECL@REdBLfONTsYMBOL{O}}
\DeclareOption{PP}{\dECL@REdBLfONTsYMBOL{P}}
\DeclareOption{QQ}{\dECL@REdBLfONTsYMBOL{Q}}
\DeclareOption{RR}{\dECL@REdBLfONTsYMBOL{R}}
\DeclareOption{SS}{\BackUpL@texCmd{SS} \dECL@REdBLfONTsYMBOL{S}}
\DeclareOption{TT}{\dECL@REdBLfONTsYMBOL{T}}
\DeclareOption{UU}{\dECL@REdBLfONTsYMBOL{U}}
\DeclareOption{VV}{\dECL@REdBLfONTsYMBOL{V}}
\DeclareOption{WW}{\dECL@REdBLfONTsYMBOL{W}}
\DeclareOption{XX}{\dECL@REdBLfONTsYMBOL{X}}
\DeclareOption{YY}{\dECL@REdBLfONTsYMBOL{Y}}
\DeclareOption{ZZ}{\dECL@REdBLfONTsYMBOL{Z}}
%    \end{macrocode}
%
%    A further option is for Raviart-Thomas spaces: it declares the
%    command ``|\RT|'' which generates the two letters |RT| in |DblFont|
%    \begin{macrocode}
%
\DeclareOption{RT}{\DeclareDblFontSymbol{RT}}
%    \end{macrocode}
%
%    Finally, the user option are parsed, thereby defining the
%    corresponding commands.
%    \begin{macrocode}
%
\ProcessOptions
%    \end{macrocode}
%
%\iffalse % MetaComment
%<*package>
%\fi
%
% \CheckSum{154}
% \Finale
%
\endinput
