DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T i

⟦a4f73c455⟧ TextFile

    Length: 32085 (0x7d55)
    Types: TextFile
    Names: »iso.sty«

Derivation

└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦this⟧ »latex-style/iso.sty« 

TextFile

------------
% ISO DOCUMENT STYLE <17 Oct 88>
%    for LaTeX version 2.09

% @(#)iso.sty	1.15 dated 88/10/19 at 13:46:52

% This file is based on Leslie Lamport's article.doc

\typeout{Document Style `iso' <17 Oct 88>.}


% CHOOSING THE TYPE SIZE:
%
%  The iso style only copes with 9pt at present, so gives error messages
%  for other sizes and reads iso9.sty regardless.
%  I may add support for 10pt one day.
%
%  Unfortunately, many style files expect \@ptsize to be 0, 1 or 2 so it is
%  set to 0 as the closest approximation to 9pt.

\def\@ptsize{0}		% To keep other style files happy

\@namedef{ds@11pt}{\typeout{11pt not available. Using 9pt.}}
\@namedef{ds@12pt}{\typeout{12pt not available. Using 9pt.}}

%  Two-side printing.
\@twosidetrue  	%  Defines twoside option.
\@mparswitchtrue   %    Marginpars go on outside of page.
%  draft option
%
% \overfullrule = 0pt             % Default is don't mark overfull hboxes.
\def\ds@draft{\overfullrule 5pt}  % Causes overfull hboxes to be marked.

% The \@options command causes the execution of every command \ds@FOO 
% which is defined and for which the user typed the FOO option in his
% \documentstyle command.  For every option BAR he typed for which
% \ds@BAR is not defined, the file BAR.sty will be read after the present
% (main) .STY file is executed.

\@options

\input iso9.sty\relax

\f


%    ****************************************
%    *                LISTS                 *
%    ****************************************
%

% LABELS
%  In the iso style, list labels are aligned with the list contents 
%  i.e. the label is indented by \leftmargin. To achieve this we redefine
%  \makelabel in \enumerate and \itemize (see latex.tex).
\def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else
      \advance\@enumdepth \@ne 
      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
      {\csname label\@enumctr\endcsname}{\usecounter
        {\@enumctr}\def\makelabel##1{##1}}\fi}

\def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
\list{\csname\@itemitem\endcsname}{\def\makelabel##1{##1}}\fi}


% ENUMERATE
%  Enumeration is done with four counters: enumi, enumii, enumiii
%  and enumiv, where enumN controls the numbering of the Nth level
%  enumeration.  The label is generated by the commands \labelenumi 
%  ... \labelenumiv.  The expansion of \p@enumN\theenumN defines the 
%  output of a \ref command.  

\def\labelenumi{\theenumi)}    
\def\theenumi{\alph{enumi}}     
\def\p@enumi{\theenumi}
 
\def\labelenumii{\theenumii)}
\def\theenumii{\arabic{enumii}}
\def\p@enumii{\p@enumi\theenumii}

% No ISO guidelines for deeper nesting of lists
\def\labelenumiii{\theenumiii)}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\p@enumii\theenumiii}

\def\labelenumiv{\theenumiv)}
\def\theenumiv{\Alph{enumiv}}     
\def\p@enumiv{\p@enumiii\theenumiv}

% ITEMIZE
% Itemization is controlled by four commands: \labelitemi, \labelitemii,
% \labelitemiii, and \labelitemiv, which define the labels of the various 
% itemization levels.

\def\labelitemi{---}
% No ISO guidelines for deeper nesting so use the same symbol
\def\labelitemii{---}
\def\labelitemiii{---}
\def\labelitemiv{---}


% VERSE
%   The verse environment is defined by making clever use of the
%   list environment's parameters.  The user types \\ to end a line.
%   This is implemented by \let'in \\ equal \@centercr.
%
\def\verse{\let\\=\@centercr  
  \list{}{\itemsep\z@ \itemindent -1.5em\listparindent \itemindent 
          \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
\let\endverse\endlist

% QUOTATION
%   Fills lines
%   Indents paragraph
%   
\def\quotation{\list{}{\listparindent 1.5em
    \itemindent\listparindent
    \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
\let\endquotation=\endlist

% QUOTE -- same as quotation except no paragraph indentation,
%
\def\quote{\list{}{\rightmargin\leftmargin}\item[]}
\let\endquote=\endlist

% DESCRIPTION 
%
%  To change the formatting of the label, you must redefine 
%  \descriptionlabel.  

\def\descriptionlabel#1{#1 ---}
\def\description{\list{}{
       \let\makelabel\descriptionlabel}}

\let\enddescription\endlist

%\newdimen\descriptionmargin
%\descriptionmargin=3em
\f


%    ****************************************
%    *         OTHER ENVIRONMENTS           *
%    ****************************************
%
%
% THEOREM 
% \@begintheorem ... \@endtheorem are the commands executed at the
% beginning and end of a (user-defined) theorem-like environment.
% Except \@opargbegintheorem is executed when an optional argument is
% given.  Cf. LATEX.TEX.
%
% \def\@begintheorem#1#2{\it \trivlist \item[\hskip \labelsep{\bf #1\ #2}]}
% \def\@opargbegintheorem#1#2#3{\it \trivlist
%       \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]}
% \def\@endtheorem{\endtrivlist}


% EQUATION and EQNARRAY 
%
% \newcounter{equation}    
%  Default is for left-hand side of equations to be flushleft.
%  To make them flushright, do:
%  \let\@eqnsel = \hfil
%

\def\theequation{\arabic{equation}}

% \jot = 3pt      % Extra space added between lines of an eqnarray environment

% The macro \@eqnnum defines how equation numbers are to appear in equations.
%
% \def\@eqnnum{(\theequation)} 
% 

% TITLEPAGE
%  In the normal environments, the titlepage environment does nothing but 
%  start and end a page, and inhibit page numbers.  It also resets the
%  page number to zero.
%  I don't know if this should be in the iso style, but I'll leave it
%  until someone complains.

\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
     \else \newpage \fi \thispagestyle{empty}\c@page\z@}

\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}

% NOTES
%  There are two notes environments: `note' for producing a single note and
%  `notes' for producing multiple notes. Each is printed in typesize small.

\newenvironment{note}{
    \small\par NOTE ---}{\normalsize}

\newcounter{notes}
\newenvironment{notes}{\small
  \begin{list}{NOTE \arabic{notes}}{
    \usecounter{notes}\setlength{\leftmargin}{0pt}
    \setlength{\labelwidth}{0pt}
    \setlength{\listparindent}{0pt}}}{
  \end{list}\normalsize}

% ARRAY AND TABULAR
%

\arraycolsep 5pt     % Half the space between columns in an array environment.
\tabcolsep 6pt       % Half the space between columns in a tabular environment.
\arrayrulewidth .4pt % Width of rules in array and tabular environment.
\doublerulesep 2pt   % Space between adjacent rules in array or tabular env.

% TABBING
%
\tabbingsep \labelsep   % Space used by the \' command.  (See LaTeX manual.)

% MINIPAGE
%  \@minipagerestore is called upon entry to a minipage environment to
%  set up things that are to be handled differently inside a minipage
%  environment. In the current styles, it does nothing.

% \skip\@mpfootins : plays same role for footnotes in a minipage as
%                    \skip\footins does for ordinary footnotes

\skip\@mpfootins = \skip\footins

% FRAMEBOX
%
\fboxsep = 3pt    % Space left between box and text by \fbox and \framebox.
\fboxrule = .4pt  % Width of rules in box made by \fbox and \framebox.

\f


%    ****************************************
%    *             SECTIONS                 *
%    ****************************************
%
%  Note that the LaTeX section names have been changed to comply with
%  ISO naming conventions.
%
% DEFINE COUNTERS:
%
% \newcounter{NEWCTR}[OLDCTR] : Defines NEWCTR to be a counter, which is 
%                               reset to zero when counter OLDCTR is stepped.  
%                               Counter OLDCTR must already be defined.

\newcounter{part}
\newcounter {section}[part]
\newcounter {clause}[section]
\newcounter {definition}[section]
\newcounter {subclause}[clause]
\newcounter {subsubclause}[subclause]
\newcounter {namelesssubsubclause}[subclause]
\newcounter {subsubsubclause}[subsubclause]
\newcounter {namelesssubsubsubclause}[subsubclause]

% A special command for introductory sections: if there is an introduction,
%  it is section 0, otherwise start at section 1.
% The command resets the section counter so use halfway through a document
%  will give odd results.
\def\introduction{\setcounter{section}{-1}
	\section{Introduction}}

% A special command for the foreword. This ensures that no entry appears
%  in the table of contents.
\def\foreword{\section*{Foreword}}

% For any counter CTR, \theCTR is a macro that defines the printed version
% of counter CTR.  It is defined in terms of the following macros:
%
%  \arabic{COUNTER} : The value of COUNTER printed as an arabic numeral.
%  \roman{COUNTER}  : Its value printed as a lower-case roman numberal.
%  \Roman{COUNTER}  : Its value printed as an upper-case roman numberal.
%  \alph{COUNTER}   : Value of COUNTER printed as a lower-case letter:
%                         1 = a, 2 = b, etc.
%  \Alph{COUNTER}   : Value of COUNTER printed as an upper-case letter:
%                           1 = A, 2 = B, etc.
%

\def\thepart{\arabic{part}} % Roman numeral part numbers.
\def\thesection       {\arabic{section}}
\def\theclause    {\thesection.\arabic{clause}}
\def\thedefinition{\thesection.\arabic{definition}}
\def\thesubclause {\theclause .\arabic{subclause}}
\def\thesubsubclause     {\thesubclause.\arabic{subsubclause}}
\def\thenamelesssubsubclause     {\thesubclause.\arabic{namelesssubsubclause}}
\def\thesubsubsubclause  {\thesubsubclause.\arabic{subsubsubclause}}
\def\thenamelesssubsubsubclause{
     \thesubsubclause.\arabic{namelesssubsubsubclause}}

\f


%    ****************************************
%    *         TABLE OF CONTENTS, ETC.      *
%    ****************************************
%
% A \clause command writes a 
%       \contentsline{clause}{TITLE}{PAGE}
% command on the .toc file, where TITLE contains the contents of the
% entry and PAGE is the page number.  If clauses are being numbered,
% then TITLE will be of the form
%       \numberline{NUM}{HEADING}
% where NUM is the number produced by \theclause.  Other sectioning
% commands work similarly.  
%
% A \caption command in a 'figure' environment writes
%    \contentsline{figure}{\numberline{NUM}{CAPTION}}{PAGE}
% on the .lof file, where NUM is the number produced by \thefigure and
% CAPTION is the figure caption.  It works similarly for a 'table' environment.
%
% The command \contentsline{NAME} expands to \l@NAME.  So, to specify
% the table of contents, we must define \l@section, 
% \l@clause, ... ; to specify the list of figures, we must define
% \l@figure; and so on.  Most of these can be defined with the
% \@dottedtocline command, which works as follows.
%
% \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE}
%    LEVEL    : An entry is produced only if LEVEL < or = value of 
%               'tocdepth' counter.  Note that \section is level 1, 
%               \clause is level 2, etc.
%    INDENT   : The indentation from the outer left margin of the start of 
%               the contents line.
%    NUMWIDTH : The width of a box in which the section number is to go,
%               if TITLE includes a \numberline command.
%   
% This command uses the following three parameters, which are set
% with a \def (so em's can be used to make them depend upon the font).
%   \@pnumwidth : The width of a box in which the page number is put.
%   \@tocrmarg  : The right margin for multiple line entries.  One
%                 wants \@tocrmarg > or = \@pnumwidth
%   \@dotsep    : Separation between dots, in mu units.  Should be \def'd to
%                 a number like 2 or 1.7

% \numberline{NUMBER} : For use in a \contentsline command.
%   It puts NUMBER flushleft in a box of width \@tempdima 
%   (Before 25 Jan 88 change, it also added \@tempdima to the hanging 
%   indentation.)
%   In the ISO style, sets the number in bold.

\def\numberline#1{\hbox to\@tempdima{\bf#1\hfil}}

\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{2.8}
\setcounter{tocdepth}{5}


% TABLEOFCONTENTS
%
\def\tableofcontents{
  \section*{Contents}
  \begingroup
  \parskip\z@
  \@starttoc{toc}
  \endgroup}

%  \l@part is as in latex.tex - I haven't considered parts yet
%
\def\l@part#1#2{\addpenalty{\@secpenalty}
   \addvspace{2.25em plus 1pt}  % space above part line
   \begingroup
   \@tempdima 3em         % width of box holding part number, used by 
     \parindent \z@ \rightskip \@pnumwidth             %% \numberline
     \parfillskip -\@pnumwidth   
     {\large \bf          % set line in \large boldface
     \leavevmode          % TeX command to enter horizontal mode.       
     #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
     \nobreak             % Never break after part entry
   \endgroup}

\def\l@section#1#2{\addpenalty{\@secpenalty}  % good place for page break
   \addvspace{1.0em plus 1pt}  % space above toc entry
   \@tempdima 1.5em            % width of box holding section number
   \begingroup
     \parindent \z@ \rightskip \@pnumwidth 
     \parfillskip -\@pnumwidth   
     {\bf                 % Boldface for section title.
     \leavevmode          % TeX command to enter horizontal mode.       
     #1}\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep 
        mu$}\hfill \nobreak \hbox to\@pnumwidth{\bf\hss #2}\par
   \endgroup}
      
% Some of these parameters may have to be increased if a document division
% has more than 9 sub-parts (a two-digit subpart may encroach upon the
% following text).
\def\l@clause{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@subclause{\@dottedtocline{3}{3.8em}{3.2em}}
\def\l@subsubclause{\@dottedtocline{4}{7.0em}{4.1em}}
\def\l@namelesssubsubclause{\@gobbletwo}
\def\l@subsubsubclause{\@dottedtocline{5}{10em}{5em}}
\def\l@namelesssubsubsubclause{\@gobbletwo}

% Definitions produce no table of contents entry, so \l@definition just drops
%  its arguments
\def\l@definition{\@gobbletwo}

% LIST OF FIGURES
%
\def\listoffigures{\section*{Figures}\@starttoc{lof}}

\def\l@figure{\@dottedtocline{1}{0em}{1.5em}}

% LIST OF TABLES
%
\def\listoftables{\section*{Tables}\@starttoc{lot}}
\let\l@table\l@figure


\f


%    ****************************************
%    *             BIBLIOGRAPHY             *
%    ****************************************
%
% The thebibliography environment is left over from article.sty; the iso
% style uses the references environment but I've left thebibiliography
% in for old times' sake.
% Note that the \cite command is changed later on, so citations look
% different to those of article.sty.
%
% The thebibliography environment executes the following commands:
%
%  \def\newblock{\hskip .11em plus .33em minus -.07em} --
%      Defines the `closed' format, where the blocks (major units of 
%      information) of an entry run together.
%
%  \sloppy  -- Used because it's rather hard to do line breaks in 
%      bibliographies,
% 
%  \sfcode`\.=1000\relax --
%      Causes a `.' (period) not toproduce an end-of-sentence space.

\def\thebibliography#1{\section*{References\@mkboth
  {REFERENCES}{REFERENCES}}\list
  {[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}\leftmargin\labelwidth
    \advance\leftmargin\labelsep
    \usecounter{enumi}}
    \def\newblock{\hskip .11em plus .33em minus -.07em}
    \sloppy\clubpenalty4000\widowpenalty4000
    \sfcode`\.=1000\relax}

\let\endthebibliography=\endlist

% \def\@biblabel#1{[#1]\hfill}  % Produces the label for a \bibitem[...]
                                % command. 
% \def\@cite#1{[#1]}            % Produces the output of the \cite command.

\f


%    ****************************************
%    *             REFERENCES               *
%    ****************************************
%
% The references environment is the iso style equivalent of the
% thebibliography environment.
%
% The references environment executes the following commands:
%
%  \def\newblock{\hskip .11em plus .33em minus -.07em} --
%      Defines the `closed' format, where the blocks (major units of 
%      information) of an entry run together.
%
%  \sloppy  -- Used because it's rather hard to do line breaks in 
%      bibliographies,
% 
%  \sfcode`\.=1000\relax --
%      Causes a `.' (period) not to produce an end-of-sentence space.

\def\references{\list
  {}{\labelwidth\z@\leftmargin\z@\labelsep\z@\itemindent\z@
    \def\newblock{\hskip .11em plus .33em minus -.07em}
    \def\@biblabel##1{
	{\rm##1,\hskip .5em\relax}}}  % Produces the label for \bibitem[...]
    \sloppy\clubpenalty4000\widowpenalty4000
    \sfcode`\.=1000\relax
    \it}

\let\endreferences=\endlist

\def\@cite#1{#1}           % Produces the output of the \cite command.

\f


%    ****************************************
%    *              THE INDEX               *
%    ****************************************
%
% THE THEINDEX ENVIRONMENT
% Produces double column format, with each paragraph a separate entry.
% The user commands \item, \subitem and \subsubitem are used to
% produce the entries, and \indexspace adds an extra vertical space
% that's the right size to put above the first entry with a new letter
% of the alphabet.
% NDN: ISO guidelines say nothing about indices so I've left this alone.

\newif\if@restonecol

\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
\columnseprule \z@
\columnsep 35pt\twocolumn[\section*{Index}]
    \@mkboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@
    \parskip\z@ plus .3pt\relax\let\item\@idxitem}

\def\@idxitem{\par\hangindent 40pt}

\def\subitem{\par\hangindent 40pt \hspace*{20pt}}

\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}

\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}

\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}

\f


%    ****************************************
%    *             FOOTNOTES                *
%    ****************************************
%
% \footnoterule is a macro to draw the rule separating the footnotes from
% the text.  It should take zero vertical space, so it needs a negative
% skip to compensate for any positive space taken by the rule.  (See
% PLAIN.TEX.)

\def\footnoterule{\kern-3\p@   
  \hrule width .4\columnwidth 
  \kern 2.6\p@}                 % The \hrule has default height of .4pt .

% ISO have the footnote counter reset after every page.
% \newcounter{footnote}
\@addtoreset{footnote}{page}

% The numbering style (arabic, alph, etc.) for ordinary footnotes
% is defined by the macro \thefootnote.
\def\thefootnote{\arabic{footnote})}
\def\thempfootnote{\arabic{mpfootnote})}

%   \@makefntext{NOTE} :
%        Must produce the actual footnote, using \@thefnmark as the mark 
%        of the footnote and NOTE as the text.  It is called when effectively
%        inside a \parbox of width \columnwidth (i.e., with \hsize = 
%        \columnwidth).  
%
%        The following macro indents all lines of the footnote by 10pt, and 
%        indents the first line of a new paragraph by 1em.  To change these 
%        dimensions, just substitute the desired value for '10pt' [in both 
%        places] or '1em'.  The mark is flushright against the footnote. 
%          \long\def\@makefntext#1{\@setpar{\@@par\@tempdima \hsize 
%             \advance\@tempdima-10pt\parshape \@ne 10pt \@tempdima}\par
%             \parindent 1em\noindent \hbox to \z@{\hss$^{\@thefnmark}$}#1}
%
%        A simpler macro is used, in which the footnote text is
%        set like an ordinary text paragraph, with no indentation.
%	 I am not sure whether \hss is useful or not.

\long\def\@makefntext#1{\noindent 
            \hbox to 1.8em{\hss$^{\@thefnmark}$}#1}

% \@makefnmark : A macro to generate the footnote marker that goes
%                in the text.  Default definition used.



\f


%    ****************************************
%    *         FIGURES AND TABLES           *
%    ****************************************
% 
% Float placement parameters.  See LaTeX manual for their definition.
%
\setcounter{topnumber}{2}
\def\topfraction{.7}
\setcounter{bottomnumber}{1}
\def\bottomfraction{.3}
\setcounter{totalnumber}{3}
\def\textfraction{.2}
\def\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\def\dbltopfraction{.7}
\def\dblfloatpagefraction{.5}

% \@makecaption{NUMBER}{TEXT} : Macro to make a figure or table caption.  
%      NUMBER : Figure or table number--e.g., 'Figure 3.2' 
%      TEXT   : The caption text.
%  Macro should be called inside a \parbox of right width, with \normalsize.
% changed 25 Jun 86 to fix according to Howard Trickey:
% instead of \unhbox\@tempboxa\par we do #1: #2\par
%  ISO wants the number separated from the text by a long dash so we put that
% rather than a colon.

\long\def\@makecaption#1#2{
   \vskip 10pt 
   \setbox\@tempboxa\hbox{\bf#1 --- #2}
   \ifdim \wd\@tempboxa >\hsize   % IF longer than one line:
       {\bf#1 --- #2}\par         %   THEN set as ordinary paragraph.
     \else                        %   ELSE  center.
       \hbox to\hsize{\hfil\box\@tempboxa\hfil}
   \fi}

% To define a float of type TYPE (e.g., TYPE = figure), the document style 
% must define the following.
%
%  \fps@TYPE   : The default placement specifier for floats of type TYPE.
%
%  \ftype@TYPE : The type number for floats of type TYPE.  Each TYPE has
%                associated a unique positive TYPE NUMBER, which is a power 
%                of two.  E.g., figures might have type number 1, tables type 
%                number 2, programs type number 4, etc.
%
%  \ext@TYPE   : The file extension indicating the file on which the 
%                contents list for float type TYPE is stored.  For example, 
%                \ext@figure = 'lof'.
%
%  \fnum@TYPE  : A macro to generate the figure number for a caption.
%                For example, \fnum@TYPE == Figure \thefigure.
%
%  The actual float-making environment commands--e.g., the commands
%  \figure and \endfigure--are defined in terms of the macros \@float
%  and \end@float, which are described below.
%
%  \@float{TYPE}[PLACEMENT] : Macro to begin a float environment for a 
%     single-column float of type TYPE with PLACEMENT as the placement 
%     specifier.  The default value of PLACEMENT is defined by \fps@TYPE.   
%     The environment is ended by \end@float.  
%     E.g., \figure == \@float{figure}, \endfigure == \end@float.


% FIGURE

\newcounter{figure}
\def\thefigure{\@arabic\c@figure}

\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{Figure \thefigure}
\def\figure{\@float{figure}}
\let\endfigure\end@float
\@namedef{figure*}{\@dblfloat{figure}}
\@namedef{endfigure*}{\end@dblfloat}

% TABLE
%
\newcounter{table}
\def\thetable{\@arabic\c@table}

\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{Table \thetable}
\def\table{\@float{table}}
\let\endtable\end@float
\@namedef{table*}{\@dblfloat{table}}
\@namedef{endtable*}{\end@dblfloat}

\f


%    ****************************************
%    *         TITLE AND ABSTRACT           *
%    ****************************************
%

% \maketitle ==
%  BEGIN
%    \par
%    \twocolumn  % Earlier stuff (contents etc.) set in single column
%    \begingroup
%      redefine \@makefnmark so footnote marks take zero space (this make
%        centering look better)
%      \thefootnote == \fnsymbol{footnote} % to number by *, dagger, etc.
%   \twocolumn[\@maketitle]  
%   \thispagestyle{firstpage}
%   \@thanks   % \thanks defines \@thanks to have \footnotetext commands for
%              % producing footnotes.
%   \endgroup
%   \pagenumbering{arabic}  % Earlier pages use Roman
%  END

\def\maketitle{\par
 \twocolumn
 \begingroup
   \def\thefootnote{\fnsymbol{footnote}}
   \def\@makefnmark{\hbox   
       to 0pt{$^{\@thefnmark}$\hss}}   
   \twocolumn[\@maketitle]   
   \thispagestyle{firstpage}\@thanks
 \endgroup
 \setcounter{footnote}{0}
 \pagenumbering{arabic}
 \let\maketitle\relax
 \let\@maketitle\relax
 \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}

\def\@maketitle{\newpage
 \null
 \vskip 2em                 % Vertical space above title.
 \begin{flushleft}
  {\LARGE\bf \@title \par}     % Title set in \LARGE size and bold font.
  \vskip 1.5em                % Vertical space after title.
\end{flushleft}}

% \abstract removed as inappropriate to the iso style
%\def\abstract{\if@twocolumn
%\section*{Abstract}
%\else \small 
%\begin{center}
%{\bf Abstract\vspace{-.5em}\vspace{0pt}} 
%\end{center}
%\quotation 
%\fi}
%
%\def\endabstract{\if@twocolumn\else\endquotation\fi}

\f


%    ****************************************
%    *            PAGE STYLES               *
%    ****************************************
%
% The page style 'foo' is defined by defining the command \ps@foo.  This
% command should make only local definitions.  There should be no stray
% spaces in the definition, since they could lead to mysterious extra
% spaces in the output.
%
% The \ps@... command defines the macros \@oddhead, \@oddfoot,
% \@evenhead, and \@evenfoot to define the running heads and
% feet---e.g., \@oddhead is the macro to produce the contents of the
% heading box for odd-numbered pages.  It is called inside an \hbox of
% width \textwidth.
%
% To make headings determined by the sectioning commands, the page style
% defines the commands \sectionmark, ... , where
% \sectionmark{TEXT} is called by \section to set a mark, and so on.
% The \...mark commands and the \...head macros are defined with the
% help of the following macros.  (All the \...mark commands should be
% initialized to no-ops.)
%
% MARKING CONVENTIONS:
% LaTeX extends TeX's \mark facility by producing two kinds of marks
% a 'left' and a 'right' mark, using the following commands:
%     \markboth{LEFT}{RIGHT} : Adds both marks.
%     \markright{RIGHT}      : Adds a 'right' mark.
%     \leftmark  : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
%                  macro, gets the current 'left'  mark.  Works like TeX's 
%                  \botmark command.
%     \rightmark : Used in the \@oddhead, \@oddfoot, \@evenhead or \@evenfoot
%                  macro, gets the current 'right'  mark.  Works like TeX's 
%                  \firstmark command.
% The marking commands work reasonably well for right marks 'numbered 
% within' left marks--e.g., the left mark is changed by a \section command and
% the right mark is changed by a \clause command.  However, it does
% produce somewhat anomalous results if two \bothmark's occur on the same page.
% 
% Commands like \tableofcontents that should set the marks in some page styles
% use a \@mkboth command, which is \let by the pagestyle command (\ps@...)
% to \markboth for setting the heading or \@gobbletwo to do nothing.

\mark{{}{}}   % Initializes TeX's marks

% \ps@empty and \ps@plain defined in LATEX.TEX

% Definition of 'headings' page style 
%  Note the use of ##1 for parameter of \def\sectionmark inside the
%  \def\ps@headings.
% NDN: another one that's left in for old times' sake.
%

\if@twoside         % If two-sided printing.
\def\ps@headings{\let\@mkboth\markboth
\def\@oddfoot{}\def\@evenfoot{}%       No feet.
\def\@evenhead{\rm \thepage\hfil \sl \leftmark}%        Left heading.
\def\@oddhead{\hbox{}\sl \rightmark \hfil \rm\thepage}% Right heading.
\def\sectionmark##1{\markboth {\uppercase{\ifnum \c@secnumdepth >\z@
    \thesection\hskip 1em\relax \fi ##1}}{}}%
\def\clausemark##1{\markright {\ifnum \c@secnumdepth >\@ne
          \theclause\hskip 1em\relax \fi ##1}}}
\else               % If one-sided printing.
\def\ps@headings{\let\@mkboth\markboth
\def\@oddfoot{}\def\@evenfoot{}%     No feet.
\def\@oddhead{\hbox {}\sl \rightmark \hfil \rm\thepage}% Heading.
\def\sectionmark##1{\markright {\uppercase{\ifnum \c@secnumdepth >\z@
    \thesection\hskip 1em\relax \fi ##1}}}}
\fi

% Definition of 'myheadings' page style.  
% NDN: another one that's left in for old times' sake.
%
\def\ps@myheadings{\let\@mkboth\@gobbletwo
\def\@oddhead{\hbox{}\sl\rightmark \hfil \rm\thepage}%
\def\@oddfoot{}\def\@evenhead{\rm \thepage\hfil\sl\leftmark\hbox {}}%
\def\@evenfoot{}\def\sectionmark##1{}\def\clausemark##1{}}

% Definition of the 'isoheadings' page style.
% We allow the user to redefine the running header, should they wish.
\def\runninghead#1{\def\@runninghead{{#1}}}
\runninghead{{\thestandard -\theyear(E)}}	% default running header
\def\ps@isoheadings{\let\@mkboth\@gobbletwo
\def\@oddhead{\hfil{\Large\bf\@runninghead}}
\def\@evenhead{{\Large\bf\@runninghead}\hfil}
\def\@oddfoot{\hfil{\Large\bf\thepage}}
\def\@evenfoot{{\Large\bf\thepage}\hfil}
\def\sectionmark##1{}\def\clausemark##1{}}

% Definition of the 'firstpage' style. Used for the titlepage.
% Allow the user to redefine the banner thingy.
\def\documenttype#1{\def\@documenttype{{#1}}}
\documenttype{{INTERNATIONAL STANDARD}}		% default document type
\def\ps@firstpage{\let\@mkboth\@gobbletwo
\def\@oddhead{\vbox{\hrule height.3mm\vskip7pt\vfil
{\hbox to \textwidth{\Large\bf\@documenttype\hfil
\@runninghead}
}\vskip5pt\vfil\hrule height.3mm}}
\def\@evenhead{\vbox{\hrule height.3mm\vskip5pt\vfil
{\hbox to \textwidth{\Large\bf\@documenttype\hfil
\@runninghead}
}\vfil\hrule height.3mm}}
\def\@oddfoot{\hfil{\Large\bf\thepage}}
\def\@evenfoot{{\Large\bf\thepage}\hfil}
\def\sectionmark##1{}\def\clausemark##1{}}

\f


%    ****************************************
%    *            MISCELLANEOUS             *
%    ****************************************
%
% DATE
%
\def\today{\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
  \space\number\day, \number\year}

\def\theyear{\number\year}

%
% STANDARD NUMBER
%
\def\standard#1{\def\@standard{{#1}}
   \def\thestandard{ISO \@standard}}
\standard{XXXX}                      % default standard number

%
% PS-LaTeX COMPATIBILITY
%
% So that we can detect whether we are running PS-LaTeX, define the
% following:
\def\@pslfmtname{pslplain}

% Some useful characters
\ifx\fmtname\@pslfmtname
    %\def\backslash{\delimiter"05C30F }    % use PS '\' rather than cmsy one
    \chardef\lquote="C1                   % gives `
    \chardef\rquote="C2                   % gives '
\else
    \chardef\lquote="12                   % gives `
    \chardef\rquote="13                   % gives '
\fi

%
% USEFUL CHARACTERS
%
\def\bslash{\mbox{$\backslash$}}
\chardef\caret=`\^
\chardef\tilde="7E

%
% PROG
%
% The prog environment sets its contents in typewriter font and redefines
% \bslash to give a typewriter backslash.
% This definition also works in PS-LaTeX since "5C is the PostScript code for
% backslash.
\def\prog#1{\begingroup
    \chardef\bslash="5C
    \tt #1\endgroup}

%
% NEWVERBATIM
%
% \newverbatim{foo} creates a new environment, foo, which behaves exactly
% like the verbatim environment except that it is delimited by
% \begin{foo} ... \end{foo}.
% See the VERBATIM section of latex.tex for the inspiration behind this.
%
\def\newverbatim#1{\expandafter\def\csname #1\endcsname{%
\@verbatim \frenchspacing\@vobeyspaces \csname @x#1verbatim\endcsname}
\expandafter\let\csname end#1\endcsname=\endtrivlist
\new@xverbatim{#1}}

\begingroup \catcode `|=0 \catcode `[= 1
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12
|gdef|new@xverbatim#1[
|expandafter|def|csname @x#1verbatim|endcsname##1\end{#1}[##1|end[#1]]]
|endgroup

% IDENTIFICATION
% Documents may need to know what style they are using so we provide
% \stylename to tell them (by analogy with \fmtname).
% Other styles like article, report, ucthesis etc should also define
% this macro for it to be useful. Perhaps, one day, who knows...
%
\def\stylename{iso}

\f


%    ****************************************
%    *           INITIALIZATION             *
%    ****************************************
%
% Default initializations

\ps@isoheadings             % 'isoheadings' page style
\pagenumbering{roman}       % Roman page numbers (changed to Arabic by
			    %   \maketitle)
\onecolumn                  % Single column (for table of contents etc.)
			    %   changed to twocolumn by \maketitle)
\sloppy
\flushbottom
\if@twoside\else\raggedbottom\fi % Ragged bottom unless twoside option.