%% apuntsfme.ins
%% Copyright 2019 ApuntsFME
%
% This work may be distributed and/or modified under the
% conditions 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 distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% 
% The Current Maintainer of this work is the ApuntsFME organization.
%
% This work consists of the files apuntsfme.dtx and apuntsfme.ins
% and the derived file apuntsfme.sty.
\input docstrip.tex
\keepsilent
\usedir{/tex/latex/apuntsfme}

\preamble
This is a generated file.

Copyright 2019 ApuntsFME

This work may be distributed and/or modified under the
conditions 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 distributions of LaTeX
version 2005/12/01 or later.

This work has the LPPL maintenance status `maintained'.

The Current Maintainer of this work is the ApuntsFME organization.

This work consists of the files apuntsfme.dtx and apuntsfme.ins
and the derived file apuntsfme.sty.
\endpreamble

\generate{\file{apuntsfme.sty}{\from{apuntsfme.dtx}{package}}}
\generate{\file{notes.cls}{\from{apuntsfme.dtx}{class}}}

\obeyspaces
\Msg{*****************************************************}
\Msg{*                                                   *}
\Msg{* To finish the installation you have to move the   *}
\Msg{* following files into a directory searched by TeX: *}
\Msg{*                                                   *}
\Msg{*     apuntsfme.sty                                 *}
\Msg{*     notes.cls                                     *}
\Msg{*                                                   *}
\Msg{* To produce the documentation run the file         *}
\Msg{* apuntsfme.dtx through LaTeX.                      *}
\Msg{*                                                   *}
\Msg{* Happy TeXing!                                     *}
\Msg{*                                                   *}
\Msg{*****************************************************}

\endbatchfile
