%\iffalse 
% file:    rectopma.dtx
% author:  Battista Benciolini
% contact: benciolinibattista at gmail dot com
% date:    2024-04-04
%\fi
%\iffalse 
%<*ins>
\begingroup
\input docstrip.tex
\keepsilent
\preamble
----------------------------------------------------------------
This file is part of the distribution of   rectopma [2024-04-04]
The author of  rectopma   is Battista Benciolini 
<benciolinibattista at gmail dot com >
----------------------------------------------------------------
This program may be used, distributed and modified under 
the conditions of the LaTeX Project Public License.
(see: http://www.latex-project.org/lppl.txt)
----------------------------------------------------------------
\endpreamble
\askforoverwritefalse
\generate{\file{rectopma.sty}{\from{rectopma.dtx}{package}}}
\generate{\file{TestTitle.tex}{\from{rectopma.dtx}{example}}}
\endgroup
%</ins>
%\fi
%\iffalse 
%<*driver>
\documentclass[a4paper,10pt]{ltxdoc}
\title{The \texttt{rectopma} package: 
\\ recicle top matter, i.e. 
\\ reuse the title and author(s)}
\author{Battista Benciolini 
\thanks{e-mail: benciolinibattista at gmail dot com}}
\begin{document}
\maketitle
\DocInput{rectopma.dtx}
\end{document}
%</driver>
%\fi
%
%\section{Introduction}
% The package |rectopma| makes it possible to reuse the main 
% content of |\title| and |\author| in different parts of a 
% document. It is also possible to force linebreaks in the title with 
% a command that has no effect 
% when the title is re-printed.
% The file |TestTitle.tex| is an example of the use 
% of the functions made available by the package.
% 
% 
%\iffalse
%<*example>
%\fi
%\section{Suggestions for the use and an example}
% 
% I first present the suggestions for the use of |rectopma.sty|
% and the example that will be available in |TestTitle.tex|
% The example must obviously start loading the class (I use article) 
% and the package rectopma
%    \begin{macrocode}
\documentclass{article}
\usepackage{rectopma}   
%    \end{macrocode}
% 
% In the preamble I define the title and the authors.
% The authors must be separated by |\and|. Title and authors 
% can have a note using |\thanks|, and the note will disappear when 
% the title and the author will be reused.  
% When a long title is present it is 
% \DescribeMacro{\intitlebreak}
% \DescribeMacro{\intitlebreakvs}
% perhaps useful to force linebreaks in some special position. 
% The new commands |\intitlebreak| and |\intitlebreakvs|
% (vs= vertical skip) are used for this purpose, and their effect 
% will disappears when the title itself is re-used in the document.
%    \begin{macrocode}
\title{Test of the package \texttt{rectopma} 
\intitlebreak and suggestions for its use 
\intitlebreakvs (I need a long title)%
\thanks{Comments are welcome !}}
\author{Battista Benciolini%
\thanks{e-mail: benciolinibattista at gmail dot com}%
\and    No Second Author\thanks{No-Where Institute}}%
%    \end{macrocode}
% 
%\par 
% The main part of the document starts as usual.
% The command \DescribeMacro{\SaveTopMatter} |\SaveTopMatter| 
% must be used  before |maketitle| to save the  title and the author(s).
% 
%    \begin{macrocode}
\begin{document}
\SaveTopMatter
\maketitle 
%    \end{macrocode}
% 
% The title and the authors can be reprinted with the commands
% \DescribeMacro{\SavedTitle} \DescribeMacro{\SavedAuthor}
%|\SavedTitle| and |\SavedAuthor|. When they are 
% reprinted the names of the various authors are simply separated 
% by commas and the content of |\thanks| is ignored.
% 
%    \begin{macrocode}
The authors are listed here after: \SavedAuthor. 
This is obtained with \verb|\SavedAuthor|. 
It is also possible to reprint the title, 
by means of  \verb|\SavedTitle|, 
and the result is: \SavedTitle. 
%    \end{macrocode} 
% 
% And this is the end of the example.
%    \begin{macrocode}
\end{document}
%    \end{macrocode}
% 
%\iffalse
%</example>
%<*package>
%\fi
%\section{Code of the package} 
% 
%    \begin{macrocode}
\ProvidesPackage{rectopma}[2024/04/04]
%    \end{macrocode}% 
%
% \begin{macro}{\declarecommand}
% I need |\declarecommand| ! 
% The definition is due to egreg in 
% a comment to question 128797 in |tex.stackexchange.com|. 
%    \begin{macrocode}
\newcommand\declarecommand[1]{\providecommand{#1}{}\renewcommand{#1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\intitlebreak}
% The command |\intitlebreak| is used to force a line break in the title. 
%    \begin{macrocode}
\newcommand{\intitlebreak}{\\}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\intitlebreakvs}
% The comman |\intitlebreakvs| (vs= vertical skip)  
% produces a line break and a vertical skip.
%    \begin{macrocode}
\newcommand{\intitlebreakvs}{\\ \vskip 4mm }
%    \end{macrocode}
% \end{macro}
% 
% \begin{macro}{\@outsidetitle}
% The commands |\intitlebreak|, |\intitlebreakvs|, 
% |\and| and |\thanks| need a redefinition for the  
% correct output of title and authors in a generic 
% position in the document.
% The redefinition is operated by the command |\@outsidetitle|.
% (I follow the old tradition of inserting a |@| in the 
% commands that are of internal use, not available to the user.)
%    \begin{macrocode}
\newcommand{\@outsidetitle}{%
\renewcommand{\intitlebreak}{\relax}%
\renewcommand{\intitlebreakvs}{\relax}%
\declarecommand{\thanks}[1]{\relax}%
\declarecommand{\and}{\unskip,\ }}%
%    \end{macrocode}
% \end{macro}
% 
% \begin{macro}{\SaveTopMatter}
% The new command  |\SaveTopMatter| saves the contents of |\@title| 
% and |\@author| in |\@SavedTitle| and |\@SavedAuthor| respectively, 
% so that they can be re-used anywhere in the document.
%    \begin{macrocode}
\newcommand{\SaveTopMatter}{%
\global\let\@SavedTitle\@title%
\global\let\@SavedAuthor\@author}
%    \end{macrocode}
% \end{macro}
% 
% \begin{macro}{\SavedTitle}
% The command  |\SavedTitle|
% actually prints the title.
%    \begin{macrocode}
\newcommand{\SavedTitle}{\@outsidetitle\@SavedTitle}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\SavedAuthor}
% The command  |\SavedAuthor|
% actually prints the authors.
%    \begin{macrocode}
\newcommand{\SavedAuthor}{\@outsidetitle\@SavedAuthor}
%    \end{macrocode}
% \end{macro}
% 
% The package is now complete.
%
%\iffalse
%</package>
%\fi
%\section{History}
%\begin{description}
%\item[2002] first release in CTAN,
%\item[2024] second release in CTAN, 
% complete re-coding of |rectopma.sty|, 
% some changes in |TestTitle.sty|,
% new documentation, 
% all stuff collected in |rectopma.dtx|.
%\end{description}
%\section{Recommendation}
% I recommend all the users of |rectopma|, and all the 
% persons that by chance encounter it, 
% to send me any comment about it. 
% \vfill\centerline{\Large ***}\vfill
% 
%\iffalse
% END OF FILE rectopma.dtx
%\fi
