% \iffalse Meta-Kommentar % % Copyright 1997, 1998, 1998, 1999 % Thomas Leineweber % Lehrstuhl VI, Fachbereich Informatik, % Universitaet Dortmund % (leineweb@ls6.cs.uni-dortmund.de) % % This package is based on work by J. Wahlmann and R. Garmann. % I took their package and enhanced it. % % Enhancements provided by % Jean-Pierre Drucbert % % This is the documented macrocode for the generation and % documentation of the package `method'. % % This file may be distributed under the terms of the LaTeX Project Public % License, as described in lppl.txt in the base LaTeX distribution. % Either version 1.0 or, at your option, any later version. % % \fi % % \CheckSum{787} %% \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 \~} % % \title{\LaTeX-package for an easy declaration of functions and variables} % \author{Thomas Leineweber} % \maketitle % % \changes{v1.0}{????/??/??}{First version by J. Wahlmann} % \changes{v1.1}{1995/10/17}{Facelifting by R. Garmann} % \changes{v1.1}{1995/10/18}{Facelifting by R. Garmann} % \changes{v1.1}{1995/10/19}{New environment data for variables} % \changes{v1.1}{1995/10/19}{init and del for the environment data added} % \changes{v1.1}{1995/10/25}{Test for the use of the special commands % outside the environments} % \changes{v1.2}{1997/06/25}{Change documentation to a dtx-file} % \changes{v1.3}{1997/06/29}{Documentation changes} % \changes{v1.6}{1999/01/04}{Documentation changes} % \changes{v1.7}{1999/01/28}{Documentation changes} % \changes{v1.7}{1999/01/28}{First parts for internationalization} % \changes{v1.8}{1999/02/04}{Change standard to english} % \changes{v2.0}{1999/02/05}{First public version with % internationalization and localization for english and german} % \changes{v2.0b}{1999/03/25}{Change licencse to lppl} % % \section{Overview} % The package method can be used to easily format method- and % variabledeclarations with \LaTeX. % It is based on work by J. Wahlmann and Robert Garmann. % %\section{Usage} % The package is used as usual: %\begin{quote} % |\usepackage[]{method}| %\end{quote} % It defines two new environments: method and data. Method is used to % typeset method-declarations, data for variable-declarations. % At the moment the two options \textsf{english} and \textsf{german} % are defined. With these options it is possible to select the language % used to typeset the declarations. In the future some other languages % will be added. % %\section{The environment method} % \DescribeEnv{method} % Within the environment % method the following commands are defined: % %\begin{itemize} %\item \DescribeMacro{\head} % \cs{head}\texttt{\{\emph{Header}\}:} The header of the method. %\item \DescribeMacro{\para} % \cs{para}\texttt{\{\emph{Name}\}\{\emph{Description}\}:} % Name and description of a parameter. %\item \DescribeMacro{\precond} % \cs{precond}\texttt{\{\emph{Precondition}\}:} % Description of a precondition of the method. %\item \DescribeMacro{\descr} % \cs{descr}\texttt{\{\emph{Description}\}:} % Description of the method itself. %\item \DescribeMacro{\postcond} % \cs{postcond}\texttt{\{\emph{postcondition}\}:} % Description of a postcondition of the method. %\item \DescribeMacro{\error} % \cs{error}\texttt{\{\emph{Exception}\}:} Error and exceptions. %\item \DescribeMacro{\return} % \cs{return}\texttt{\{\emph{Return value}\}:} % Description of the data returned by the method. %\item \DescribeMacro{\see} % \cs{see}\texttt{\{\emph{where}\}:} Cross-References. %\end{itemize} % %These commands have the following in common: %\begin{itemize} %\item All parameters are simple texts. %\item The sequence of the commands inside the method-environment is % not relevant. The parts are typeset automatically. %\item Up to 26 \cs{para}-commands are allowed inside a method % environment. When there are more, a warning will be issued und the % following parameters will be ignored. %\item The header of the method and the parameters are typeset in a %typewriter font. %\item If the header is extremely long, it can be typeset in more %lines with the following macros (an example is given further down): %\begin{verbatim} % \headtabbed{} Name of the function % \headpara{} one or more parameter %\end{verbatim} %\end{itemize} % %\section{The environment data} \DescribeEnv{data} % The environment data equals to the environment method. The macros % \cs{head}, \cs{descr} and \cs{see} can also be used inside a % data-environment. % Further macros inside a data-environment are: %\begin{itemize} %\item \DescribeMacro{\init} % \cs{init}\texttt{\{\emph{Info}\}:} Information about the generation % of the objekt. %\item \DescribeMacro{\del} % \cs{del}\texttt{\{\emph{Info}\}:} Information about the release of % the object. %\end{itemize} % %\section{Examples} %In this section some examples for the usage of the environments %method and data are shown. %\begin{verbatim} % \begin{method} % \head{int div(int a, int b, double \&c);} % \para{a}{dividend} % \para{b}{divisor} % \para{\&c}{result of the division} % \precond{no preconditions} % \descr{Divides \texttt{a} by \texttt{b} and gives the result % in \texttt{c}} % \postcond{no postconditions} % \error{no errors} % \return{\texttt{-1}, when \texttt{b==0}, else \texttt{0}} % \see{your favourite mathematics book} % \end{method} % % \begin{method} % \headtabbed{PrimObject(} % \headpara{const Matrix transformation,} % \headpara{AbstGeometry *geometry = 0,} % \headpara{MaterialApplication *material = 0,} % \headpara{AbstBumpMap *bumpMap = 0,} % \headpara{Distribution *distribution = 0);} % \para{transformation}{Transformation matrix} % \para{*geometry}{\ldots} % \descr{\ldots} % \end{method} % % \begin{data} % \head{char *name} % \descr{Name of the user} % \end{data} % \begin{data} % \head{char *no} % \descr{Telephone-number of the user} % \see{Telephone Book} % \end{data} %\end{verbatim} % % \StopEventually % % \section{Identification und documentation} % % This package can only be used with \LaTeXe. Therefore make sure, % we use no other \TeX-format. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} % \end{macrocode} % % Show the name of the package and its version % \begin{macrocode} %<+method>\ProvidesPackage{method} %<+method> [1999/03/25 v2.0b %<+method> LaTeX-package for method- and %<+method> data-descriptions (TL)] % \end{macrocode} % % % We have a specialized class for the documentation. % \begin{macrocode} %<*driver> \documentclass[a4paper]{ltxdoc} % \end{macrocode} % Set the specific options for the documentation of the package. % \begin{macrocode} \DoNotIndex{\",\\,\addtolength,\begin,\CodelineIndex,\CodelineNumbered} \DoNotIndex{\def,\DocInput,\documentclass,\DoNotIndex,\EnableCrossrefs} \DoNotIndex{\end,\fbox,\fboxrule,\hfill,\hspace,\ifcase,\or,\fi} \DoNotIndex{\ifnum,\fi,\item,\itemindent,\labelsep,\labelwidth} \DoNotIndex{\leftmargin,\listparindent,\NeedsTeXFormat,\newcommand} \DoNotIndex{\newcount,\newcounter,\newenvironment,\newlength,\sloppy} \DoNotIndex{\nopagebreak,\PackageError,\parbox,\parindent,\stepcounter} \DoNotIndex{\PrintChanges,\PrintIndex,\ProvidesPackage,\RecordChanges} \DoNotIndex{\setcounter,\setlength,\textbf,\texttt,\usepackage,\vspace} \DoNotIndex{\settowidth,\textwidth,\topsep} \CodelineNumbered \CodelineIndex \EnableCrossrefs \RecordChanges \setcounter{StandardModuleDepth}{1} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} % \end{macrocode} % Give all details. % \begin{macrocode} \begin{document} \DocInput{method.dtx} \PrintIndex \PrintChanges \end{document} % % \end{macrocode} % % %\section{Package internals} % % At the start of a method-environment the actual textwidth is read % and saved for the layout of the description. % % The commands for the parts, namely \cs{head}, \cs{para}, % \cs{precond}, ..., define % internal commands with the names \cs{meth@head}, \cs{meth@pa}, % \cs{meth@pb}, ..., \cs{meth@pz}, % \cs{meth@precond}, ... which are defined with the actual % parameters. % % At the end of a method-environment all these internal saved data is % typeset in a (hopefully) fashionable way. % % \section{Helping commands} % \begin{macro}{\meth@paranum} % \begin{macro}{\meth@headparanum} % The counter \cs{meth@paranum} counts the number of % \cs{para}-commands within a % method-environment: % \begin{macrocode} \newcounter{meth@paranum} % \end{macrocode} % The counter \cs{meth@headparanum} stores how many % \cs{headpara}-commands are given within a method-environment: % \begin{macrocode} \newcounter{meth@headparanum} % \end{macrocode} % \end{macro} % \end{macro} % %\begin{macro}{\meth@totwid} % The header will be typeset inside a framed minipage with a width of % \cs{@totwid} (= \cs{textwidth} - 6mm): % \begin{macrocode} \newlength{\meth@totwid} % \end{macrocode} %\end{macro} % %\begin{macro}{\meth@indent} %\begin{macro}{\meth@listdecl} % \changes{v1.3}{1997/06/29}{Minimale Änderung.} % The descriptions are organized as lists with the following parameters: % \begin{macrocode} \def\meth@indent{3.5cm} \def\meth@listdecl{\labelwidth3cm \labelsep0.5cm \itemindent0cm \leftmargin\meth@indent \topsep0cm \listparindent0cm} % \end{macrocode} %\end{macro} %\end{macro} % % \begin{macro}{\meth@righttotwid} % The right part of the list has a width of \cs{meth@righttotwid} % (= \cs{meth@totwid} - \cs{meth@indent}): % \begin{macrocode} \newlength{\meth@righttotwid} % \end{macrocode} %\end{macro} % %\begin{macro}{\meth@namewid} %\begin{macro}{\meth@nameindent} %\begin{macro}{\meth@rightnamewid} % The following lengths are used for the macro \cs{headtabbed}: % \begin{macrocode} \newlength{\meth@namewid} \newlength{\meth@nameindent} \newlength{\meth@rightnamewid} % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} % %\section{Options} %\begin{macro}{\textsee} %\begin{macro}{\textinit} %\begin{macro}{\textdel} %\begin{macro}{\textreturn} %\begin{macro}{\textprecond} %\begin{macro}{\textpostcond} %\begin{macro}{\textdescr} %\begin{macro}{\texterror}% % Now we have the option-processing. The option defines the language, % which will be used to print the textual parts of the % descriptions. At the moment only the languages english and german % are defined. % % First, define the parts for german descriptions % \begin{macrocode} \DeclareOption{german}{\def\textsee{Siehe auch:} \def\textinit{Erzeugung:} \def\textdel{Freigabe:} \def\textreturn{R\"uckgabewert:} \def\textprecond{Vorbed.:} \def\textpostcond{Nachbed.:} \def\textdescr{Beschreibung:} \def\texterror{Ausnahmebeh.:}} % \end{macrocode} % Now for the english descriptions: % \begin{macrocode} \DeclareOption{english}{\def\textsee{see also:} \def\textinit{initialisation:} \def\textdel{disposal:} \def\textreturn{return value:} \def\textprecond{precondition:} \def\textpostcond{postcondition:} \def\textdescr{description:} \def\texterror{exceptions:}} % \end{macrocode} % \changes{v2.0a}{1999/02/18}{French localization (thanks to % Jean-Pierre Drucbert)} % The french descriptions, provided by Jean-Pierre Drucbert: % \begin{macrocode} \DeclareOption{french}{\def\textsee{voir aussi:} \def\textinit{initialisation:} \def\textdel{lib\'eration:} \def\textreturn{valeur de retour:} \def\textprecond{pr\'econdition:} \def\textpostcond{postcondition:} \def\textdescr{description:} \def\texterror{exceptions:}} % \end{macrocode} % Make the english version the default version and process the options. % \begin{macrocode} \ExecuteOptions{english} \ProcessOptions\relax % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} %\end{macro} %\end{macro} %\end{macro} %\end{macro} % %\section{Error-detection} %\begin{macro}{\meth@where} %\begin{macro}{\meth@checkdoubleopen} %\begin{macro}{\meth@checknotopen} %\changes{v1.3}{1997/06/29}{Show error messages with \cs{PackageError}} % The macro \cs{head} can be used both in the environments method and % data. The following value is used to differentiate if method or data % is active. If none is active, the counter is set to 99. Method sets % it to 0, data to 1. % \begin{macrocode} \newcount\meth@where \meth@where=99 % \end{macrocode} % Now define the error messages: % \begin{macrocode} \def\meth@checkdoubleopen{ \ifnum\meth@where<99 \PackageError{method}% {There is an method.sty-environment open!}% {} \fi } \def\meth@checknotopen{ \ifnum\meth@where=99 \PackageError{method}% {There is no method.sty-environment open!}% {} \fi } % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} % %\section{The environment method} %\begin{environment}{method} % Now we define the environment method. % \begin{macrocode} \newenvironment{method} { % \end{macrocode} % First we check, wether a method or data-environment is open. After % that we set \cs{meth@where} to 0, which shows, that we are inside a % method-environment. % \begin{macrocode} \meth@checkdoubleopen \meth@where=0 % \end{macrocode} % Define the lengths used for the typesetting of the method. % \changes{v1.1}{????/??/??}{Abzug von \cs{meth@totwid} von 4~mm auf 6~mm erhhöht} % \begin{macrocode} \setlength{\meth@totwid}{\textwidth} \addtolength{\meth@totwid}{-6mm} \setlength{\meth@righttotwid}{\meth@totwid} \addtolength{\meth@righttotwid}{-\meth@indent} % \end{macrocode} % The right column is not very wide. Therfore use \cs{sloppy}. % \begin{macrocode} \sloppy % \end{macrocode} % All parts are defined to nothing. %\changes{v1.5}{1998/01/19}{extend to 26 parameters} % \begin{macrocode} \def\meth@head{} \def\meth@headtabbed{} \setcounter{meth@headparanum}{0} \def\meth@hpa{}\def\meth@hpb{}\def\meth@hpc{}\def\meth@hpd{} \def\meth@hpe{}\def\meth@hpf{}\def\meth@hpg{}\def\meth@hph{} \def\meth@hpi{}\def\meth@hpj{}\def\meth@hpk{}\def\meth@hpl{} \def\meth@hpm{}\def\meth@hpn{}\def\meth@hpo{}\def\meth@hpp{} \def\meth@hpq{}\def\meth@hpr{}\def\meth@hps{}\def\meth@hpt{} \def\meth@hpu{}\def\meth@hpv{}\def\meth@hpw{}\def\meth@hpx{} \def\meth@hpy{}\def\meth@hpz{} \setcounter{meth@paranum}{0} \def\meth@pa{}\def\meth@pb{}\def\meth@pc{}\def\meth@pd{} \def\meth@pe{}\def\meth@pf{}\def\meth@pg{}\def\meth@ph{} \def\meth@pi{}\def\meth@pj{}\def\meth@pk{}\def\meth@pl{} \def\meth@pm{}\def\meth@pn{}\def\meth@po{}\def\meth@pp{} \def\meth@pq{}\def\meth@pr{}\def\meth@ps{}\def\meth@pt{} \def\meth@pu{}\def\meth@pv{}\def\meth@pw{}\def\meth@px{} \def\meth@py{}\def\meth@pz{} \def\meth@precond{} \def\meth@descr{} \def\meth@postcond{} \def\meth@error{} \def\meth@return{} \def\meth@see{} % \end{macrocode} % Now for the end of the environment. The first line in a paragraph % is not indented and a small space is made above the header. % \begin{macrocode} }{ \parindent0cm \vspace{2mm} % \end{macrocode} % now a sorted list of all given parts inside the environment. The % user has to see, that only one of % \cs{meth@head} and \cs{meth@headtabbed} is used. % \changes{v1.3}{1997/06/29}{Minimal change in the format of typesetting}% % \changes{v1.5}{1998/01/19}{extend to 26 parameters} % \begin{macrocode} \meth@head\meth@headtabbed \nopagebreak[4] \meth@pa \meth@pb \meth@pc \meth@pd \meth@pe \meth@pf \meth@pg \meth@ph \meth@pi \meth@pj \meth@pk \meth@pl \meth@pm \meth@pn \meth@po \meth@pp \meth@pq \meth@pr \meth@ps \meth@pt \meth@pu \meth@pv \meth@pw \meth@px \meth@py \meth@pz \meth@precond \meth@descr \meth@postcond \meth@error \meth@return \meth@see % \end{macrocode} % Now set \cs{meth@where} back to 99. % \begin{macrocode} \meth@where=99 % \end{macrocode} % This is the end of the definition of the environment method. % \begin{macrocode} } % \end{macrocode} %\end{environment} % %\section{The environment data} %\begin{environment}{data} % The environment data is nearly equivalent to the environment method. % \changes{v1.3}{1997/06/29}{Change \cs{meth@totwid} from 4~mm to 6~mm.} % \begin{macrocode} \newenvironment{data} { \meth@checkdoubleopen \meth@where=1 \setlength{\meth@totwid}{\textwidth} \addtolength{\meth@totwid}{-6mm} \sloppy \def\meth@head{} \def\meth@descr{} \def\meth@init{} \def\meth@del{} \def\meth@see{} }{ \parindent0cm \vspace{2mm} \meth@head \nopagebreak \meth@descr \meth@init \meth@del \meth@see \meth@where=99 } % \end{macrocode} %\end{environment} % %\section{Macros for the parts inside the environments} % % The definitions for the parts of the environments data and method % \subsection{\cs{head}} % \begin{macro}{\head} % The macro \cs{head} is used to typeset the header of the method or % the definition of the variable. % \begin{macrocode} \newcommand{\head}[1]{ % \end{macrocode} % First check, if the environment is active at the moment. % \begin{macrocode} \meth@checknotopen % \end{macrocode} % If \cs{meth@where} is set to 0, the environment method is active. % \begin{macrocode} \ifnum\meth@where=0 \def\meth@head{ % \end{macrocode} % The code to typeset the header. % \changes{v1.3}{1997/06/29}{\cs{tt} replaced by \cs{texttt}.} % \begin{macrocode} {\setlength{\fboxrule}{0.2mm}% \fbox{\parbox{\meth@indent}{\hfill} \begin{minipage}{\meth@righttotwid} {\parindent-\meth@indent \texttt{#1}} \end{minipage} }} } \fi% % \end{macrocode} % If \cs{meth@where} is set to 1, the environment data is active. % \begin{macrocode} \ifnum\meth@where=1 \def\meth@head{ % \end{macrocode} % The code to typeset the header. % \changes{v1.3}{1997/06/29}{\cs{tt} replaced by \cs{texttt}.} % \begin{macrocode} {\setlength{\fboxrule}{0.1mm}% \fbox{\hspace{2mm}\begin{minipage}{\meth@totwid} \texttt{#1} \end{minipage}} } } \fi% } % \end{macrocode} % \end{macro} % % \subsection{\cs{headtabbed}} % \begin{macro}{\headtabbed} % \cs{headtabbed} takes care of the first line, which will be % formatted in the header of the method and defines the macro % \cs{meth@headtabbed}, which does the output. % \changes{v1.3}{1997/06/29}{\cs{tt} replaced by \cs{texttt}.} % \begin{macrocode} \newcommand{\headtabbed}[1]{ \meth@checknotopen \def\meth@headtabbed{ \setlength{\fboxrule}{0.2mm}% \settowidth{\meth@namewid}{\texttt{#1}}% \setlength{\meth@rightnamewid}{\meth@totwid} \addtolength{\meth@rightnamewid}{-\meth@namewid} \setlength{\meth@nameindent}{\meth@namewid} \addtolength{\meth@nameindent}{2mm} \fbox{\parbox{\meth@nameindent}{\hfill}% \begin{minipage}{\meth@rightnamewid} \parindent-\meth@namewid \texttt{#1\meth@hpa \meth@hpb \meth@hpc \meth@hpd \meth@hpe \meth@hpf \meth@hpg \meth@hph \meth@hpi \meth@hpj \meth@hpk \meth@hpl \meth@hpm \meth@hpn \meth@hpo \meth@hpp \meth@hpq \meth@hpr \meth@hps \meth@hpt \meth@hpu \meth@hpv \meth@hpw \meth@hpx \meth@hpy \meth@hpz}% \end{minipage}% } } } % \end{macrocode} % \end{macro} % % \subsection{\cs{headpara}} % \begin{macro}{\meth@defheadpara} % \changes{v1.5}{1997/01/19}{extend to 26 parameters} % \cs{meth@defheadpara} searches for the first empty macro of % \cs{meth@hpa}, \ldots, \cs{meth@hpz}. In this macro the new line can % be saved. This macro is used by \cs{headpara}. % \begin{macrocode} \newcommand{\meth@defheadpara}[1]{ \ifcase\value{meth@headparanum} \def\meth@hpa{#1} \or \def\meth@hpb{\\#1} \or \def\meth@hpc{\\#1} \or \def\meth@hpd{\\#1} \or \def\meth@hpe{\\#1} \or \def\meth@hpf{\\#1} \or \def\meth@hpg{\\#1} \or \def\meth@hph{\\#1} \or \def\meth@hpi{\\#1} \or \def\meth@hpj{\\#1} \or \def\meth@hpk{\\#1} \or \def\meth@hpl{\\#1} \or \def\meth@hpm{\\#1} \or \def\meth@hpn{\\#1} \or \def\meth@hpo{\\#1} \or \def\meth@hpp{\\#1} \or \def\meth@hpq{\\#1} \or \def\meth@hpr{\\#1} \or \def\meth@hps{\\#1} \or \def\meth@hpt{\\#1} \or \def\meth@hpu{\\#1} \or \def\meth@hpv{\\#1} \or \def\meth@hpw{\\#1} \or \def\meth@hpx{\\#1} \or \def\meth@hpy{\\#1} \or \def\meth@hpz{\\#1} \or \PackageError{method}% {Too many parameters in method-environment !}{} \fi \stepcounter{meth@headparanum} } % \end{macrocode} % \end{macro} % % \begin{macro}{\meth@defheadpara} % Now for the definition of the macro \cs{headpara}. Check first, if % the correspondent environment is open. Then use the macro % \cs{meth@defheadpara}. % \begin{macrocode} \newcommand{\headpara}[1]{ \meth@checknotopen \meth@defheadpara{#1} } % \end{macrocode} % \end{macro} % % \subsection{\cs{para}} % \begin{macro}{\meth@defpara} % \begin{macrocode} \newcommand{\meth@defpara}[1]{ \ifcase\value{meth@paranum} \def\meth@pa{#1} \or \def\meth@pb{#1} \or \def\meth@pc{#1} \or \def\meth@pd{#1} \or \def\meth@pe{#1} \or \def\meth@pf{#1} \or \def\meth@pg{#1} \or \def\meth@ph{#1} \or \def\meth@pi{#1} \or \def\meth@pj{#1} \or \def\meth@pk{#1} \or \def\meth@pl{#1} \or \def\meth@pm{#1} \or \def\meth@pn{#1} \or \def\meth@po{#1} \or \def\meth@pp{#1} \or \def\meth@pq{#1} \or \def\meth@pr{#1} \or \def\meth@ps{#1} \or \def\meth@pt{#1} \or \def\meth@pu{#1} \or \def\meth@pv{#1} \or \def\meth@pw{#1} \or \def\meth@px{#1} \or \def\meth@py{#1} \or \def\meth@pz{#1} \or \PackageError{method}% {Too many parameters in method.sty-environment !} \fi \stepcounter{meth@paranum} } % \end{macrocode} % \end{macro} % % \begin{macro}{\para} % Here the definition for \cs{para}: % \changes{v1.3}{1997/06/29}{\cs{tt} replaced by \cs{texttt}.} % \changes{v1.4}{1997/06/29}{insert braces, which were missing before} % \begin{macrocode} \newcommand{\para}[2]{ \meth@checknotopen \meth@defpara{\begin{list}{\texttt{#1}}{\meth@listdecl} \item #2 \end{list}} } % \end{macrocode} % \end{macro} % % \subsection{The other macros} % \begin{macro}{\precond} % The other macros are very simple. The create a list-environment and % put their data inside of this list. % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\precond}[1]{ \meth@checknotopen \def\meth@precond{\begin{list}{\textbf{\textprecond}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} % \end{macro} % \begin{macro}{\postcond} % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\postcond}[1]{ \meth@checknotopen \def\meth@postcond{\begin{list}{\textbf{\textpostcond}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} % \end{macro} % \begin{macro}{\descr} % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\descr}[1]{ \meth@checknotopen \def\meth@descr{\begin{list}{\textbf{\textdescr}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} % \end{macro} % \begin{macro}{\error} % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\error}[1]{ \meth@checknotopen \def\meth@error{\begin{list}{\textbf{\texterror}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} % \end{macro} % \begin{macro}{\return} % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\return}[1]{ \meth@checknotopen \def\meth@return{\begin{list}{\textbf{\textreturn}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} % \end{macro} % \begin{macro}{\see} % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\see}[1]{ \meth@checknotopen \def\meth@see{\begin{list}{\textbf{\textsee}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} % \end{macro} % \begin{macro}{\init} % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\init}[1]{ \meth@checknotopen \def\meth@init{\begin{list}{\textbf{\textinit}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} % \end{macro} % \begin{macro}{\del} % \changes{v1.3}{1997/06/29}{\cs{bf} replaced by \cs{textbf}.} % \changes{v1.4}{1997/06/29}{insert missing braces.} % \begin{macrocode} \newcommand{\del}[1]{ \meth@checknotopen \def\meth@del{\begin{list}{\textbf{\textdel}}{\meth@listdecl} \item #1 \end{list}} } % \end{macrocode} %\end{macro} % \Finale % \endinput % % % \Finale % \endinput