% stepsty.tex Description of option style files for STEP \ifx\documentclass\undefined %%%%%% Process with LaTeX 2.09 \documentstyle[letterpaper,stepv1,irv1,apv1,aicv1,atsv1]{isonev1} \else %%%%% Process with LaTeX2e \documentclass[letterpaper]{isov1} \usepackage{stepv1} \usepackage{irv1} \usepackage{apv1} \usepackage{aicv1} \usepackage{atsv1} \fi % general required preamble commands \standard{ISO/WD 10303-3456} \yearofedition{1994} \languageofedition{(E)} \partno{3456} % required preamble commands for an AP \aptitle{coffee cup} \aicinaptrue % only if the AP uses AICs % required preamble commands for an ATS \APtitle{beer mug} \APnumber{299} \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 \file{} command % \newcommand{\file}[1]{{\sf #1}} % % 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$\langle$\it#1\/$\rangle$\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 % % end of preamble % \begin{document} \STEPcover{ \scivnumber{987} \wg{EC} \docnumber{47+} \oldwg{EC} \olddocnumber{47} \docdate{May 1996} \partnumber{3456} \doctitle{LaTeX package files for ISO 10303} \status{Working project draft} \primcont \abstract{This document describes the \LaTeX\ style files created for ISO~10303.} \keywords{\LaTeX, Style file} \dateprojo{May 1996} \owner{Peter R Wilson} \address{NIST\\ Bldg. 220, Room A127 \\ Gaithersburg, MD 20899 \\ USA } \telephone{$+\!1$ (301) 975-2976} \email{{\tt pwilson@cme.nist.gov}} \altowner{Tony Day} \altaddress{Sikorsky Aircraft} \comread{This document serves two purposes. Firstly, it provides a description of the current \LaTeX\ style file for ISO 10303. Secondly, the source can be used as an example of using the \LaTeX\ commands. The document has been updated following ISO editorial comments on the first release of the STEP IS parts.} % end comread } % end of STEPcover \Foreword \endForeword% {Annexes A, B and C are} % normative annexes {Annexes D, E, F and G are} % informative annexes \begin{Introduction}{descriptive methods} \begin{majorsublist} \item the \file{step} facility; \item the \file{ir} facility; \item the \file{ap} facility; \item the \file{aic} facility; \item the \file{atc} facility. \end{majorsublist} This part of ISO 10303 specifies the \LaTeX\ facilities specifically designed for use in preparing the various parts of this standard. This part of ISO~10303 is based in part upon material in the ISO Directives Part 3 ({\em Drafting and presentation of International Standard}) which was used as a basis for the overall typographical layout. The \LaTeX\ facilities described are based upon the specifications given in {\em ISO TC~184/SC4 N-432}. \sclause*{Overview} %\MakeShortVerb{+} This document describes a set of \LaTeX\ files for use within ISO~10303, commonly called STEP. The electronic source of this document also provides an example of the use of these files. Commands that have been deleted are noted, as are commands that are deprecated and which will be deleted in the next version. The current set of files have been developed by Peter Wilson from Kent Reed's files. In turn, these were revisions of files originally created by Phil Spiby, based on early work by Phil Kennicott.\footnote{In mid 1994 \LaTeX\ was upgraded from version 2.09 to what is called \LaTeX 2e. The files described in this document should be compatible with both versions of \LaTeX.} \begin{anote} It is important to note that the style files should not be used with any version of \LaTeX\ v2.09 that incorporates the New Font Selection Scheme (NFSS).\index{nfss@NFSS} \end{anote} % end anote Documents produced with the \LaTeX\ files have been twice reviewed by the ISO Editorial Board in Geneva for conformance to their typographical and layout requirements. The first review was of a set of Draft International Standard documents. This review resulted in some changes to the style files. The second review was of a set of twelve International Standard documents. Likewise, this review led to changes in the style files to bring the documents into conformance. With the issuance of the first STEP release, the opportunity has been taken to provide a new baseline release of the package files. In particular, one STEP specific package file is available for all STEP parts, while others contain only commands relevant to the documentation of particular series of parts. The range of package files may be extended in the future to cater for documentation specific to all STEP parts. This new baseline release has also been designed to cater for the fact that a major update of \LaTeX\ to \LaTeX 2e took place during 1994. This version of \LaTeX\ is the only officially supported version. 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. \end{Introduction} \stepparttitle{Documentation methods: The LaTeX package files reference manual} \scopeclause This part of ISO~10303 describes a set of \LaTeX\ files for typesetting documents according to the ISO Directives Part 3, together with the STEP Supplementary Directives. \begin{inscope}{part of ISO~10303} \item use of \LaTeX\ for preparing ISO~10303 documents. \end{inscope} \begin{outofscope}{part of ISO~10303} \item use of \LaTeX\ for preparing ISO standard documents in general; \item use of \LaTeX\ in general; \item use of other document preparation systems. \end{outofscope} \normrefsclause \label{sec:nrefs} \normrefbp{part of ISO~10303} \begin{nreferences} \isref{ISO Directives Part 3}{Drafting and presentation of International Standards.} \isref{ISO TC 184/SC4 N-4432}{Supplementary directives for the drafting and presentation of ISO 10303.} %\isref{ISO 10303-1:1994}{Industrial automation systems and integration --- % Product data representation and exchange --- % Part 1: Overview and fundamental principles.} \nrefparti %\isref{ISO 10303-11:1994}{Industrial automation systems and integration --- % Product data representation and exchange --- % Part 11: Description methods: % The EXPRESS language reference manual.} \nrefpartxi \disref{ISO 10303-12:---}{Industrial automation systems and integration --- Product data representation and exchange --- Part 12: Description methods: The EXPRESS-I language reference manual.} %\disref{ISO/IEC 8824-1:---}{Information technology --- % Open systems interconnection --- % Abstract syntax notation one (ASN.1) --- % Part 1: Specification of basic notation.} \nrefasni \disref{P. R. WILSON:---}{LaTeX for standards: The LaTeX package files user manual.} \end{nreferences} \defclause %\clause{Definitions} \partidefhead %\sclause{Terms defined in ISO 10303-1} This part of ISO~10303 makes use of the following terms defined in ISO~10303-1: \begin{olddefinitions} \olddefinition{application protocol (AP)}{} \index{application protocol*AP} \index{AP} \olddefinition{integrated resource}{} \index{integrated resource} \end{olddefinitions} \otherdefhead %\sclause{Other definitions} For the purposes of this part of ISO~10303, the following definitions apply. \begin{definitions} \definition{boilerplate}{Text whose wording is fixed.} \index{boilerplate} \definition{style file}{A set of \LaTeX\ macros assembled into a single file.} \index{style file}\index{latex@{\LaTeX}} \definition{package file}{A style file for use with \LaTeX 2e.} \index{package file} \definition{facility}{A generic term for a set of \LaTeX\ macros assembled for a common purpose. It includes both style and package files.}\index{facility} \end{definitions} \symabbclause %\clause{Symbols and abbreviations} For the purposes of this part of ISO 10303, the following abbreviations apply. \begin{symbols} \symbol{AIC}{Application Interpreted Construct} \index{AIC} \symbol{AP}{Application Protocol} \index{AP} \symbol{DIS}{Draft International Standard} \index{DIS} \symbol{IS}{International Standard} \index{IS} \symbol{ISOD}{ISO directives Part 3} \index{ISOD} \index{ISO Directives*ISOD} \symbol{SD}{Supplementary Directives --- {\em Supplementary directives for the drafting and presentation of ISO 10303}}\index{SD}\index{supplementary directives*SD} \symbol{IS-REVIEW}{The ISO Editorial Board review (September 1994) of twelve IS documents for conformance to ISO typographical and layout requirements.} \index{IS-REVIEW} \end{symbols} \clause{Conformance requirements} \label{sec:iconform} The facility files shall not be modified in any manner. If there is a need to modify any of the macro definitions then this shall be done using the \LaTeX\ \verb|\renewcommand|\index{renewcommand\@\verb|\renewcommand|} and/or the \verb|\renewenvironment|\index{renewenvironment\@\verb|\renewenvironment|} commands. These shall be placed in a new \file{.sty} file (or files) which shall be called in within the preamble of the document being typeset. \fcandaclause %\clause{Fundamental concepts and assumptions} It is assumed that the reader of this document is familiar with the \LaTeX\ document preparation system and in particular with the \file{iso} facilities. \index{latex@{\LaTeX}} \begin{note}Reference~\bref{lamport} in \aref{biblio} describes the \LaTeX\ system. \end{note} % end note The reader is also assumed to be familiar with the ISO Directives Part~3 and the STEP Supplementary Directives. \index{ISOD} \index{SD} If there are any discrepancies between the layout and wording of this document and the requirements of the ISO Directives Part~3 or the Supplementary Directives, then the requirements in those documents shall be followed for ISO~10303 standard documents. Because of many revisions over the years to the files described herein, a naming convention has been adopted for them. The naming convention is that the primary name of the file is suffixed by \file{v\#}, where \file{\#} is the version number of the file in question. All file primary names have bee 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. \index{step@\file{step}}\index{stepv1.sty@\file{stepv1.sty}} \index{ir@\file{ir}}\index{irv1.sty@\file{irv1.sty}} \index{ap@\file{ap}}\index{apv1.sty@\file{apv1.sty}} \index{aic@\file{aic}}\index{aicv1.sty@\file{aicv1.sty}} \end{note} % end note \begin{table} \centering \caption{File versions current at publication time} \label{tab:curfiles} \begin{tabular}{|l|l|} \hline {\bf Facility} & {\bf File} \\ \hline\hline \file{step} & \file{stepv1.sty} \\ \file{ir} & \file{irv1.sty} \\ \file{ap} & \file{apv1.sty} \\ \file{aic} & \file{aicv1.sty} \\ \file{ats} & \file{atsv1.sty} \\ \hline \end{tabular} \end{table} \begin{example} At the time of publication of this document, any references to \file{ir} should be read as actually referring to \file{irv1.sty}. \end{example} % end example \begin{note}This document is not a standard, although it has been laid out in a similar, but not necessarily identical, manner.\end{note} % end note \clause{The step facility} \index{file!sty@.sty!step} \index{step.sty} The \file{step} facility provides commands and environments specifically for the ISO~10303 series of documents. \sclause{Cover page} The command \verb+\STEPcover{+\meta{commands}\verb+}+ produces a cover page for a \index{stepcover\@\verb|\STEPcover|} STEP document. The complete list of commands is shown below. \begin{itemize} \item \verb+\wg{+\meta{working group}\verb+}+\index{wg\@\verb|\wg|} the working group or other committee producing the document e.g., WG 5 \item \verb+\docnumber{+\meta{number}\verb+}+\index{docnumber\@\verb|\docnumber|} the number of the document e.g., 156 \item \verb+\scivnumber{+\meta{number}\verb+}+\index{scivnumber\@\verb|\scivnumber|} the number given to the doc by SC4 for ballot purposes e,g. 273 \item \verb+\projnumber{+\meta{number}\verb+}+\index{projnumber\@\verb|\projnumber|} the project number e.g., 4 \item \verb+\docdate{+\meta{date}\verb+}+\index{docdate\@\verb|\docdate|} date of publication e.g., 3 July 1993 \item \verb+\oldwg{+\meta{working group}\verb+}+\index{oldwg\@\verb|\oldwg|} superseded working group e.g., WG 1 \item \verb+\olddocnumber{+\meta{number}\verb+}+\index{olddocnumber\@\verb|\olddocnumber|} number of previous document e.g., 107 \item \verb+\oldprojnumber{+\meta{number}\verb+}+\index{oldprojnumber\@\verb|\oldprojnumber|} superseded project number e.g., 2 \item \verb+\partnumber{+\meta{number}\verb+}+\index{partnumber\@\verb|\partnumber|} prints the number of the part of the standard e.g., 3456 \item \verb+\doctitle{+\meta{text}\verb+}+\index{doctitle\@\verb|\doctitle|} Short title of the document e.g., ISO Style file \item \verb+\status{+\meta{text}\verb+}+\index{status\@\verb|\status|} the status of the document e.g., In work \item \verb|\primcont| \index{primcont\@\verb|\primcont|} flags `Primary Content' \item \verb|\issue| \index{issue\@\verb|\issue|} flags `Issue Discussion' \item \verb|\altprop| \index{altprop\@\verb|\altprop|} flags `Alternate Proposal' \item \verb|\partialcont| \index{partialcont\@\verb|\partialcont|} flags `Partial Content' \item \verb+\abstract{+\meta{text}\verb+}+\index{abstract\@\verb|\abstract|} an abstract of the document \item \verb+\keywords{+\meta{text}\verb+}+\index{keywords\@\verb|\keywords|} for listing relevant keywords \item \verb+\dateproj{+\meta{date}\verb+}+\index{dateproj\@\verb|\dateproj|} date approved by project leader \item \verb+\datewg{+\meta{date}\verb+}+\index{datewg\@\verb|\datewg|} date approved as released by WG convenor \item \verb+\datequal{+\meta{date}\verb+}+\index{datequal\@\verb|\datequal|} date approved by Qualification \item \verb+\dateint{+\meta{date}\verb+}+\index{dateint\@\verb|\dateint|} date approved as technically complete by Integration \item \verb+\dateec{+\meta{date}\verb+}+\index{dateec\@\verb|\dateec|} date approved as editorially complete %\item \verb+\dateisocd{+\meta{date}\verb+}+\index{dateisocd\@\verb|\dateisocd|} % date % approved as ISO Committee Draft \item \verb+\dateprojo{+\meta{date}\verb+}+\index{dateprojo\@\verb|\dateprojo|} date approved by project leader as `other' document \item \verb+\datewgo{+\meta{date}\verb+}+\index{datewgo\@\verb|\datewgo|} date approved by WG convenor as `other' document \item \verb+\datequalo{+\meta{date}\verb+}+\index{datequalo\@\verb|\datequalo|} date approved by Qualification as `other' document \item \verb+\dateinto{+\meta{date}\verb+}+\index{dateinto\@\verb|\dateinto|} date approved as technically complete by Integration for `other' document \item \verb+\dateeco{+\meta{date}\verb+}+\index{dateeco\@\verb|\dateeco|} date approved as editorially complete for `other' document \item \verb+\owner{+\meta{text}\verb+}+\index{owner\@\verb|\owner|} name of document owner/editor \item \verb+\address{+\meta{text}\verb+}+\index{address\@\verb|\address|} address of owner \item \verb+\telephone{+\meta{number}\verb+}+\index{telephone\@\verb|\telephone|} telephone/fax number of owner \item \verb+\email{+\meta{text}\verb+}+\index{email\@\verb|\email|} Email address of owner \item \verb+\altowner{+\meta{text}\verb+}+\index{altowner\@\verb|\altowner|} name of document alternate owner/editor \item \verb+\altaddress{+\meta{text}\verb+}+\index{altaddress\@\verb|\altaddress|} address of alternate owner \item \verb+\alttelephone{+\meta{number}\verb+}+\index{alttelephone\@\verb|\alttelephone|} telephone/fax number of alternate owner \item \verb+\altemail{+\meta{text}\verb+}+\index{altemail\@\verb|\altemail|} Email address of alternate owner \item \verb+\comread{+\meta{text}\verb+}+\index{comread\@\verb|\comread|} comments to the reader \end{itemize} Only use those commands within \verb|\STEPcover| that are relevant to the purposes at hand. The order of the commands within \verb|\STEPcover| is immaterial. \begin{example} The commands used to produce the cover sheet for one version of this document were: \begin{verbatim} \STEPcover{ \wg{EC} \docnumber{41} \oldwg{EC} \olddocnumber{35} \docdate{19 August 1994} \partnumber{3456} \doctitle{LaTeX Style file for ISO 10303} \status{Working project draft} \primcont \abstract{This document describes the \LaTeX\ style files created for ISO~10303. It also describes the program GenIndex which provides some capabilities to assist in the creation of indexes for \LaTeX\ documents in general.} \keywords{\LaTeX, Style file, GenIndex, Index} \dateprojo{Not yet} \owner{Peter R Wilson} \address{NIST\\ Bldg. 220, Room A127 \\ Gaithersburg, MD 20899 \\ USA } \telephone{$+\!1$ (301) 975-2976} \email{\verb|pwilson@cme.nist.gov|} \altowner{Tony Day} \altaddress{Sikorsky Aircraft} \comread{This document serves two purposes. Firstly, it provides a description of the current \LaTeX\ style file for ISO 10303. Secondly, the source can be used as an example of using the \LaTeX\ commands.} % end comread } % end of STEPcover \end{verbatim} \end{example} % end example \sclause{Heading commands} The commands described in this section specify various `standard' clause headings. \ssclause{The Foreword commands} The \verb+\Foreword+ command \index{foreword\\@\verb|\Foreword|} specifies that a table of contents, list of figures and a list of tables be produced. Page numbering is roman style and the table of contents starts on page ii. A new unnumbered clause entitled Foreword is started containing both ISO required boilerplate and boilerplate \index{boilerplate} text specific to ISO 10303. Any text may be written after the \verb|\Foreword| command. The Foreword clause is ended by the \verb+\endForeword{+\meta{norm annexes}\verb+}{+\meta{inf annexes}\verb+}+ command. \index{endForeword\@\verb|\endForeword|} This command takes two parameters. \begin{enumerate} \item \meta{norm annexes} A phrase that starts the sentence `\meta{norm annexes} an integral part of this part \ldots'. If there are no normative annexes, then use an empty argument (i.e., \verb|{}| with no spaces between the braces). \item \meta{inf annexes} A phrase that starts the sentence `\meta{inf annexes} for information purposes only.'. If there are no informative annexes, then use an empty argument. \end{enumerate} The \verb|\endForeword| command produces some additional boilerplate \index{boilerplate} text specifically for ISO 10303. \begin{example} The \LaTeX\ source for the Foreword for one version this document was: \begin{verbatim} \Foreword \endForeword {Annexes A, B and C are} % normative annexes {Annexes D, E, F, G, H, J and K are} % informative annexes \end{verbatim} \end{example} % end example \ssclause{The Introduction environment} The \verb+\begin{Introduction}{+\meta{class name}\verb+}+% \index{introduction\\@\verb|\Introduction|} environment starts a new unnumbered clause entitled Introduction and adds some boilerplate \index{boilerplate} text specifically for ISO 10303. The environment takes one parameter --- \meta{class name} -- which is the name of the part class the document belongs to (e.g. description methods, integrated resources, etc.). \begin{example} The following \LaTeX\ source was used to specify the Introduction to this document. \label{ex:intro} \begin{verbatim} \begin{Introduction}{descriptive methods} \begin{majorsublist} \item the \file{step} facility; \item the \file{ir} facility; \item the \file{ap} facility; \item the \file{aic} facility; \item the \file{atc} facility. \end{majorsublist} This part of ISO 10303 specifies the \LaTeX\ facilities specifically designed for use ... \sclause*{Overview} This document describes a set of \LaTeX\ files for use within ISO~10303 ... \end{Introduction} \end{verbatim} \end{example} % end example \ssclause{The stepparttitle command} The \verb+\stepparttitle{+\meta{part title}\verb+}+ command\index{stepparttitle\@\verb|\stepparttitle|} produces the title for a STEP part, where \meta{part title} is the title of the part. \begin{example}The title for this document was produced using: \begin{verbatim} \stepparttitle{Documentation methods: The LaTeX package files reference manual} \end{verbatim} \end{example} % end example \ssclause{Other headings} Most of these commands take no parameters. They start document clauses with particular titles. The commands that take no parameters are listed in \tref{tab:noparamhead}. \index{partidhead\@\verb|\partidhead|} \index{otherdefhead\@\verb|\otherdefhead|} \index{introsubhead\@\verb|\introsubhead|} \index{fcandasubhead\@\verb|\fcandasubhead|} \index{shortnamehead\@\verb|\shortnamehead|} \index{picshead\@\verb|\picshead|} \index{objreghead\@\verb|\objreghead|} \index{docidhead\@\verb|\docidhead|} \index{schemaidhead\@\verb|\schemaidhead|} \index{expresshead\@\verb|\expresshead|} \index{expressghead\@\verb|\expressghead|} \index{modelscopehead\@\verb|\modelscopehead|} \index{techdischead\@\verb|\techdischead|} \begin{anote} In the tables, C = clause, SC = subclause, SSC = subsubclause, NA = normative annex, IA = informative annex. \end{anote} % end note \begin{table} \centering \caption{STEP package parameterless heading commands} \label{tab:noparamhead} \begin{tabular}{|l|c|l|} \hline {\bf Command} & {\bf Clause} & {\bf Default text} \\ \hline \verb|\partidefhead| & SC & Terms defined in ISO 10303-1 \\ \verb|\otherdefhead| & SC & Other definitions \\ \verb|\introsubhead| & SC & Introduction \\ \verb|\fcandasubhead| & SC & Fundamental concepts and assumptions \\ \verb|\shortnamehead| & NA & Short names of entities \\ \verb|\picshead| & NA & Protocol Implementation Conformance Statement (PICS) proforma \\ \verb|\objreghead| & NA & Information object registration \\ \verb|\docidhead| & SC & Document identification \\ \verb|\schemidhead| & SC & Schema identification \\ \verb|\expresshead| & IA & \Express\ listing \\ \verb|\expressghead| & IA & \ExpressG\ figures \\ \verb|\modelscopehead| & IA & Model scope \\ \verb|\techdischead| & IA & Technical discussions \\ \hline \end{tabular} \end{table} The commands listed in \tref{tab:paramhead} are equivalent to the general sectioning commands, but are intended to indicate the start of a particular documentation element. With the exception of the \verb|\entityhead| command, each of these takes a single parameter which is used in forming the heading title; the \verb|\anentity| command takes two parameters, the second of which is normally empty. \index{refdefhead\@\verb|\refdefhead|} \index{schemahead\@\verb|\schemahead|} \index{typehead\@\verb|\typehead|} \index{entityhead\@\verb|\entityhead|} \index{rulehead\@\verb|\rulehead|} \index{functionhead\@\verb|\functionhead|} \index{atypehead\@\verb|\typehead|} \index{anentityhead\@\verb|\entityhead|} \index{arulehead\@\verb|\rulehead|} \index{afunctionhead\@\verb|\functionhead|} \index{aschemaidhead\@\verb|\aschemaidhead|} \begin{table} \centering \caption{STEP package parameterized heading commands} \label{tab:paramhead} \begin{tabular}{|l|c|l|} \hline {\bf Command} & {\bf Clause} & {\bf Parameterized title} \\ \hline \verb|\refdefhead| & SC & Terms defined in \meta{ISO ref} \\ \verb|\schemahead| & C & \meta{schema name} \\ \verb|\typehead| & SC & \meta{schema name} type definitions \\ \verb|\atypehead| & SSC & \meta{type name} \\ \verb|\entityhead| & SC & \meta{schema name} entity definitions \meta{group} \\ \verb|\anentityhead| & SSC & \meta{entity name} \\ \verb|\rulehead| & SC & \meta{schema name} rule definitions \\ \verb|\arulehead| & SSC & \meta{rule name} \\ \verb|\functionhead| & SC & \meta{schema name} function definitions \\ \verb|\afunctionhead| & SSC & \meta{function name} \\ \verb|\aschemaidhead| & SSC & \meta{schema name} identification \\ \hline \end{tabular} \end{table} \sclause{Miscellaneous commands} The following commands provide some printing options for commonly occurring situations. The \verb|\nexp{}| \index{nexp\@\verb|\nexp|} command is intended to be used for printing \Express\ \index{express@{\Express}} entity names etc. \begin{itemize} \item The command \verb|\B{abc}| prints \B{abc} \index{b\@\verb|\B|} \item The command \verb|\E{abc}| prints \E{abc} \index{e\@\verb|\E|} \item The command \verb|\Express| prints \Express\ \index{express\@\verb|\Express|} \item The command \verb|\ExpressG| prints \ExpressG\ \index{expressg\@\verb|\ExpressG|} \item The command \verb|\ExpressI| prints \ExpressI\ \index{expressi\@\verb|\ExpressI|} \item The command \verb|\BG{mathsymbol}| prints mathsymbol in bold font. \index{bg\@\verb|\BG|} \item The command \verb|\HASH| prints \HASH \index{hash\@\verb|\HASH|} \item The command \verb|\LT| prints \LT \index{lt\@\verb|\LT|} \item The command \verb|\LE| prints \LE \index{le\@\verb|\LT|} \item The command \verb|\NE| prints \NE \index{ne\@\verb|\NE|} \item The command \verb|\INE| prints \INE \index{ine\@\verb|\INE|} \item The command \verb|\GE| prints \GE \index{ge\@\verb|\GE|} \item The command \verb|\GT| prints \GT \index{gt\@\verb|\GT|} \item The command \verb|\CAT| prints \CAT \index{cat\@\verb|\CAT|} %\item The command \verb|\HAT| prints \HAT \item The command \verb|\QUES| prints \QUES \index{ques\@\verb|\QUES|} %\item The command \verb|\BS| prints \BS \item The command \verb|\IEQ| prints \IEQ \index{ieq\@\verb|\IEQ|} \item The command \verb|\INEQ| prints \INEQ \index{ineq\@\verb|\INEQ|} \item The command \verb|\nexp{an\_entity}| prints \nexp{an\_entity} \index{nexp\@\verb|\nexp|} \end{itemize} The command \verb|\ix{word or phrase}| \index{ix\@\verb|\ix|} both prints its parameter and also makes an index entry out of it. The command \verb|\mnote{}| \index{mnote\@\verb|\mnote|} prints its parameter as a marginal note. \mnote{Quite a lot of marginal note text.} Remember, though, that marginal notes are only printed when the \file{draft} \index{draft@\verb|draft|} option is used. This is because marginal notes are not allowed by ISO. \ssclause{Standard reference commands} Many parts of STEP use the same normative or informative references. The most common of these are provided via commands. The commands \verb|\nrefparti|,\index{nrefparti\@\verb|\nrefparti|} \verb|\nrefpartxi|,\index{nrefpartxi\@\verb|\nrefpartxi|} and \verb|\nrefasni|\index{nrefasni\@\verb|\nrefasni|} are shorthands for normative references to STEP Parts 1 and 11, and to the ASN.1 standards, respectively. \begin{example} The normative references in this document were input as: \begin{verbatim} \begin{nreferences} \isref{ISO Directives Part 3}{Drafting and presentation of International Standards.} \isref{ISO TC 184/SC4 Editing N-48}{Supplementary directives for the drafting and presentation of ISO 10303 Version 2.3.} \nrefparti \nrefpartxi \disref{ISO 10303-12:---}{Industrial automation systems and integration --- Product data representation and exchange --- Part 12: Description methods: The EXPRESS-I language reference manual.} \nrefasni \disref{P. R. WILSON:---}{LaTeX for standards.} \end{nreferences} \end{verbatim} \end{example} Some informative bibliographic reference commands are also provided. The commands \verb|\bibidefo|\index{bibidefo\@\verb|\bibidefo|} and \verb|\bibidefix|\index{bibidefix\@\verb|\bibidefix|} produce the references to the IDEFO and IDEF1X documents, which are entries \brefidefo\ and \brefidefix\ in the bibliography of this document. Corresponding to these commands are the commands \verb|\brefidefo|\index{brefidefo\@\verb|\brefidefo|} and \verb|\brefidefix|\index{brefidefix\@\verb|\brefidefix|} which can be used for citing these references in the body of the text. \begin{examples} \begin{example} Part of the bibliography for this document looks like \begin{verbatim} \begin{references} ... \reference{BRYAN, M.,}{SGML --- An Author's Guide to the Standard Generalized Markup Language,}{Addison-Wesley Publishing Co., 1988. }\label{bryan} \bibidefo \bibidefix \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} ... \end{references} \end{verbatim} \end{example} \begin{example}The source for one of the sentences above was \begin{verbatim} ... which are entries \brefidefo\ and \brefidefix\ in the bibliography ... \end{verbatim} \end{example} \end{examples} \sclause{Commands for documenting EXPRESS code} \index{express@\Express\} The Supplementary Directives \index{SD} specify the layout of the documentation of \Express\ code. The following commands are intended to serve two purposes: \begin{enumerate} \item To provide environments for the documentation of entity attributes, etc.; \item To provide begin and end tags around all the \Express\ code documentation. \end{enumerate} This latter purpose is to provide an enabling capability for the automatic extraction of portions of the documentation of an \Express\ model so that they could be placed into another document. For example, tools could be developed that would automatically extract pieces of resource model documentation and place them into an AP document. \ssclause{Environment ecode} The \verb|ecode| \index{ecode@\verb|ecode|} environment is used for tagging \Express\ code and setting up the relevant fonts. \begin{example} The following \begin{verbatim} \begin{ecode} \begin{verbatm} % read verbatm as verbatim *) ENTITY an_entity; attr : REAL; END_ENTITY; (* \end{verbatm} % read verbatm as verbatim \end{ecode} \end{verbatim} produces: \begin{ecode} \begin{verbatim} *) ENTITY an_entity; attr : REAL; END_ENTITY; (* \end{verbatim} \end{ecode} \end{example} % end example \ssclause{Environment attrlist} The \verb|attrlist| \index{attrlist@\verb|attrlist|} environment produces the heading for attribute definitions and sets up a \verb|description| list. \index{description@\verb|description|} \begin{example}The following \begin{verbatim} \begin{attrlist} \item[attr\_1] The \ldots \item[attr\_2] This \ldots \end{attrlist} \end{verbatim} produces: \begin{attrlist} \item[attr\_1] The \ldots \item[attr\_2] This \ldots \end{attrlist} \end{example} % end example \ssclause{Environment fproplist} The \verb|fproplist| is similar to \verb|attrlist| except that it is for formal propositions. \index{fproplist@\verb|fproplist|} \index{attrlist@\verb|attrlist|} \begin{example}The following \begin{verbatim} \begin{fproplist} \item[un\_1] The value of \ldots\ shall be unique. \item[gt\_0] The value of \ldots\ shall be greater than zero. \end{fproplist} \end{verbatim} produces: \begin{fproplist} \item[un\_1] The value of \ldots\ shall be unique. \item[gt\_0] The value of \ldots\ shall be greater than zero. \end{fproplist} \end{example} % end example \ssclause{Other listing environments} The environments \verb|iproplist|, \index{iproplist@\verb|iproplist|} \verb|enumlist|, \index{enumlist@\verb|enumlist|} and \verb|arglist| \index{arglist@\verb|arglist|} are similar to \verb|attrlist| etc. \index{attrlist@\verb|attrlist|} Respectively they are environments for informal propositions, enumerated items, and argument definitions. \ssclause{Documentation tagging} Several environments are defined to tag the general documentation of \Express\ code. \index{express@\Express\} The environment \verb+\begin{espec}{+\meta{name}\verb+}+ may be used to enclose, \index{espec@\verb|espec|} and give a name to, a complete specification block for an \Express\ entity. There are analogous environments --- \verb+fspec+, \index{fspec@\verb|fspec|} \verb+rspec+, \index{rspec@\verb|rspec|}and \verb+tspec+ \index{tspec@\verb|tspec|} --- for functions, rules and types respectively. The environment \verb|\begin{dtext}| \index{dtext@\verb|dtext|} may be used to anonymously enclose descriptive text. \begin{example}\label{ex:code} Here is the suggested tagged documentation style for part of an \Express\ model. \begin{verbatim} %\ssclause{committee\_def} \begin{espec}{committee_def} \begin{dtext} A committee is composed of an odd number of people. Each committee also has a name. The ideal size of a committee is less than three. \begin{anote} Figures and tables may also be placed here. \end{anote} % end note \end{dtext} \begin{ecode} \begin{verbatm} % read verbatm as verbatim *) ENTITY committee_def; title : name; members : SET [1:?] OF person; DERIVE ideal : BOOLEAN := SIZEOF(members) = 1; UNIQUE un1 : title; WHERE odd_members : ODD(SIZEOF(members)); END_ENTITY; (* \end{verbatm} % read verbatm as verbatim \end{ecode} \begin{attrlist} \item[title] The name of the committee. \item[members] The people who form the committee. \item[ideal] TRUE if there is only one person on the committee. That is, if the committee is the ideal size. \end{attrlist} \begin{fproplist} \item[un1] The \nexp{title} of the committee shall be unique. \item[odd\_members] There shall be an odd number of people on the committee. \end{fproplist} \begin{iproplist} \item[chair] The members of a committee shall appoint one of their number as chair of the committee. \end{iproplist} \end{espec} \end{verbatim} \end{example} % end example \begin{example} The code in \eref{ex:code} produces the following result: \begin{espec}{committee_def} \begin{dtext} A committee is composed of an odd number of people. Each committee also has a name. The ideal size of a committee is less than three. \begin{anote} Figures and tables may also be placed here. \end{anote} % end note \end{dtext} \begin{ecode} \begin{verbatim} *) ENTITY committee_def; title : name; members : SET [1:?] OF person; DERIVE ideal : BOOLEAN := SIZEOF(members) = 1; UNIQUE un1 : title; WHERE odd_members : ODD(SIZEOF(members)); END_ENTITY; (* \end{verbatim} % read verbatm as verbatim \end{ecode} \begin{attrlist} \item[title] The name of the committee. \item[members] The people who form the committee. \item[ideal] TRUE if there is only one person on the committee. That is, if the committee is the ideal size. \end{attrlist} \begin{fproplist} \item[un1] The \nexp{title} of the committee shall be unique. \item[odd\_members] There shall be an odd number of people on the committee. \end{fproplist} \begin{iproplist} \item[chair] The members of a committee shall appoint one of their number as chair of the committee. \end{iproplist} \end{espec} \end{example} % end example \sclause{Commands producing boilerplate text} \index{boilerplate} The following commands produce boilerplate text as specified by the Supplementary Directives. \index{SD} In the examples, the parameters of those commands that take them have been specified in either {\sc this font style} or {\em this font style} so their effects can be seen in the resulting printed text. \ssclause{Major subdivision listing} The \verb|majorsublist|\index{majorsublist@\verb|majorsublist|} environment prints the boilerplate for the heading of a listing of major subdivisions of the standard and starts an itemized list. An illustration of its use is given in \eref{ex:intro}. The heading text is produced by the \verb|\majorsubname|\index{majorsubname\@\verb|\majorsubname|} command. \begin{example} The command \verb|\majorsubname| command prints: \majorsubname \end{example} \ssclause{Registration commands} Three commands are provided for printing the boilerplate concerning object registration. The command \verb+\docreg{+\meta{version no}\verb+}+ \index{docreg\@\verb|\docreg|} produces the boilerplate for document registration. The command takes one parameter: \meta{version no} The version number (1 for first release).\footnote{There is a rumour that the version number should be 0 for a DIS document and -1 for a document that is at a pre-DIS stage.} \begin{example}The command \verb|\docreg{1}| prints: \docreg{{\it 1}} \end{example} % end example The command \verb+\schemareg{+\meta{version no}\verb+}{+\meta{p2}\verb+}{+\meta{p3}\verb+}{+\meta{p4}\verb+}{+\meta{p5}\verb+}{+\meta{p6}\verb+}+ \index{schemareg\@\verb|\schemareg|} produces the boilerplate concerning schema registration. The command takes six parameters. \begin{enumerate} \item \meta{version no} The version number (1 for first release); \item \meta{p2} The name of an \Express\ schema (with underscores); \item \meta{p3} The number of the object (typically 1); \item \meta{p4} The name of the schema, with hyphens replacing any underscores in the name; \item \meta{p5} The number identifying the schema; \item \meta{p6} The clause or annex in which the schema is defined. \end{enumerate} \begin{example}The command \\ \verb|\schemareg{1}{\nexp{a\_schema}}{3}{a-schema}{5}{clause 6}| prints: \schemareg{{\it 1}}{\nexp{a\_schema}}{{\it 3}}{{\it a-schema}}{{\it 5}}{{\it clause 6}} \end{example} % end example The command \verb+\apschemareg{+\meta{version no}\verb+}{+\meta{p2}\verb+}{+\meta{p3}\verb+}{+\meta{p4}\verb+}{+\meta{p5}\verb+}{+\meta{p6}\verb+}+ \index{apschemareg\@\verb|\apschemareg|} produces the boilerplate concerning application protocol schema registrations. The command takes six parameters. \begin{enumerate} \item \meta{version no} The version number (1 for first release); \item \meta{p2} The name of an \Express\ schema (with underscores); \item \meta{p3} The number of the object (typically 1); \item \meta{p4} The name of the schema, with hyphens replacing any underscores in the name; \item \meta{p5} The number identifying the long form schema; \item \meta{p6} The number identifying the short form schema. \end{enumerate} \begin{example}The command \\ \verb|\apschemareg{1}{\nexp{a\_schema}}{3}{a-schema}{5}{6}| prints: \apschemareg{{\it 1}}{\nexp{a\_schema}}{{\it 3}}{{\it a-schema}}{{\it 5}}{{\it 6}} \end{example} % end example \clause{The ir facility} \index{file!sty@.sty!ir}\index{ir.sty} The \file{ir} facility provides commands and environments specifically for the ISO~10303 Integrated Resources series of documents. \sclause{Boilerplate commands} The following commands produce boilerplate text as specified by the Supplementary Directives. \index{SD} In the examples, the parameters of those commands that take them have been specified in either {\sc this font style} or {\em this font style} so their effects can be seen in the resulting printed text. \ssclause{Integrated resource short names} \index{irshortnames\@\verb|\irshortnames|} The command \verb|\irshortnames| produces the boilerplate for the introduction to the integrated resource annex listing short names. \begin{example}The command \verb|\irshortnames| prints: \irshortnames \end{example} %end example \ssclause{Integrated resource EXPRESS listing} \index{irexplisting\@\verb|\irexplisting|} The command \verb|\irexplisting| produces the boilerplate for the introduction to the integrated resource annex listing \Express\ and short names. \begin{example}The command \verb|\irexplisting| prints: \irexplisting \end{example} % end example \ssclause{Integrated resource EXPRESS-G} \index{irexpressg\@\verb|\irexpressg|} The command \verb+\irexpressg{+\meta{figure range}\verb+}+ produces the boilerplate for the introduction to the integrated resource \ExpressG\ annex. %(SD p54). \index{expressg@\ExpressG\} \begin{example}The command \verb|\irexpressg{Figures D.1 through D.n}| prints: \irexpressg{{\sc Figures D.1 through D.n}} \end{example} % end example \clause{The ap facility} \index{file!sty@.sty!ap}\index{ap.sty} The \file{ap} facility provides commands and environments specifically for the ISO~10303 Application Protocol series of documents. \sclause{Preamble commands} \ssclause{The Aptitle command} When the document is an AP, \index{AP} the command \verb+\aptitle{+\meta{title of AP}\verb+}+\index{aptitle\@\verb|\aptitle|} shall be put into the preamble. \index{preamble} The parameter shall be of such a form that it will read naturally in a sentence of the form: `\ldots for the \meta{title of AP} application protocol.'. \begin{example} For the purposes of later examples, this document has the command\\ \verb|\aptitle{coffee cup}| in its preamble. \end{example} % end example \ssclause{The Aicinaptrue command} When the document is an AP \index{AP} which makes use of one or more AICs, \index{AIC} then the command \verb|\aicinaptrue| \index{aicinaptrue\@\verb|\aicinaptrue|} shall be put in the document preamble. \sclause{Heading commands} These commands start document clauses with particular titles. The commands that take no parameters are listed in \tref{tab:apnpheads}. \index{inforeqhead\@\verb|\inforeqhead|} \index{uofhead\@\verb|\uofhead|} \index{applobjhead\@\verb|\applobjhead|} \index{applasserthead\@\verb|\applasserthead|} \index{aimhead\@\verb|\aimhead|} \index{maptablehead\@\verb|\maptablehead|} \index{aimshortexphead\@\verb|\aimshortexphead|} \index{confreqhead\@\verb|\confreqhead|} \index{aimlongexphead\@\verb|\aimlongexphead|} \index{aimshortnameshead\@\verb|\aimshortnameshead|} \index{impreqhead\@\verb|\impreqhead|} \index{aamhead\@\verb|\aamhead|} \index{aamdefhead\@\verb|\aamdefhead|} \index{aamfighead\@\verb|\aamfighead|} \index{armhead\@\verb|\armhead|} \index{aimexpressghead\@\verb|\aimexpressghead|} \index{aimexpresshead\@\verb|\aimexpresshead|} \index{apusagehead\@\verb|\apusagehead|} \begin{table} \centering \caption{AP package parameterless heading commands} \label{tab:apnpheads} \begin{tabular}{|l|c|l|} \hline {\bf Command} & {\bf Clause} & {\bf Default text} \\ \hline \verb|\inforeqhead| & C & Information requirements \\ \verb|\uofhead| & SC & Units of functionality \\ \verb|\applobjhead| & SC & Application objects \\ \verb|\applasserthead| & SC & Application assertions \\ \verb|\aimhead| & C & Application interpreted model \\ \verb|\maptableheadhead| & SC & Mapping table \\ \verb|\aimshortexphead| & SC & AIM \Express\ short listing \\ \verb|\confreqheadhead| & C & Conformance requirements \\ \verb|\aimlongexphead| & NA & AIM \Express\ expanded listing \\ \verb|\aimshortnameshead| & NA & AIM short names \\ \verb|\impreqhead| & NA & Implementation method specific requirements \\ \verb|\aamhead| & IA & Application activity model \\ \verb|\aamdefhead| & SC & Application activity model definitions and abbreviations \\ \verb|\aamfighead| & SC & Application activity model diagrams \\ \verb|\armhead| & IA & Application reference model \\ \verb|\aimexpressghead| & IA & AIM \ExpressG{} \\ \verb|\aimexpresshead| & IA & AIM \Express\ listing \\ \verb|\apusagehead| & IA & Application protocol usage guide \\ \hline \end{tabular} \end{table} The commands listed in \tref{tab:appheads} take parameters. \index{auofhead\@\verb|\auofhead|} \begin{table} \centering \caption{AP package parameterized heading commands} \label{tab:appheads} \begin{tabular}{|l|c|l|} \hline {\bf Command} & {\bf Clause} & {\bf Parameterized title} \\ \hline \verb|\auofhead| & SSC & \meta{UoF} \\ \hline \end{tabular} \end{table} \sclause{Boilerplate commands} The following commands produce boilerplate text as specified by the Supplementary Directives. \index{SD} In the examples, the parameters of those commands that take them have been specified in either {\sc this font style} or {\em this font style} so their effects can be seen in the resulting printed text. \ssclause{AP introduction} \index{apintroend\@\verb|\apintroend|} The command \verb|\apintroend| produces the boilerplate for the last paragraph in the Introduction to an AP. \begin{example}The command \verb|\apintroend| prints: \apintroend \end{example} %end example \ssclause{AP scope} \index{apscope\@\verb|\apscope|} \index{scope} The command \verb+\apscope{+\meta{application purpose and context}\verb+}+ produces the boilerplate for the start of an AP scope clause.\index{AP} \begin{example}The command \verb|\apscope{application purpose and context.}| prints: \apscope{{\sc application purpose and context.}} \end{example} % end example \ssclause{AP information requirements} \index{apinforeq\@\verb|\apinforeq|} The command \verb+\apinforeq{+\meta{AP purpose}\verb+}+ produces the boilerplate for the AP clause on information requirements. \begin{example}The command \verb|\apinforeq{AP purpose.}| prints: \apinforeq{{\sc AP purpose.}} \end{example} % end example \ssclause{AP UoF} \index{apuof\@\verb|\apuof|} The command \verb+\apuof{+\meta{item list}\verb+}+ produces the boilerplate for the introduction to the AP UoF clause. \begin{example}The command \begin{verbatim} \apuof{\item Name of UoF1; \item Name of UoF2; \item Name of UoFn. } \end{verbatim} prints: \apuof{\item {\sc Name of UoF1;} \item {\sc Name of UoF2;} \item {\sc Name of UoFn.} } \begin{anote}This note is not printed by the command. Remember that \verb|\aptitle| has been set to \verb|coffee cup|. \end{anote} % end note \end{example} % end example \ssclause{AP assertions} \index{apassert\@\verb|\apassert|} The command \verb|\apassert| produces the boilerplate for the AP assertions subclause. %(SD p62). \begin{example}The command \verb|\apassert| prints: \apassert \begin{anote}This note is not printed by the command. Remember that \verb|\aptitle| has been set to \verb|coffee cup|. \end{anote} % end note \end{example} % end example \ssclause{AP application objects} \index{apapplobj@\verb|\apapplobj|} The command \verb|\apapplobj| produces the boilerplate for the introduction to the AP clause on Application Objects. \begin{example} The command \verb|\apapplobj| prints: \apapplobj \begin{anote}This note is not printed by the command. Remember that \verb|\aptitle| has been set to \verb|coffee cup|. \end{anote} % end note \end{example} % end example \ssclause{AP mapping table} \index{apmappingtable\@\verb|\apmappingtable|} The command \verb|\apmappingtable| produces the boilerplate for the introduction to the AP mapping table. \begin{anote}AICs are included in the boilerplate only if the command \verb|\aicinaptrue| \index{aicinaptrue\@\verb|\aicinaptrue|} is included in the preamble. \end{anote} % end note \begin{example}The command \verb|\apmappingtable| prints: \apmappingtable \end{example} % end example \ssclause{AP short EXPRESS listing} \index{apshortexpress\@\verb|\apshortexpress|} The command \verb|\apshortexpress| produces the boilerplate for the first paragraph of the AP short \Express\ listing. \begin{anote}AICs are included in the boilerplate only if the command \verb|\aicinaptrue| \index{aicinaptrue\@\verb|\aicinaptrue|} is included in the preamble. \end{anote} % end note \begin{examples} \begin{example}The command \verb|\apshortexpress| without \verb|\aicinaptrue| in the preamble produces: \aicinapfalse \apshortexpress \end{example} % end example \begin{example}With \verb|\aicinaptrue| set in the preamble the command \verb|\apshortexpress| produces the following: \aicinaptrue \apshortexpress \end{example} % end example \end{examples} \ssclause{AP conformance} \index{apconformance\@\verb|\apconformance|} \index{apconformclasses\@\verb|\apconformclasses|} The command \verb+\apconformance{+\meta{implementation methods}\verb+}+ produces the boilerplate for the introduction to an AP conformance requirements clause. The command \verb+\apconformclasses{+\meta{item list}\verb+}+ provides some additional boilerplate. \begin{example}The command \verb|\apconformance{ISO 10303-21, ISO 10303-22}| prints: \apconformance{{\it ISO 10303-21, ISO 10303-22}} \end{example} % end example \begin{example}The command \begin{verbatim} \apconformclasses{ \item first class; \item second class; \item last class.} \end{verbatim} prints: \apconformclasses{{\sc \item first class; \item second class; \item last class.}} \end{example} % end example \ssclause{AP short names} \index{apshortnames\@\verb|\apshortnames|} The command \verb|\apshortnames| produces the boilerplate for the introduction to the AP short name annex. \begin{example}The command \verb|\apshortnames| prints: \apshortnames \end{example} % end example \ssclause{AP PICS} \index{picsannex\@\verb|\picsannex|} The command \verb|\picsannex| produces the boilerplate for the start of the AP PICS annex. %(SD p71). \begin{example}The command \verb|\picsannex| prints: \picsannex \end{example} % end example \ssclause{AAM annex} \index{apaamintro\@\verb|\apaamintro|} The command \verb|\apaamintro| produces the introductory boilerplate for the AP annex on application activity models. \begin{example} The command \verb|\apaamintro| prints: \apaamintro \end{example} % end example \ssclause{AP AAM definitions} \index{apaamdefs\@\verb|\apaamdefs|} The command \verb|\apaamdefs| produces the boilerplate at the start of the AP clause on AAM definitions and abbreviations. \begin{example} The command \verb|\apaamdefs| prints: \apaamdefs \end{example} % end example \ssclause{AAM figures annex} \index{aamfigures\@\verb|\aamfigures|} The command \verb+\aamfigures{+\meta{figure range}\verb+}{+\meta{name of language}\verb+}+ produces the boilerplate for the introduction to an APs AAM figure annex. %(SD p72). \begin{example}The command \verb|\aamfigures{figures F.1 through F.n}{IDEFo}| prints: \aamfigures{{\sc figures F.1 through F.n}}{{\em IDEFo}} \end{example} % end example \ssclause{ARM figures annex} \index{armfigures\@\verb|\armfigures|} The command \verb+\armfigures{+\meta{figure range}\verb+}{+\meta{name of language}\verb+}+ produces the boilerplate for the introduction to the ARM figures. \begin{example}The command \verb|\armfigures{figures G.1 through G.n}{\ExpressG\/}| prints: \armfigures{{\sc figures G.1 through G.n}}{\ExpressG\/} \end{example} % end example \ssclause{AIM EXPRESS-G annex} \index{aimexpressg\@\verb|\aimexpressg|} \index{expressg@\ExpressG\} The command \verb+\aimexpressg{+\meta{Figure range}\verb+}+ produces the boilerplate for the introduction to an APs AIM \ExpressG\ model. \begin{example}The command \verb|\aimexpressg{Figures H.1 through H.n}| prints: \aimexpressg{{\sc Figures H.1 through H.n}} \end{example} % end example \ssclause{AIM EXPRESS listing} \index{aimexplisting\@\verb|\aimexplisting|} \index{express@\Express\} The command \verb|\aimexplisting| produces the boilerplate for the introduction to an AIMs short name and \Express\ listing. \begin{example}The command \verb|\aimexplisting| prints: \aimexplisting \end{example} % end example \ssclause{EXPRESS expanded listing} \index{aimlongexp\@\verb|\aimlongexp|} The command \verb|\aimlongexp| produces the boilerplate for the introduction to an AIMs expanded \Express\ listing. \begin{example}The command \verb|\aimlongexp| prints: \aimlongexp \end{example} % end example \ssclause{Requirements on exchange structure} \index{apimpreq\@\verb|\apimpreq|} The command \verb+\apimpreq{+\meta{schema name}\verb+}+ produces the boilerplate for the requirements on exchange structure. \begin{example}The command \verb|\apimpreq{schema name}| prints: \apimpreq{{\sc schema name}} \end{example} % end example \clause{The aic facility} The \file{aic}\index{aic@\file{aic}} facility provides commands and environments specifically for the ISO~10303 Application Interpreted Construct series of documents. \begin{note}The Supplementary Directives give few details on the documentation of AICs. The AIC package is likely to be extended in the future as more details become agreed. \end{note} %end note \sclause{Heading commands} The commands described in this section start document clauses with particular titles. The commands that take no parameters are listed in \tref{tab:aicnpheads}. \index{aicshortexphead\@\verb|\aicshortexphead|} \index{aicshortnameshead\@\verb|\aicshortnameshead|} \index{aicexpressghead\@\verb|\aicexpressghead|} \begin{table} \centering \caption{AIC package parameterless heading commands} \label{tab:aicnpheads} \begin{tabular}{|l|c|l|} \hline {\bf Command} & {\bf Clause} & {\bf Default text} \\ \hline \verb|\aicshortexphead| & C & \Express\ short listing \\ \verb|\aicshortnameshead| & NA & Short names of entities \\ \verb|\aicexpresghead| & IA & \ExpressG\ diagrams \\ \hline \end{tabular} \end{table} % The commands that take a parameter are listed in \tref{tab:aicpheads}. %\index{head\@\verb|\head|} % %\begin{table} %\centering %\caption{AIC package parameterized heading commands} %\label{tab:aicpheads} %\begin{tabular}{|l|c|l|} \hline %{\bf Command} & {\bf Clause} & {\bf Parameterized title} \\ \hline %\verb|\head| & C & \\ %\end{tabular} %\end{table} % \sclause{Boilerplate commands} The following commands produce boilerplate text as specified by the Supplementary Directives. In the examples, the parameters of those commands that take them have been specified in either {\sc this font style} or {\it this font style} so their effects can be seen in the printed text. \ssclause{Introduction text} \index{aicextraintro\@\verb|\aicextraintro|} The command \verb|\aicextraintro| prints additional boilerplate for the Introduction to an AIC. \begin{example}The command \verb|\aicextraintro| prints: \aicextraintro \end{example} % end example \ssclause{Definition of AIC} \index{aicdef\@\verb|\aicdef|} The command \verb|\aicdef| prints the definition of `AIC'. It shall only be used within the \verb|definitions| environment. \begin{example}The commands \begin{verbatim} \begin{definitions} \aicdef \end{definitions} \end{verbatim} produces: \begin{definitions} \aicdef \end{definitions} \end{example} % end example \ssclause{Short EXPRESS listing} \index{aicshortexpintro\@\verb|\aicshortexpintro|} The command \verb|\aicshortexpintro| prints boilerplate for the introduction to the short \Express\ listing. \begin{example}The command \verb|\aicshortexpintro| prints: \aicshortexpintro \end{example} % end example \ssclause{EXPRESS-G figures} \index{aicexpressg\@\verb|\aicexpressg|} The command \verb+\aicexpressg{+\meta{Figure range}\verb+}+ prints boilerplate for the introduction to the \ExpressG\ figures. \begin{example}The command \verb|\aicexpressg{Figures C.1 through C.n}| prints: \aicexpressg{{\sc Figures C.1 through C.n}} \end{example} % end example \clause{The ats facility} The \file{ats}\index{ats@\file{ats}} facility provides commands and environments specifically for the ISO~10303 Abstract Test Suite series of documents. \begin{note}The Supplementary Directives give no details on the documentation of ATSs. The \file{ats} facility is based on {\em Guidelines for the development of abstract test suites}, ISO TC 184/SC4 WG6 N100b, 13 December 1995. \end{note} %end note \sclause{Preamble commands} When the document is an ATS the following commands shall be put in the preamble. \ssclause{The APnumber command} The command \verb+\APnumber{+\meta{number}\verb+}+ shall be put in the preamble, where \meta{number} is the ISO 10303 part number of the corresponding AP. \begin{example} For the purposes of later examples, this document has the command \verb+\APnumber{299}+ in the preamble. \end{example} \ssclause{The APtitle command} The command \verb+\APtitle{+\meta{title of AP}\verb+}+ shall be put in the preamble, where \meta{title of AP} is the ISO 10303 part title of the corresponding AP. This must be given in such a manner that it reads sensibly in a sentence of the form `\ldots for ISO 10303-299, application protocol \meta{title of AP}.' \begin{example} For the purposes of later examples, this document has the command \verb+\APtitle{beer mug}+ in the preamble. \end{example} \sclause{Heading commands} These commands start document clauses with particular titles. The commands that take no parameters are listed in \tref{tab:atshead}. \index{purposeshead\@\verb|\purposeshead|} \index{domainpurposehead\@\verb|\domainpurposehead|} \index{aepurposehead\@\verb|\aepurposehead|} \index{apasserthead\@\verb|\apasserthead|} \index{aimpurposehead\@\verb|\aimpurposehead|} \index{extrefpurposehead\@\verb|\extrefpurposehead|} \index{implementpurposehead\@\verb|\implementpurposehead|} \index{rulepurposehead\@\verb|\rulepurposehead|} \index{gtpvchead\@\verb|\gtpvchead|} \index{generalpurposehead\@\verb|\generalpurposehead|} \index{gvatchead\@\verb|\gvatchead|} \index{gvcprephead\@\verb|\gvcprephead|} \index{gvcposthead\@\verb|\gvcposthead|} \index{atchead\@\verb|\atchead|} \index{confclassannexhead\@\verb|\confclassannexhead|} \index{purposesname\@\verb|\purposesname|} \index{domainpurposename\@\verb|\domainpurposename|} \index{aepurposename\@\verb|\aepurposename|} \index{apassertname\@\verb|\apassertname|} \index{aimpurposename\@\verb|\aimpurposename|} \index{extrefpurposename\@\verb|\extrefpurposename|} \index{implementpurposename\@\verb|\implementpurposename|} \index{rulepurposename\@\verb|\rulepurposename|} \index{gtpvcname\@\verb|\gtpvcname|} \index{generalpurposename\@\verb|\generalpurposename|} \index{gvatcname\@\verb|\gvatcname|} \index{gvcprepname\@\verb|\gvcprepname|} \index{gvcpostname\@\verb|\gvcpostname|} \index{atcname\@\verb|\atcname|} \index{confclassannexname\@\verb|\confclassannexname|} \begin{table} \centering \caption{ATS package parameterless heading commands} \label{tab:atshead} \begin{tabular}{|l|c|l|} \hline Command & Clause & Default text \\ \hline \verb|\purposeshead| & C & \purposesname\ \\ \verb|\domainpurposehead| & SC & \domainpurposename\ \\ \verb|\aepurposehead| & SC & \aepurposename\ \\ \verb|\apasserthead| & SSC & \apassertname\ \\ \verb|\aimpurposehead| & SC & \aimpurposename\ \\ \verb|\extrefpurposehead| & SC & \extrefpurposename\ \\ \verb|\implementpurposehead| & SC & \implementpurposename\ \\ \verb|\rulepurposehead| & SC & \rulepurposename\ \\ \verb|\gtpvchead| & C & \gtpvcname\ \\ \verb|\generalpurposehead| & SC & \generalpurposename\ \\ \verb|\gvcatchead| & SC & \gvcatcname\ \\ \verb|\gvcprephead| & SC & \gvcprepname\ \\ \verb|\gvcposthead| & SC & \gvcpostname\ \\ \verb|\atchead| & C & \atcname\ \\ \verb|\confclassannexhead| & NA & \confclassannexname\ \\ \hline \end{tabular} \end{table} The commands that take a parameter are listed in \tref{tab:atsphead}. \index{apobjhead\@\verb|\apobjhead|} \index{confclasshead\@\verb|\confclasshead|} \index{confclassname\@\verb|\confclassname|} \begin{table} \centering \caption{ATS package parameterized heading commands} \label{tab:atsphead} \begin{tabular}{|l|c|l|} \hline Command & Clause & Parameterized title \\ \hline \verb|\apobjhead| & SSC & \meta{Application object n} \\ \verb|\confclasshead| & SC & \confclassname\ \meta{number} \\ \hline \end{tabular} \end{table} Except for the \verb|\apobjhead| command, all the commands in \tref{tab:atshead} and \ref{tab:atsphead} of the form \verb|\...head| have an associated command of the form \verb|\...name| which holds the text of the clause title. \begin{example} The command \verb|\gvcatcname| prints: \gvcatcname \end{example} \sclause{Boilerplate commands} The following commands produce boilerplate text. In the examples, the parameters of those commands that take them have been specified in either {\sc this font style} or {\it this font style} so that their effects can be seen in the printed text. \ssclause{ATS introduction} The command \verb|\atsintroendbp|\index{atsintroendbp\@\verb|\atsintroendbp|} produces the boilerplate for the end of the Introduction to an ATS. \begin{example} The command \verb|\atsintroendbp| prints: \atsintroendbp \end{example} \begin{note} (This is not part of the boilerplate text) Remember that \verb|\APnumber| was set to `\theAPpartno' in the preamble, and \verb|\APtitle| was set to `\theAPtitle'. \end{note} \ssclause{ATS scope} The command \verb|\atsscopebp|\index{atsscopebp\@\verb|\atsscopebp|} produces boilerplate for an ATS scope clause. \begin{example} The command \verb|\atsscopebp| prints: \atsscopebp \end{example} \ssclause{Test purpose clause} The command\index{atspurposebp\@\verb|\atspurposebp|} \verb|\atspurposebp{|\meta{comma or and}\verb|}{|\meta{stop or other}\verb|}{|\meta{clause number}\verb|}| prints boilerplate for the introduction for the test purposes clause. \begin{example} The command \verb|\atspurposebp{+}{+ and others.}{235}| prints: \atspurposebp{{\it +}}{{\sc + and others.}}{{\it 235}} \end{example} \ssclause{General test purposes} The command \verb|\generalpurposebp|\index{generalpurposebp\@\verb|\generalpurposebp|} prints the boilerplate for the General test purposes clause. \begin{example} The command \verb|\generalpurposebp| prints: \generalpurposebp \end{example} \ssclause{General test purposes and verdict criteria clause} The command \verb|\atsgtpvcbp|\index{atsgtpvcbp\@\verb|\atsgtpvcbp|} prints boilerplate for the General test purposes and verdict criteria clause. \begin{example} The command \verb|\atsgtpvcbp| prints: \atsgtpvcbp \end{example} \ssclause{General verdict criteria for all abstract test cases clause} The command \verb|\gvatcbp|\index{gvatcbp\@\verb|\gvatcbp|} prints boilerplate for the General verdict criteria for all abstract test cases clause. \begin{example} The command \verb|\gvatcbp| prints: \gvatcbp \end{example} \ssclause{General verdict criteria for preprocessor abstract test cases clause} The command \verb|\gvcprepbp|\index{gvcprepbp\@\verb|\gvcprepbp|} prints boilerplate for the General verdict criteria for preprocessor abstract test cases clause. \begin{example} The command \verb|\gvcprepbp| prints: \gvcprepbp \end{example} \ssclause{General verdict criteria for postprocessor abstract test cases clause} The command \verb|\gvcpostbp|\index{gvcpostbp\@\verb|\gvcpostbp|} prints boilerplate for the General verdict criteria for postprocessor abstract test cases clause. \begin{example} The command \verb|\gvcpostbp| prints: \gvcpostbp \end{example} \ssclause{Abstract test cases clause} The command \verb|\atcbp|\index{atcbp\@\verb|\atcbp|} prints boilerplate for the Abstract test cases clause. \begin{example} The command \verb|\atcbp| prints: \atcbp \end{example} \ssclause{Conformance class annex} The command \verb|\atsnoclassesbp|\index{atsnoclassesbp\@\verb|\atsnoclassesbp|} prints the entire boilerplate for the Conformance class annex when the AP has no conformance classes. \begin{example} The command \verb|\atsnoclassesbp| prints: \atsnoclassesbp \end{example} The command \verb|\confclassbp{|\meta{number}\verb|}|\index{confclassbp\@\verb|\confclassbp|} prints the boilerplate for the introduction to a Conformance class clause, where \meta{number} is the number of the conformance class. \begin{example} The command \verb|\confclassbp{27}| prints: \confclassbp{{\it 27}} \end{example} \normannex{Additional commands} \label{anx:extraiso} \sclause{STEP configuration commands} This clause describes the internal \LaTeX\ commands that may be used to modify some of the boilerplate text in the \file{step} and other facility files.\index{step@\file{step}} \ssclause{The foreword} The \verb|\endForeword|\index{endForeword\@\verb|\endForeword|} command uses two internal commands to specify the listing of STEP parts and the assignment of parts to the divisions within the STEP standard. The first of these is the command \verb|\fwdpartslist|\index{fwdpartslist\@\verb|\fwdpartslist|} and the second is \verb|\fwddivslist|\index{fwddivslist\@\verb|\fwddivslist|}. Both of these commands just \verb|\input| a file --- \file{stpptlst.tex}\index{stpptlst.tex} and \file{stpdvlst.tex}\index{stpdvlst.tex} respectively. The contents of these files can be modified to reflect the actual status of STEP parts and the division list for the document in question. \ssclause{AP boilerplate} Two commands in the \file{ap}\index{ap@\file{ap}} facility \verb|\input| boilerplate text files. These are the \verb|\apintroend|\index{apintroend\@\verb|\apintroend|} command which calls in the \file{apendint.tex}\index{apendint.tex} file and the \verb|\apmappingtable|\index{apmappingtable\@\verb|\apmappingtable|} command which calls in the \file{apmptbl.tex}\index{apmptbl.tex} file. \ssclause{ATS boilerplate} Two commands in the \file{ats}\index{ats@\file{ats}} facility \verb|\input| boilerplate text files. These are the \verb|\atsintroendbp|\index{atsintroendbp\@\verb|atsintroendbp|} command which calls in the \file{tsendint.tex}\index{tsendint.tex} file and the \verb|\atspurposebp|\index{atspurposebp\@\verb|atspurposebp|} command which calls in the \file{atsprpbp.tex}\index{atsprpbp.tex} file. \normannex{Ordering of LaTeX commands} \label{anx:lord} The \LaTeX\ commands to produce an ISO~10303 document are: \begin{verbatim} \documentclass[]{iso} \usepackage{step} % required package \usepackage{ir} % for an IR document \usepackage{ap} % for an AP document \usepackage{aic} % for an AIC document \usepackage{atc} % for an ATC document \usepackage{} % additional packages \standard{} \yearofedition{} \languageofedition{} \partno{} \aptitle{} % if doc is an AP \aicinaptrue % if doc is an AP that uses AICs % other preamble commands \begin{document} \STEPcover{< title commands >} \Foreword % start Foreword and boilerplate % other text \endForeword{<param1>}{<param2>} % boilerplate \Introduction{<param1>}{<param2>}{<param3>} % boilerplate \aicextraintro % additional boilerplate for an AIC % other text for the introduction \apintroend % boilerplate at end of Intro to an AP doc. \stepparttitle{<Part title>} \scopeclause % start scope clause \apscope % boilerplate if an AP % text of scope \normrefsclause % start norm refs clause \normrefbp % boilerplate \begin{nreferences} % \item list of normative references \end{nreferences} \defclause % definitions clause \partidefhead % defs from Part1 subclause % olddefinition list \refdefhead{<ISO 10303-NN>} % defs from Part NN subclause % olddefinition list \otherdefhead % defs in this part % definition list \symabbclause % Symbols & abbreviations clause % symbol lists % THE BODY OF THE DOCUMENT \bibannex % optional; the final Bibliography annex % bibliography listing % the index \end{document} \end{verbatim} \begin{notes} \begin{note}Remember that in the above the facility names should be replaced by the current file names. \end{note} % end note \begin{note}If the document is an Application Protocol the \file{ap} facility is to be included among the options. \end{note} % end note \begin{note}If the document is an AIC the \file{aic} facility is to be included among the options.\end{note} % end note \end{notes} \sclause{Body of a resource document} \index{integrated resource} The body of a resource document has the following structure: \begin{verbatim} \schemahead{<Schema name>} % repeat for each schema \introsubhead % intro subclause % text \fcandasubhead % concepts subclause % text \typehead{<Schema>} % if type defs \atypehead{<type>} % type heading \entityhead{<Schema>}{<group>} % if entity defs \anentityhead{<entity>} % entity heading \rulehead{<Schema>} % if rule defs \arulehead{<rule>} % rule heading \functionhead{<Schema>} % if function defs \afunctionhead{<function>} % function heading % repeat above for each schema \shortnamehead % Annex A: Short names of entities \irshortnames % boilerplate % list of short names \objreghead % Annex B: Information object registration \docidhead % Document identification subclause \docreg{<param1>} % boilerplate \schemaidhead % Schema identification subclause % Either (for single schema) \schemareg{<6 parameters>} % boilerplate % Or (for multiple schemas) repeat: \aschemaidhead{<schema name>} % Schema id subsubclause \schemareg{<6 parameters>} \expresshead % Annex C: EXPRESS listing \irexplisting % boilerplate % listing \expressghead % Annex D: EXPRESS-G figures \irexpressg{<param1>} % boilerplate % EXPRESS-G diagrams \modelscopehead % optional Model scope annex % text \end{verbatim} \sclause{Body of an application protocol} \index{AP} The body of an AP has the following structure: \begin{verbatim} \inforeqhead % Info. Req. clause \apinforeq{<param1>} % boilerplate \uofhead % Units of functionality clause \apuof{<\item list>} % boilerplate \auofhead{<UoF1>} % repeat for each UoF % text \applobjhead % Application objects \apapplobj % boilerplate \applasserthead % Application assertions \apassert % boilerplate \aimhead % Application interpreted model \maptablehead % Mapping table \apmappingtable % boilerplate % mapping table \aimshortexphead % AIM EXPRESS short listing \apshortexpress % boilerplate \confreqhead % Conformance requirements \apconformance{<param1>} % boilerplate \apconformclasses{<list>} % optional boilerplate \aimlongexphead % Annex A: AIM EXPRESS expanded listing \aimlongexp % boilerplate \aimshortnameshead % Annex B: AIM short names \apshortnames % boilerplate \impreqhead % Annex C: Impl. specific reqs \apimpreq % boilerplate \picshead % Annex D: PICS \picsannex % boilerplate \objreghead % Annex E: Information object registration \docidhead % Document identification \docreg{<param1>} % boilerplate \schemaidhead % Schema identification \apschemareg{<6 params>} % boilerplate \aamhead % Annex F: AAM \apaamintro % boilerplate \aamdefhead % AAM defs and abbreviations \apaamdefs % boilerplate \aamfighead % AAM diagrams \aamfigures{<p1>}{<p2>} % boilerplate \armhead % Annex G: ARM \armfigures{<p1>}{<p2>} % boilerplate \aimexpressghead % Annex H: AIM EXPRESS-G \aimexpressg{<p1>} % boilerplate \aimexpresshead % Annex J: AIM EXPRESS listing \aimexplisting % boilerplate \apusagehead % optional Annex: AP usage \techdischead % optional Annex: Technical discussions \end{verbatim} \sclause{Body of an AIC} \index{AIC} The body of an AIC has the following structure: \begin{verbatim} \aicshortexphead % EXPRESS short listing clause \aicshortexpintro % boilerplate \typehead{<Schema>} % if type definitions \atypehead{<type>} % repeat for each type \entityhead{<Schema>}{} % if entity defs \anentityhead{<entity>} % repeat for each entity \functionhead{<Schema>} % if function defs \afunctionhead{<function>} % repeat for each function \aicshortnameshead % Annex A: Short names of entities \aicshortnames % boilerplate \objreghead % Annex B: Information object registration \docidhead % Document identification \docreg{<version no>} % boilerplate \schemaidhead % Schema identification \schemareg{<6 parameters>} % boilerplate \aicexpressghead % Annex C: EXPRESS-G diagrams \aicexpressg % boilerplate \techdischead % optional Annex: Technical discussions \end{verbatim} % object registration annex \objreghead \docreg{-1} \infannex{Deprecated, deleted, new and modified commands} The facilities described herein are the result of a major overhaul, extension, and repackaging of earlier versions. This release is being treated as a new baseline. Consequently, the specific changes from earlier versions are not noted. \infannex{The relationship with SGML} \label{anx:sgml} \index{SGML} 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~\ref{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 moving towards electronic versions of its standard documents and, naturally, would like these to be SGML tagged. NIST have SGML tagged some STEP documents using manual methods, which are time consuming and expensive. There is a small effort underway to develop an auto-tagger that will (semi-)automatically convert a \LaTeX\ tagged document to one with SGML tags. Like \LaTeX, SGML has a concept of style files, which are termed DTDs, and both systems support powerful macro-like capabilities. 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. Also, reverse translation may be necessary as SGML has no means of displaying a finally formatted document --- commercial SGML systems often use \TeX\ or \LaTeX\ as their printing engine. 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. It is highly recommended that, for STEP purposes at least, document editors refrain from defining their own \LaTeX\ macros. If new generally applicable \LaTeX\ commands are found to be necessary, these should be sent to the editor of this document for incorporation into the \file{iso} facility and/or appropriate other facilities. Some other points to watch when writing \LaTeX\ documents that will assist in translations into SGML 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|\index{label\@\verb|\label|} command within clause headings or captions. It can just as easily be placed immediately after these constructs. \item Avoid using the \verb|\index|\index{index\@\verb|\index|} command within clause headings or captions. It can just as easily be placed immediately after these constructs. \item Use all the specified tagging constructs when defining an \Express\ model --- this will also assist any program that attempts to extract \Express\ source code and descriptive text from a document. \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, for example the \file{iso.cls} and \file{step.sty} styles. The information below gives pointers to where you can obtain \LaTeX\ etc., from the\index{Internet} Internet. General information on Internet access is obtainable from many sources, for example reference~\bref{krol}. \sclause{CTAN} \index{CTAN} \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 (Comprehensive \TeX\ Archive Network). There are three sites; pick the one nearest to you. \begin{itemize} \item \verb|ftp.dante.de| in Germany; \item \verb|ftp.shsu.edu| in the USA; \item \verb|ftp.tex.ac.uk| in the UK. \end{itemize} All three sites mirror each other; this means that they should all have the same contents (at least within 24 hours of each other). The top level directory for \LaTeX\ and friends is \verb|/tex-archive|. CTAN contains a wide variety of (La)TeX sources, style files, and software tools and scripts to assist in document processing. Another mirror in the USA is \verb|ftp.cdrom.com| and directory \verb|pub/tex/ctan|. WWW access is via \verb|http://www.cdrom.com|. This site is often more reliable than the one at \verb|shsu|. \begin{anote}As of October 1994 they do not contain any of the style files or software developed to support STEP. These are available from SOLIS. \end{anote}% end note The UK and USA CTAN also support {\em gopher}\index{gopher} access. A World Wide Web\index{WWW} (hypertext)\index{hypertext} interface to the archives is available from: \begin{verbatim} http://jasper.ora.com/CTAN/ctan.html \end{verbatim} Walsh~\bref{walsh} provides instructions on various non-ftp means of accessing CTAN and on building a \LaTeX\ system. Further information extracted from CTAN itself is given below. The best advice is to explore the archives yourself. \ssclause{The archive} The following is a copy of the file \verb|tex-archive/README.mirrors| obtained via ftp from the USA CTAN site in October 1994. Identical information should be obtainable from the other CTAN sites. \begin{small} \begin{verbatim} In order to reduce network load, it is recommended that you use the Comprehensive TeX Archive Network (CTAN) host which is located in the closest network proximity to your site. Known partial mirrors of the CTAN reside on (alphabetically): dongpo.math.ncu.edu.tw (Taiwan) /tex-archive ftp.adfa.oz.au (Australia) /pub/tex/ctan ftp.germany.eu.net (Deutschland) /pub/packages/TeX ftp.muni.cz (The Czech Republic) /pub/tex/CTAN ftp.cs.ruu.nl (The Netherlands) /pub/tex-archive ftp.uu.net (Virginia, USA) /pub/text-processing/TeX nic.switch.ch (Switzerland) /mirror/tex Known mirrors of the CTAN reside on (alphabetically): ftp.center.osaka-u.ac.jp (Japan) /CTAN ftp.ccu.edu.tw (Taiwan) /pub/tex ftp.cs.rmit.edu.au (Australia) /tex-archive ftp.duke.edu (North Carolina, USA) /tex-archive ftp.gwdg.de (Deutschland) /pub/dante ftp.jussieu.fr (France) /pub4/TeX/CTAN ftp.loria.fr (France) /pub/unix/tex/ctan ftp.mpi-sb.mpg.de (Deutschland) /pub4/tex/mirror/ftp.dante.de ftp.uni-bielefeld.de (Deutschland) /pub/tex ftp.uni-stuttgart.de (Deutschland) /tex-archive (/pub/tex) ftpserver.nus.sg (Singapore) /pub/zi/TeX kadri.ut.ee (Estonia) /pub/tex src.doc.ic.ac.uk (England) /packages/tex/uk-tex sunsite.unc.edu (North Carolina, USA) /pub/packages/TeX wuarchive.wustl.edu (Missouri, USA) /packages/TeX Please send updates to this list to <CTAN-Mgr@SHSU.edu>. The participating hosts in the Comprehensive TeX Archive Network are: ftp.dante.de (Deutschland) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node sun.dante.de -- e-mail via ftpmail@dante.de -- Administrator: <ftpmaint@dante.de> ftp.shsu.edu (Texas, USA) -- anonymous ftp and gopher /tex-archive (/pub/tex /pub/archive) -- NFS mountable from ftp.SHSU.edu:/pub/ftp/tex-archive -- e-mail via ftpmail@ftp.SHSU.edu -- World Wide Web access on www.SHSU.edu -- Administrator: <CTAN-Mgr@SHSU.edu> ftp.tex.ac.uk (England) -- anonymous ftp /tex-archive (/pub/tex /pub/archive) -- gopher on node gopher.tex.ac.uk -- NFS mountable from nfs.tex.ac.uk:/public/ctan/tex-archive -- World Wide Web access on www.tex.ac.uk -- Administrator: <ctan-uk@tex.ac.uk> \end{verbatim} \end{small} The following is a copy of the file \verb|tex-archive/README.archive-features| obtained via ftp from the USA CTAN site in October 1994. Identical information should be obtainable from the other CTAN sites. \begin{small} \begin{verbatim} This ftp archive allows for a number of important features on the fly. Complete directory tree retrieval You may retrieve an entire directory subtree as an archive file using GET DIRNAME.EXT where DIRNAME is the name of the directory file, and EXT is the name of the archiving mechanism you wish to retrieve. Supported archiving extensions include: .tar -- standard U*ix tar archives (GNU tar) .tar.Z -- LZW (U*ix "compress") compressed tar archive .tar.z -- gzip compressed U*ix tar archive (uses gzip 1.2.3) .tar.gz -- gzip compressed U*ix tar archive (uses gzip 1.2.3) .zip -- Info-ZIP platform-independent ZIP archive (uses ZIP 1.9) .zoo -- platform independent ZOO archive (uses ZOO 2.10) Sources and selected executables for the archiving tools for various platforms are available in the /archive/archive-tools directory tree. For example, to retrieve all files in a ZIP archive within the directory /archive/archive-tools/tar/vmstar (the VMSTAR distribution), use: cd /archive/archive-tools/tar binary get vmstar.zip This will create vmstar.zip on your system, which will UNZIP to create the sub-directory vmstar on your system (if it does not already exist), then place all files within that directory into the vms sub-directory on your system. Replace the extension .zip with any of the extensions identified above as being supported. Note that binary mode should be used to transfer these files. +++ Automatic compression and decompression Some files are retained in compressed format on this archive (shown by by filenames such as FILENAME.Z, FILENAME.z or FILENAME.gz). To retrieve the file in uncompressed format, use: get FILENAME and the file FILENAME.Z, FILENAME.z, or FILENAME.gz will be uncompressed prior to transferring it to your system. Alternately, many files are archived in uncompressed format (shown by a a filename such as FILENAME which does not end in .Z, .z, or .gz). To retrieve the file in compressed format, use: get FILENAME.Z get FILENAME.z or get FILENAME.gz and the file FILENAME will be compressed prior to transferring it to your system. In the case of the ".Z" extension, the compression technique is the LZW (Unix "compress") method; in the case of the ".z" or ".gz" extensions, the compression technique is GNU's gzip. +++ Getting a listing of a ZIP archive file To get a listing of the contents within a ZIP archive file, such as foo.zip use: get foo.zip-lst and the contents will be written to this file as it is created, then transferred to your system. +++ Searching through the whole archive To search for a file of a given name in the complete archive listing use: quote site index string where "string" is your search string. Note that this will NOT work if you entered a `-' as the first character of your password. \end{verbatim} \end{small} \ssclause{A listserver} The Sam Houston State University, as well as being the USA CTAN site, also supports some listservers\index{listserver} that may be of interest. \begin{anote}I do not know whether any of the other sites have similar capabilities. \end{anote} % end note The following is an edited combination of messages about these lists. The information in them reflects the status as of March 1994. \begin{small} \begin{verbatim} Sam Houston State University supports four lists of potential interest to (La)TeX users -- Tex-Pubs, INFO-TeX, ctt-Digest, and LitProg. TeX-Pubs is a redistribution list for TeX-related electronic-format periodicals, including TeXhax, UKTeX, TeXMaG, the "Frequently Asked Questions" and "Supplementary TeX Information" from the comp.text.tex newsgroup, and the TeX Users Group's "TeX and TUG News". TeX-Pubs provides subscribers with a single address for handling the administrative details associated with a subscription to each of these journals, so you will need to subscribe or signoff only once instead of multiple times. TeX-Pubs will provide you with copies of each of these electronic digests as soon as they are received for forwarding. To minimize the size of daily postings from ctt-Digest, these periodicals are removed from the ctt-Digest distribution. Users interested in receiving these periodicals are encouraged to subscribe to to TeX-Pubs by including the command: SUBSCRIBE TeX-Pubs "Your Name" in the body of a MAIL message to LISTSERV@SHSU.edu. INFO-TeX is an unmoderated discussion list for TeX-related topics, providing a broad range of discussion on virtually all topics associated with TeX and it's derivative products, such as LaTeX, AMS(La)TeX, REVTEX, METAFONT, etc. It is mirrored to the USENET newsgroup comp.text.tex, so a post to it is broadcast to quite possibly the widest audience of skilled individuals to assist you. You are invited to become involved on this list or to simply monitor it. To subscribe to INFO-TeX, please include the command: SUBSCRIBE INFO-TeX "Your Name" in the body of a mail message to the SHSU list server, LISTSERV@SHSU.edu. If you would like to post a query to INFO-TeX (and on to comp.text.tex), the address is INFO-TeX@SHSU.edu. ctt-Digest is an automatically generated daily digest of posts made to USENET's comp.text.tex newsgroup which do not originate on INFO-TeX. Also, efforts are made to exclude periodical postings, such as those carried on TeX-Pubs. The creation of this list allows mail-based subscribers to have the widest coverage possible on all discussions associated with TeX-related topics. You are invited to receive these digests, along with your TeX-Pubs postings and interactive access on INFO-TeX. To subscribe to ctt-Digest, please include the command: SUBSCRIBE ctt-Digest "Your Name" in the body of a mail message to the SHSU list server, LISTSERV@SHSU.edu. LitProg@SHSU.edu is an unmoderated discussion list on Literate Programming, primarily focusing on the WEB structure of programming introduced by Donald Knuth. This includes general issues of style and philosophy, such as "what is literate programming?" or "is literate programming compatible with writing portable programs?", as well as specific issues relating to particular literate programming systems, such as "is it possible to use CWEB with ANSI C?" Novices are welcome; it is intended that this group should be a place where newcomers can be welcomed into the fold as well as a place where seasoned literate programmers can discuss fine points of technique. If you would like to subscribe to LitProg, please include the command: SUBSCRIBE LitProg "Your Name" in the body of a mail message to LISTSERV@SHSU.edu. If you would like to post a query to LitProg, the address is LitProg@SHSU.edu. If you have any questions or comments about these lists, or need assistance, please do not hesitate to contact the list owner directly at any of the addresses provided below. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% George D. Greenwade, Ph.D. Bitnet: BED_GDG@SHSU Department of Economics and Business Analysis THEnet: SHSU::BED_GDG College of Business Administration Voice: (409) 294-1266 P. O. Box 2118 FAX: (409) 294-3612 Sam Houston State University Internet: bed_gdg@SHSU.edu Huntsville, TX 77341 bed_gdg%SHSU.decnet@relay.the.net %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \end{verbatim} \end{small} \sclause{SOLIS} \index{SOLIS} SOLIS is the {\em STEP On Line Information Service}. It contains many electronic sources of STEP related documents. The relevant top level directory is \verb|pub/step|. In particular it contains the source for this document and the \file{.sty} files, as well as other \LaTeX\ related files. The latest versions of the \LaTeX\ related files are kept in the directory \verb|pub/step/latex/current|. There are several ways of accessing SOLIS. These are detailed by Ressler~\bref{ressler} and Rinaudot~\bref{rinaudot}. Copies of these reports may be obtained by telephoning the IPO Office at \verb|+1 (301) 975-3983|. Abbreviated instructions are given below and are current as of September 1994. \ssclause{Anonymous ftp} \index{ftp} SOLIS is at \verb|ftp.cme.nist.gov| (or \verb|129.6.32.54|). Login as \verb|anonymous| and when requested for a password, supply your Email address. After the connection is established, do \begin{verbatim} cd pub/step \end{verbatim} to get to the top level directory. \ssclause{Kermit} \index{kermit} \begin{enumerate} \item Use a communications package that supports the kermit protocol. \item Dial into the NIST modem pool at \verb|+1 (301) 948-9720|. \item When prompted by \verb|Enter Username>| type in your last name. \item Connect to SOLIS by typing in: \verb|connect solis.cme|. \item At the \verb|Login:| prompt, type in \verb|kermit|. \item Answer the prompts to register yourself as a user. \end{enumerate} You will then be logged into the kermit server and will be able to access all the files available on SOLIS. \ssclause{Electronic mail} \index{Email} Send Email to \verb|nptserver@cme.nist.gov|. Anything in the Subject line is ignored --- all processed commands are in the body of the message. Each command must be on a separate line in the body. The following commands are available. \begin{itemize} \item \verb|help| to get the help file (instructions for use of the archive server). \item \verb|send step/howto/mailhelp.txt| to receive an explanation of the archive server. \item \verb|index all| to get a list of directories, subdirectories and file names. \item \verb|index <dname>| to get a list of the contents of the \verb|<dname>| directory. \item \verb|send step/<dname>| to receive all the files in the \verb|<dname>| directory. \item \verb|send step/<dname>/current| to receive all files of most recent release of the \verb|<dname>| directory. \item \verb|send step/<dname>/<subdname>/.../<filename>| to receive the particular \verb|<filename>| file. \end{itemize} \ssclause{Gopher} \index{gopher} The gopher server is running on \verb|elib.cme.nist.gov| on port~70. There are two ways to access the SOLIS gopher server. \sssclause{Gopher client} Connect to the host \verb|elib.cme.nist.gov|. For example, if your executable file is \verb|gopher|, type \begin{verbatim} gopher elib.cme.nist.gov \end{verbatim} You are now in SOLIS, using the gopher menu. Just select either the \verb|step| directory or the \verb|howto| directory and proceed. When you have found a file you would like to receive, there are two ways to download it. \begin{enumerate} \item Email the file. For this method, you must be viewing the file that you want to receive. Type \verb|m| and a \verb|Mail current document to:| window will appear. Enter your Email address, press the \verb|<Enter>| key, and the file will be sent to you. \item Save the file to your local machine. For this method, you must either be viewing the file or have the file selected in the gopher menu. Type \verb|s| and a \verb|Save in file:| window will appear. You can enter the name you want for the file or use the default provided by the gopher client, and then press the \verb|<Enter>| key. \end{enumerate} \sssclause{World Wide Web} \index{WWW} For a World Wide Web (WWW) browser, such as Mosaic, use one of the following URLs: \begin{itemize} \item \verb|gopher://elib.cme.nist.gov| or \item \verb|http://elib.cme.nist.gov:70| \end{itemize} You are now in SOLIS, using the gopher menu. Just click on either the \verb|step| directory or the \verb|howto| directory and proceed. When you have found a file you would like to receive, there are two ways to download it. \begin{anote}These instructions are specific to Mosaic\index{Mosaic} for X Windows. The procedures for Mosaic for Microsoft Windows and Mosaic for Macintosh will differ slightly. \end{anote} % end note \begin{enumerate} \item When you are viewing the file that you want, open the \verb|File| pull down menu, select the \verb|Mail to| option and fill in your Email address. The file will be Emailed to you. \item You must be at the gopher menu that lists the file you want. Pull down the \verb|Options| menu and click on \verb|Load to Local Disk|. Select the file that you want (ASCII, WordPerfect, or Postscript) from the gopher menu. The \verb|Save Binary File to Local Disk| window will appear. Select the directory where you want to save the file and fill in the \verb|Name for binary file on local disk:|. \end{enumerate} \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.,}{The LaTeX isorot.sty file,} {ISO TC184/SC4/EC N42, August, 1994.} \label{doc:isorot} \reference{GOOSENS, 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} \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} \bibidefo \bibidefix \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),} {Draft NSTIR, 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{references} % the INDEX \input{stepstyidx.tex} \end{document}