summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/iso
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 00:49:07 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 00:49:07 +0000
commit007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 (patch)
tree90d17e00e572ecb1e24764b6f29c80e098b08d29 /Master/texmf-dist/doc/latex/iso
parent950209b26f70aa87ed07c54f82a95b6f03b7c3a0 (diff)
doc/latex
git-svn-id: svn://tug.org/texlive/trunk@84 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/iso')
-rw-r--r--Master/texmf-dist/doc/latex/iso/README42
-rw-r--r--Master/texmf-dist/doc/latex/iso/isoman.pdfbin0 -> 454669 bytes
-rw-r--r--Master/texmf-dist/doc/latex/iso/isoman.tex3874
3 files changed, 3916 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/iso/README b/Master/texmf-dist/doc/latex/iso/README
new file mode 100644
index 00000000000..6f57204c0bd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/iso/README
@@ -0,0 +1,42 @@
+ The iso class is for typesetting ISO International Standard documents
+according to the requirements specified in "ISO/IEC Directives, Part 2,
+Rules for the structure and drafting of International Standards.
+(Fourth edition, 2001)". Configuration files for TeX4ht are also provided.
+
+Changes in the 2002 release
+o Updated from ISO/IEC Directives, Third edition, 1997 to the
+ Fourth edition, 2001.
+
+ The distribution is under the LPPL and consists of the following files:
+README (this file)
+isoe.dtx
+isoe.ins
+iso4ht.dtx
+iso4ht.ins
+isoman.tex
+isoman.pdf
+isoman.ps
+
+ To install the class (and packages)
+o run: latex isoe.ins (which will generate *.cls, *.clo, *.sty and *.tex files)
+o Optionally, to print the commented source code
+ o run: latex isoe.dtx
+ o run: makeindex -s gind.ist isoe
+ o run: latex isoe.dtx
+ o print isoe.dvi for a hardcopy
+o Move the generated files to a location where LaTeX will find them
+ (if you don't know where this is, see the FAQ on CTAN in /help/uktug-faq)
+o For the User Manual, either latex isoman.tex or print isoman.pdf or
+ isoman.ps
+
+o If you might use TeX4ht:
+ o run: latex iso4ht.dtx (which will generate *.4ht file(s))
+ o To print the commented source code, follow instructions above on iso4ht.dtx
+ o Move the generated *.4ht file(s) to a location where TeX4ht will find them
+
+ Don't forget to update the (La)TeX file database if you have one.
+
+2002/09/04
+Peter Wilson
+peter.r.wilson@boeing.com
+
diff --git a/Master/texmf-dist/doc/latex/iso/isoman.pdf b/Master/texmf-dist/doc/latex/iso/isoman.pdf
new file mode 100644
index 00000000000..f024f5db575
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/iso/isoman.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/iso/isoman.tex b/Master/texmf-dist/doc/latex/iso/isoman.tex
new file mode 100644
index 00000000000..18eb6cf29da
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/iso/isoman.tex
@@ -0,0 +1,3874 @@
+% isoman.tex User guide for ISO style files for LaTeX(2e) August 2002
+%
+\documentclass[wd,letterpaper,copyright]{isov2}
+%\documentclass[wd,letterpaper,draft]{isov2}
+%\documentclass{isov2}
+
+%%%\usepackage[isoman]{tex4ht}
+
+\usepackage{comment}
+
+%%%\usepackage{times}
+\usepackage{isorot}
+\usepackage{xtab}
+\usepackage{hyphenat}
+
+\ifpdf
+ \pdfoutput=1
+ \usepackage[plainpages=false,
+ pdfpagelabels,
+ bookmarksnumbered,
+ hyperindex=true
+ ]{hyperref}
+\fi
+
+\standard{LaTeX for ISO standards}
+\yearofedition{2002}
+\languageofedition{(E)}
+
+%\partno{3456}
+\changemarkstrue
+
+\makeindex
+
+% Uncomment the following to change the Foreword heading
+%\renewcommand{\forewordname}{Avant-propos} % change the Foreword title
+
+\setcounter{tocdepth}{3} % add more levels to table of contents
+%
+% remainder of preamble is some special macro definitions
+\makeatletter
+% the \meta{} command
+%
+\begingroup
+\obeyspaces%
+\catcode`\^^M\active%
+\gdef\meta{\begingroup\obeyspaces\catcode`\^^M\active%
+\let^^M\do@space\let \do@space%
+\def\-{\egroup\discretionary{-}{}{}\hbox\bgroup\it}%
+\m@ta}%
+\endgroup
+\def\m@ta#1{\leavevmode\hbox\bgroup\texttt{<}\textit{#1}\/\texttt{>}\egroup
+ \endgroup}
+\def\do@space{\egroup\space
+ \hbox\bgroup\it\futurelet\next\sp@ce}
+\def\sp@ce{\ifx\next\do@space\expandafter\sp@@ce\fi}
+\def\sp@@ce#1{\futurelet\next\sp@ce}
+%
+%
+\makeatother
+%
+% the \latex command
+\newcommand{\latex}{LaTeX}
+\newcommand{\tex}{TeX}
+%
+% the \file{} command
+%
+\newcommand{\file}[1]{\textsf{#1}}
+%
+\makeatletter
+% index a command
+\newcommand{\bs}{\symbol{'134}}
+\newcommand{\ixcom}[1]{\index{#1/ @{\tt \protect\bs #1}}}
+% index an environment
+\newcommand{\ixenv}[1]{\index{#1 @{\tt #1} (environment)}}
+% index a starred environment
+\newcommand{\ixenvs}[1]{\index{#1s @{\tt #1*} (environment)}}
+% index an option
+\newcommand{\ixopt}[1]{\index{#1 @{\tt #1} (option)}}
+% index a package
+\newcommand{\ixpack}[1]{\index{#1 @\file{#1} (package)}}
+% index a class
+\newcommand{\ixclass}[1]{\index{#1 @\file{#1} (class)}}
+% index in typewriter font
+\newcommand{\ixtt}[1]{\index{#1@{\tt #1}}}
+% index LaTeX
+\newcommand{\ixltx}{\index{latex@\latex}}
+% index LaTeX 2e
+\newcommand{\ixltxe}{\index{latex2e@\latex 2e}}
+% index LaTeX v2.09
+\newcommand{\ixltxv}{\index{latex209@\latex{} v2.09}}
+\makeatother
+%
+% end of preamble
+%
+\begin{document}
+
+
+\begin{cover}
+\vspace*{4in}
+\begin{center}
+\Huge\bfseries LaTeX for ISO standards
+\end{center}
+\begin{center}
+\bfseries 2002/08/10
+\end{center}
+\begin{center}
+Peter Wilson \\
+\texttt{peter.r.wilson@boeing.com}
+\end{center}
+\clearpage
+\end{cover}
+%%%\clearpage
+
+\begin{foreword}
+\fwdbp
+\fwdnopatents
+Annexes~\ref{anx:extraiso} and~\ref{anx:lord}
+are an integral part of this document.
+Annexes~\ref{anx:indexing}, \ref{anx:sgml}, \ref{anx:getstuff},
+and \ref{anx:changes}
+are for information only.
+\end{foreword}
+
+
+\begin{introduction}
+
+ This document describes the use of the \file{isov2} \latex{} class
+file and some package files in preparing ISO standard documents.
+
+\sclause*{Overview}
+
+ This document describes a \latex{} class file, called \file{isov2},
+ for typesetting ISO standards. It also
+provides descriptions of some particular package files (e.g., \file{isorot})
+that have been developed to support the writing of ISO standards.
+The electronic source of this document also provides an example of the
+use of these files.
+
+
+
+ The current set of files~\bref{isoe} have been developed by
+Peter Wilson (RPI, CUA and NIST, Boeing)
+from files written by Kent Reed (NIST).
+In turn, these were revisions of files originally created by
+Phil Spiby (CADDETC, UK), based on early work by
+Phil Kennicott (GE).\footnote{In mid 1994 \latex{} was upgraded from
+version 2.09 to what is called \latex 2e. The files described in
+earlier versions this document were compatible with both versions
+of \latex. Starting with the October 1997 release,
+support was withdrawn from any \latex{} v2.09 file versions.}
+
+
+ Documents produced with the \latex{} files have been reviewed
+by the ISO Editorial Board in Geneva for conformance to their typographical
+requirements. The first review was of a series of Draft International
+Standard documents. This review resulted in some changes to the style
+files. The second review was of a series of twelve International Standard
+documents (ISO 10303:1994). Likewise, this review led to changes in the
+style files to bring the documents into compliance.
+
+ With the publication of the ISO~10303:1994 standard, the opportunity
+was taken
+to provide a new baseline release of the package files.
+The new baseline release was also designed to address the fact that
+a major update of \latex{} to \latex 2e took place during 1994. \latex 2e
+is now the officially supported version. However, some users needed time
+to convert to using \latex 2e. Consequently, although the
+facilities described in the original version of this document
+were common for both
+\latex{} v2.09 and \latex 2e users, there were two different
+implementations.
+
+ Because ISO standard documents have a very structured layout, the class
+and package files have been designed to reflect the logical document structure
+to a much greater extent than the `standard' \latex{} files. Further, ISO
+documents are published in more than one language. The files described
+here are written for the English language, but the language-specific elements
+have been parameterized for easy modification for publication in other
+official ISO languages, such as French.
+
+ In 1997 ISO produced a new version of their Directives on the
+requirements for the layout of ISO documents. These were not completely
+unambiguous as to their intent; the current version was released in
+2001. Members of ISO TC184/SC4 have worked with
+the ISO Editorial Board and have reached an agreement that more precisely
+identifies the requirements. The current version of the \latex{} files
+implements that agreement.
+
+\begin{note}
+The original of this manual has been typeset using the \verb?draft?
+option in order to display its effect of placing a black box at the
+end of each line that is longer than the normal width of the text.
+\end{note}
+
+\begin{note}
+The author of this document may be contacted at
+\texttt{peter.r.wilson@boeing.com}.
+\end{note}
+
+\end{introduction}
+
+\title{LaTeX for ISO standards: User manual}%
+{Peter Wilson}%
+{August 2002}
+
+
+\scopeclause
+
+This manual describes a set of \ixltx\latex{} files for typesetting
+documents according to the ISO Directives Part 3 (third edition, 1997),
+together with some elements from the ISO~10303 Supplementary Directives.
+
+\begin{inscope}{manual}
+\item use of \latex{} for preparing ISO standard documents.
+\end{inscope}
+
+\begin{outofscope}{manual}
+\item use of \latex{} in general;
+\item use of other document preparation systems.
+\end{outofscope}
+
+\textbf{IMPORTANT:} No matter whether or not there are copyright attributions
+to ISO, this document is \emph{not} copyrighted by ISO. Any copyright
+markings are for illustrative purposes only. This document is released under
+the LaTeX Project Public Licence.
+
+\normrefsclause \label{sec:nrefs}
+
+\normrefbp{manual}
+\begin{nreferences}
+
+\isref{ISO/IEC Directives, Part 2}{Rules for the structure and drafting of
+ International Standards. (Fourth edition, 2001)}
+
+\isref{ISO TC 184/SC4 N1217:2001(E)}{SC4 Supplementary directives --- Rules
+ for the structure and drafting of SC4
+ standards for industrial data. (2001--11--01).}
+
+\isref{ISO/IEC 8824-1:1998}{Information technology ---
+ Abstract Syntax Notation One (ASN.1):
+ Specification of basic notation.}
+
+\disref{ISO}{Camera-ready copy (CRC) ---
+ Submission requirements and ISO type specification.
+ (Version 1.0, 1996-04-26)}
+
+\end{nreferences}
+
+\defabbclause
+%\clause{Terms, definitions, and abbreviations}
+
+\defsubclause
+%\sclause{Terms and definitions}
+
+ For the purposes of this manual, the following definitions
+apply.
+
+\begin{definitions}
+\definition{boilerplate}{text whose wording is fixed and has been agreed
+ to be present in a specific type of document} \index{boilerplate}
+\definition{style file}{a set of \latex{} macros assembled into a single
+ file with an extension \file{.sty}}
+ \index{style file}\ixltx\index{file!.sty}
+\definition{package file}{a style file for use with \latex 2e}\ixltxe
+\end{definitions}
+
+\abbsubclause
+%\sclause{Abbreviations}
+
+ For the purposes of this manual, the following abbreviations
+ apply.
+
+\begin{symbols}
+\symboldef{CD}{Committee Draft}\index{CD}
+\symboldef{DIS}{Draft International Standard}\index{DIS}
+\symboldef{FDIS}{Final Draft International Standard}\index{DIS}
+\symboldef{IS}{International Standard}\index{IS}
+\symboldef{IS-REVIEW}{The documentation style accepted by the ISO
+ Editorial Board review (September 1994) of twelve IS documents
+ (the initial release of ISO~10303) for compliance with ISO
+ typographical and layout requirements.}\index{IS-REVIEW}
+\symboldef{ISOD}{ISO/IEC Directives, Part 2}\index{ISOD}\index{ISO/IEC Directives}
+\symboldef{PAS}{Publicly Available Specification}\index{PAS}
+\symboldef{SD}{SC4 Supplementary directives}\index{SD}\index{Supplementary directives}
+\symboldef{TR}{Technical Report}\index{TR}
+\symboldef{TS}{Technical Specification}\index{TS}
+\symboldef{WD}{Working Draft}\index{WD}
+\symboldef{CRC}{The ISO \emph{Camera-ready copy (CRC)} document}\index{CRC}
+\symboldef{ToC}{table of contents}\index{ToC}
+\end{symbols}
+
+\clause{Conformance requirements} \label{sec:iconform}
+
+ The \latex{} macro source files shall not be modified.
+
+ If there is a need to modify the macro definitions then the
+modifications shall be defined in a separate \file{.sty}\index{file!.sty}
+ file (or files), using the
+\latex{} \verb|\renewcommand|\ixcom{renewcommand}
+and/or the
+\verb|\renewenvironment|\ixcom{renewenvironment}
+commands as appropriate. The resulting \file{.sty} file(s) shall then
+be called in within the preamble\index{preamble} portion of the
+document to be typeset.
+
+ Author specified \verb|\label{...}| commands shall not start with
+the characters \verb|;i| (semicolon and `i'); definition of labels
+starting with these characters is reserved for the maintainer of the
+facility files.
+
+
+\fcandaclause
+%\clause{Fundamental concepts and assumptions}
+
+ It is assumed that the reader of this document is familiar with the
+\latex{} document preparation system.\ixltx
+
+\begin{note}Reference~\bref{lamport} in the bibliography describes the
+ \latex{} system.
+\end{note}
+
+ The reader is also assumed to be familiar with the ISO/IEC Directives
+Part~2 (ISOD\index{ISOD}). Agreements reached between the ISO Editorial Board
+and ISO TC184/SC4 are documented in the SC4 Supplementary Directives
+(SD\index{SD}).
+
+ If there are any discrepancies between the layout and wording of this
+document and the requirements of the ISO/IEC Directives Part~2,
+then the requirements in that document shall be
+followed for any ISO standard document.
+
+ The \file{isov2}\ixclass{isov2} class requires the
+\file{url}\ixpack{url} package.
+
+\begin{note}
+Additional \latex{} facilities specifically designed for ISO~10303 are
+defined and described elsewhere~\bref{stepsty}.
+\end{note}
+
+ Because of many revisions over the years to the files described
+herein, a naming convention has been adopted for them.
+The primary name of the file is suffixed by \file{v\#} or \file{\#}, where
+\file{\#} is the version number of the file in question.
+All file primary names have been limited to a
+maximum of eight characters.
+
+\begin{note}
+ Table~\ref{tab:curfiles} shows the versions of the files that were
+current at the time of publication.
+\end{note} % end note
+\begin{note}
+Starting with the October 1997 release, files that were specific to
+\ixltxv\latex{} v2.09 are no
+longer either supported or supplied.
+\end{note}
+
+\begin{note}
+As of 1999, the \file{uschyp}\ixpack{uschyp} package is no longer supported.
+It has been replaced by the
+\file{hyphenat}\ixpack{hyphenat}\index{hyphenat.sty@\file{hyphenat.sty}}
+package.
+\end{note}
+
+\ixclass{isov2}\index{isov2.cls@\file{isov2.cls}}
+% \index{isonev11.sty@\file{isonev11.sty}}
+\ixopt{9pt}\index{iso9.clo@\file{iso9.clo}}
+% \index{iso9.sty@\file{iso9.sty}}
+\ixopt{10pt}\index{iso10.clo@\file{iso10.clo}}
+% \index{iso10.sty@\file{iso10.sty}}
+\ixopt{11pt}\index{iso11.clo@\file{iso11.clo}}
+% \index{iso11.sty@\file{iso11.sty}}
+\ixpack{isorot}\index{isorot.sty@\file{isorot.sty}}
+% \index{isrotne1.sty@\file{isrotne1.sty}}
+\ixpack{askinc}\index{askincv1.sty@\file{askincv1.sty}}
+\ixpack{xtab}\index{xtab.sty@\file{xtab.sty}}
+\ixpack{uschyp}\index{uschyp.sty@\file{uschyp.sty}}
+% \index{uschypne.sty@\file{uschypne.sty}}
+
+\begin{table}
+\centering
+\caption{Current file versions} \label{tab:curfiles}
+\begin{tabular}{|l|l|} \hline
+\textbf{Facility} & \textbf{File} \\ \hline\hline
+\file{iso} & \file{isov2.cls} \\
+9pt option & \file{iso9.clo} \\
+10pt option & \file{iso10.clo} \\
+11pt option & \file{iso11.clo} \\
+\file{isorot} & \file{isorot.sty} \\
+\file{askinc} & \file{askincv1.sty} \\
+\file{xtab} & \file{xtab.sty} \\
+\file{hyphenat} & \file{hyphenat.sty} \\ \hline
+\end{tabular}
+\end{table}
+
+
+\begin{anexample} At the time of
+publication of this document, any references to \file{iso.cls} should be
+read as actually referring to \file{isov2.cls}, and similarly for references
+to other files.
+\end{anexample} % end example
+
+
+\begin{note}This document is not intended for publication as a standard,
+although it has been laid out in a
+similar, but not necessarily identical, manner.\end{note} % end note
+
+
+\clause{The \file{iso} class facility}
+
+ The \latex{} \file{isov2}\ixclass{isov2} class file
+is a general file for use in preparing ISO
+standard documents using the \latex{} document preparation system.
+
+ As usual, any \latex{} document has the following structure:
+\begin{verbatim}
+\documentclass[<list of options>]{isov2}
+% preamble goes here
+\begin{document}
+% document body goes here
+\end{document}
+\end{verbatim}
+
+\sclause{Options}
+
+ The \file{isov2}\ixclass{isov2} class file supports the following options:
+\begin{itemize}
+\item \verb|draft|\ixopt{draft} for a draft document where
+ overfull horizontal boxes are marked, marginal notes are allowed,
+ and ISO copyright text is not placed in the document;
+\item \verb|final|\ixopt{final} the opposite of \verb|draft|
+ (this is the default);
+\item \verb|letterpaper|\ixopt{letterpaper} for printing
+ on US letter size paper;
+\item \verb|a4paper|\ixopt{a4paper} for printing on A4
+ size paper (this is the default);
+\item \verb|twocolumn|\ixopt{twocolumn} for two column
+ formatting;
+\item \verb|onecolumn|\ixopt{onecolumn} for single column
+ printing (this is the default);
+\item One of \verb|11pt|, \ixopt{11pt}
+ \verb|10pt|, \ixopt{10pt}
+ \verb|9pt|\ixopt{9pt} for 11pt, 10pt or 9pt printing
+ respectively (the default is \verb|11pt|);
+\item \verb|notcopyright|\ixopt{notcopyright} for
+ disabling the printing of copyright notices (this is the default);
+\item \verb|copyright|\ixopt{copyright} enables printing
+ of copyright notices;
+\item \verb|is|\ixopt{is} for International Standard documents;
+\item \verb|fdis|\ixopt{fdis} for Final Draft
+ International Standard documents; \index{FDIS}
+\item \verb|dis|\ixopt{dis} for Draft
+ International Standard documents; \index{DIS}
+\item \verb|cd|\ixopt{cd} for Committee Draft
+ standard documents; \index{CD}
+\item \verb|wd|\ixopt{wd} for Working Draft
+ standard documents; \index{WD}
+\item \verb|pas|\ixopt{pas} for Publicly Available Specification
+ standard documents;
+\item \verb|techrep|\ixopt{techrep} for Technical
+ Report standard documents; \index{TR}
+\item \verb|techspec|\ixopt{techspec} for Technical
+ Spefication standard documents; \index{TS}
+\item \verb|otherdoc|\ixopt{otherdoc} for documents
+ that are not intended to become a standard (this is the default);
+%\item \verb|uglycaption|\ixopt{uglycaption} to produce
+% an ugly style of captioning;
+\item Any other facilities that are available via packages.
+\end{itemize}
+
+ When no options are specified, then the result is 11pt, single column
+printing on A4 size paper, without copyright notice and a running header.
+That is, by default, the options set are:
+\verb|final|\ixopt{final};
+\verb|a4paper|\ixopt{a4paper};
+\verb|onecolumn|\ixopt{onecolumn};
+\verb|11pt|\ixopt{11pt};
+\verb|notcopyright|\ixopt{notcopyright}; and
+\verb|otherdoc|\ixopt{otherdoc}.
+
+
+%\begin{note}ISOD\index{ISOD} calls for 9pt double column printing but the
+% SD\index{SD} calls for 11pt single column printing.
+% Using 9pt double column printing is awkward if any computer
+% code has to
+% be typeset in the document. The IS-REVIEW\index{IS-REVIEW} accepted
+% 11pt single column layout. \end{note} % end note
+%\begin{note}The CRC\index{CRC} states that acceptable founts are: Univers,
+% Helvetica, and Times Roman with the body text in 10pt.
+% The IS-REVIEW accepted camera-ready copy
+% using Computer Modern 11pt set in single column. \end{note}
+\begin{note}The user of the \file{isov2}\ixclass{isov2} class is encouraged
+ to process this document using
+ different combinations of the options to gain experience with
+ their effects. This printing of the document is typeset using the
+ \verb|draft|\ixopt{draft} option.
+\end{note} % end note
+\begin{note}
+ The \verb|otherdoc|\ixopt{otherdoc} option
+was chosen as the default so that the
+current stage of ISO standardardization has to be explicitly declared
+as an option, and is therefore available to any software package that
+might process the document source (e.g., a \latex{} to SGML translator).
+\end{note}
+
+
+\sclause{Sectioning commands}
+
+ Table~\ref{tab:sec} gives the sectioning commands defined for \file{isov2}
+class documents.
+\ixcom{clause} \ixcom{normannex} \ixcom{infannex} \ixcom{repannex}
+\ixcom{sclause}
+\ixcom{ssclause}
+\ixcom{sssclause}
+\ixcom{ssssclause}
+\ixcom{sssssclause}
+
+\begin{table}
+\centering
+\caption{Sectioning commands.} \label{tab:sec}
+\begin{tabular}{|c|l|} \hline
+\textbf{Level} & \textbf{Command} \\ \hline\hline
+1 & \verb|\clause|, \verb|\normannex|, \verb|\infannex|, \verb|\repannex| \\
+2 & \verb|\sclause| \\
+3 & \verb|\ssclause| \\
+4 & \verb|\sssclause| \\
+5 & \verb|\ssssclause| \\
+6 & \verb|\sssssclause| \\ \hline
+\end{tabular}
+\end{table}
+
+% The \verb|\section|\ixcom{section} command
+% is similar to the normal \latex{} \verb|\part|\ixcom{part}
+%command. It is only available when the \verb|sect|\ixopt{sect}
+%option is specified.
+
+ The \verb|\clause|\ixcom{clause} commands are similar to
+the normal \latex{} \verb|\section|ing
+commands. There are also starred versions of these commands
+(e.g., \verb|\clause*|).
+
+ Three varieties of annex\index{annex} commands are available:
+\begin{itemize}
+\item \verb+\normannex{+\meta{title}\verb+}+\ixcom{normannex}
+ for a normative annex;
+\item \verb+\infannex{+\meta{title}\verb+}+\ixcom{infannex}
+ for an informative annex;
+\item \verb+\repannex{+\meta{title}\verb+}+\ixcom{repannex}
+ for an annex that is neither normative or
+ informative (e.g. an annex in a technical report).
+\end{itemize}
+
+ Only \verb|\sclause|\ixcom{sclause} and lower level
+sectioning commands can be used after
+an annex\index{annex} command.
+
+
+\begin{example}
+ The command \verb|\infannex{Technical discussion}|, assuming that this is the first
+annex in the document, produces:
+ \begin{center}
+ \textbf{Annex A}\\
+ (informative)
+
+ \textbf{Technical discussion}
+ \end{center}
+\end{example} % end example
+\begin{example}
+ The command \verb|\repannex{Title of annex}|, assuming that this is the second
+annex in the document, produces:
+
+\begin{center}
+ \textbf{Annex B}
+
+ \textbf{Title of annex}
+\end{center}
+\end{example} % end example
+
+
+\ssclause{The use of \texttt{tocdepth} and \texttt{secnumdepth}}
+
+ In the standard \latex{} classes the
+\verb|tocdepth|\ixtt{tocdepth} and
+\verb|secnumdepth|\ixtt{secnumdepth} counters
+are set in the preamble\index{preamble} to respectively control the level at
+which clause titles are inserted into a table of contents (ToC)\index{ToC}
+and at which clause numbering ceases.
+
+ In the \file{isov2}\ixclass{isov2} class,
+the values of these can be changed at
+any point in the document. The change lasts until another change is
+made to the value.
+\begin{example}
+ Assume that in the preamble we have
+\begin{verbatim}
+\setcounter{secnumdepth}{3} % number ssclauses and above
+\setcounter{tocdepth}{3} % ToC includes ssclauses and above
+\end{verbatim}
+and that a certain subclause has subsubclauses that should be numbered but
+not put into the table of contents, then we could do:
+\begin{verbatim}
+...
+\sclause{The certain subclause}
+\setcounter{tocdepth}{2}
+...
+\ssclause{Numbered but not in ToC}
+...
+...
+\setcounter{tocdepth}{3}
+\sclause{Following subclause}
+\end{verbatim}
+
+\end{example}
+
+ It can sometimes be difficult to remember which level number corresponds
+to which kind of clause. Accordingly, a set of commands are provided to ease
+this task. These commands can only be used after the preamble.
+\begin{itemize}
+\item \verb|\maxsecnumdepth{|\meta{sec}\verb|}|\ixcom{maxsecnumdepth}
+ sets the level at which clauses will be numbered. This command
+ should be used before the first sectioning command.
+\item \verb|\maxtocdepth{|\meta{sec}\verb|}|\ixcom{maxtocdepth}
+ sets the level at which clauses will be put into the ToC.
+ This command should be used before the \verb|\tableofcontents| command.
+\item \verb|\setsecnumdepth{|\meta{sec}\verb|}|\ixcom{setsecnumdepth}
+ sets the current level at which clauses will be numbered.
+ This command can be used anywhere after the preamble.
+\item \verb|\settocdepth{|\meta{sec}\verb|}|\ixcom{settocdepth}
+ sets the current level at which clauses will put into the ToC.
+ This command can be used anywhere after the preamble.
+\end{itemize}
+The value of the argument \meta{sec} can be any of the following:
+\texttt{clause}, \texttt{sclause}, \ldots, \texttt{sssssclause}.
+
+\begin{example}
+Using these commands, the previous example can also be coded as:
+\begin{verbatim}
+...
+\begin{document}
+\maxsecnumdepth{ssclause}
+\maxtocdepth{ssclause}
+...
+\sclause{The certain subclause}
+\settocdepth{sclause}
+...
+\ssclause{Numbered but not in ToC}
+...
+...
+\settocdepth{ssclause}
+\sclause{Following subclause}
+\end{verbatim}
+
+\end{example}
+
+
+
+\sclause{LaTeX environments and commands}
+
+ Many of the standard \latex{} environments and commands are available.
+In particular, all the normal mathematical typesetting capabilities are
+present.
+However, there are some additional environments and commands defined.
+
+\ssclause{Lists}
+
+ The standard \latex{} \verb|itemize|,\ixenv{itemize}
+\verb|enumerate|\ixenv{enumerate} and \verb|description|\ixenv{description}
+environments are provided. The labels in these lists, though, differ from
+those normally provided by \latex.
+
+\begin{note}
+The ISOD describes only a single level for an itemized list, being marked
+with either an em-dash or a bullet. The SD deprecates the bullet but
+provides four levels, each being marked with an em-dash. These are
+provided in the \file{isov2} class.
+\end{note}
+\begin{note}
+The ISOD allows for two levels of enumerated lists. The SD extends this
+to four levels, and these are provided in the \file{isov2} class.
+\end{note}
+
+\begin{example}
+The list environments provided are shown below as:\ixenv{itemize}
+\begin{verbatim}
+\begin{itemize}
+\item First level itemized element;
+ \begin{itemize}
+ \item Second level itemized element;
+ \begin{itemize}
+ \item Third level itemized element;
+ \begin{itemize}
+ \item Fourth level itemized element.
+ \end{itemize}
+ \end{itemize}
+ \end{itemize}
+\end{itemize}
+\end{verbatim}
+
+\ixenv{enumerate}
+\begin{verbatim}
+\begin{enumerate}
+\item First level enumerated element;
+ \begin{enumerate}
+ \item Second level enumerated element;
+ \begin{enumerate}
+ \item Third level enumerated element;
+ \begin{enumerate}
+ \item Fourth level enumerated element.
+ \end{enumerate}
+ \end{enumerate}
+ \end{enumerate}
+\end{enumerate}
+\end{verbatim}
+
+\ixenv{description}
+\begin{verbatim}
+\begin{description}
+\item[Description] a description element. Note that a colon is
+ automatically added to the item label.
+\end{description}
+\end{verbatim}
+and they produce
+\begin{itemize}
+\item First level itemized element;
+ \begin{itemize}
+ \item Second level itemized element;
+ \begin{itemize}
+ \item Third level itemized element;
+ \begin{itemize}
+ \item Fourth level itemized element.
+ \end{itemize}
+ \end{itemize}
+ \end{itemize}
+\end{itemize}
+
+\begin{enumerate}
+\item First level enumerated element;
+ \begin{enumerate}
+ \item Second level enumerated element;
+ \begin{enumerate}
+ \item Third level enumerated element;
+ \begin{enumerate}
+ \item Fourth level enumerated element.
+ \end{enumerate}
+ \end{enumerate}
+ \end{enumerate}
+\end{enumerate}
+
+\begin{description}
+\item[Description] a description element. Note that a colon is
+ automatically added to the item label.
+\end{description}
+
+\end{example} % end example
+
+\begin{example}
+ Here is a more complex set of lists:
+
+\begin{itemize}
+\item First level itemization
+ \begin{enumerate}
+ \item First level enumeration
+ \begin{itemize}
+ \item Second level itemization
+ \begin{enumerate}
+ \item Second level enumeration
+ \begin{itemize}
+ \item Third level itemization
+% \begin{enumerate} % At this point the list is too deeply nested.
+% \item Third level enumeration % For the TeXnophile this is
+% \item 3rd level enumeration % because the example environment
+% \end{enumerate} % is itself a list.
+ \item 3rd level itemization
+ \end{itemize}
+ \item 2nd level enumeration
+ \end{enumerate}
+ \item 2nd level itemization
+ \end{itemize}
+ \item 1st level enumeration
+ \end{enumerate}
+\item 1st level itemization
+\end{itemize}
+
+\end{example} % end example
+
+\begin{note}
+On occasion, \latex{} objects to a well formed list. Typically, this happens
+when a list has only one entry. \index{list!error}
+ The \latex{} error message is of the form:
+\begin{verbatim}
+! Something's wrong--perhaps a missing \item.
+\end{verbatim}
+Hitting the \verb|<return>| key usually gets \latex{} to run on happily.
+\end{note}% end note
+\begin{note}
+Similarly, you may get the message
+\begin{verbatim}
+! Too deeply nested
+\end{verbatim}
+Again, hit \verb|<return>| and processing should continue. However,
+the indentation of later lists may not be correct.
+\end{note} % end note
+
+
+\ssclause{Notes}
+
+
+ Two different kinds of environments are provided for typesetting notes.
+
+\sssclause{Numbered notes}
+
+ The environment
+\verb+\begin{note}+ \meta{text} \verb+\end{note}+\ixenv{note}
+produces a numbered note whose body consists
+of \meta{text}.
+
+\begin{anexample}
+The commands
+\begin{verbatim}
+\begin{note}Numbered note.\end{note}
+\end{verbatim}
+produce
+
+\begin{note}Numbered note.\end{note}
+\end{anexample}
+
+\sssclause{Isolated notes}
+
+ The environment
+\verb+\begin{anote}+ \meta{text} \verb+\end{anote}+\ixenv{anote}
+produces an un-numbered note whose body
+consists of \meta{text}.
+
+\begin{anexample}
+ The commands
+\begin{verbatim}
+\begin{anote}Plain note.\end{anote}
+\end{verbatim}
+produce
+
+\begin{anote}Plain note.\end{anote}
+\end{anexample} % end example
+
+
+\ssclause{Examples} \label{ssc:ex}
+
+ Two different kinds of environments are provided for typesetting
+examples.
+
+\sssclause{Numbered examples} \label{cl:numex}
+
+The environment \verb?\begin{example}? \meta{text} \verb?\end{example}?
+produces a numbered example whose body consists of \meta{text}.
+
+\begin{anexample}
+The commands
+\begin{verbatim}
+\begin{example}Numbered example. \label{ex:exref} \end{example}
+\end{verbatim}
+produce
+
+\begin{example}Numbered example. \label{ex:exref} \end{example}
+\end{anexample}
+
+\begin{anote}
+Numbered examples (and numbered notes) may be identified using the
+\verb?\label{...}?\ixcom{label} command, as exhibited in \eref{ex:exref}
+in \ref{cl:numex}, and then referred to by the
+\verb?\ref{...}?\ixcom{ref} command.
+\end{anote}
+
+\sssclause{Isolated examples}
+
+The environment \verb?\begin{anexample}? \meta{text} \verb?\end{anexample}?
+produces an un-numbered example whose body consists of \meta{text}.
+\ixenv{anexample}
+
+\begin{anexample}
+The commands
+\begin{verbatim}
+\begin{anexample}Isolated example.\end{anexample}
+\end{verbatim}
+produce
+
+\begin{anexample}Isolated example.\end{anexample}
+\end{anexample}
+
+
+
+\ssclause{Bibliographic references}
+
+ Two different kinds of environments are provided for bibliographic
+references. It should be noted that neither of these has anything to do with
+BibTeX.\index{BibTeX}
+
+\sssclause{Normative references}
+
+ Normative references are listed in the
+\verb|nreferences|\ixenv{nreferences} environment.
+
+ In this environment, bibliographic entries are denoted by either
+\verb+\isref{+\meta{ref}\verb+}{+\meta{title}\verb+}+ or by
+\verb+\disref{+\meta{ref}\verb+}{+\meta{title}\verb+}+. The
+\meta{ref} parameter is the number of the standard document and
+the \meta{title} parameter is the title of the standard.
+
+ Use the \verb|\isref|\ixcom{isref} command for published standards
+and the \verb|\disref|\ixcom{disref}
+ command for documents that have not yet been
+finally approved as a standard. This latter command automatically adds a
+footnote to the effect that the document is
+to be published.
+
+\begin{example}
+The \latex{} source for the references in clause~\ref{sec:nrefs} of
+this document is:
+\begin{verbatim}
+\begin{nreferences}
+\isref{ISO/IEC Directives, Part 2}{Rules for the structure and drafting of
+ International Standards. (Fourth edition, 2001)}
+...
+...
+\disref{ISO}{Camera-ready copy (CRC) ---
+ Submission requirements and ISO type specification.
+ (Version 1.0, 1996-04-26)}
+\end{nreferences}
+\end{verbatim}
+\end{example} % end example
+
+
+\sssclause{Informative references}
+
+ Informative bibliography elements are listed in the
+\verb|references|\ixenv{references} environment.
+Each element in the list is specified as
+\verb+\reference{+\meta{author}\verb+}{+\meta{title}\verb+}{+\meta{publisher}\verb+}+.\ixcom{reference}
+
+\begin{example}
+The \latex{} source for the bibliography in one version of this document was:
+\begin{verbatim}
+\infannex{Bibliography}
+\begin{references}
+\reference{LAMPORT, L.,}{\latex\/ A Document Preparation System,}%
+ {Addison-Wesley Publishing Co., 1986} \label{lamport}
+\reference{GOOSSENS, M., MITTELBACH, F. and SAMARIN, A.,}{%
+ The \latex\/ Companion,}
+ Addison-Wesley Publishing Co., 1994} \label{goosens}
+\reference{CHEN, P. and HARRISON, M.A.,}{Index preparation and
+ processing,}{Software--Practice and Experience, 19(9):897--915,
+ September 1988.} \label{chen}
+....
+\end{references}
+
+\end{verbatim}
+\end{example} % end example
+
+ Informative references may be cited in the text via the \latex{}
+\verb|\label|\ixcom{label} and \verb|\ref|\ixcom{ref}
+mechanism. Note that \verb|\cite|\ixcom{cite} is not available
+for references to bibliographic items. For the purposes of
+ISO documents, the command
+\verb+\bref{+\meta{ref}\verb+}+\ixcom{bref}
+is supplied which
+properly formats a bibliographic reference.
+
+\ssclause{Listing of scope items}
+
+ The \verb|inscope|\ixenv{inscope} and
+\verb|outofscope|\ixenv{outofscope}
+environments are provided for itemized listing of elements that
+are within and outside the scope of the standard. Each list
+element is introduced via the \verb|\item|\ixcom{item} command.
+Some boilerplate
+text is also printed that introduces the scope list.
+
+ The environments take one parameter, \meta{text}, that must read
+naturally in a sentence of the form: `The following are within/outside
+the scope of this \meta{text}:'. The non-parameterized part of this
+sentence is specified by the commands
+|\verb|\inscopename|\ixcom{inscopename} and
+\verb|\outofscopename|\ixcom{outofscopename}
+ respectively for `within' and `outside'.
+
+\begin{example}The following text was printed by the commands shown at the
+end of the example.
+
+\begin{inscope}{part of ISO~10303}
+\item use of \latex{} for preparing ISO standard documents;
+\item use of \latex{} for preparing ISO~10303 documents.
+\end{inscope}
+
+\begin{outofscope}{part of ISO~10303}
+\item use of \latex{} in general;
+\item use of other document preparation systems.
+\end{outofscope}
+
+\begin{verbatim}
+\begin{inscope}{part of ISO~10303}
+\item use of \latex{} for preparing ISO standard documents;
+\item use of \latex{} for preparing ISO~10303 documents.
+\end{inscope}
+
+\begin{outofscope}{part of ISO~10303}
+\item use of \latex{} in general;
+\item use of other document preparation systems.
+\end{outofscope}
+\end{verbatim}
+
+\end{example} % end example
+
+\ssclause{Listing of definitions}
+
+ The \verb|\begin{olddefinitions}| \ldots \verb|\end{olddefinitions}|
+\ixenv{olddefinitions} environment is provided for
+listing terms that have been defined within
+the normatively referenced documents. Each term in the list is specified as: \\
+\verb+\olddefinition{+\meta{phrase}\verb+}{+\meta{supplement}\verb+}+\ixcom{olddefinition}.
+
+
+ The \verb|\begin{definitions}| \ldots \verb|\end{definitions}|
+\ixenv{definitions} environment is provided for listing
+the definitions of terms specific to the
+document being written. Each term in the
+list is specified as: \ixcom{definition} \\
+\verb+\definition{+\meta{phrase}\verb+}{+\meta{definition text}\verb+}+.
+
+
+\begin{example}A listing of terms defined elsewhere could be specified as:
+
+\begin{verbatim}
+\begin{olddefinitions}
+\olddefinition{application protocol (AP)}{}
+\olddefinition{integrated resource}{}
+\end{olddefinitions}
+\end{verbatim}
+\end{example} % end example
+\begin{example}The definition listing earlier in this document was produced by:
+
+\begin{verbatim}
+\begin{definitions}
+\definition{boilerplate}{text whose wording is fixed ...}
+\definition{style file}{a set of \latex{} macros assembled
+ into a single file}
+...
+\end{definitions}
+\end{verbatim}
+\end{example} % end example
+
+
+\ssclause{Listing of abbreviations}
+
+ The \verb|\begin{symbols}| \ldots \verb|\end{symbols}|\ixenv{symbols}
+environment is provided for listing symbols
+and abbreviations. Each term (either symbol or abbreviation) in the list is
+specified as: \ixcom{symboldef} \\
+ \verb+\symboldef{+\meta{symbol}\verb+}{+\meta{definition text}\verb+}+.
+
+\begin{example}The list of abbreviations earlier in this document was specified as:
+\begin{verbatim}
+\begin{symbols}
+\symboldef{DIS}{Draft International Standard}
+\symboldef{IS}{International Standard}
+...
+\end{symbols}
+\end{verbatim}
+\end{example} % end example
+
+\sclause{Floating bodies}
+
+ \latex{} provides the \verb|figure|\ixenv{figure}
+and \verb|table|\ixenv{table} environments.
+Captions (produced by the \verb|\caption|\ixcom{caption}
+command) increment the figure or
+table number and add the caption to the relevant contents listing file.
+
+\index{floats} \index{floats!continuation}
+
+ The command
+\verb+\contcaption{+\meta{text}\verb+}+\ixcom{contcaption}
+may be used instead. This command neither increments the number nor adds
+anything to the listing files.
+
+\begin{example}
+The following code:
+\begin{verbatim}
+\begin{table}[tbp]
+\centering
+\caption{Example table in three parts} \label{tab:cont}
+\begin{tabular}{|c|c|} \hline
+\textbf{Col 1} & \textbf{Col 2} \\ \hline\hline
+A & 1 \\
+B & 2 \\ \hline
+\end{tabular}
+\end{table}
+
+\begin{table}[tbp]
+\centering
+\contcaption{(continued)}
+\begin{tabular}{|c|c|} \hline
+\textbf{Col 1} & \textbf{Col 2} \\ \hline\hline
+C & 3 \\
+D & 4 \\ \hline
+\end{tabular}
+\end{table}
+
+\begin{table}[tbp]
+\centering
+\contcaption{(concluded)}
+\begin{tabular}{|c|c|} \hline
+\textbf{Col 1} & \textbf{Col 2} \\ \hline\hline
+E & 5 \\
+F & 6 \\ \hline
+\end{tabular}
+\end{table}
+\end{verbatim}
+produces the three-part \tref{tab:cont}. \end{example} %end example
+
+\begin{table}[tbp]
+\centering
+\caption{Example table in three parts} \label{tab:cont}
+\begin{tabular}{|c|c|} \hline
+\textbf{Col 1} & \textbf{Col 2} \\ \hline\hline
+A & 1 \\
+B & 2 \\ \hline
+\end{tabular}
+\end{table}
+
+\begin{table}[tbp]
+\centering
+\contcaption{(continued)}
+\begin{tabular}{|c|c|} \hline
+\textbf{Col 1} & \textbf{Col 2} \\ \hline\hline
+C & 3 \\
+D & 4 \\ \hline
+\end{tabular}
+\end{table}
+
+\begin{table}[tbp]
+\centering
+\contcaption{(concluded)}
+\begin{tabular}{|c|c|} \hline
+\textbf{Col 1} & \textbf{Col 2} \\ \hline\hline
+E & 5 \\
+F & 6 \\ \hline
+\end{tabular}
+\end{table}
+
+\sclause{Title command}
+
+
+ The command to produce the title of the standard\ixcom{title}
+is
+\verb+\title{+\meta{intro}\verb+}{+\meta{main}\verb+}{+\meta{compl}\verb+}+.
+The command takes three parameters
+according to the three elements of the title as specified in the ISO directives.
+\begin{enumerate}
+\item \meta{intro} The introductory element of the title. This may be empty.
+\item \meta{main} The main element of the title.
+\item \meta{compl} The complementary element of the title. This may be empty.
+\end{enumerate}
+
+\begin{example}
+If this were actually meant to be an ISO standard, then the \latex{} source
+for the title of this document might be:
+\begin{verbatim}
+\title{Industrial automation systems and integration}%
+{Product data representation and exchange}%
+{Part 3456 : Documentation methods: The LaTeX style
+file reference manual}
+\end{verbatim}
+\end{example} % end example
+
+\begin{anote}There must be a space on either side of the colon separating the
+part number and the final part of the title.
+\end{anote}% end of note
+
+ Three other commands are used for setting the running header throughout the
+document. These shall be placed in the preamble.\index{preamble}
+
+ The command \verb+\standard{+\meta{number of standard}\verb+}+ is used to identify
+the standard.\ixcom{standard}
+
+ The command \verb+\yearofedition{+\meta{year}\verb+}+ is used to identify the
+\ixcom{yearofedition} year of the edition.
+
+ The command
+\verb+\languageofedition{+\meta{code}\verb+}+\ixcom{languageofedition}
+ is used to identify the language of the edition.
+
+\begin{example}
+This document is identified by:
+\begin{verbatim}
+\standard{LaTeX for standards}
+\yearofedition{1997}
+\languageofedition{(E)}
+\end{verbatim}
+\end{example} % end of example
+
+ As a convenience the vacuous command \verb+\extrahead+\ixcom{extrahead}
+is supplied which will add it's contents, if any, to the header. It may
+be used, for example, to add a document number to the header by
+\verb+\renewcommand{\extrahead}{Doc number}+. If \verb+\extrahead+ is
+modified it must be done in the preamble.
+
+ The \verb|\title|\ixcom{title} command sets the page numbering
+style to be arabic,
+starts a new page, numbered 1, and puts the title
+at the start of the page. It also puts the appropriate header at the top
+of the page, dependending on the particular combination of selected
+options.
+
+\begin{anote}
+Remember that you have to use the \verb|copyright|\ixopt{copyright}
+option to enable printing of copyright symbols and notices.
+\end{anote}
+
+\ssclause{The cover}
+
+ For publication, ISO want to be supplied with a document starting
+on page iii with the ToC. They supply the cover (page i) and page ii.
+
+It can often be useful to have a cover page for documents while they
+are in the process of being prepared for submittal to ISO.
+ The \verb+cover+\ixenv{cover} environment is provided for that
+purpose. The contents of the environment must not exceed one page and the
+contents must have a \verb+\clearpage+\ixcom{clearpage} immediately before
+the end. The \verb+cover+ environment also prints page ii, which has a
+copyright notice on it if the document is copyrighted.
+
+ For example, this document starts with:
+\begin{verbatim}
+\begin{cover}
+\vspace*{4in}
+\begin{center}
+\Huge\bfseries LaTeX for standards
+\end{center}
+\begin{center}
+\bfseries 2001/07/06
+\end{center}
+\begin{center}
+Peter Wilson \\
+\texttt{peter.r.wilson@boeing.com}
+\end{center}
+\clearpage
+\end{cover}
+\end{verbatim}
+
+\sclause{Cross referencing commands}
+
+ The usual \latex{} \verb+\label+\ixcom{label} and
+\verb+\ref+\ixcom{ref} commands are supported. The class also
+provides some formatted referencing commands in addition to \verb+\ref+.
+
+ The following commands are useful for referring to figures, clauses etc.
+Each takes a parameter that is the parameter of a \latex{} \verb|\label{}|
+command.
+
+\begin{itemize}
+\item The command \verb|`\aref{anx:lord}'|\ixcom{aref} prints `\aref{anx:lord}'
+ while \verb|`\ref{anx:lord}'|\ixcom{ref}
+ prints `\ref{anx:lord}'
+\item The command \verb|`\bref{lamport}'|\ixcom{bref} prints `\bref{lamport}'
+ while \verb|`\ref{lamport}'|\ixcom{ref}
+ prints `\ref{lamport}'
+\item The command \verb|`\cref{sec:nrefs}'|\ixcom{cref} prints `\cref{sec:nrefs}'
+ while \verb|`\ref{sec:nrefs}'|\ixcom{ref}
+ prints `\ref{sec:nrefs}'
+\item The command \verb|`\eref{sec:nrefs}'|\ixcom{eref} prints `\eref{sec:nrefs}'
+ while \verb|`\ref{sec:nrefs}'|\ixcom{ref}
+ prints `\ref{sec:nrefs}'
+\item The command \verb|`\fref{sec:nrefs}'|\ixcom{fref} prints `\fref{sec:nrefs}'
+ while \verb|`\ref{sec:nrefs}'|\ixcom{ref}
+ prints `\ref{sec:nrefs}'
+\item The command \verb|`\nref{sec:nrefs}'|\ixcom{nref} prints `\nref{sec:nrefs}'
+ while \verb|`\ref{sec:nrefs}'|\ixcom{ref}
+ prints `\ref{sec:nrefs}'
+\item The command \verb|`\tref{sec:nrefs}'|\ixcom{tref} prints `\tref{sec:nrefs}'
+ while \verb|`\ref{sec:nrefs}'|\ixcom{ref}
+ prints `\ref{sec:nrefs}'
+\item The command \verb|`\pref{sec:nrefs}'|\ixcom{pref} prints
+ `\pref{sec:nrefs}'.
+\end{itemize}
+
+
+
+
+\sclause{Heading commands}
+
+\ssclause{Foreword}
+
+ The \verb|foreword|\ixenv{foreword} environment specifies
+that a table of contents, list of
+figures and list of tables be produced, and starts a new unnumbered
+clause called Foreword.
+Formatting is one column style only and roman page numbering is set. The
+table of contents starts on page iii.
+
+ More precisely, the title of the clause is given by the value of
+\verb|\forewordname|\ixcom{forewordname} (see \aref{anx:extraiso}).
+
+\begin{note}
+The default style only lists level 1 clauses in the table of contents. If you
+need a more detailed listing, then put the command
+\verb|\setcounter{tocdepth}{<level #>}|\ixcom{setcounter}\ixtt{tocdepth}
+in the preamble.\index{preamble}
+For example \verb|\setcounter{tocdepth}{3}| will produce a contents
+listing down to the level of \verb|\ssclause| (see \tref{tab:sec} for
+the definitions of clause levels).
+\end{note} %end note
+
+ The command \verb+\fwdbp+\ixcom{fwdbp} prints the
+ISO specified boilerplate for
+the initial paragraphs of a foreword.
+
+ The boilerplate for a Technical Specification (ISO/TS) or a
+Publicly Available Specification (ISO/PAS) differs from that
+for a standard. The command \verb|\tspasfwdbp|\ixcom{tspasfwdbp}
+prints some of this boilerplate.
+\begin{example}
+In this document, \verb|\tspasfwdbp| prints:
+
+\tspasfwdbp
+\end{example}
+\begin{note}
+ The required paragraph immediately following this boilerplate is:
+
+ISO/PAS [or ISO/TS] \ldots was prepared by Technical Committee ISO/TC \ldots
+\end{note}
+
+%% The boilerplate for a Technical Report (TR) also differs from that for
+%%a standard.
+%%The command \verb|\trfwdbpi|\ixcom{trfwdbpi}
+%%prints some of this boilerplate.
+%%\begin{example}
+%%In this document, \verb|\trfwdbpi| prints:
+%%
+%%\trfwdbpi
+%%\end{example}
+
+ The \verb|\fwdnopatents|\ixcom{fwdnopatents}
+prints out the Foreword
+boilerplate paragraph concerning potential patent rights.
+\begin{example}
+In this document, \verb|\fwdnopatents| prints:
+\fwdnopatents
+\end{example}
+
+
+
+\ssclause{Introduction}
+
+ The \verb|introduction|\ixenv{introduction} environment
+starts a new unnumbered clause
+called `Introduction' with one column formatting.
+
+ More precisely, the title of the clause is given by the value of
+\verb|\introductionname|\ixcom{introductionname} (see \aref{anx:extraiso}).
+
+ The \verb|\intropatents|\ixcom{intropatents} prints some of the
+patent boilerplate that may be required in the Introduction.
+\begin{anexample}
+In this document, \verb|\intropatents| prints:
+\fwdnopatents
+\end{anexample}
+
+
+\ssclause{Scope clause}
+
+ The \verb|\scopeclause|\ixcom{scopeclause}
+command starts a new numbered clause called `Scope', which is given
+the label \verb|;i1|\index{;i1}.
+
+ More precisely, the title of the clause is given by the value of
+\verb|\scopename|\ixcom{scopename} (see \aref{anx:extraiso}).
+
+\ssclause{Normative references clause}
+
+ The \verb|\normrefsclause|\ixcom{normrefsclause}
+command starts a new numbered clause called `Normative references',
+which is given the label \verb|;i2|\index{;i2}.
+
+ More precisely, the title of the clause is given by the value of
+\verb|\normrefsname|\ixcom{normrefsname} (see \aref{anx:extraiso}).
+
+ The command
+\verb+\normrefbp{+\meta{document identifier}\verb+}+\ixcom{normrefbp}
+prints the
+ISO required text for the introduction to the listing of normative
+references. The \meta{document identifier} parameter must be such
+that it reads sensibly in a sentence of the form `\ldots constitute
+provisions of this \meta{document identifier}.'.
+
+\begin{example}Clause~\ref{sec:nrefs} in this document was started by the
+commands:
+\begin{verbatim}
+\normrefsclause \label{sec:nrefs}
+
+\normrefbp{manual}
+\begin{nreferences}
+...
+\end{verbatim}
+\end{example} % end example
+
+\ssclause{Definitions, symbols and abbreviations}
+
+ A variety of commands are provided that initiate new numbered
+clauses for definitions, symbols and abbreviations. Depending on the
+amount of material in these respective categories, one or more clauses
+may be used. The commands and clause titles are listed in \tref{tab:dsa}.
+The clause level headings are each given the label \verb|;i3|\index{;i3};
+one and only one of these headings should appear in a standard document.
+\ixcom{defclause} \ixcom{defname}
+\ixcom{symclause} \ixcom{symname}
+\ixcom{abbclause} \ixcom{abbname}
+\ixcom{defsymclause} \ixcom{defsymname}
+\ixcom{defabbclause} \ixcom{defabbname}
+\ixcom{symabbclause} \ixcom{symabbname}
+\ixcom{defsymabbclause} \ixcom{defsymabbname}
+\ixcom{defsubclause}
+\ixcom{symsubclause}
+\ixcom{abbsubclause}
+\ixcom{defsymsubclause}
+\ixcom{defabbsubclause}
+\ixcom{symabbsubclause}
+
+\begin{table}
+\centering
+\caption{Definition, symbol and abbreviation clause commands}
+\label{tab:dsa}
+\begin{tabular}{|l|c|l|l|} \hline
+\textbf{Command} & \textbf{Clause} & \textbf{Title} & \textbf{Default text} \\ \hline
+\verb|\defclause| & C & \verb|\defname| & \defname{} \\
+\verb|\symclause| & C & \verb|\symname| & \symname{} \\
+\verb|\abbclause| & C & \verb|\abbname| & \abbname{} \\
+\verb|\defsymclause| & C & \verb|\defsymname| & \defsymname{} \\
+\verb|\defabbclause| & C & \verb|\defabbname| & \defabbname{} \\
+\verb|\symabbclause| & C & \verb|\symabbname| & \symabbname{} \\
+\verb|\defsymabbclause| & C & \verb|\defsymabbname| & \defsymabbname{} \\
+\verb|\defsubclause| & SC & \verb|\defname| & \defname{} \\
+\verb|\symsubclause| & SC & \verb|\symname| & \symname{} \\
+\verb|\abbsubclause| & SC & \verb|\abbname| & \abbname{} \\
+\verb|\defsymsubclause| & SC & \verb|\defsymname| & \defsymname{} \\
+\verb|\defabbsubclause| & SC & \verb|\defabbname| & \defabbname{} \\
+\verb|\symabbsubclause| & SC & \verb|\symabbname| & \symabbname{} \\
+ \hline
+\multicolumn{4}{|l|}{%
+NOTE - In the table, C = clause, SC = subclause. } \\ \hline
+\end{tabular}
+\end{table}
+
+\sssclause{Heading labels}
+
+ Some of the defined clauses have associated \verb|\label|s. These
+heading commands and their \verb|\label| values are listed in
+\tref{tab:clabels}.
+
+\begin{table}
+\centering
+\caption{Defined clause headings with labels}
+\label{tab:clabels}
+\begin{tabular}{|l|c|} \hline
+\textbf{Command} & \textbf{Label} \\ \hline
+\verb|\scopeclause| & \texttt{;i1} \\
+\verb|\normrefsclause| & \texttt{;i2} \\
+\verb|\defclause| & \texttt{;i3} \\
+\verb|\symclause| & \texttt{;i3} \\
+\verb|\abbclause| & \texttt{;i3} \\
+\verb|\defsymclause| & \texttt{;i3} \\
+\verb|\defabbclause| & \texttt{;i3} \\
+\verb|\symabbclause| & \texttt{;i3} \\
+\verb|\defsymabbclause| & \texttt{;i3} \\
+ \hline
+\end{tabular}
+\end{table}
+
+
+
+\ssclause{Bibliography}
+
+ The command \verb|\bibannex|\ixcom{bibannex}
+ starts an informative section of the document entitled `Bibliography'.
+Or, more precisely,
+by the value of the \verb|\bibname|\ixcom{bibname}
+command.
+
+\sclause{Urls, etc}
+
+ The command \verb|\url{|\meta{text}\verb|}|\ixcom{url} can be used for
+typesetting \meta{text} as an email address.
+
+ The command \verb|\isourl{|\meta{text}\verb|}|\ixcom{isourl} can be
+used for
+typesetting \meta{text} as an URL address.
+
+\begin{example}
+The following code
+\begin{verbatim}
+The Email address is \url{joe@fred.mik} or the homepage is at
+\isourl{http://fred.mik/home/}.
+\end{verbatim}
+will be typeset as: \\
+The Email address is \url{joe@fred.mik} or the homepage is at
+\isourl{http://fred.mik/home/}.
+\end{example}
+
+
+\sclause{Version control commands}
+
+
+ A set of commands are provided to assist when revising a document.
+For these commands to flag the changes in the printed document the command
+\verb|\changemarkstrue|\ixcom{changemarkstrue}
+must be put in the preamble.\index{preamble}
+
+ In the commands described below, the \meta{number} parameter can be used
+to correlate changes in a document
+to some external (numbered) requirement for the change.
+
+\ssclause{Editorial}
+
+ The command \verb+\editorial{+\meta{number}\verb+}+\ixcom{editorial}
+flags an editorial change to the
+document text with ED$^{number}$.
+
+\begin{anexample}
+
+ Just to start things off, this is an original sentence, which should
+take up about a line.
+This example sentence contains an editorial \editorial{37}
+change. The command \verb|\editorial{37}| was included in the previous
+sentence.
+This sentence, though, has no changes marked in it and may be
+assumed to be unaltered from a prior version.
+\end{anexample} % end example
+
+\ssclause{Added}
+
+ The command
+\verb+\added{+\meta{text}\verb+}{+\meta{number}\verb+}+\ixcom{added}
+flags the
+position of the additional \meta{text} and highlights it.
+
+\begin{anexample}
+
+ Just to start things off, this is an original sentence, which should
+take up about a line.
+This example sentence contains \added{some added text}{27} in
+the middle of it. The command \verb|\added{some added text}{27}| was
+included in the previous sentence.
+This sentence, though, has no changes marked in it and may be
+assumed to be unaltered from a prior version.
+\end{anexample} % end example
+
+\ssclause{Deleted}
+
+ The command \verb+\deleted{+\meta{number}\verb+}+\ixcom{deleted}
+flags the position of deleted text.
+
+\begin{anexample}
+
+ Just to start things off, this is an original sentence, which should
+take up about a line.
+Some text was deleted \deleted{34} from the middle of this sentence.
+The command \verb|\deleted{34}| was included in the previous sentence.
+This sentence, though, has no changes marked in it and may be
+assumed to be unaltered from a prior version.
+\end{anexample} % end example
+
+\ssclause{Moved}
+
+ The command
+\verb+\moved{+\meta{text}\verb+}{+\meta{number}\verb+}+\ixcom{moved}
+flags the position of
+moved \meta{text} and highlights it.
+
+\begin{anexample}
+
+ Just to start things off, this is an original sentence, which should
+take up about a line.
+This sentence contains some \moved{moved}{81} text in the middle of it.
+The command \verb|\moved{moved}{81}| was included in the previous
+sentence.
+This sentence, though, has no changes marked in it and may be
+assumed to be unaltered from a prior version.
+\end{anexample} % end example
+
+\sclause{PDF}
+
+ The class provides a command, \verb|\ifpdf|\ixcom{ifpdf},
+to test whether or not the document is being processed by \latex{}
+or by pdf\latex. \latex{} processing produces a \file{.dvi} file which
+needs further processing, usually by \file{dvips}, to generate PostScript
+for printing. pdf\latex, however, directly generates a \file{.pdf} file
+which can then be printed.
+
+\begin{anexample}
+A document for processing by either \latex{} or pdf\latex{} could be
+started like:
+\begin{verbatim}
+\documentclass{iso}
+\usepackage{times}
+\ifpdf
+ \pdfoutput=1
+ \usepackage[pdftex]{graphicx}
+\else
+ \usepackage{graphicx}
+\fi
+....
+\end{verbatim}
+
+The \file{times} package is used in this example as PDF printers tend
+to handle
+PostScript fonts better than other kinds of fonts.
+\end{anexample}
+
+
+ The class also supports the use of the
+\file{hyperref}\ixpack{hyperref} package in conjunction with pdf\latex.
+Typically bookmark processing would be specifed by:
+\begin{verbatim}
+\ifpdf
+ \pdfoutput=1
+ \usepackage[plainpages=false,
+ pdfpagelabels,
+ bookmarksnumbered,
+ hyperindex=true
+ ]{hyperref}
+ ...
+\else
+ ...
+\fi
+....
+\end{verbatim}
+If the \verb|hyperindex=true| option to the \file{hyperref} package is used
+the the index has to be processed via the
+\textsc{MakeIndex}\index{makeIndex@{\sc MakeIndex}} program.
+
+%%%%%%%%%%%
+%%%\end{document}
+%%%%%%%%%%%
+
+\clause{The \file{isorot} package facility}
+
+ The \file{isorot}\ixpack{isorot} facility enables the rotation
+of document elements on
+a page. It uses the \latex{} \verb|\special|\ixcom{special}
+command to perform its
+effects, and thus can only be used
+with a limited number of dvi to postscript programs. The facilities
+available are summarized in \tref{tab4}.
+
+ \file{isorot} is a modification of the \file{rotation.sty} file
+created by Rahtz and Barroca~\bref{rahtz}. Further examples of the usage
+of their style are given in Goosens \emph{et al}~\bref{goosens}.
+
+\begin{note}Several examples of the effects of the commands described herein
+are shown. In many cases the results are not pretty. This should act as
+a warning that using rotational elements requires more care than
+most other document elements.\end{note} %end note
+
+\begin{sidewaystable}
+\ixcom{rotdriver} \ixcom{clockwise} \ixcom{counterclockwise}
+\ixcom{figuresright} \ixcom{figuresleft} \ixcom{rotcaption}
+\ixcom{controtcaption}
+\ixenv{sideways} \ixenv{turn} \ixenv{rotate} \ixenv{sidewaystable}
+\ixenv{sidewaysfigure} \ixenv{landscape}
+\centering
+\caption{The rotation facilities} \label{tab4}
+\begin{tabular}{|l|l|} \hline
+\textbf{Facility} & \textbf{Effect} \\ \hline
+\multicolumn{2}{|c|}{\textbf{Commands}} \\ \hline
+\verb|\rotdriver{<driver>}| &
+declare the name of the dvi to Postscript translator (default {\tt dvips}) \\
+\verb|\clockwise| &
+sets rotation direction clockwise for positive angles (the default) \\
+\verb|\counterclockwise| &
+sets rotation direction counterclockwise for positive angles \\
+\verb|\figuresright| &
+sets rotation direction for sideways floats counterclockwise (the default) \\
+\verb|\figuresleft| &
+sets rotation direction for sideways floats clockwise \\
+\verb|\rotcaption| &
+like the \verb|caption| command, but rotates the caption through 90 degrees \\
+\verb|\controtcaption| &
+like the \verb|contcaption| command, but rotates the caption through 90 degrees \\ \hline
+\multicolumn{2}{|c|}{\textbf{Environments}} \\ \hline
+\verb|sideways| &
+rotates the contents through 90 degrees counterclockwise \\
+\verb|turn| &
+rotates the contents through the given angle \\
+\verb|rotate| &
+rotates the contents through the given angle, but no space allowed for the result\\
+\verb|sidewaystable| &
+like the \verb|table| environment, but rotated 90 degrees \\
+\verb|sidewaystable*| &
+twocolumn version of \verb|sidewaystable| \\
+\verb|sidewaysfigure| &
+like the \verb|figure| environment, but rotated 90 degrees \\
+\verb|sidewaysfigure*| &
+twocolumn version of \verb|sidewaysfigure| \\
+\verb|landscape| &
+prints all enclosed pages in landscape mode \\ \hline
+\end{tabular}
+\end{sidewaystable}
+
+\sclause{Options}
+
+ The \file{isorot} facility has one option,
+namely \verb|debugshow|\ixopt{debugshow}. Calling this option produces
+messages on the screen and in the \file{log} file regarding the actions
+being taken.
+
+\begin{anote} This option is principally of interest to the maintainer
+of the facility. \end{anote}
+
+\sclause{DVI drivers}
+
+ The \file{isorot} facility supports only a limited number of
+dvi to postscript translators. The default translator is \emph{dvips}.
+ The following command must be put in
+the preamble of the document if \emph{dvips} is not being used:
+\verb|\rotdriver{<drivername>}|,\ixcom{rotdriver} where
+\verb|<drivername>| is one of the following:\footnote{I have been able to
+try the {\tt dvips} driver
+but not the others. If anyone has experience with the other drivers, or has
+extended the range of drivers, I would like to be given the results.} %end footnote
+
+\begin{enumerate}
+\item \verb|dvipdf| for the \emph{dvipdf}
+ translator;\ixtt{dvipdf}
+\item \verb|dvips| for Tom Rockicki's \emph{dvips}
+ translator;\ixtt{dvips}
+\item \verb|dvipsone| for Y\&Y's \emph{dvipsone}
+ translator;\ixtt{dvipsone}
+\item \verb|dvitops| for James Clark's \emph{dvitops}
+ translator;\ixtt{dvitops}
+\item \verb|dviwindo| for Y\&Y's \emph{dviwindo}
+ translator;\ixtt{dviwindo}
+\item \verb|pctex32| for Personal TeX's PC TeX for 32 bit Windows
+ (\emph{pctex32})
+ translator;\ixtt{pctex32}
+\item \verb|pctexps| for Personal TeX's PC PTI Laser/PS (\emph{pctexps})
+ translator;\ixtt{pctexps}
+\item \verb|pubps| for the Arbortext's \emph{pubps}
+ translator.\ixtt{pubps}
+\item \verb|textures| for Blue Sky's \emph{Textures}
+ translator;\ixtt{textures}
+
+\end{enumerate}
+
+
+\sclause{Rotational directions}
+
+ \file{isorot} enables the textual and other elements of a document
+to be rotated from their normal horizontal layout. In some cases elements
+can be rotated through arbitrary angles, whereas in others only 90 degree
+rotation is possible.
+
+ By default, a rotation through a positive number of
+degrees corresponds to a clockwise rotation. The command
+\verb|\counterclockwise|\ixcom{counterclockwise}
+sets the following rotations to be counterclockwise for positive angles.
+The command \verb|\clockwise|\ixcom{clockwise}
+sets the following rotations to be clockwise for positive angles.
+These commands can be used to toggle the rotational behavior.
+
+
+ Rotated floating environments are normally rotated so that they are
+printed with a counterclockwise rotation (i.e. the original bottom of the float
+is placed at the right hand side of the paper),
+which is what is normally required.
+This behavior can be altered by the command
+\verb|\figuresleft|,\ixcom{figuresleft}
+which will give the reverse effect. The command
+\verb|\figuresright|\ixcom{figuresright}
+will set the behavior to the default.
+These commands can be used to toggle the rotational behavior of
+floats.
+
+
+\sclause{Rotation of text}
+
+ The \verb|sideways|\ixenv{sideways}
+environment rotates the contents of the environment
+by 90 degrees counterclockwise, and leaves space for the result.
+
+ The \verb|\begin{turn}{|\meta{angle}\verb|}|\ixenv{turn}
+environment rotates the contents by the given number
+of degrees in the direction specified by the most recent of the
+\verb|\clockwise|\ixcom{clockwise} or
+\verb|\counterclockwise|\ixcom{counterclockwise}
+commands, leaving space for the result.
+
+ The \verb|\begin{rotate}{|\meta{angle}\verb|}|\ixenv{rotate}
+environment rotates the contents by the given number
+of degrees in the direction specified by the most recent of the
+\verb|\clockwise|\ixcom{clockwise} or
+\verb|\counterclockwise|\ixcom{counterclockwise}
+commands, but no arrangements are made for leaving space for the result.
+
+
+\begin{example}Some simple rotations: \label{ex:1}
+
+This code
+\begin{verbatim}
+Default rotation direction: \\
+A
+\begin{sideways}%
+B C
+\end{sideways}
+D E F G H I J K L M
+\begin{turn}{-90}%
+Minus 90 turn
+\end{turn}
+N O P
+\begin{rotate}{90}%
+Plus 90 rotate
+\end{rotate}
+Q \\
+and continue on with another line after rotations.
+\end{verbatim}
+produces the following (note how space is allowed for the \verb|turn|ed
+text, whereas the \verb|rotate|d text runs into the text below).
+
+Default rotation direction: \\
+A
+\begin{sideways}%
+B C
+\end{sideways}
+D E F G H I J K L M
+\begin{turn}{-90}%
+Minus 90 turn
+\end{turn}
+N O P
+\begin{rotate}{90}%
+Plus 90 rotate
+\end{rotate}
+Q \\
+and continue on with another line after rotations.
+\end{example} % end example
+\begin{example}This example shows the effect of using the
+\verb|\counterclockwise|\ixcom{counterclockwise}
+command.
+
+This code
+\begin{verbatim}
+Flip rotation direction: \\
+\counterclockwise
+A
+\begin{sideways}%
+B C
+\end{sideways}
+D E F G H I J K L M
+\begin{turn}{-90}%
+Minus 90 turn
+\end{turn}
+N O P
+\begin{rotate}{90}%
+Plus 90 rotate
+\end{rotate}
+Q \\
+Set rotation direction back to default value.
+\clockwise
+\end{verbatim}
+
+produces the following, which should be compared with example~\ref{ex:1}.
+
+Flip rotation direction: \\
+\counterclockwise
+A
+\begin{sideways}%
+B C
+\end{sideways}
+D E F G H I J K L M
+\begin{turn}{-90}%
+Minus 90 turn
+\end{turn}
+N O P
+\begin{rotate}{90}%
+Plus 90 rotate
+\end{rotate}
+Q \\
+Set rotation direction back to default value.
+\clockwise
+\end{example} % end example
+
+
+ Although the examples so far have only shown the rotation of text, boxes
+can also be rotated.
+
+\begin{example}Rotating a box.
+
+This code
+\begin{verbatim}
+\newsavebox{\foo}
+\newlength{\fool}
+\settowidth{\fool}{Hurrah for ISO.}
+\savebox{\foo}{\parbox{\fool}{Hurrah for ISO. Hurrah for ISO.
+ Hurrah for ISO. Hurrah for ISO.}}
+Start
+\usebox{\foo}
+\&
+\begin{turn}{-45}\usebox{\foo}\end{turn}
+\&
+\begin{turn}{45}\usebox{\foo}\end{turn}
+End
+\end{verbatim}
+produces:
+
+\newsavebox{\foo}
+\newlength{\fool}
+\settowidth{\fool}{Hurrah for ISO.}
+\savebox{\foo}{\parbox{\fool}{Hurrah for ISO. Hurrah for ISO.
+ Hurrah for ISO. Hurrah for ISO.}}
+Start
+\usebox{\foo}
+\&
+\begin{turn}{-45}\usebox{\foo}\end{turn}
+\&
+\begin{turn}{45}\usebox{\foo}\end{turn}
+End
+
+\end{example} %end example
+
+ Elements can be rotated through arbitrary angles, and also rotated
+elements can be nested inside other rotated elements.
+
+
+\begin{example}Repeated rotation:
+
+ The following example code shows that text can be rotated through any angle.
+The result is shown in \fref{fig:wheel}.
+\begin{verbatim}
+\newcount\prwc
+\newsavebox{\prwtext}
+\newdimen\prwspace
+\def\wheel#1#2{%
+ \savebox{\prwtext}{#1\begin{sideways}#2\end{sideways}}%
+ \prwspace\wd\prwtext%
+ \advance\prwspace by 1cm%
+ \centerline{%
+ \rule{0pt}{\prwspace}%
+ \rule[-\prwspace]{0pt}{\prwspace}%
+ \prwc=-180\loop\ifnum\prwc<180
+ \rlap{\begin{rotate}{\the\prwc}%
+ \rule{1cm}{0pt}\usebox{\prwtext}\end{rotate}}%
+ \advance\prwc by 20\repeat}}
+\begin{figure}
+\wheel{Express yourself ---}{Hooray for STEP!}
+\caption{Example rotation through multiple angles}
+\label{fig:wheel}
+\end{figure}
+\end{verbatim}
+
+\newcount\prwc
+\newsavebox{\prwtext}
+\newdimen\prwspace
+\def\wheel#1#2{%
+ \savebox{\prwtext}{#1\begin{sideways}#2\end{sideways}}%
+ \prwspace\wd\prwtext%
+ \advance\prwspace by 1cm%
+ \centerline{%
+ \rule{0pt}{\prwspace}%
+ \rule[-\prwspace]{0pt}{\prwspace}%
+ \prwc=-180\loop\ifnum\prwc<180
+ \rlap{\begin{rotate}{\the\prwc}%
+ \rule{1cm}{0pt}\usebox{\prwtext}\end{rotate}}%
+ \advance\prwc by 20\repeat}}
+\begin{figure}
+\vspace*{1cm}
+\wheel{Express yourself ---}{Hooray for STEP!}
+\vspace*{1cm}
+\caption{Example rotation through multiple angles}
+\label{fig:wheel}
+\end{figure}
+
+ Figures~\ref{fig:angles1} and~\ref{fig:angles2} also show rotations through a
+range of angles, both positive and negative.
+\end{example} %end example
+
+\begin{example}Nested rotations. \label{ex:sidetabular}
+
+This code
+\begin{verbatim}
+ Here is some text before a \verb|sideways| environment.
+And some more, and more and more garble gobble cluck
+click clack clock cluck and so on and on and on.
+\begin{center}
+\begin{sideways}
+\rule{1in}{0pt}
+\begin{tabular}{|lr|}
+\begin{rotate}{-45}\emph{Word}\end{rotate} & \begin{rotate}{-90}%
+Occurrences\end{rotate}
+\\
+\hline
+hello & 33 \\
+goodbye & 34 \\
+\hline
+\end{tabular}
+\end{sideways}
+\end{center}
+ Here is some text after a \verb|sideways| environment.
+ And some more, and more and more garble gobble cluck
+click clack clock cluck and so on and on and on.
+\end{verbatim}
+produces:
+
+ Here is some text before a \verb|sideways| environment.
+And some more, and more and more garble gobble cluck
+click clack clock cluck and so on and on and on.
+\begin{center}
+\begin{sideways}
+%\rule{1in}{0pt}
+\begin{tabular}{|lr|}
+\begin{rotate}{-45}\emph{Word}\end{rotate} & \begin{rotate}{-90}%
+Occurrences\end{rotate} \\ \hline
+hello & 33 \\
+goodbye & 34 \\ \hline
+\end{tabular}
+\end{sideways}
+\end{center}
+ Here is some text after a \verb|sideways| environment.
+ And some more, and more and more garble gobble cluck
+click clack clock cluck and so on and on and on.
+\end{example} %end example
+
+
+
+\sclause{Rotations of tables and figures}
+
+ The previous examples have demonstrated the rotation of textual elements.
+For instance, example~\ref{ex:sidetabular} shows that tabular material can be rotated using
+the \verb|sideways|\ixenv{sideways}
+environment. (Actually, any of the previously
+mentioned environments may be used.)
+Two further environments are provided which rotate a \latex{} float through
+90 degrees. These are:
+\begin{itemize}
+\item \verb|sidewaystable|\ixenv{sidewaystable}, which
+ corresponds to the standard \latex{} \verb|table|\ixenv{table}
+ environment; and
+\item \verb|sidewaysfigure|\ixenv{sidewaysfigure}, which
+ corresponds to the standard \latex{} \verb|figure|\ixenv{figure}
+ environment.
+\end{itemize}
+There are also starred versions of these, namely
+\verb|sidewaystable*|\ixenvs{sidewaystable} and
+\verb|sidewaysfigure*|\ixenvs{sidewaysfigure}, for use in twocolumn mode.
+However, the correspondence with the standard environments is not strictly
+complete as a sideways float is alway placed on a page by itself.
+
+ The direction of rotation may be controlled by the
+\verb|\figuresright|\ixcom{figuresright} and
+\verb|\figuresleft|\ixcom{figuresleft} commands.
+
+\begin{example}Table~\ref{tab4} is produced by the code below: \label{ex:4}
+
+\begin{verbatim}
+\begin{sidewaystable}
+\centering
+\caption{The rotation facilities} \label{tab4}
+\begin{tabular}{|l|l|} \hline
+\textbf{Facility} & \textbf{Effect} \\ \hline
+\multicolumn{2}{|c|}{\textbf{Commands}} \\ \hline
+\verb|\rotdriver{<driver>}| &
+declare the name of the dvi to Postscript translator (default {\tt dvips}) \\
+......
+\verb|sidewaysfigure| &
+like the \verb|figure| environment, but rotated 90 degrees \\ \hline
+\end{tabular}
+\end{sidewaystable}
+\end{verbatim}
+\end{example} % end example
+
+
+
+\sclause{Rotation of float captions and bodies}
+
+ Sometimes it may be useful to rotate a caption independently of the
+rotation of a figure or table. The command
+\verb|\rotcaption|\ixcom{rotcaption} is analogous
+to the normal \verb|\caption|\ixcom{caption} command,
+and inserts the caption rotated
+by 90~degrees. There is also the companion command
+\verb|\controtcaption|\ixcom{controtcaption}, analagous to the
+\verb|\contcaption|\ixcom{contcaption} command,
+for continuation captions.
+
+%\newsavebox{\picbox}
+
+\begin{figure}
+\centering
+\caption{Example figure with a standard caption.} \label{fig:nocrot}
+\setlength{\unitlength}{0.2in}
+\footnotesize
+\begin{picture}(17,2)
+\thicklines
+\put(0,0){\begin{picture}(4,1)
+ \put(1.5,0.5){\oval(3,1)}
+ \put(1.5,0.5){\makebox(0,0){2,5 (1)}}
+ \put(3,0.5){\line(1,0){1.0}}
+ \put(4.25,0.5){\circle{0.5}}
+ \end{picture}}
+
+\put(4.5,0){\begin{picture}(8,1)
+ \put(0,0){\dashbox{0.25}(4,1){date}}
+ \put(4,0.5){\line(1,0){3.5}}
+ \put(7.75,0.5){\circle{0.5}}
+ \put(6,1){\makebox(0,0){A[1:3]}}
+ \end{picture}}
+
+\put(12.5,0){\begin{picture}(4,1)
+ \put(0,0){\framebox(4,1){INTEGER}}
+ \put(3.75,0){\line(0,1){1}}
+ \end{picture}}
+\end{picture}
+\normalsize
+\setlength{\unitlength}{1pt}
+\end{figure}
+
+
+\begin{example}Float with a regular caption.
+
+Figure~\ref{fig:nocrot} is produced by the code below:
+\begin{verbatim}
+\begin{figure}
+\centering
+\caption{Example figure with a standard caption.} \label{fig:nocrot}
+\setlength{\unitlength}{0.2in}
+\footnotesize
+\begin{picture}(17,2)
+\thicklines
+\put(0,0){\begin{picture}(4,1)
+ \put(1.5,0.5){\oval(3,1)}
+ \put(1.5,0.5){\makebox(0,0){2,5 (1)}}
+ \put(3,0.5){\line(1,0){1.0}}
+ \put(4.25,0.5){\circle{0.5}}
+ \end{picture}}
+\put(4.5,0){\begin{picture}(8,1)
+ \put(0,0){\dashbox{0.25}(4,1){date}}
+ \put(4,0.5){\line(1,0){3.5}}
+ \put(7.75,0.5){\circle{0.5}}
+ \put(6,1){\makebox(0,0){A[1:3]}}
+ \end{picture}}
+\put(12.5,0){\begin{picture}(4,1)
+ \put(0,0){\framebox(4,1){INTEGER}}
+ \put(3.75,0){\line(0,1){1}}
+ \end{picture}}
+\end{picture}
+\normalsize
+\setlength{\unitlength}{1pt}
+\end{figure}
+\end{verbatim}
+\end{example} % end example
+
+\begin{example}Float with a rotated caption.
+
+Figure~\ref{fig:crot} is produced by the code below:
+\begin{verbatim}
+\begin{figure}
+\centering
+\rotcaption{Figure~\protect\ref{fig:nocrot} with a rotated caption.}
+ \label{fig:crot}
+\setlength{\unitlength}{0.2in}
+\footnotesize
+\begin{picture}(17,2)
+...
+\end{picture}
+\normalsize
+\setlength{\unitlength}{1pt}
+\end{figure}
+\end{verbatim}
+\end{example} % end example
+
+
+\begin{figure}
+\centering
+\rotcaption{Figure~\protect\ref{fig:nocrot} with a rotated caption.}
+ \label{fig:crot}
+\setlength{\unitlength}{0.2in}
+\footnotesize
+\begin{picture}(17,2)
+\thicklines
+\put(0,0){\begin{picture}(4,1)
+ \put(1.5,0.5){\oval(3,1)}
+ \put(1.5,0.5){\makebox(0,0){2,5 (1)}}
+ \put(3,0.5){\line(1,0){1.0}}
+ \put(4.25,0.5){\circle{0.5}}
+ \end{picture}}
+\put(4.5,0){\begin{picture}(8,1)
+ \put(0,0){\dashbox{0.25}(4,1){date}}
+ \put(4,0.5){\line(1,0){3.5}}
+ \put(7.75,0.5){\circle{0.5}}
+ \put(6,1){\makebox(0,0){A[1:3]}}
+ \end{picture}}
+\put(12.5,0){\begin{picture}(4,1)
+ \put(0,0){\framebox(4,1){INTEGER}}
+ \put(3.75,0){\line(0,1){1}}
+ \end{picture}}
+\end{picture}
+\normalsize
+\setlength{\unitlength}{1pt}
+\end{figure}
+
+ As can be seen from \fref{fig:crot} the advisability of rotating a caption
+depends on the size of the body of the float. It may be better in certain
+cases to leave the caption in its regular position and rotate the body of
+the float instead.
+
+\def\prwrot#1{%
+\settowidth{\fool}{ISOROT}
+\savebox{\foo}{\parbox{\fool}{ISOROT ISOROT ISOROT ISOROT}}%
+\framebox{---\begin{turn}{#1}\framebox{\usebox{\foo}}\end{turn}---}}%
+\def\degrees{{\small$^{o}$}}
+
+\begin{figure}
+\centering
+\begin{tabular}{|c|c|c|} \hline
+\prwrot{0} &\prwrot{-40}&\prwrot{-80}\\
+0\degrees & -40\degrees & -80\degrees \\ \hline
+\prwrot{-120}&\prwrot{-160}&\prwrot{-200}\\
+-120\degrees & -160\degrees & -200\degrees \\ \hline
+\prwrot{-240}&\prwrot{-280}&\prwrot{-320}\\
+-240\degrees & -280\degrees & -320\degrees \\ \hline
+\end{tabular}
+\caption{Rotation of paragraphs between 0 and -320 degrees} \label{fig:angles1}
+\end{figure}
+
+
+\begin{example}Regular caption and float.
+
+Figure~\ref{fig:angles1} is a regular figure and caption. It is produced by
+the following code:
+\begin{verbatim}
+\def\prwrot#1{%
+\settowidth{\fool}{ISOROT}
+\savebox{\foo}{\parbox{\fool}{ISOROT ISOROT ISOROT ISOROT}}%
+\framebox{---\begin{turn}{#1}\framebox{\usebox{\foo}}\end{turn}---}}%
+\def\degrees{{\small$^{o}$}}
+\end{verbatim}
+
+\begin{verbatim}
+\begin{figure}
+\centering
+\begin{tabular}{|c|c|c|} \hline
+\prwrot{0} &\prwrot{-40}&\prwrot{-80}\\
+0\degrees & -40\degrees & -80\degrees \\ \hline
+\prwrot{-120}&\prwrot{-160}&\prwrot{-200}\\
+-120\degrees & -160\degrees & -200\degrees \\ \hline
+\prwrot{-240}&\prwrot{-280}&\prwrot{-320}\\
+-240\degrees & -280\degrees & -320\degrees \\ \hline
+\end{tabular}
+\caption{Rotation of paragraphs between 0 and -320 degrees} \label{fig:angles1}
+\end{figure}
+\end{verbatim}
+\end{example} % end example
+
+
+\begin{figure}
+\centering
+\begin{sideways}
+\begin{tabular}{|c|c|c|} \hline
+\prwrot{0} &\prwrot{40}&\prwrot{80}\\
+0\degrees & 40\degrees & 80\degrees \\ \hline
+\prwrot{120}&\prwrot{160}&\prwrot{200}\\
+120\degrees & 160\degrees & 200\degrees \\ \hline
+\prwrot{240}&\prwrot{280}&\prwrot{320}\\
+240\degrees & 280\degrees & 320\degrees \\ \hline
+\end{tabular}
+\end{sideways}
+\caption[Rotation of paragraphs between 0 and 320 degrees]%
+ {Rotation of paragraphs between 0 and 320 degrees (with figure
+ body turned sideways)}\label{fig:angles2}
+\end{figure}
+
+\begin{example}Regular caption and rotated float body.
+
+Figure~\ref{fig:angles2} is a regular figure and caption where the figure
+contents have been rotated. It was produced by the following code.
+\begin{verbatim}
+\begin{figure}
+\centering
+\begin{sideways}
+\begin{tabular}{|c|c|c|} \hline
+\prwrot{0} &\prwrot{40}&\prwrot{80}\\
+0\degrees & 40\degrees & 80\degrees \\ \hline
+\prwrot{120}&\prwrot{160}&\prwrot{200}\\
+120\degrees & 160\degrees & 200\degrees \\ \hline
+\prwrot{240}&\prwrot{280}&\prwrot{320}\\
+240\degrees & 280\degrees & 320\degrees \\ \hline
+\end{tabular}
+\end{sideways}
+\caption[Rotation of paragraphs between 0 and 320 degrees]%
+ {Rotation of paragraphs between 0 and 320 degrees (with figure
+ body turned sideways)}\label{fig:angles2}
+\end{figure}
+\end{verbatim}
+\end{example} % end example
+
+\begin{landscape}
+\sclause{Landscaping}
+
+ \latex{} normally prints in portrait mode.
+The \verb|landscape|\ixenv{landscape} environment
+prints all the enclosed stuff in landscape mode, except for headers
+and footers which are not rotated.
+
+\begin{example} Landscaping
+
+The source for this part of the document is:
+\begin{verbatim}
+\begin{landscape}
+\sclause{Landscaping}
+
+ \latex{} normally prints in portrait mode. The ...
+...
+... long, wide tables.
+\end{landscape}
+\end{verbatim}
+\end{example}
+
+ The environment starts by clearing the current page and then switches
+to portrait mode. At the end of the environment the current page is cleared
+and the next page is back to normal portrait mode.
+
+ All the other rotation commands and environments produce boxes and
+\latex{} will not break a box across a page. The \verb|landscape| environemt
+does not produce a box and so many pages can be printed in landscape mode
+with \latex{} taking care of the page breaking for you.
+
+ Landscape mode is not particularly useful for normal text as the
+lines are far too long for comfortable reading. Where it can be useful
+is where you have a table that is too wide to fit on a portrait page, so
+needs to be rotated, yet is also too long to fit on the page when it is
+rotated. The \file{supertabular}\ixpack{supertabular},
+the \file{longtable}\ixpack{longtable},
+and the \file{xtab}\ixpack{xtab}
+packages provide facilities for automatically breaking long tables across
+pages. Any of these can be used in conjunction with landscaping to both
+rotate and automatically page break long, wide tables.
+\end{landscape}
+
+\clause{The \file{xtab} package facility}
+
+ The \file{xtab} package is fully documented in \bref{bib:xtab}.
+This clause provides an overview of the package.
+
+ The \file{xtab}\ixpack{xtab} package facility is an extension
+of the \file{supertabular}\ixpack{supertabular} package originally
+developed by Johannes Braams and Theo Jurriens.
+The extension provides for the specification of a header to
+go on the last page of a long table.
+
+ The principal commands available are given in \tref{tab:xtab}.
+\ixenv{xtabular}
+\ixenv{mpxtabular}
+\ixcom{topcaption}
+\ixcom{bottomcaption}
+\ixcom{tablecaption}
+\ixcom{tablefirsthead}
+\ixcom{tablehead}
+\ixcom{tablelasthead}
+\ixcom{notablelasthead}
+\ixcom{tabletail}
+\ixcom{tablelasttail}
+
+\topcaption{The principal xtab package commands} \label{tab:xtab}
+\tablefirsthead{\hline \multicolumn{1}{|c|}{\textbf{Command}} &
+ \multicolumn{1}{c|}{\textbf{Effect}} \\ \hline }
+\tablehead{\multicolumn{2}{c}%
+ {{\captionsize\bfseries \tablename\ \thetable{} -- continued from previous page}} \\
+ \hline \multicolumn{1}{|c|}{\textbf{Command}} &
+ \multicolumn{1}{c|}{\textbf{Effect}} \\ \hline }
+\tablelasthead{\multicolumn{2}{c}%
+ {{\captionsize\bfseries \tablename\ \thetable{} -- concluded from previous page}} \\
+ \hline \multicolumn{1}{|c|}{\textbf{Command}} &
+ \multicolumn{1}{c|}{\textbf{Effect}} \\ \hline }
+\tabletail{\hline \multicolumn{2}{|r|}{{Continued on next page}} \\ \hline}
+\tablelasttail{\\ \hline \hline}
+
+\begin{center}
+\begin{xtabular}{|l|p{0.5\textwidth}|}
+\verb|\begin{xtabular}{...}| & This is equivalent to the normal
+ \verb|\begin{tabular}{...}| environment.
+ You supply the specification of the columns
+ just as for the normal tabular environment.
+ All commands that can be used within a tabular
+ environment can also be used within
+ the xtabular environment.
+ \\
+ &
+ Unlike the tabular environment which prevents page breaking
+within the tabular, the xtabular allows page breaking, so that
+tabulars can extend automatically across several pages. Xtabular
+starts off with a tabular environment and checks the amount of
+space left on the page as it adds each row to the tabular.
+If the space left on the page is too short for another row, then
+it ends the current tabular, performs a page break and starts
+another tabular on the following page. This process is repeated
+until all the rows have been output.
+ \\
+ &
+ There are special commands for captioning a xtabular as a
+table, and also elements can be automatically inserted after each
+(internal) \verb|\begin{tabular}| and immediately before each
+\verb|\end{tabular}|.
+ \\
+ &
+ Do not put a xtabular in a table environment, as the table
+environment keeps its contents on a single page (presumably you
+are using xtabular because its contents are longer than
+one page).
+ \\
+\verb|\end{xtabular}| & End the xtabular environment. \\ \hline
+\verb|\begin{mpxtabular}| & Like the xtabular environment
+except that each `page' is put into a \verb|minipage| first. Thus
+it is possible to have footnotes inside an \verb|mpxtabular|.
+The footnote text is printed at the end of each page.
+ \\
+\verb|\end{mpxtabular}| & End the mpxtabular environment. \\ \hline
+ & \textbf{Note:} If any of the following commands
+ are used, then they should be placed
+ before the particular xtabular
+ environment that they apply to. \\
+\verb|\topcaption{...}| & A command to provide a caption for the
+ table. The caption is placed at the top
+ of the table. \\
+\verb|\bottomcaption{...}| & A command to provide a caption for the
+ table. The caption is placed at the bottom
+ of the table. \\
+\verb|\tablecaption{...}| & A command to provide a caption for the
+ table. The caption is placed at the default
+ position, which is at the top
+ of the table.
+ \\
+ &
+ \textbf{Notes:} You cannot use the \verb|caption|
+ command but you can put a label after
+ any of these captioning commands. If you
+ want captioning, the command must be specified
+ before the start of the xtabular environment.
+ \\
+ &
+ The \verb|\...caption{}| command(s) remain
+ in effect until changed by another
+ \verb|\...caption| command.
+ \\
+\verb|\tablefirsthead{...}| & Defines the contents of the first occurence
+ of the tabular head. The tabular head is some
+ special treatment of the first row in the table.
+ This command is optional.
+ If used, the header must be closed by the
+ end of line command for tabulars (e.g., \verb|\\|). \\
+\verb|\tablehead{...}| & Defines the contents of the table head on
+ subsequent pages.
+ \\
+ &
+ For example, you might want to note that
+ this is a continuation of the table on
+ the previous page, as well as repeating
+ any column headings that were given
+ at the start of the xtabular by
+ \verb|\tablefirsthead|.
+ \\
+\verb|\tablelasthead{...}| & Defines the contents of the table head
+ on the last page of the table.
+ \\
+ &
+ This works by writing to the \file{.aux} file the number of
+pages that the xtabular extends over. When the xtabular
+comes to the last tabular (which it calculates from the
+information it reads from the \file{.aux} file) it replaces the
+contents of \verb|\tablehead| by the contents of \verb|\tablelasthead|.
+ \\
+ &
+It makes no attempt to measure the amount of space used by the last
+table head, so if this is more than for \verb|tablehead| then the
+tabular might be a litle too long.
+ \\
+ &
+ In any case, when using this command, the document has to
+be LaTeXed at least twice, just as it has to be to resolve
+references and so on.
+ \\
+\verb|\notablelasthead| & Switches off the last \verb|\tablelasthead|.
+ A \verb|tablelasthead| stays in effect until
+ overwritten by a new \verb|\tablelasthead|
+ or cancelled by this command.
+ \\
+\verb|\tabletail{...}| & The contents of this command are inserted before
+ the \verb|\end{tabular}| on each page except
+ for the last page of the table.
+ \\
+ &
+ For example, you might want to note that the
+ table is continued on the next page.
+ \\
+\verb|\tablelasttail{...}| & The contents of this command are inserted before
+ the final \verb|\end{tabular}| of the table.
+ \\
+ &
+ For example, you might want to note that
+ this is where the table ends.
+\end{xtabular}
+\end{center}
+
+ As well as the \verb|xtabular|\ixenv{xtabular} and
+\verb|mpxtabular|\ixenv{mpxtabular} environments there are
+the corresponding starred versions
+(i.e., \verb|xtabular*|\ixenvs{xtabular} and
+ \verb|mpxtabular*|\ixenvs{mpxtabular}) for use in
+two column\ixopt{twocolumn} mode where the table is meant to span
+both columns.
+
+\begin{example} \label{ex:xtab} Table~\ref{tab:xtab} was produced by
+the following code:
+\begin{verbatim}
+\topcaption{The principal xtab package commands} \label{tab:xtab}
+\tablefirsthead{\hline \multicolumn{1}{|c|}{\textbf{Command}} &
+ \multicolumn{1}{c|}{\textbf{Effect}} \\ \hline }
+\tablehead{\multicolumn{2}{c}%
+ {{\captionsize\bfseries \tablename\ \thetable{} --
+ continued from previous page}} \\
+ \hline \multicolumn{1}{|c|}{\textbf{Command}} &
+ \multicolumn{1}{c|}{\textbf{Effect}} \\ \hline }
+\tablelasthead{\multicolumn{2}{c}%
+ {{\captionsize\bfseries \tablename\ \thetable{} --
+ concluded from previous page}} \\
+ \hline \multicolumn{1}{|c|}{\textbf{Command}} &
+ \multicolumn{1}{c|}{\textbf{Effect}} \\ \hline }
+\tabletail{\hline \multicolumn{2}{|r|}{{Continued on next page}} \\ \hline}
+\tablelasttail{\\ \hline \hline}
+
+\begin{center}
+\begin{xtabular}{|l|p{0.5\textwidth}|}
+\verb|\begin{xtabular}{...}| & This is equivalent to the normal
+ \verb|\begin{tabular}{...}| environment.
+ You supply the specification of the columns
+ just as for the normal tabular environment.
+ All commands that can be used within a tabular
+ environment can also be used within
+ the xtabular environment.
+ \\
+ &
+ Unlike the tabular environment which prevents page breaking
+within the tabular, the xtabular allows page breaking, so that
+tabulars can extend automatically across several pages. Xtabular
+... ... ...
+\verb|\tablelasttail{...}| & The contents of this command are inserted before
+ the final \verb|\end{tabular}| of the table.
+ \\
+ &
+ For example, you might want to note that this is where
+the table ends.
+\end{xtabular}
+\end{center}
+\end{verbatim}
+\end{example}
+
+ The table is only broken between rows --- a row will not be split
+across pages. This can lead to some bad page breaks, especially if
+there are rows with a large vertical height (like some in \tref{tab:xtab}).
+It is best to keep rows not too tall.
+
+The command
+\verb|\shrinkheight{|\meta{length}\verb|}|\ixcom{shrinkheight} may be
+used after the first \verb|\\| in the table to modify the allowed
+height of the table on each page. A positive \meta{length} decreases
+the allowed space per page and a negative \meta{length} increases
+the allowed space.
+
+\begin{example}
+This example illustrates changing the natural height of the pages
+in a \verb|xtabular| and its relatives.
+
+\verb|\shrinkheight{2\baselineskip}| decreases the space per page by
+two lines.
+
+\verb|\shrinkheight{-\baselineskip}| increases the space per page by
+one line.
+\end{example}
+
+ You have to specify the font used for the
+\verb|\tablehead|\ixcom{tablehead} and
+\verb|tablelasthead|\ixcom{tablelasthead} yourself.
+Within ISO documents, captions shall
+be in bold font. The \file{iso}\ixclass{iso} class also provides
+a command for
+setting the size of the font used in captions, namely
+\verb|\captionsize|\ixcom{captionsize}.
+Note that this is used in~\eref{ex:xtab}.
+ The value of \verb|\captionsize|\ixcom{captionsize} is set by the
+class.
+
+\sclause{Options}
+
+ The \file{xtab} package has three options which control the amount of
+information that is written to the \file{.log}\index{file!.log} file. The
+options are:
+\begin{enumerate}
+\item The option \verb|errorshow|\ixopt{errorshow} (the default) does not
+ write any extra information;
+\item The option \verb|pageshow|\ixopt{pageshow} writes information
+ about when and why \verb|xtabular| decides to produce a new page;
+\item The option \verb|debugshow|\ixopt{debugshow}, which also includes
+ \verb|pageshow|, additionally writes information about each line
+ that is added to the table.
+\end{enumerate}
+
+ Under normal circumstances \file{xtab} is used without invoking any
+option. The \verb|pageshow| option may be useful when attempting to cure
+a bad page break. The \verb|debugshow| option, as its name implies, is
+principally of use to the \file{xtab} developer.
+
+ Independently of the options, the command
+\verb|\sstraceon|\ixcom{sstraceon} may be used at any
+point in the document to turn on printing of \verb|debugshow| data. This
+can be turned off later by the \verb|\sstraceoff|\ixcom{sstraceoff}
+command, which will stop all \verb|...show| printing.
+
+\sclause{Caveats}
+
+ The authors of the original \file{supertabular} package note that
+it has the following weaknesses:
+\begin{itemize}
+\item Sometimes the body of the first page of a table gets moved to the
+following, leaving the caption behind;
+\item Sometimes the last page of a table consists of just the head and foot
+with no contents.
+\end{itemize}
+The weaknesses are caused by trying to guess where \tex{} will put a page
+break. The package has to guesstimate how long the next entry will be in
+the table and, if it is too long for the available space, it puts in its
+own page break. If its guess is off too much in one direction, \tex{} will
+break the page unexpectadly; if its off in the other direction
+\file{supertabular} will put in an unnecessary page break.
+
+ The \file{xtab} package has reduced, but perhaps not entirely
+eliminated, these weaknesses. Some hand tuning may still be required.
+
+
+%%%%%%%%%
+%%%%\end{document}
+%%%%%%%%%
+
+
+
+\clause{The \file{askinc} package facility}
+
+ The \file{askinc}\ixpack{askinc} package facility contains \latex{}
+code to enable the interactive
+input of files. This functionality is a cross between the \latex{}
+\verb|\include|\ixcom{include} and
+\verb|\includeonly|\ixcom{includeonly} commands, and the
+\verb|\input|\ixcom{input} command.
+
+In the body of the root source document, use the command
+\verb+\infile{+\meta{file}\verb+}+\ixcom{infile}
+for each \meta{file}
+that comprises the document. That is, the command \verb|\infile| is similar
+to the \verb|\input|\ixcom{input} and
+\verb|\include|\ixcom{include} commands.
+
+ When \latex ing the root document, you will be asked to provide a
+comma-separated list of the \verb|\infile|s to be processed (similar to the
+argument to the \verb|\includeonly|\ixcom{includeonly}
+command). If you want all the files to be processed, just hit the
+\verb|<RETURN>| key (or its equivalent).
+
+ Like \verb|\include|d files, a file that is \verb|\infile|d into a
+document shall not itself contain another \verb|\infile|d file.
+
+\begin{example}The following root file has three files that are \verb|\infile|d.
+\begin{verbatim}
+\documentclass[...]{...}
+\usepackage{askincv}
+% other preamble stuff
+\begin{document}
+% perhaps some stuff
+\infile{file1}
+\infile{file2}
+\infile{file3}
+% perhaps more stuff
+\end{document}
+\end{verbatim}
+\end{example} % end example
+
+\clause{The \file{hyphenat} package facility} \label{sec:uschyp}
+
+ The \file{hyphenat} package is fully described in~\bref{bib:hyphenat}.
+This clause provides an overview of the portions of the package that are
+most relevant to typesetting ISO standards.
+
+ In \latex{} if you need to use the underscore (\verb|_|)
+character in normal text, for example when documenting identifiers
+in a programming language code, you have to use the
+\verb|\_|\index{_ /@\verb?\_?} command,
+as in \verb|a\_multiword\_identifier|. \latex{} normally treats
+\verb|_|\index{_@\verb?_? (underscore)} as a math mode subscript command.
+Further, if you want
+the possibility of hyphenation\index{hyphenation}
+at the position of an underscore
+you have to use the command pairing
+\verb|\_\-|;\index{_ /@\verb?\_?}\ixcom{-} this has the side
+effect of disabling normal hyphenation in any succeeding `word' in
+the identifier.
+
+ The \file{hyphenat}\ixpack{hyphenat} package facility redefines the
+\verb|\_|\index{_ /@\verb?\_?} command
+so that hyphenationen is automatically enabled at the position
+of the underscore and in all succeeding words in the identifier.
+
+
+\begin{note}
+ Using the command pair \verb|\_\-| in conjunction with this facility
+disables automatic hyphenation of succeeding words, so don't do it.
+\end{note}
+
+
+
+\begin{example} \label{eg:uschyp}
+This set of \latex{} source
+\begin{verbatim}
+Amazingly An\_excessively\_long\_multiword\_identifier%
+\_demonstrating\_hyphenation
+
+\begin{minipage}{3cm}
+\begin{itemize}
+\item An\_excessively\_long\_multiword\_identifier%
+\_demonstrating\_hyphenation
+\item Underscore in math mode: $A_n$
+\item \verb|\_| command in math mode: $A\_n$
+\end{itemize}
+\end{minipage}
+\end{verbatim}
+prints as:
+
+Amazingly An\_excessively\_long\_multiword\_identifier%
+\_demonstrating\_hyphenation
+
+\begin{minipage}{3cm}
+\begin{itemize}
+\item An\_excessively\_long\_multiword\_identifier%
+\_demonstrating\_hyphenation
+\item Underscore in math mode: $A_n$
+\item \verb|\_| command in math mode: $A\_n$
+\end{itemize}
+\end{minipage}
+
+\end{example}
+
+\begin{example}
+Contrast this example with \eref{eg:uschyp}.
+This set of \latex{} source
+\begin{verbatim}
+Amazingly An\_\-excessively\_\-long\_\-multiword\_\-identifier%
+\_\-demonstrating\_\-hyphenation\_\-disabling
+
+\begin{minipage}{3cm}
+\begin{itemize}
+\item An\_\-excessively\_\-long\_\-multiword\_\-identifier%
+\_\-demonstrating\_\-hyphenation\_\-disabling
+\item Underscore in math mode: $A_n$
+\item \verb|\_| command in math mode: $A\_n$
+\end{itemize}
+\end{minipage}
+\end{verbatim}
+prints as:
+
+Amazingly An\_\-excessively\_\-long\_\-multiword\_\-identifier%
+\_\-demonstrating\_\-hyphenation\_\-disabling
+
+\begin{minipage}{3cm}
+\begin{itemize}
+\item An\_\-excessively\_\-long\_\-multiword\_\-identifier%
+\_\-demonstrating\_\-hyphenation\_\-disabling
+\item Underscore in math mode: $A_n$
+\item \verb|\_| command in math mode: $A\_n$
+\end{itemize}
+\end{minipage}
+
+\end{example}
+
+
+ The \file{hyphenat} package also provides some other commands for
+enabling hyphenation of words that include
+analphabetic\index{character!analphabetic}\footnote{An {\it analphabetic}
+character is any character
+that is not alphabetic. Typically it refers to punctuation characters.}
+characters. In this context, the phrase
+`breakable character'\index{character!breakable} is used
+to describe an analphabetic character that enables hyphenation immediately
+after it and does not prevent further hyphenation in the `word'
+in which it occurs. The \verb|\_|\index{_ /@\verb?\_?} command produces
+a breakable underscore. Table~\ref{tab:breakable} lists all the commands
+that generate breakable characters.
+
+\begin{table}
+\centering
+\caption{Commands producing breakable characters} \label{tab:breakable}
+\begin{tabular}{|l|c|} \hline
+\textbf{Command} & \textbf{Character} \\ \hline
+\verb|\_| & \_ \\
+%\verb|\?| & \? \\
+\verb|\bshyp| & \bshyp \\
+\verb|\colonhyp| & \colonhyp \\
+\verb|\dothyp| & \dothyp \\
+\verb|\fshyp| & \fshyp \\ \hline
+\end{tabular}
+\end{table}
+
+ The \verb|\bshyp|\ixcom{bshyp} command prodes a breakable backslash
+(\verb|\|), \verb|\fshyp|\ixcom{fshp} produces a breakable forward
+slash (\verb|/|), the \verb|\dothyp|\ixcom{dothyp} command produces a
+breakable full stop (\verb|.|), also known in some countries as a period,
+and the \verb|\colonhyp|\ixcom{colonhyp} command produces a breakable
+colon (:).
+
+\begin{example}
+This is similar to \eref{eg:uschyp} except that it demonstrates other
+breakable characters.
+
+This set of \latex{} source
+\begin{verbatim}
+Analphabetically an\bshyp{}excessively\fshyp{}long\dothyp{}multiword\bshyp{}identifier%
+\fshyp{}demonstrating\dothyp{}hyphenation
+
+\begin{minipage}{3cm}
+Analphabetically an\bshyp{}excessively\fshyp{}long\dothyp{}multiword\bshyp{}identifier%
+\fshyp{}demonstrating\dothyp{}hyphenation
+\end{minipage}
+\end{verbatim}
+prints as:
+
+Analphabetically an\bshyp{}excessively\fshyp{}long\dothyp{}multiword\bshyp{}identifier%
+\fshyp{}demonstrating\dothyp{}hyphenation
+
+\begin{minipage}{3cm}
+Analphabetically an\bshyp{}excessively\fshyp{}long\dothyp{}multiword\bshyp{}identifier%
+\fshyp{}demonstrating\dothyp{}hyphenation
+\end{minipage}
+
+\end{example}
+
+\begin{note}
+\latex{} will not hyphenate the first word in a paragraph.
+\end{note}
+
+ Just as with the \verb|\_|\index{_ /@\verb?\_?} command,
+the discretionary hyphen
+command (i.e., \verb|\-|\ixcom{-}) should not be used in conjunction with
+any of the breakable character commands as it will then inhibit any
+further potential hyphenation points. In general, any analphabetic
+character in a word will inhibit further hyphenation.
+
+\normannex{Additional commands} \label{anx:extraiso}
+
+\sclause{Language configuration commands}
+
+ There is an additional set of commands in the
+\file{iso}\ixclass{iso} class
+facility that
+are specified here. This set has been provided to enable the style to be
+easily configured for a non-English language.\index{non-English languages}
+
+ The modified commands may be put in the document
+preamble\index{preamble} or, preferably,
+placed in a separate \file{.sty}\index{file!.sty} file and
+called as a package. This latter option improves reuseability.
+
+\ssclause{Words and phrases}
+
+ To produce a non-English version of the \file{iso}\ixclass{iso}
+class the relevant commands
+from the following list may require re-definition together with
+the heading commands in \tref{tab:dsa}.
+
+\begin{note}In the listing, the default values are printed \emph{in this
+font} to distinguish them from the explanatory text.
+\end{note} % end note}
+
+\begin{itemize}
+\item \verb|\annexname|\ixcom{annexname}: Header for
+ an annex.
+ Default value is: \emph{\annexname}\index{Annex}
+\item \verb|\contentsname|\ixcom{contentsname}: Header
+ for table of contents listing.
+ Default value is: \emph{\contentsname}\index{Contents}
+\item \verb|\copyrightname|\ixcom{copyrightname}:
+ The copyright owner.
+ Default value is: \emph{\copyrightname}\index{ISO}
+\item \verb|\examplename|\ixcom{examplename}:
+ Identification of an example.
+ Default value is: \emph{\examplename}\index{EXAMPLE}
+%\item \verb|\examplesname|\ixcom{examplesname}:
+% Header for a list of examples.
+% Default value is: \emph{\examplesname}\index{EXAMPLES}
+\item \verb|\figurename|\ixcom{figurename}: Start of
+ the caption for a figure.
+ Default value is: \emph{\figurename}\index{Figure}
+\item \verb|\forewordname|\ixcom{forewordname}:
+ Title of the Foreword.
+ Default value is: \emph{\forewordname}\index{Foreword}
+\item \verb|\indexname|\ixcom{indexname}: Header for
+ the index.
+ Default value is: \emph{\indexname}\index{Index}
+\item \verb|\informativename|\ixcom{informativename}:
+ Identification of an informative annex.
+ Default value is: \emph{\informativename}\index{informative}
+\item \verb|\inscopename|\ixcom{inscopename}:
+ Introduction to in-scope listing.
+ Default value is: \emph{\inscopename}
+ \index{The following are within the scope of this}
+\item \verb|\ISname|\ixcom{ISname}:
+ `INTERNATIONAL STANDARD' as used in the header for an IS title page.
+ Default value is:
+ \emph{\ISname}\index{INTERNATIONAL STANDARD}
+\item \verb|\introductionname|\ixcom{introductionname}:
+ Title of the Introduction.
+ Default value is:
+ \emph{\introductionname}\index{Introduction}
+\item \verb|\listannexname|\ixcom{listannexname}:
+ Header for list of annexes listing.
+ Default value is: \emph{\listannexname}\index{Annexes}
+\item \verb|\listfigurename|\ixcom{listfigurename}:
+ Header for list of figures listing.
+ Default value is: \emph{\listfigurename}\index{Figures}
+\item \verb|\listtablename|\ixcom{listtablename}:
+ Header for list of tables listing.
+ Default value is: \emph{\listtablename}\index{Tables}
+\item \verb|\normativename|\ixcom{normativename}:
+ Identification of a normative annex.
+ Default value is: \emph{\normativename}\index{normative}
+\item \verb|\normrefsname|\ixcom{normrefsname}:
+ Title of normative references clause.
+ Default value is:
+ \emph{\normrefsname}\index{Normative references}
+\item \verb|\notename|\ixcom{notename}:
+ Identification of a note.
+ Default value is: \emph{\notename}\index{NOTE}
+%\item \verb|\notesname|\ixcom{notesname}:
+% Header for a list of notes.
+% Default value is: \emph{\notesname}\index{NOTES}
+\item \verb|\outofscopename|\ixcom{outofscopename}:
+ Introduction to out-of-scope listing.
+ Default value is: \emph{\outofscopename}
+ \index{The following are outside the scope of this}
+\item \verb|\pagename|\ixcom{pagename}:
+ The word for the page header in the table of contents.
+ Default value is: \emph{\pagename}\index{Page}
+\item \verb|\scopename|\ixcom{scopename}:
+ Title of the Scope.
+ Default value is: \emph{\scopename}\index{Scope}
+%\item \verb|\sectionname|\ixcom{sectionname}:
+% The word for a 'section'.
+% Default value is: \emph{\sectionname}\index{Section}
+\item \verb|\tablename|\ixcom{tablename}:
+ Start of the caption for a table.
+ Default value is: \emph{\tablename}\index{Table}
+\item \verb|\tbpname|\ixcom{tbpname}:
+ Footnote text for `to be published.'.
+ Default value is:
+ \emph{\tbpname}\index{To be published.}
+\end{itemize}
+
+ The following commands provide the names for referenced document elements.
+\begin{itemize}
+\item \verb|\annexrefname|\ixcom{annexrefname}:
+ Reference to an annex.
+ Default value is: \emph{\annexrefname}\index{annex}
+\item \verb|\clauserefname|\ixcom{clauserefname}:
+ Reference to a clause.
+ Default value is: \emph{\clauserefname}\index{clause}
+\item \verb|\examplerefname|\ixcom{examplerefname}:
+ Reference to an example.
+ Default value is: \emph{\examplerefname}\index{example}
+\item \verb|\figurerefname|\ixcom{figurerefname}:
+ Reference to a figure.
+ Default value is: \emph{\figurerefname}\index{figure}
+\item \verb|\noterefname|\ixcom{noterefname}:
+ Reference to a note.
+ Default value is: \emph{\noterefname}
+\item \verb|\tablerefname|\ixcom{tablerefname}:
+ Reference to a table.
+ Default value is: \emph{\tablerefname}\index{table}
+\item \verb|\pagerefname|\ixcom{pagerefname}:
+ Reference to a page.
+ Default value is: \emph{\pagerefname}\index{page}
+\end{itemize}
+
+
+
+\begin{note} The above commands,
+ may be changed via the \latex{}
+\verb|\renewcommand|\ixcom{renewcommand}.
+\end{note} % end note
+\begin{note}The \latex{} command \verb|\today|\ixcom{today}
+ will probably also require modification. This is not something
+ for the casual user to attempt.
+\end{note} % end note
+
+
+\begin{example}The following is a partial list of the commands to convert to a
+ French language\index{French language} style.
+\begin{verbatim}
+\renewcommand{\annexname}{Annexe}
+\renewcommand{\contentsname}{Sommaire}
+\renewcommand{\examplename}{EXEMPLE}
+%\renewcommand{\examplesname}{EXEMPLES}
+\renewcommand{\forewordname}{Avant-propos}
+\renewcommand{\ISname}{NORME INTERNATIONALE}
+\renewcommand{\listtablename}{Tableaux}
+\renewcommand{\scopename}{Domaine d'application}
+\renewcommand{\tablename}{Tableau}
+\end{verbatim}
+\end{example} % end example
+
+\ssclause{Boilerplate}
+
+ Some commands print boilerplate text; again, the default text is in English.
+For \file{iso}\ixclass{iso} there are several such commands. The first is
+\verb|\copyrightnotice|\ixcom{copyrightnotice}
+ which contains the text of the copyright notice
+for an International Standard. This can be changed via the
+\verb|\renewcommand|\ixcom{renewcommand} command.
+
+ The second is \verb|\normrefbp|\ixcom{normrefbp}
+which prints the boilerplate for the introduction to the Normative
+references clause. Like the \verb|\copyrightnotice| command, this can
+be redefined using the \verb|\renewcommand|.
+
+ Another is the \verb|\fwdbp|\ixcom{fwdbp} command which
+\verb|\input|s the boilerplate text from a file called \file{isofwdbp.tex}.
+\index{isofwdbp.tex@\file{isofwdbp.tex}} For non-English text either
+modify the contents of this
+file or create a new file and modify the \verb|\fwdbp| command to call in
+the new file.
+
+
+
+\begin{example}This is how \verb|\normrefbp| could be written for the
+French language and in accordance with the second edition of the
+ISO Directives.
+\label{eg:frenchnfbp}
+\begin{verbatim}
+\renewcommand{\normrefbp}[1]{%
+ Les normes suivantes contiennent des dispositions qui, par
+suite de la r\'{e}f\'{e}nce qui en est faite, constituent des
+dispositions valables pour la pr\'{e}sente #1.
+Au moment de la publication, les \'{e}ditions indiqu\'{e}es
+\'{e}taient en viguer. Toute norms est sujette \`{a} r\'{e}vision et
+les parties prenantes des accords fond\'{e}s sur la pr\'{e}sente #1
+sont invit\'{e}es \`{a} rechercher la possibilit\'{e} d'appliquer
+les \'{e}ditions les plus r\'{e}centes des normes indiqu\'{e}es
+ci-apr\`{e}s. Les membres de la CEI et de l'ISO poss\`{e}dent
+le registre des Normes Internationales en vigueur \`{a} un
+moment donn\'{e}.
+}% end renewcommand
+\end{verbatim}
+\end{example} % end example
+\begin{example}Given that \verb|\normrefbp| has been redefined as in \eref{eg:frenchnfbp},
+then the command \\
+ \verb|\normrefbp{norme internationale}| will print:
+
+\newcommand{\tempbp}[1]{%
+ Les normes suivantes contiennent des dispositions qui, par
+suite de la r\'{e}f\'{e}nce qui en est faite, constituent des
+dispositions valables pour la pr\'{e}sente #1.
+Au moment de la publication, les \'{e}ditions indiqu\'{e}es
+\'{e}taient en viguer. Toute norms est sujette \`{a} r\'{e}vision et
+les parties prenantes des accords fond\'{e}s sur la pr\'{e}sente #1
+sont invit\'{e}es \`{a} rechercher la possibilit\'{e} d'appliquer
+les \'{e}ditions les plus r\'{e}centes des normes indiqu\'{e}es
+ci-apr\`{e}s. Les membres de la CEI et de l'ISO poss\`{e}dent
+le registre des Normes Internationales en vigueur \`{a} un
+moment donn\'{e}.
+}% end newcommand
+
+\tempbp{norme internationale}
+\end{example} % end example
+
+
+
+ The \verb|\tspasfwdbp|\ixcom{tspasfwdbp} also maintains
+boilerplate text in the file
+\file{tspasfwdbp.tex}\index{tspasfwdbp.tex@\file{tspasfwdbp.tex}}.
+
+\sclause{Caption text size}
+
+ The size of the font used for typestting the captions of figures and
+tables is defined within the \file{iso}\ixclass{iso} class.
+% The
+%\verb|uglycaption|\ixopt{uglycaption} option resets the size to larger
+%than normal for the captioning text.
+
+ The size of the captioning font is controlled by the value of the
+\verb|\captionsize|\ixcom{captionsize} command. The default definition
+of \verb|\captionsize| is similar to:
+\verb|\captionsize{\normalsize}| \ixcom{normalsize}\\
+%The \verb|uglycaption| option resets this to (approximately): \\
+%\verb|\captionsize{\large}|. \ixcom{large}
+
+ You can reset the \verb|\captionsize| at any point in your
+document to change the size of captions from then onwards.
+
+ All the normal \latex{} font size commands are available.
+\begin{example}
+The following shows the effects of the font size commands. \\
+\verb|{\tiny tiny text}|\ixcom{tiny}
+prints: {\tiny tiny text} \\
+\verb|{\scriptsize scriptsize text}|\ixcom{scriptsize}
+prints: {\scriptsize scriptsize text} \\
+\verb|{\footnotesize footnotesize text}|\ixcom{footnotesize}
+prints: {\footnotesize footnotesize text} \\
+\verb|{\small small text}|\ixcom{small}
+prints: {\small small text} \\
+\verb|{\normalsize normalsize text}|\ixcom{normalsize}
+prints: {\normalsize normalsize text} \\
+\verb|{\large large text}|\ixcom{large}
+prints: {\large large text} \\
+\verb|{\Large Large text}|\ixcom{Large}
+prints {\Large Large text} \\
+\verb|{\LARGE LARGE text}|\ixcom{LARGE}
+prints: {\LARGE LARGE text} \\
+\verb|{\huge huge text}|\ixcom{huge}
+prints: {\huge huge text} \\
+\verb|{\Huge Huge text}|\ixcom{Huge}
+prints: {\Huge Huge text}
+\end{example}
+
+
+\normannex{Ordering of LaTeX commands} \label{anx:lord}
+
+ The \latex{} commands for the logical structuring of an ISO standard
+document are:
+\begin{verbatim}
+\documentclass[<options>]{isov2} % for LaTeX 2e
+\usepackage{<name>} % additional packages (LaTeX 2e)
+\standard{<standard identification>}
+\yearofedition{<year>}
+\languageofedition{<parenthesized code letter>}
+ % other preamble commands
+\begin{document}
+\begin{foreword} % start Foreword
+ \fwdbp % boilerplate
+ % other text and perhaps \fwdnopatents
+\end{foreword}
+\begin{introduction} % start Introduction
+ % text and perhaps \intropatents
+\end{introduction}
+\title{<intro>}{<main>}{<compl>} % the title
+\scopeclause % The Scope clause
+ \begin{inscope}{<document>} % in scope boilerplate
+ % \item list
+ \end{inscope}
+ % text
+ \begin{outofscope}{<document>} % out of scope boilerplate
+ % \item list
+ \end{outofscope}
+ % text
+\normrefsclause % The Normative references clause
+ \normrefbp{<document identifier>} % boilerplate
+ \begin{nreferences}
+ % \isref{<p1>}{<p2>} and/or \disref{<p1>}{<p2>} commands
+ \end{nreferences}
+% definitions, symbols, abbreviation clause as appropriate
+\clause{<Clause title>}
+% THE BODY OF THE DOCUMENT
+% ...
+% \normannex{<Normative annex title>}
+% ...
+% \infannex{<Infomative annex title>}
+% ...
+\bibannex % optional bibliography
+ % bibliography listing
+% the index
+\end{document}
+\end{verbatim}
+
+
+\infannex{Creating an index} \label{anx:indexing}
+
+ \latex, although providing some assistance in preparing the data for an
+index\index{index}, only does part of the job. Providing the command
+\verb|\makeindex|\ixcom{makeindex} is put in the document's
+preamble\index{preamble}
+the \latex{} command \verb|\index{text}|\ixcom{index}
+writes out \verb|text| to an \file{.idx}\index{file!.idx} file
+in the following format:\ixcom{indexentry}
+\begin{verbatim}
+\indexentry{text}{pg}
+\end{verbatim}
+where \verb|pg| is the page number in the document where the \verb|\index|
+command occurred.
+
+ The \verb|theindex|\ixenv{theindex} environment
+is used for printing an index. The format of this is:
+\begin{verbatim}
+\begin{theindex}
+\item <text and page numbers>
+ \subitem <text and page numbers>
+ \subsubitem <text and page numbers>
+.
+.
+\end{theindex}
+\end{verbatim}
+where \verb|\item|\ixcom{item} is a major topic entry,
+\verb|\subitem|\ixcom{subitem} is a sub-topic entry, and
+\verb|\subsubitem|\ixcom{subsubitem} is a sub-subtopic
+entry. The command \verb|\indexspace|\ixcom{indexspace}
+can be used to add space between the entries. Other text and commands can also
+occur within the environment.
+
+ \latex{} provides no help in going from an \file{.idx} file to the
+\verb|theindex| environment~\bref{lamport}. The data in the file has to be
+sorted, duplicate page numbers deleted, etc, and then re-written in the
+desired environment format.
+
+ The typical process for producing a document with an index is:
+\begin{enumerate}
+\item Prepare the source file, say \file{fred.tex}, with the command
+ \verb|\makeindex|\ixcom{makeindex} in the
+ preamble\index{preamble}, and \verb|\index|\ixcom{index}
+ commands within the body of the text.
+\item Run \latex. As well as producing the usual output files, it will also
+ produce the file \file{fred.idx}.
+\item By some means produce a file, let's call it \file{fredidx.tex}, from the
+ data in \file{fred.idx} that contains the appropriate \verb|theindex|
+ formatted data.
+\item Run \latex{} again on \file{fred.tex} which now has to contain (either
+ via \verb|\input|\ixcom{input} or \verb|\include|\ixcom{include})
+ the file \file{fredidx.tex}.
+\end{enumerate}
+
+ Chen and Harrison~\bref{chen} discuss the problems of creating an index
+in their
+paper \emph{Index preparation and processing} and also describe the
+{\sc MakeIndex}\index{makeIndex@{\sc MakeIndex}} program. Goosens, Mittelbach
+and Samarin~\bref{goosens} also describe how to use the {\sc MakeIndex}
+program for producing indexes for \latex{} documents. For users of
+{\sc MakeIndex} a style file called
+\file{iso.ist}\index{iso.ist@\file{iso.ist}}\index{file!.ist} is provided as
+part of this distribution.
+
+\sclause{The index command}\ixcom{index}
+
+ The \verb|\index| command is one of the standard \latex{} commands.
+The command format is \verb|\index{|\meta{str}\verb|}|, where \meta{str}
+ is any
+string of characters, and it writes an entry to the \file{.idx} file in
+the form \verb|\indexentry{<str>}{pg}|, where \verb|pg| is the page
+number in the document where the command is called.
+
+ Some points to note:
+\begin{itemize}
+\item The \verb|\index| command is, in \latex{} terminology,
+ \emph{fragile}\index{fragile}. That is, if it appears in a moving
+ argument (like the caption to a table or figure) it must be preceded
+ by the \latex{} \verb|\protect|\ixcom{protect}
+ command.
+\item Any of the ten \latex{} special characters\index{special characters}
+ (i.e., \verb|#|, \verb|$|, \verb|%|, \verb|&|, \verb|~|, \verb|_|,
+ \verb|^|, \verb|\|, \verb|{| and \verb|}|) may appear
+ within the argument, with the proviso that it must have no unmatched
+ braces (the braces in \verb|\{| and \verb|\}| are counted in the
+ matching process).
+\item The \verb|\index| command must not appear inside another command's
+ argument (e.g., within a
+ \verb|\footnote|\ixcom{footnote} or \verb|\clause|\ixcom{clause}
+ command) unless the argument of the \verb|\index| command contains
+ only letters, digits, and/or punctuation characters. In particular,
+ it should not contain any of the special characters.
+ \begin{note}This means that the argument of the \verb|\ix|\ixcom{ix}
+ command should not contain any special characters. Remember that the
+ \verb|\ix| command prints its argument in the body of the text and also
+ calls \verb|\index| to place its argument into the \file{.idx} file.
+ \end{note} % end note
+\end{itemize}
+
+\begin{note}Under some circumstances, an \verb|\index| command appearing in another
+command's argument may contain special characters, provided they are
+\verb|\protect|ed. Determination of when this is satisfactory is a process
+of trial and error.
+\end{note} % end note
+
+\begin{example}The command \verb|\ix{an\protect\_underscore}| will print the
+characters \emph{an\_undescore}
+in the text and also write the following to the \file{.idx} file:
+\begin{verbatim}
+\indexentry{an\_ underscore}{pg}
+\end{verbatim}
+Notice that there is a space between the underscore character and the word
+`underscore' in the \file{.idx} file (but there is no space in the printed
+body of the document text). This extraneous space may have to be edited out
+from the final index.
+\end{example} % end example
+
+
+\begin{comment}
+
+\sclause{The program GenIndex} \index{genindex@GenIndex}
+
+ GenIndex is a C program\index{C language} that converts \file{.idx}
+data to \verb|theindex|\ixenv{theindex} data.
+Source code for GenIndex is freely available from
+the NIST SOLIS\index{SOLIS} system (see \ref{anx:solis}).
+The GenIndex program is not
+as sophisticated as {\sc MakeIndex} but does a reasonable
+job.\footnote{These two programs are not completely compatible but do have
+a common subset of commands. The common subset excludes the {\tt SeeAlso}
+and {\tt See} commands. At some later time GenIndex may be rewritten to
+be compatible with {\sc MakeIndex}. It is probably advisable, therefore, not
+to use the GenIndex {\tt SeeAlso} and {\tt See} commands.}
+
+
+\ssclause{Input} \index{genindex@GenIndex!input}
+
+ GenIndex reads lines of data of the form:
+\begin{verbatim}
+\indexentry{IndexData}{Page}
+\end{verbatim}
+
+ \verb|Page| is a character string representing a page number. GenIndex only
+recognizes strings that represent integer values greater than or equal to zero,
+or (upper and lower case) roman numerals. For any other numbering system, the
+page number is treated as zero.
+
+ \verb|IndexData| is a string of characters and command characters that
+specify the data that is to be indexed. In the simplest case, this is just the
+word or phrase to appear in the index, but much more can be done than this, as
+is described below.
+
+ The general form of \verb|IndexData| is given by the following partial
+grammar:
+\begin{verbatim}
+IndexData = MainData ['!' SubData ['!' SubSubData ] ] .
+MainData = Data .
+SubData = Data .
+SubSubData = Data .
+Data = Key [ Entry ] [ SeeAlso ] [ See ] .
+Key = any string not containing the @, !, + or * characters .
+Entry = '@' any string not containing the !, + or * characters
+ (unless enclosed in braces {} ) .
+SeeAlso = '+' any string not containing the ! or * characters
+ (unless enclosed in braces {} ) .
+See = '*' any string not containing the ! character
+ (unless enclosed in braces {} ) .
+\end{verbatim}
+
+ Upto three levels of indexing are enabled --- a main topic entry, an optional
+sub-topic, and an optional sub-subtopic. The sub-topics for an entry are
+introduced by the \verb|!| character. \index{(33@{\verb?!?}}
+
+ Apart from \verb|Key|, braces within a string must be matched. That is,
+they must appear in pairs of an opening and a closing brace.
+Spaces are significant within the \verb|Key| string, but not in the others.
+That is, \verb*|\indexentry{A}| differs from \verb*|\indexentry{ A}|
+both of which differ from \verb*|\indexentry{A }|.
+
+
+\begin{example}Here is an index entry for a simple topic:
+\begin{verbatim}
+\indexentry{Topic}{27}
+\end{verbatim}
+\end{example} % end example
+\begin{example}And here is one where the key and the main entry are different, a
+sub-topic is being indexed, and the page is in roman numerals:
+\begin{verbatim}
+\indexentry{main@\textbf{Main}!sub topic}{xviii}
+\end{verbatim}
+\end{example} % end example
+\begin{example}This is how the characters \verb|@|, \verb|!|, \verb|+| and
+\verb|*| characters are indexed in this document.
+\begin{verbatim}
+\index{(64@{\verb?@?}}
+\index{(33@{\verb?!?}}
+\index{(43@{\verb?+?}}
+\index{(42@{\verb?*?}}
+\end{verbatim}
+\end{example} % end example
+
+
+\sssclause{Key} \index{genindex@GenIndex!input!key}
+
+ The indexed entries are sorted alphabetically on the value of \verb|Key|.
+Sorting is case-insensitive. A \verb|Key| value is required.
+
+ More precisely, the key entries are sorted according to the
+C language\index{C language} implementation collating sequence, which is usually ASCII.
+Table~\ref{tab:ascii} gives the ASCII collating sequence for the \latex\
+character set. \index{ASCII}
+
+
+\begin{table}
+\def\vissp{\hbox{\tt\char`\ }} % visible space
+\centering
+\caption{The \protect\latex{} ASCII character set} \label{tab:ascii}
+\begin{tabular}{|r|c|c|c|c|c|c|c|c|c|c|} \hline
+ & \textbf{0} & \textbf{1} & \textbf{2} & \textbf{3} & \textbf{4} &
+\textbf{5} & \textbf{6} & \textbf{7} & \textbf{8} & \textbf{9} \\ \hline\hline
+\textbf{30} & & & \vissp & \verb|!| & \verb|"| &
+ \verb|#| & \verb|$| & \verb|%| & \verb|&| & \verb|'| \\
+\textbf{40} & \verb|(| & \verb|)| & \verb|*| & \verb|+| & \verb|,| &
+ \verb|-| & \verb|.| & \verb|/| & \verb|0| & \verb|1| \\
+\textbf{50} & \verb|2| & \verb|3| & \verb|4| & \verb|5| & \verb|6| &
+ \verb|7| & \verb|8| & \verb|9| & \verb|:| & \verb|;| \\
+\textbf{60} & \verb|<| & \verb|=| & \verb|>| & \verb|?| & \verb|@| &
+ \verb|A| & \verb|B| & \verb|C| & \verb|D| & \verb|E| \\
+\textbf{70} & \verb|F| & \verb|G| & \verb|H| & \verb|I| & \verb|J| &
+ \verb|K| & \verb|L| & \verb|M| & \verb|N| & \verb|O| \\
+\textbf{80} & \verb|P| & \verb|Q| & \verb|R| & \verb|S| & \verb|T| &
+ \verb|U| & \verb|V| & \verb|W| & \verb|X| & \verb|Y| \\
+\textbf{90} & \verb|Z| & \verb|[| & \verb|\| & \verb|]| & \verb|^| &
+ \verb|_| & \verb|`| & \verb|a| & \verb|b| & \verb|c| \\
+\textbf{100} & \verb|d| & \verb|e| & \verb|f| & \verb|g| & \verb|h| &
+ \verb|i| & \verb|j| & \verb|k| & \verb|l| & \verb|m| \\
+\textbf{110} & \verb|n| & \verb|o| & \verb|p| & \verb|q| & \verb|r| &
+ \verb|s| & \verb|t| & \verb|u| & \verb|v| & \verb|w| \\
+\textbf{120} & \verb|x| & \verb|y| & \verb|z| & \verb|{| & \verb/|/ &
+ \verb|}| & \verb|~| & & & \\ \hline
+\end{tabular}
+\end{table}
+
+\sssclause{Entry} \index{genindex@GenIndex!input!entry}
+\index{(64@{\verb?@?}}
+
+ \verb|Entry| is optional and is introduced by the \verb|@| character. If present, this will form the indexed string.
+If absent, then the value of \verb|Key| is used instead.
+
+\sssclause{See also} \index{genindex@GenIndex!input!see also}
+ \index{(43@{\verb?+?}}
+
+ \verb|SeeAlso| is optional and is introduced by the \verb|+| character.
+Within a document, it should only be used once
+per entry. If used more than once, then only the last value is taken.
+
+ This is used to produce an entry that refers to another indexed entry in
+a \emph{see also \ldots} style.
+
+\sssclause{See} \index{genindex@GenIndex!input!see}
+\index{(42@{\verb?*?}}
+
+ \verb|See| is optional and is introduced by the \verb|*| character.
+Within a document, it should be used only once per
+entry. If used more than once, then only the last value is taken.
+
+ This is used to produce an entry that refers to another entry in a
+\emph{see \ldots} style. Use of this option prohibits printing page numbers
+for the entry.
+
+\ssclause{Output} \index{genindex@GenIndex!output}
+
+ The program GenIndex sorts the entries into alphabetical order (based on
+the \verb|Key| values), and produces a \verb|theindex| for the input data.
+Several formatting commands are included in the output file to enable
+adjustment of the appearance of the printed index. These are shown in
+\tref{tab:indexc}.
+
+\begin{table}
+\centering
+\caption{GenIndex formatting commands} \label{tab:indexc}
+\begin{tabular}{|l|l|} \hline
+\textbf{Command} & \textbf{Effect} \\ \hline
+\verb|\indexfill|\ixcom{indexfill} &
+ spacing style between main topic and page numbers \\
+\verb|\sindexfill|\ixcom{sindexfill} &
+ spacing style between subtopic and page numbers \\
+\verb|\ssindexfill|\ixcom{ssindexfill} &
+ spacing between sub-subtopic and page numbers \\
+\verb|\indexsee{text}|\ixcom{indexsee} &
+ produces \verb|text| as a \emph{see} entry \\
+\verb|\indexseealso{text}|\ixcom{indexseealso} &
+ produces \verb|text| as a \emph{see also} entry \\
+\verb|\otherindexspace{c}|\ixcom{otherindexspace} &
+ heading for non-alphabetic entry \\
+\verb|\alphaindexspace{c}|\ixcom{alphaindexspace} &
+ heading for an alphabetic entry \\ \hline
+\end{tabular}
+\end{table}
+
+
+\begin{note}The commands in \tref{tab:indexc} are defined in the
+ \file{iso}\ixclass{iso} class file.
+\end{note}
+\begin{note}If the commands are not defined in your system,
+ then you can define them
+ using the \latex{} \verb|\newcommand|\ixcom{newcommand}
+ command. On the other hand, if they are defined in your system,
+ you can change them using the
+ \latex{} \verb|\renewcommand|\ixcom{renewcommand} command.
+\end{note} % end note
+
+
+\begin{example}
+This input file:
+\begin{verbatim}
+\indexentry{Freddy+Fred}{27}
+\indexentry{Frederick*Fred}{29}
+\indexentry{Fred}{42}
+\indexentry{Fred}{52}
+\indexentry{Fred}{43}
+\end{verbatim}
+will produce output like:
+\begin{verbatim}
+\begin{theindex}
+\alphaindexspace{F}
+\item Fred \indexfill 42--43, 52
+\item Frederick \indexsee{Fred}
+\item Freddy \indexfill 27 \indexseealso{Fred}
+\end{theindex}
+\end{verbatim}
+\end{example} % end example
+
+\sssclause{Indexfill commands}
+
+ The commands \verb|\indexfill{|\meta{style}\verb|}|\ixcom{indexfill},
+\verb|\sindexfill{|\meta{style}\verb|}|\ixcom{sindexfill} and
+\verb|\ssindexfill{|\meta{style}\verb|}|\ixcom{ssindexfill}
+control the style of spacing between an indexed entry and its corresponding
+page numbers.
+
+\begin{example}
+If you want to have the page numbers right justified, with lines between the
+main topics and their numbers, dots between sub-topics and pages, and
+sub-subtopic numbers right justified, then you could define these commands as:
+\begin{verbatim}
+\newcommand{\indexfill}{\hrulefill}
+\newcommand{\sindexfill}{\dotfill}
+\newcommand{\ssindexfill}{\hfill}
+\end{verbatim}
+\end{example} % end example
+
+
+\begin{anote}The usual \latex{} style is to have a small gap between the
+topic and page number, the whole being set ragged right.
+If this is what you want, then define the commands as:
+\begin{verbatim}
+\newcommand{\indexfill}{}
+\newcommand{\sindexfill}{}
+\newcommand{\ssindexfill}{}
+\end{verbatim}
+\end{anote} % end note
+
+\sssclause{Indexsee and indexseealso commands}
+
+ The \verb?\indexsee{?\meta{text}\verb?}?\ixcom{indexsee} and
+\verb?\indexseealso{?\meta{text}\verb?}?\ixcom{indexseealso} commands
+control the appearance
+of the \emph{see} and \emph{see also} text.
+
+
+\begin{example}
+These commands could be defined as:
+\begin{verbatim}
+\newcommand{\indexsee}[1]{\par \hspace*{2em} \emph{see} #1}
+\newcommand{\indexseealso}[1]{\par \hspace*{2em} \emph{see also} #1}
+\end{verbatim}
+\end{example} % end example
+
+\sssclause{Index space commands}
+\ixcom{alphaindexspace}
+\ixcom{otherindexspace}
+
+ The commands
+\verb?\alphaindexspace{?\meta{c}\verb?}?\ixcom{alphaindexspace} and
+\verb?\otherindexspace{?\meta{c}\verb?}?\ixcom{otherindexspace}
+control the amount of space between blocks of index entries.
+These are an extension of the
+\latex{} \verb|\indexspace|\ixcom{indexspace}
+command, which just inserts some vertical space into the index listing.
+Both these commands take a single parameter, which is typically a single
+character.
+
+\begin{anote}
+GenIndex looks at the first character (call it \verb|c|) of the \verb|Key|
+and if this changes
+as it processes the ordered list of main topics, it puts that character
+as the parameter for these commands. It writes \verb|\alphaindexspace{c}| if
+the character is alphabetic (and \verb|c| is put into upper-case),
+otherwise it writes \verb|\otherindexspace{c}|.
+\end{anote} % end note
+
+\begin{example}
+These commands could be defined as:
+\begin{verbatim}
+\newcommand{\alphaindexspace}[1]{\indexspace
+ {\bfseries #1}}
+\newcommand{\otherindexspace}[1]{}
+\end{verbatim}
+which would result in the printing of a vertical space and a bold font text
+for an alphabetic header, or nothing for anything else.
+\end{example} % end example
+
+\ssclause{Running GenIndex} \index{genindex@GenIndex!run}
+
+ To run GenIndex, first obtain a copy of the program, and compile it if
+necessary. Execute the program on your data.
+
+ GenIndex takes zero, one or two file names as parameters. If no files are
+given then input and output is from and to \verb|stdin| and \verb|stdout|
+respectively.
+
+ If one file is given, then input is taken from this file, and output
+is to \verb|stdout|.
+
+ If two file names are given, then input is taken from the first and output
+is to the second.
+
+\begin{example}
+A typical usage would be:
+\begin{verbatim}
+GenIndex fred.idx fredidx.tex
+\end{verbatim}
+which would read the \file{fred.idx} file and write the resulting index data to
+file \file{fredidx.tex}.
+\end{example} % end example
+
+\end{comment}
+
+% sgmlannx.tex latex and SGML
+
+\infannex{LaTeX, the Web, and *ML} \label{anx:sgml} \index{SGML}
+
+ ISO are becoming more interested in electronic sources for their
+standards as well as the traditional camera-ready copy. Acronyms like
+PDF, HTML, SGML and XML have been bandied about. Fortunately documents
+written using \latex{} are well placed to be provided in a variety of
+electronic formats. A comprehensive treatment of \latex{} with respect
+to this topic is provided by Goossens and Rahtz~\bref{lwebcom}.
+
+ SGML (Standard Generalized Markup Language) is a document tagging
+language that is described in ISO~8879~\bref{sgml} and whose usage is described
+in~\bref{bryan}, among others. The principal
+mover behind SGML is Charles Goldfarb from IBM, who has authored a detailed
+handbook~\bref{goldfarb} on the SGML standard.
+
+ The concepts lying behind both \latex{} and SGML are similar, but on the face
+of it they are distinctly different in both syntax and capabilities. ISO is
+migrating towards electronic versions of its standard documents and, naturally,
+would prefer these to be SGML tagged.
+ Like \latex, SGML has a
+concept of style files, which are termed DTDs, and both systems support
+powerful macro-like capabilities. SGML provides for logical document
+markup and not typesetting --- commercial SGML systems often use
+\TeX{} or \latex{} as their printing engine, as does the NIST SGML
+environment for ISO~10303~\bref{pandl}.
+
+
+
+NIST have SGML tagged some ISO~10303 documents
+using manual methods, which are time consuming and expensive.
+About 1997 there was a NIST
+effort underway to develop an auto-tagger that would (semi-) automatically convert
+a \latex{} tagged document to one with SGML tags. This tool assumed a
+fixed set of \latex{} macros and a fixed DTD.
+ The design of an auto-tagger
+essentially boils down to being able to convert from a source document tagged
+according to a \latex{} style file to one which is tagged according to an
+SGML DTD.
+ Fully automatic conversion is really only possible if the authors'
+of the documents to be translated avoid using any `non-standard' macros within
+their documents. There is a program called \file{ltx2x}\index{ltx2x} available
+from SOLIS, which replaces \latex{} commands within a document with
+user-defined text strings~\bref{ltx2x}. This can be used as a basis for
+a \latex{} to whatever auto-tagger, provided the \latex{} commands are not
+too exotic.
+
+ HTML is a simple markup language, based on SGML, and is used for the
+publication of many documents on the Web. XML is a subset of SGML and appears
+to being taken up by every man and his dog as \emph{the} document markup
+language. HTML is being recast in terms of XML instead of SGML. PDF is a page
+description language that is a popular format for display of documents
+on the Web.
+
+ \latex{} documents can be output in PDF by using pdfLaTeX. Instead
+of a \file{.dvi} file being produced a \file{.pdf} file is output directly.
+The best
+results are obtained when PostScript fonts rather than Knuth's cm fonts
+are used. Noting that the \file{iso} class provides an \verb|\ifpdf| command,
+a general form for documents to be processed by either \latex{} or pdfLaTeX
+is
+\begin{verbatim}
+\documentclass{isov2}
+\usepackage{times} % PostScript fonts Times, Courier, Helvetica
+\ifpdf
+ \pdfoutput=1 % request PDF output
+ \usepackage[pdftex]{graphicx}
+\else
+ \usepackage{graphicx}
+\fi
+...
+\end{verbatim}
+
+ There are several converters available to transform a \latex{} document
+into an HTML document, but like \file{ltx2x} they generally do their own
+parsing of the source file, and unlike \file{ltx2x} are typically limited
+to only generating HTML. Eitan Gurari's \file{TeX4ht}\index{TeX4ht}
+suite is a notable
+exception (see Chapter~4 and Appendix~B of~\bref{lwebcom}). It uses the
+\file{.dvi} file as input, so that all the parsing is done by \TeX, and can be
+configured to generate a wide variety of output formats.
+A set of \file{TeX4ht} configuration files are available for converting
+ISO \latex{} documents into HTML\footnote{Later, configuration files for XML
+output will be developed.}.
+
+ Some points to watch when writing \latex{} documents that will assist
+in translations into *ML are given below. Typically, attention to these points
+will make it easier to parse the \latex{} source.
+
+\begin{itemize}
+\item Avoid using the \verb|\label|\ixcom{label} command within
+ clause headings or captions. It can just as easily be placed immediately
+ after these constructs.
+\item Avoid using the \verb|\index|\ixcom{index} command within
+ clause headings or captions. It can just as easily be placed immediately
+ after these constructs.
+\end{itemize}
+
+
+
+
+
+
+\infannex{Obtaining LaTeX and friends} \label{anx:getstuff}
+
+ \latex{} is a freely available document typesetting system. There are many
+public domain additions to the basic system.
+The information below gives pointers to where
+you can obtain \latex{} etc., from the\index{Internet} Internet.
+
+ \latex{} runs on a wide variety of hardware, from PCs to Crays.
+Source to build a \latex{} system is freely available via anonymous
+ftp\index{ftp} from what is called CTAN\index{CTAN}
+(Comprehensive \tex{} Archive Network).
+There are three sites; pick the one nearest to you.
+\begin{itemize}
+\item \url{ftp.dante.de} CTAN in Germany;
+\item \url{ftp.tex.ac.uk} CTAN in the UK;
+\item \url{ctan.tug.org} CTAN in the USA;
+\end{itemize}
+The top level CTAN directory for \latex{} and friends is
+\url{/tex-archive}. CTAN contains a wide variety
+of (La)TeX sources, style files, and software tools and scripts
+to assist in document processing.
+
+\begin{anote}
+ CTAN is maintained by the \tex{} Users Group (TUG). Their homepage
+\isourl{http://www.tug.org} should be consulted for the current
+list of CTAN sites and mirrors.
+\end{anote}
+
+\begin{comment}
+
+\sclause{SOLIS} \index{SOLIS} \label{anx:solis}
+
+ SOLIS is the \emph{SC4 On Line Information Service}. It contains many electronic
+sources of STEP related documents. The relevant top level directory is
+\url{pub/subject/sc4}.
+ In particular, SOLIS contains the source for this document
+and the \file{.sty} files, as well as other \latex{} related files.
+The \latex{} root directory is \url{sc4/editing/latex}. The latest
+versions of the \latex{} related files are kept in the sub-directory
+\url{latex/current}.
+Some \latex{} related programs are also available in the
+\url{latex/programs} sub-directory.
+
+ SOLIS can be reached at \isourl{http://www.nist.gov/sc4}.
+
+\end{comment}
+
+
+\infannex{Changes in this release} \label{anx:changes}
+
+ Many of the commands and environments have been redefined in order
+to match the change in requirements from the the third to the fourth
+edition of the ISO Directives. Usage of these is unaffected.
+
+ The following changes have been made in this release:
+\begin{itemize}
+\item The \verb|cover|\ixenv{cover} environment has been added;
+
+\item The boolean test \verb|\ifpdf|\ixcom{ifpdf} has been added;
+
+\item The command \verb|\fwdnopatents|\ixcom{fwdnopatents} has been added
+ for patent boilerplate in the Foreword.
+
+\item The command \verb|\tpasfwdbp|\ixcom{tpasfwdbp} has been added
+ for TS/PAS Foreword boilerplate.
+
+\item The command \verb|\intropatents|\ixcom{intropatents} has been added
+ for patent boilerplate in the Introduction.
+
+\item The commands \verb|\pref|\ixcom{pref} and
+ \verb|\pagerefname|\ixcom{pagerefname} have been added.
+
+\item The command \verb|\trwfwdbpi|\ixcom{trfwdbpi} for Foreword boilerplate
+ in a Technical Report has been deleted.
+
+\item The \verb|notes|\ixenv{notes} and \verb|examples|\ixenv{examples}
+ environments have been deleted.
+
+\item Support is provided for the \file{hyperref}\ixpack{hyperref}
+ package.
+
+\end{itemize}
+
+
+
+\bibannex
+%\label{biblio}
+
+\begin{references}
+\reference{LAMPORT, L.,}{LaTeX --- A Document Preparation System,}
+ {Addison-Wesley Publishing Co., 2nd edition, 1994.} \label{lamport}
+\reference{WILSON, P.R.,}{LaTeX files for typesetting ISO standards:
+ Source code,}
+ {NISTIR, National Institute of Standards and Technology,
+ Gaithersburg, MD 20899. June 1996.} \label{isoe}
+\reference{WILSON, P.R.,}{LaTeX package files for ISO~10303: User manual,}
+ {NISTIR, National Institute of Standards and Technology,
+ Gaithersburg, MD 20899. June 1996.} \label{stepsty}
+\reference{RAHTZ, S., and BARROCA, L.,}{A style option for rotated
+ objects in \latex,}{ TUGBoat, volume 13, number 2, pp 156--180,
+ July 1992.} \label{rahtz}
+\reference{GOOSSENS, M., MITTELBACH, F. and SAMARIN, A.,}{%
+ The LaTeX Companion,}
+ {Addison-Wesley Publishing Co., 1994.} \label{goosens}
+\reference{GOOSSENS, M., and RAHTZ, S.,}{%
+ The LaTeX Web Companion --- Integrating TeX, HTML and XML,}
+ {Addison-Wesley Publishing Co., 1999.} \label{lwebcom}
+\reference{CHEN, P. and HARRISON, M.A.,}{Index preparation and
+ processing,}{Software--Practice and Experience, 19(9):897--915,
+ September 1988.} \label{chen}
+%\reference{KOPKA, H. and DALY, P.W.,}{A Guide to LaTeX,}
+% {Addison-Wesley Publishing Co., 1993.} \label{kopka}
+%\reference{WALSH, N.,}{Making TeX Work,}{O'Reilly \& Associates, Inc.,
+% 103 Morris Street, Suite A, Sebastopol, CA 95472. 1994. } \label{walsh}
+\reference{ISO 8879:1986,}{Information processing ---
+ Text and office systems ---
+ Standard Generalized Markup Language (SGML).}{} \label{sgml}
+\reference{GOLDFARB, C.F.,}{The SGML Handbook,}
+ {Oxford University Press, 1990.} \label{goldfarb}
+\reference{BRYAN, M.,}{SGML --- An Author's Guide to the Standard Generalized
+ Markup Language,}{Addison-Wesley Publishing Co., 1988. } \label{bryan}
+\reference{PHILLIPS, L. and LUBELL, J.,}{An SGML Environment for STEP,}%
+ {NISTIR 5515, National Institute of Standards and Technology,
+ Gaithersburg, MD 20899. November 1994.} \label{pandl}
+\reference{WILSON, P. R.,}{LTX2X: A LaTeX to X Auto-tagger,}%
+ {NISTIR, National Institute of Standards and Technology,
+ Gaithersburg, MD 20899. June 1996.} \label{ltx2x}
+\begin{comment}
+\reference{RESSLER, S.,}{The National PDES Testbed Mail Server User's Guide,}
+ {NSTIR 4508, National Institute of Standards and Technology,
+ Gaithersburg, MD 20899. January 1991.} \label{ressler}
+\reference{RINAUDOT, G.R.,}{STEP On Line Information Service (SOLIS),}
+ {NISTIR 5511, National Institute of Standards and Technology,
+ Gaithersburg, MD 20899. October 1994. } \label{rinaudot}
+\reference{KROL, E.,}{The Whole Internet --- User's Guide \& Catalog,}
+ {O'Reilly \& Associates, Inc.,
+ 103 Morris Street, Suite A, Sebastopol, CA 95472. 1993. } \label{krol}
+\end{comment}
+\reference{WILSON, P.R.,}{The hyphenat package,}%
+ {1999. (Available from CTAN)} \label{bib:hyphenat}
+\reference{WILSON, P.R.,}{The xtab package,}%
+ {1998. (Available from CTAN)} \label{bib:xtab}
+\end{references}
+
+
+%%%%%%% here is the index at the end
+%%\input{isomanidx}
+\input{isoman.ind}
+
+
+
+\end{document}