%\CheckSum{252}
%
% \iffalse
%
% Copyright (c) 1999-2001 Walter Schmidt
%
% This program may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.1
% 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.1 or later is part of all distributions of LaTeX
% version 1999/06/01 or later.
%
% This program consists of the files hvmaths.txt, hvmaths.dtx
% and hvmaths.ins.
%
% \fi
%
% \iffalse
%
\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<*driver>
\ProvidesFile{hvmaths.drv}
%</driver>
%<+package>\ProvidesPackage{hvmaths}
           [2001/05/06 v1.2b (WaS/MicroPress)]
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{url}

\begin{document}
 \DocInput{hvmaths.dtx}
\end{document}
%</driver>
% \fi
%
% \GetFileInfo{hvmaths.drv}
% \DeleteShortVerb{\|}
% \MakeShortVerb{\+}
%
% \title{The \LaTeX{} macro package \textsf{hvmaths}}
% \author{Walter Schmidt}
% \date{(\fileversion{} -- \filedate)}
% \maketitle
%
%
% \section{Overview}
% The \LaTeX{} macro package \textsf{hvmaths}
% supports typesetting with the font familiy `Micropress HV-Math', version~1.2.
% This font family is made up from Adobe Helvetica and additional
% fonts so as to provide the character sets for \LaTeX's text,
% text companion (partially) and mathematical font encodings.
%
%
% \section{Usage}
% Loading the package
% \begin{verse}
% +\usepackage{hvmaths}+
% \end{verse}
% effects the following:
% \begin{itemize}
% \item
% The default sans serif font family for typesetting text
% is changed to \texttt{hvr}, i.\,e.\ Micropress HV-Math.
% \item
% The sans serif font family will be the default for the whole document.
% \item The MicroPress~HV-Math fonts will be used for typesetting math, too.
% \item A new mathematical alphabet +\mathbold+ provides bold slanted
% letters, including Greek.
% \item The HV-Math versions of the AMS fonts are used, when the
% packages \textsf{amsfonts} or \textsf{amssymb} are loaded
% additionally.
% \end{itemize}
% Using the \textsf{hvmaths} package requires also the package
% \textsf{keyval}, which is part of the \textsc{Graphics} bundle
% and should be part of any decent \LaTeX\ system.
%
%
% \subsection{Font encoding}
% The package does \emph{not} change the default output font
% encoding from OT1.  It is, however, recommended to make use of
% HV-Math through the extended T1 and TS1 encodings,
% so as to provide access to all glyphs.
% This is enabled by the following additional commands:
% \begin{verse}
% +\usepackage[T1]{fontenc}+\\
% +\usepackage{textcomp}+
% \end{verse}
%
%
% \subsection{Inter-line spacing}
% Due to the relatively large x-height of Helvetica, the leading
% of the standard \LaTeX{} document classes may be to small.
% Since this is a question of document design and line width,
% the package does \emph{not} care for this.  (See, however, the
% description of the \textsf{scaled} option below!)
%
%
% \subsection{Package options}
% \subsubsection{The option \textsf{slantedGreek}}
% When the macro package is loaded using this option,
% uppercase Greek letters will, by default, be slanted.
% Regardless of the option, the new commands
% +\upDelta+ and +\upOmega+ will \emph{always} provide an
% upright \( \Delta \) and \( \Omega \).
%
% \subsubsection{The option \textsf{roman}}
% This option will cause HV-Math to be mapped
% to the default `roman' font family instead of
% the `sans serif' one.  This is provided for compatibility with the
% package \textsf{hvmath} only and should normally not be used.
%
% \subsubsection{The option \textsf{sans}}
% Loading the package with this option will only change
% the sans serif text font family to Helvetica.
% The default font family and the math fonts are untouched.
% Thus, the \textsf{hvmaths} package will behave like the PSNFSS
% package \textsf{helvet}.
%
% Using both \textsf{sans} and \textsf{roman} does not
% make sense, of course, and the \textsf{sans} option is ignored then.
%
%
% \subsubsection{The option \textsf{scaled}}
% The cap height of Helvetica is noticeably larger than the cap height
% of most other fonts (incl.\ CM) when used at the same nominal size.
% As a result, it may become difficult to mix fonts or add further
% math alphabets.
%  This can be fixed by loading the \textsf{hvmaths}
% package with the option
%\texttt{[scaled=}$\langle\textit{scale}\rangle$\texttt{]},
% e.g.:
% \begin{quote}
%   +\usepackage[scaled=.92]{hvmaths}+
% \end{quote}
% This will load the font family \texttt{hvr} (Helvetica) for sans-serif,
% scaled down to 92\% of its `natural' size, which is suitable
% for use with Adobe Times.
% 
% The $\langle$\textit{scale}$\rangle$ can be omitted:
% \begin{quote}
%   +\usepackage[scaled]{hvmaths}+
% \end{quote}
% A default scaling of 0.95 will be assumed then, which makes the
% height of the Helvetica capitals comply with most other typeface
% families.
%
% As a side effect,
% the default line spacing of the standard \LaTeX{} document classes
% may be sufficient for the now scaled-down Helvetica,
% especially when the line width is not too large.
%
%
% \section{Availability and support}
% The latest version of this package can be obtained from the directory
% \begin{verse}
% \path{macros/latex/contrib/supported/psnfssx/hvmath}
% \end{verse}
% of any CTAN host.
%
% \noindent The HV-Math fonts are provided by
% \begin{verse}
% MicroPress, Inc.\\
% 6830~Harrow~Street,
% Forest Hills NY 11375, 
% USA\\
% \path{<http://www.micropress-inc.com>}
% \end{verse}
% Please, address questions or bug reports via email to
% \begin{verse}
% \path{<support@micropress-inc.com>}.
% \end{verse}
%
% \StopEventually{\par\vfill\noindent{\sffamily\footnotesize
% Adobe is a trademark of Adobe Systems Incorporated.
% Helvetica is a trademark of Linotype-Hell AG.
% HV-Math is a trademark of MicroPress, Inc.
% \par }}
%
%
% \section{The package}
%
% \subsection{Declaring and processing options}
% Options processing uses the \textsf{keyval} package
% and a hack borrowed from \textsf{hyperref}:
%    \begin{macrocode}
%<*package>
\RequirePackage{keyval}
\newif\ifHv@slantedGreek
\newif\ifHv@roman
\newif\ifHv@sans
\define@key{Hvm}{scaled}[.95]{%
  \expandafter\def\csname OM1@hvr@scale\endcsname{#1}
  \expandafter\def\csname OT1@hvr@scale\endcsname{#1}
  \expandafter\def\csname T1@hvr@scale\endcsname{#1}
}
\define@key{Hvm}{slantedGreek}[true]{%
   \csname Hv@slantedGreek#1\endcsname
}
\define@key{Hvm}{roman}[true]{%
   \csname Hv@roman#1\endcsname
}  
\define@key{Hvm}{sans}[true]{%
   \csname Hv@sans#1\endcsname
}
\def\ProcessOptionsWithKV#1{%
  \let\@tempc\relax
  \let\Hv@tempa\@empty
  \@for\CurrentOption:=\@classoptionslist\do{%
    \@ifundefined{KV@#1@\CurrentOption}%
    {}%
    {\edef\Hv@tempa{\Hv@tempa,\CurrentOption,}}%
  }%
  \edef\Hv@tempa{%
    \noexpand\setkeys{#1}{%
      \Hv@tempa\@ptionlist{\@currname.\@currext}%
    }%
  }%
  \Hv@tempa
}
\ProcessOptionsWithKV{Hvm}
\AtEndOfPackage{%
  \let\@unprocessedoptions\relax
}
%    \end{macrocode}
% The HV-Math \texttt{.fd} files will evaluate
% +\T1@hvr@scale+, +\OT1@hvr@scale+ and +\OM1@hvr@scale+,
% thus determining whether or not the fonts are to be scaled.
%
%
% \subsection{Setting up the text fonts}
%    \begin{macrocode}
\ifHv@roman
  \Hv@sansfalse
  \DeclareFontSubstitution{OT1}{hvr}{m}{n}
  \renewcommand{\rmdefault}{hvr}
\else
  \renewcommand{\sfdefault}{hvr}
  \ifHv@sans\else
    \renewcommand{\familydefault}{\sfdefault}
  \fi
\fi
%    \end{macrocode}
%
%
% \subsection{Setting up the math fonts}
% The remaining code is not to be executed when the \textsf{sans}
% option has been specified:
%    \begin{macrocode}
\ifHv@sans\endinput\fi
%    \end{macrocode}
%    \begin{macrocode}
\DeclareSymbolFont{operators}{OT1}{hvr}{m}{n}%
\DeclareSymbolFont{letters}{OML}{hvm}{m}{it}%
\DeclareSymbolFont{symbols}{OMS}{hvsy}{m}{n}%
\DeclareSymbolFont{largesymbols}{OMX}{hvex}{m}{n}%
\SetSymbolFont{operators}{bold}{OT1}{hvr}{bx}{n}%
\SetSymbolFont{letters}{bold}{OML}{hvm}{b}{it}%
\SetSymbolFont{symbols}{bold}{OMS}{hvsy}{b}{n}%
\DeclareMathAlphabet{\mathbf}{OT1}{hvr}{bx}{n}%
\DeclareMathAlphabet{\mathit}{OT1}{hvr}{m}{it}%
\SetMathAlphabet\mathit{bold}{OT1}{hvr}{bx}{it}%
%    \end{macrocode}
%
% Define +\hslash+:
%    \begin{macrocode}
\DeclareMathSymbol{\hbar}{\mathord}{letters}{128}
%    \end{macrocode}
%
% Define +\mathbold+:
%    \begin{macrocode}
\DeclareMathAlphabet{\mathbold}{OML}{hvm}{b}{it}%
%    \end{macrocode}
%
% Make +\mathbold+ act on lowercase Greek, too:
%    \begin{macrocode}
\DeclareMathSymbol{\alpha}{\mathalpha}{letters}{11}
\DeclareMathSymbol{\beta}{\mathalpha}{letters}{12}
\DeclareMathSymbol{\gamma}{\mathalpha}{letters}{13}
\DeclareMathSymbol{\delta}{\mathalpha}{letters}{14}
\DeclareMathSymbol{\epsilon}{\mathalpha}{letters}{15}
\DeclareMathSymbol{\zeta}{\mathalpha}{letters}{16}
\DeclareMathSymbol{\eta}{\mathalpha}{letters}{17}
\DeclareMathSymbol{\theta}{\mathalpha}{letters}{18}
\DeclareMathSymbol{\iota}{\mathalpha}{letters}{19}
\DeclareMathSymbol{\kappa}{\mathalpha}{letters}{20}
\DeclareMathSymbol{\lambda}{\mathalpha}{letters}{21}
\DeclareMathSymbol{\mu}{\mathalpha}{letters}{22}
\DeclareMathSymbol{\nu}{\mathalpha}{letters}{23}
\DeclareMathSymbol{\xi}{\mathalpha}{letters}{24}
\DeclareMathSymbol{\pi}{\mathalpha}{letters}{25}
\DeclareMathSymbol{\rho}{\mathalpha}{letters}{26}
\DeclareMathSymbol{\sigma}{\mathalpha}{letters}{27}
\DeclareMathSymbol{\tau}{\mathalpha}{letters}{28}
\DeclareMathSymbol{\upsilon}{\mathalpha}{letters}{29}
\DeclareMathSymbol{\phi}{\mathalpha}{letters}{30}
\DeclareMathSymbol{\chi}{\mathalpha}{letters}{31}
\DeclareMathSymbol{\psi}{\mathalpha}{letters}{32}
\DeclareMathSymbol{\omega}{\mathalpha}{letters}{33}
\DeclareMathSymbol{\varepsilon}{\mathalpha}{letters}{34}
\DeclareMathSymbol{\vartheta}{\mathalpha}{letters}{35}
\DeclareMathSymbol{\varpi}{\mathalpha}{letters}{36}
\DeclareMathSymbol{\varphi}{\mathalpha}{letters}{39}
\DeclareMathSymbol{\varrho}{\mathalpha}{letters}{37}
\DeclareMathSymbol{\varsigma}{\mathalpha}{letters}{38}
%    \end{macrocode}
%
% The option \textsf{slantedGreek}:
%    \begin{macrocode}
\let\upOmega\Omega
\let\upDelta\Delta
\ifHv@slantedGreek
  \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{0}
  \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{1}
  \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{2}
  \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{3}
  \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{4}
  \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{5}
  \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{6}
  \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{7}
  \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{8}
  \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{9}
  \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{10}
\fi
%    \end{macrocode}
%
%
% \subsection{Peaceful coexistence with AMS-\LaTeX}
%    \begin{macrocode}
\AtBeginDocument{%
%    \end{macrocode}
%
% Fix multiple integrals from \textsf{amsmath} for use with HV-Math fonts:
%    \begin{macrocode}
  \@ifpackageloaded{amsmath}{%
    \def\intkern@{\mkern-6mu}
  }{}
%    \end{macrocode}
%
% Use the HV-Math versions of the AMS symbol fonts:
%    \begin{macrocode}
  \expandafter\ifx\csname OM1@hvr@scale\endcsname\relax
   \let\@l@scale\@empty
  \else
   \edef\@l@scale{s*[\csname OM1@hvr@scale\endcsname]}%
  \fi
  \DeclareFontFamily{U}{msa}{}
  \DeclareFontShape{U}{msa}{m}{n}{<->\@l@scale hvam10}{}
  \DeclareFontFamily{U}{msb}{}
  \DeclareFontShape{U}{msb}{m}{n}{<->\@l@scale hvbm10}{}
%    \end{macrocode}
%    \begin{macrocode}
}
%    \end{macrocode}
%
%
% \subsection{Initialization}
% Finally, change the current font to `Helvetica':
%    \begin{macrocode}
\normalfont
%</package>
%    \end{macrocode}
%
%
% \section*{DocStrip modules in this file \texttt{hvmaths.dtx}}
% \begin{quote}
% \begin{tabular}{ll}
% module: & contents:\\[0.5ex]
% +package+ & package \textsf{hvmaths}\\
% +driver+ &  driver for documentation \\
% \end{tabular}
% \end{quote}
% The next line of code prevents DocStrip from adding the
% character table to the modules:
%    \begin{macrocode}
%\endinput
%    \end{macrocode}
% \Finale
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%

