summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/kluwer/kluopen.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/kluwer/kluopen.sty')
-rw-r--r--Master/texmf-dist/tex/latex/kluwer/kluopen.sty595
1 files changed, 595 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/kluwer/kluopen.sty b/Master/texmf-dist/tex/latex/kluwer/kluopen.sty
new file mode 100644
index 00000000000..9bef1a0b6a0
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/kluwer/kluopen.sty
@@ -0,0 +1,595 @@
+%
+%<*other>
+%
+\ifcat a\noexpand @\let\next\relax\else \def\next{%
+\documentclass{kluwer}\usepackage{doc}\MakePercentIgnore}\fi\next
+\NeedsTeXFormat{LaTeX2e}
+% \def\changes#1#2{}
+% \changes{1997/07/10}{bugfix in title@thanks: move thanks into ititle@.}
+% \changes{1997/07/10}{bugfix in opening: inserted hsize == textwidth. This
+% to enforce double width in abstract (twocolumn layouts)}
+% \changes{1997/07/10}{changes in ititle@ to correct spacing of thanks. This
+% removed the need for title@@ and title@thanks: both removed}
+% \changes{1997/07/10}{speccright etc. removed (never used)}
+% \changes{1997/07/10}{crude vertical spacing fix for @arttype if copyrighthead}
+% \changes{1998/01/06}{fix thispagestyle (crt. endup on 2nd page if abstract too long)}
+% \changes{1998/02/04}{added new hooks: "beforeartskip", "titlebaselinefactor"}
+% \changes{1998/02/04}{made "classification", "keywords", "abbreviations" and "nomenclature" long}
+% \changes{1998/02/06}{force "email" lowercase}
+% \changes{1998/02/06}{removed () around defaulted dates}
+% \changes{1999/05/18}{removed inappropriate whitespace in "@authors and institutes"}
+% \changes{1999/11/29}{new opening command nodagger for footnote symbols}
+\def\filedate{2000/04/29}
+\def\filename{kluopen.sty}
+%\DoNotIndex{\@M,\def,\c@secnumdepth,\baselineskip,\@pnumwidth,\else,\fi}
+%\DoNotIndex{\newcommand,\z@,\relax,\renewcommand,\ifnum,\csname,\endcsname}
+%\DoNotIndex{\baselineskip,\vskip,\hskip,\relax,\secdef,\refstepcounter}
+%\DoNotIndex{\normalsize,\numberline,\protect,\endinput,\hfill}
+%\DoNotIndex{\@compare,\ifx,\global,\gdef,\def,\let,\hbox,\par,\typeout}
+%\CodelineIndex
+%\newcommand{\Bs}{$\backslash$}
+%\parindent=0pt
+%\parskip=3pt
+%\hfuzz=11pt
+%\MakeShortVerb{\|}
+%\setlength{\marginparwidth}{0in}
+%\addtolength{\textwidth}{4pc}
+%\begin{document}
+%\begin{opening}
+%\title{\filename}
+%\date{\filedate}
+%\author{Kluwer Academic Publishers\surname{}}
+%\institute{~}
+%\runningtitle{\filename\ -- \filedate}
+%\runningauthor{Kluwer Academic Publishers}
+%\editor{Test}
+%\journalcode{test}
+%\begin{abstract}
+% This internal stylefile defines most of the special kluwer
+% opening commands.
+%\end{abstract}
+%\end{opening}
+%\tableofcontents
+%\newpage\section{Implementation}
+% \begin{macrocode}
+\ProvidesPackage{kluopen}[\filedate ]
+% \end{macrocode}
+% \subsection{The opening environment}
+% The beginning of this environment is rather empty, there is not much
+% need to do anything here. All definitions inside the `opening' have
+% to be indirect |\def|s anyway, so we will start worrying about
+% typesetting things at the end of the environment.
+%
+% \begin{macrocode}
+%</other>
+%<*main>
+\gdef\title#1{\title@{#1}}
+\gdef\author#1{\author@{#1}}
+\gdef\date#1{\date@{#1}}
+\gdef\nodagger@{%
+ \def\@fnsymbol##1{\ensuremath{\ifcase##1\or *\or \ddagger\or
+ \mathsection\or \mathparagraph\or \|\or **
+ \or \ddagger\ddagger \else\@ctrerr\fi}}}
+\def\opening{%
+ \let\title=\title@
+ \let\author=\author@
+ \let\date=\date@
+ \let\arttype=\arttype@
+ \let\subtitle=\subtitle@
+ \let\dedication=\dedication@
+ \let\translation=\translation@
+ \let\received=\received@
+ \let\orf=\orf@
+ \let\accepted=\accepted@
+ \let\revised=\revised@
+ \let\institute=\institute@
+ \hsize\textwidth
+ \let\nodagger\nodagger@
+ }
+% \end{macrocode}
+% Since |\listfiles| is a definite `preambleonly' command, we can test
+% for that. IF |\listfiles| = |\@notprerr| typeset opening, ELSE
+% typeset opening at begin document.
+%
+% If new commands are added to this list, don't forget to add them
+% above too. Also, please gobble all arguments carefully. Als note
+% that these redefinitions only take place if there is an |opening|
+% environment.
+%
+% The new syntax for |opening| is to use it {\it after\/}
+% |\begin{document}| and/or |\begin{article}|, but we still honour the
+% old syntax. Also, because I wanted to support |\maketitle| the
+% ordinary way, |\maketitle| is |\let| to |\endopening|.
+% \begin{macrocode}
+\gdef\maketitle{\endopening}
+\def\endopening{%
+ \ifx\listfiles\@notprerr \maketitle@@ \else
+ \AtBeginDocument{\maketitle@@}\fi
+ \gdef\title##1{\opening@only\title}
+ \gdef\subtitle##1{\opening@only\subtitle}
+ \gdef\orf##1{\opening@only\orf}
+ \gdef\dedication##1{\opening@only\dedication}
+ \gdef\translation##1{\opening@only\translation}
+ \gdef\received##1{\opening@only\received}
+ \gdef\revised##1{\opening@only\revised}
+ \gdef\author##1{\opening@only\author}
+ \gdef\institute##1{\opening@only\institute}
+ \gdef\date##1{\opening@only\date}%
+ \gdef\arttype##1{\opening@only\arttype}
+ \gdef\nodagger{\opening@only\nodagger}
+ }
+% \end{macrocode}
+% Let `opening only' == warning.
+% \begin{macrocode}
+\def\opening@only#1{\PackageWarning{kluopen}{\string#1\space
+ effective only inside opening environment.}}
+% \end{macrocode}
+% \subsection{Internal Author and institute commands}
+% author and institute commands are seriously intertwined. Too bad
+% about the relocation that used to happen in |humnkap|, because has
+% been sacrificed again. It turned out be more of a fuzz than it was
+% worth.
+%
+% The general idea is to keep four different command lists that stack
+% the authors and institutes.
+%
+% Let's do the easy thing first. These are the `user' changeable
+% parameters for authors and institutes.
+% \begin{macrocode}
+\def\authorsize{\normalsize \raggedright}
+\def\authorcase#1{#1}
+\def\authorindent{0pt}
+\def\afterallauthorsskip{1em\relax}
+\def\afterauthorskip{0pt}
+\def\institutesize{\footnotesize\it}
+\def\institutecase#1{#1}
+\def\instituteindent{0pt}
+\def\institutesep{.4\baselineskip}
+\def\authorand{and}
+% \end{macrocode}
+% This is a hook for klups.sty (oldstyle numerals)
+% \begin{macrocode}
+\def\i@oldseries{}
+% \end{macrocode}
+%
+% We only need |\@temptokenb|, because |\@temptokena| is a \LaTeX\
+% scratch register.
+% \begin{macrocode}
+\newtoks\@temptokenb
+% \end{macrocode}
+% The list will, for example, look like this:
+%\begin{verbatim}
+%\@authors == {\@k@p {A. \surname{Thor}}\@k@p {B. \surname{Thor}}}
+%\end{verbatim}
+% \begin{macrocode}
+\long\def\append@item#1\to#2{%
+ \@temptokena={\@k@p{#1}}%
+ \@temptokenb=\expandafter{#2}%
+ \xdef#2{\the\@temptokenb\the\@temptokena}}
+% \end{macrocode}
+% Extraction macros. Typical usage:
+%
+%\begin{verbatim}
+%\get@left\@instituteauthors\to\@curauths
+%\end{verbatim}
+%
+% This will expand into:
+%
+%\begin{verbatim}
+%\g@l\@k@p \ITEM1\@k@p \ITEM2 ...\g@l \@instituteauthors \@curauths
+%\end{verbatim}
+%
+% And from there into
+%
+%\begin{verbatim}
+%\def\@curauths \ITEM1 \def\@institeauthors{\ITEM2 ...}
+%\end{verbatim}
+%
+% Gee, this looks so easy if you write it out :-).
+% \begin{macrocode}
+\def\get@left#1\to#2{\expandafter\g@l#1\g@l#1#2}
+\long\def\g@l\@k@p#1#2\g@l#3#4{\def#4{#1}\def#3{#2}}
+% \end{macrocode}
+% This will contain the authors for the current institute.
+% \begin{macrocode}
+\def\@authors{}%
+% \end{macrocode}
+% This will contain all authors.
+% \begin{macrocode}
+\def\@allauthors{}%
+% \end{macrocode}
+% This will contain all institutes.
+% \begin{macrocode}
+\def\@institutes{}%
+% \end{macrocode}
+% This will contain items containing all of the authors that are
+% tied up to one institute.
+% \begin{macrocode}
+\def\@instituteauthors{}%
+% \end{macrocode}
+% These two are temporaries that need to be initialized.
+% \begin{macrocode}
+\def\@curauths{}
+\def\@curinst{}
+% \end{macrocode}
+% These are the insertion macros. |\author@| is the internal version
+% of |\author|, and just adds to the two author lists.
+%
+% |\institute@| is a bit trickier, it has to store the institute
+% itself for later retrieval, but it also has to clear |\@authors|, so
+% it can be used again for the next institute. It does this by moving
+% all of the collected authors in the |\@authors| list as one item
+% into the |\authors@institute| list.
+%
+% Because |\@institutes| and |\@instituteauthors| are parallel, there
+% will be an error condition if there are authors after the last
+% institute. The |\expandafter|'s are needed to get |\@authors| folded
+% out.
+% \begin{macrocode}
+\def\author@#1{\append@item#1\to\@authors
+ \append@item#1\to\@allauthors }
+\def\institute@#1{\append@item#1\to\@institutes
+ \expandafter\append@item\expandafter{\@authors}\to\@instituteauthors
+ \gdef\@authors{}}
+% \end{macrocode}
+% Format one name.
+%
+% The box in the first part is needed because we have to typeset once
+% in order to get the |\thanks|.
+%
+% The |\expandafter|'s in the second part bypass grouping. Param \#2
+% is either a comma or nothing. The italic correction is needed if
+% authors are typeset in Italics, or the thankssymbol will come out to
+% far to the left.
+%
+% \changes{1997/08/13}{Removed null box for thankssymbol and switched
+% places with comma (hor. spacing bugs)}
+% \begin{macrocode}
+\newif\ifthanks
+\def\orf@#1{#1}
+\def\@formatname#1#2{\begingroup
+ \def\thanks##1{\global\thankstrue}\setbox0\vbox{#1}%
+ \endgroup
+ \begingroup
+ \ifthanks
+ \edef\fn##1\thanks##2{\authorcase{##1}\/%
+ \noexpand\thanks{##2}#2}\expandafter\fn#1
+ \else
+ \edef\fn##1{{\authorcase{##1}}#2}%
+ \expandafter\fn\expandafter{#1}%
+ \fi
+ \endgroup\global\thanksfalse }
+% \end{macrocode}
+%
+% Format authors presently in |\@curauths| (These are the ones belonging
+% to one specific institute).
+%
+% First, loop over |\@curauths| counting the number of authors. Then
+% we know how many, so loop over again, typesetting all. The |,| needs
+% to be given separately to make sure |\thanks| works inside an
+% author.
+%
+% It there are 0 authors, nothing will happen at all.
+% \begin{macrocode}
+\newcount\cnt@authors
+\def\@formatauthors{\begingroup
+ \authorsize
+ \leavevmode
+ \gdef\surname##1{##1}%
+ \gdef\email##1{ \hbox{({\tt \lowercase{##1}})}}%
+ \cnt@authors=0
+ \def\@k@p##1{\advance\cnt@authors by 1}\@curauths
+ \def\@k@p##1{\advance\cnt@authors by -1
+ \ifnum\cnt@authors>1
+ \@formatname{##1}{,}\penalty0\ \fi % signif. space
+ \ifnum\cnt@authors=1 % before \fi's !!
+ \@formatname{##1}{} \authorand \penalty0\ \fi
+ \ifnum\cnt@authors<1
+ \@formatname{##1}{}\par\fi}\@curauths
+ \vskip \afterauthorskip
+ \endgroup}
+% \end{macrocode}
+% Format one institute.
+% \begin{macrocode}
+\def\@formatinstitute{{\institutesize \institutecase{\@curinst}\par}}
+% \end{macrocode}
+% Format all authors and all institutes. Indentation is done through
+% parindent and hangindent instead of rightskip, because otherwise a
+% |\centering| would fail.
+%
+% There is a space of |\institutesep| + |\parskip| between every
+% author\,/\,institute block, and double that space between the last
+% two (don't understand that).
+%
+% This macro also takes care of the case that there is no institute at
+% all given, which is likely to happen in the \LaTeX\ compatibility
+% mode. {\it This does not allow you to have only the last author without
+% an institute\/}.
+%
+% The |\relax| after |\@institutes| is absolutely necessary, or the
+% author will be set twice!
+% \begin{macrocode}
+\newcount\cnt@institutes
+\def\@authorsandinstitutes{\begingroup
+ \authorsize
+ \cnt@authors=0
+ \def\@k@p##1{\advance\cnt@authors by 1}\@allauthors
+ \cnt@institutes=0
+ \def\@k@p##1{\advance\cnt@institutes by 1}\@institutes\relax
+ \ifnum\cnt@institutes=0
+ \let\@curauths\@allauthors
+ \parindent=\authorindent
+ \hangindent=\authorindent
+ \@formatauthors
+ \fi
+ \loop\ifnum\cnt@institutes>0
+ \get@left\@instituteauthors\to\@curauths
+ \parindent=\authorindent
+ \hangindent=\authorindent
+ \@formatauthors
+ \get@left\@institutes\to\@curinst
+ \parindent=\instituteindent
+ \hangindent=\instituteindent
+ \@formatinstitute
+% \ifnum\cnt@institutes=2 \vskip \institutesep\relax \fi % commented out by SK
+ \ifnum\cnt@institutes>1 \vskip \institutesep\relax \fi
+ \advance\cnt@institutes by -1
+ \repeat
+ \vskip \afterallauthorsskip
+ \gdef\@authors{}%
+ \gdef\@allauthors{}%
+ \gdef\@institutes{}%
+ \gdef\@instituteauthors{}%
+ \gdef\@curauths{}%
+ \gdef\@curinst{}%
+\endgroup}
+% \end{macrocode}
+% \subsection{Typesetting the title and subtitle}
+% First, here are the user settings again:
+% \begin{macrocode}
+\def\titleflushstyle{}
+\def\titlefont{\Large\rm}
+\def\titlecase#1{#1}
+\def\titleindent{0pt}
+\def\aftertitleskip{1.8pc }
+\def\presubtitleskip{-1.4pc }
+\def\aftersubtitleskip{1pc }
+\def\subtitlefont{\large\it}
+\def\subtitleflushstyle{}
+% \end{macrocode}
+% Internal commands. |\@maketitle| will call |\@title|. |\title@| is
+% just an internal for |\title|.
+% \begin{macrocode}
+\def\title@#1{\gdef\@title{%
+ \@formattitle{#1}\par \vskip \aftertitleskip }}
+\def\@title{}
+% \end{macrocode}
+% The trick with the vbox is the same as above, to get |\thanks|.
+% \begin{macrocode}
+\def\@formattitle#1{\begingroup
+ \def\thanks##1{\global\thankstrue}%
+ \setbox\@tempboxa\vbox{#1}\endgroup
+ \begingroup
+ \titleflushstyle
+ \ifthanks
+ \def\fn##1\thanks##2{\ititle@{##1}{\,\thanks{##2}}}%
+ \expandafter\fn#1
+ \else
+ \def\fn##1{\ititle@{##1}{}}\expandafter\fn\expandafter{#1}%
+ \fi
+ \endgroup\global\thanksfalse }
+% \end{macrocode}
+% Not much left to do here. The flush style has been set by
+% |\@formattitle|, skips before and after by |\@title|.
+% \begin{macrocode}
+\def\titlebaselinefactor{1.05}
+\def\ititle@#1#2{\begingroup
+ \parindent \titleindent
+ \hangindent \titleindent
+ \hyphenpenalty10000
+ {\titlefont\titlecase{#1}#2%
+ \baselineskip=\titlebaselinefactor\baselineskip
+ \par}
+ \endgroup}
+% \end{macrocode}
+% Basically, this is just an echo of title.
+% \begin{macrocode}
+\def\@subtitle{}
+\def\subtitle@#1{\gdef\@subtitle{\vskip \presubtitleskip
+ \@formatsubtitle{#1}\par \vskip \aftersubtitleskip }}
+\def\@formatsubtitle#1{\begingroup
+ \def\thanks##1{\global\thankstrue}\setbox0\vbox{#1}\endgroup
+ \begingroup \subtitleflushstyle
+ \ifthanks
+ \def\fn##1\thanks##2{\subtitle@thanks{##1}{##2}}\expandafter\fn#1
+ \else
+ \def\fn##1{\subtitle@@{##1}}\expandafter\fn\expandafter{#1}\fi
+ \endgroup
+ \par\global\thanksfalse}
+\def\subtitle@thanks#1#2{\isubtitle@{#1}\thanks{#2}\par
+ \ignorespaces}
+\def\subtitle@@#1{\isubtitle@{#1}\par\ignorespaces}
+\def\isubtitle@#1{{\subtitlefont #1}}
+% \end{macrocode}
+% \subsection{Date, article type, dedication and translation.}
+% These are all fairly straightforward, so I will not pay too much
+% attention to these commands.
+% \begin{macrocode}
+\def\afterdateskip{.7\baselineskip}
+\def\datesize{\footnotesize}
+\def\@date{{\i@oldseries\datesize Received: \@received ;
+ Accepted\@accepted}\vskip \afterdateskip
+ \gdef\@received{\ldots\ldots}%
+ \gdef\@accepted{\ldots\ldots}}
+\def\date@#1{\gdef\@date{{\i@oldseries\datesize #1\par}\vskip \afterdateskip
+ \gdef\@received{\ldots\ldots}%
+ \gdef\@accepted{\ldots\ldots}}}
+\def\@received{\ldots\ldots}
+\def\@accepted{: \ldots\ldots}
+\def\revised@#1{\gdef\@accepted{ in revised form: #1}}
+\def\received@#1{\gdef\@received{#1}}
+\def\accepted@#1{\gdef\@accepted{ in final form: #1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\artsize{\normalsize\it}
+\def\afterartskip{1.5pc}
+\def\beforeartskip{0pc}
+\def\@arttype{}
+\def\arttype@#1{\gdef\@arttype{\vskip\beforeartskip\noindent
+ {\artsize #1\vskip\afterartskip}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@dedication{}
+\def\dedicationsize{\normalsize\it\raggedright}
+\def\prededicationskip{18pt}
+\def\afterdedicationskip{18pt}
+\def\dedication@#1{\gdef\@dedication{%
+ \unskip\vskip \prededicationskip
+ {\dedicationsize #1\par}%
+ \vskip \afterdedicationskip}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@translation{}
+\def\translationsize{\normalsize\it\raggedright}
+\def\pretranslationskip{18pt}
+\def\aftertranslationskip{18pt}
+\def\translation@#1{\gdef\@translation{%
+ \unskip\vskip \pretranslationskip
+ {\translationsize #1\par}%
+ \vskip \aftertranslationskip}}
+% \end{macrocode}
+% \subsection{Abstract, keywords, abbreviations, classification
+% and nomenclature}
+% All of these are suppposed to have the same size. The only one with
+% a flexible before/after skip is |abstract|, but they all have their
+% own font defined for the name.
+% \begin{macrocode}
+\providecommand{\abstractname}{Abstract}
+\providecommand{\keywordsname}{Keywords}
+\providecommand{\abbreviationsname}{Abbreviations}
+\providecommand{\nomenclaturename}{Nomenclature}
+\def\abstractsize{\footnotesize}
+\def\abstractnamefont{\bf}
+\def\abstractdot{.~}
+\def\keynamefont{\bf}
+\def\nomennamefont{\bf}
+\def\abbrevnamefont{\bf}
+\def\classnamefont{\bf}
+\def\afterabstractskip{.7\baselineskip\relax}
+\def\preabstractskip{0pt\relax}
+% \end{macrocode}
+% Abstract is a box, because we still want to support the opening
+% environment before |\begin{document}|.
+%
+%{\it Note that the stylefile is resposible for making sure that these
+%are typeset at all}.
+% \begin{macrocode}
+\newbox\@abstractbox
+\def\@abstract{}
+\newenvironment{abstract}{%
+ \gdef\@abstract{\message{\abstractname}%
+ {\vskip\preabstractskip
+ \noindent
+ \unvbox\@abstractbox
+ \vskip\afterabstractskip }}%
+ \global\setbox\@abstractbox\vbox\bgroup \abstractsize \noindent
+ {\abstractnamefont\abstractname\abstractdot}}{\par\egroup }
+\def\@keywords{}
+\long\def\keywords#1{%
+ \gdef\@keywords{\message{\keywordsname}%
+ {\abstractsize\noindent{\keynamefont
+ \keywordsname:~}#1\par \vskip.7\baselineskip}}}
+\def\@abbreviations{}
+\def\abbrev#1#2{#1 -- #2}
+\long\def\abbreviations#1{%
+ \gdef\@abbreviations{\message{\abbreviationsname}%
+ {\abstractsize\noindent{\abbrevnamefont \abbreviationsname:~}%
+ #1\par \vskip.7\baselineskip}}}
+\def\@nomenclature{}
+\def\nomen#1#2{#1 -- #2}
+\long\def\nomenclature#1{%
+ \gdef\@nomenclature{\message{\nomenclaturename}%
+ {\abstractsize\noindent{\nomennamefont
+ \nomenclaturename:\par}\noindent #1\par \vskip.7\baselineskip}}}
+\def\@classification{}
+\long\def\classification#1#2{%
+ \gdef\@classification{\message{Classification}%
+ {\abstractsize\noindent{\classnamefont #1: }%
+ #2\par \vskip.7\baselineskip}}}
+\def\motto{\@ifnextchar[{\prosemotto}{\poemmotto}}
+\newbox\mottobox
+\def\@motto{}
+\long\def\poemmotto{\global\setbox\mottobox\vbox \bgroup
+ \noindent
+ \hbox to\hsize\bgroup\begingroup
+ \hfill\vbox\bgroup\hsize =15pc
+ \footnotesize \raggedright \noindent
+ \parskip=3pt}
+\long\def\prosemotto[#1]{\global\setbox\mottobox\vbox \bgroup
+ \noindent
+ \hbox to\hsize\bgroup \begingroup
+ \hfill\vbox\bgroup\hsize =15pc
+ \raggedright \footnotesize \noindent
+ \parskip=3pt}
+\def\endmotto{\par \egroup \endgroup \egroup
+ \vspace{1\baselineskip}\egroup
+ \gdef\@motto{\par\message{Motto}\box\mottobox \gdef\@motto{}}}
+% \end{macrocode}
+% \subsection{@maketitle}
+% Internal commands for typesetting of the front part. |\@maketitle|
+% has been kept as simple as possible, making it easy to redefine the
+% order inside a stylefile. For twocolumn output, everything that is
+% done inside |\@maketitle| is typeset over two columns.
+%
+% As noted above, if the stylefile feels like removing some of these
+% commands, it also has to find a way to have them typeset, because
+% that will no longer be automatic.
+% \begin{macrocode}
+\def\@maketitle{%
+ \@arttype \@title \@subtitle \@authorsandinstitutes \@date
+ \@abstract \@keywords \@abbreviations \@classification
+ \@nomenclature \@translation \@dedication \@motto}
+% \end{macrocode}
+% This command is called by |\endopening| and |\maketitle|.
+% \begin{macrocode}
+\def\openingflushstyle{}
+\def\maketitle@@{%
+ \begingroup
+ \setcounter{footnote}{0}%
+ \def\thefootnote{\fnsymbol{footnote}}%
+ \if@twocolumn
+ \twocolumn[{\openingflushstyle
+ \parindent 0pt
+ \@maketitle}]
+ \thispagestyle{opening}%
+ \@extramaketitle
+ \else
+ \newpage\global\@topnum\z@
+ \thispagestyle{opening}%
+ {\openingflushstyle \parindent 0pt \@maketitle}%
+ \fi
+ \markboth{\@runningauthor}{\@runningtitle}%
+ \@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \let\@maketitle\relax
+ \gdef\@thanks{}%
+ \gdef\@title{}%
+ \let\thanks\relax }
+% \end{macrocode}
+% \begin{macrocode}
+\def\runningtitle#1{\gdef\@runningtitle{#1}}
+\gdef\@runningtitle{}
+\def\runningauthor#1{\gdef\@runningauthor{#1}}
+\gdef\@runningauthor{}
+%</main>
+%<*other>
+\endinput
+% \end{macrocode}
+%\PrintIndex
+%\end{document}
+% end of kluopen.sty
+%</other>