diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/cweb-latex/src/cweb-user.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/cweb-latex/src/cweb-user.tex | 779 |
1 files changed, 779 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/cweb-latex/src/cweb-user.tex b/Master/texmf-dist/doc/latex/cweb-latex/src/cweb-user.tex new file mode 100644 index 00000000000..2f21f53150c --- /dev/null +++ b/Master/texmf-dist/doc/latex/cweb-latex/src/cweb-user.tex @@ -0,0 +1,779 @@ +% $DocId: cweb-user.tex,v 2.10 1995/11/20 22:34:16 schrod Exp $ +%------------------------------------------------------------ + +% +% user manual/requirement definition for cweb class +% +% [LaTeX] +% (history at end) + + +% This file is either a subdocument of the style doc or a document on +% its own. In the former case it's a chapter, in the latter it's a +% ``normal'' LaTeX progltx document. +% If it's a subdocument, this file will be included after +% \begin{document}. We can detect this: \document redefines +% \documentclass to be \@twoclasseserror. Then we also have to define +% how this document is ended: Either by \endinput or by an additional +% revision log. +% Of course, this test works only if LaTeX 2e is used for processing. + +\expandafter\ifx \csname @twoclasseserror\endcsname \documentclass + + \let\endSubDocument=\endinput + + \chap What's this class for?. + +\else + + \let\endSubDocument=\relax + + \documentclass{progltx} + + \usepackage{cweb-doc} % additional document-specific markup + \usepackage{a4-9} % Tschichold's A4 layout + + + \begin{document} + + \title{The \texttt{cweb} Class} + \author{Joachim Schrod% + \thanks{Email: \texttt{jschrod@acm.org}}% + } + + \RCS $DocDate: 1995/11/20 22:34:16 $ + \date{% + \RCSDocDate\\[3pt] % LaTeX Error: Paragraph terminated too early + (Revision \RCSStyleRevision{} of \texttt{cweb.cls})% + } + + \maketitle + + \sect + +\fi + +\cweb{} is a Literate Programming tool that enables you to combine +documentation and actual C or \C++ code in one document. The \cls{cweb} +class allows you to use \LaTeX{} for the documentation of your \cweb{} +programs. Now a \cweb{} document is like a usual \LaTeX{} +document---as you have probably written dozens before. With all the +features of \LaTeX{}, and with all the quirks of \LaTeX{}. + +Originally, \cweb{} was only usable with Plain \TeX{}, as \cweave{} +outputs \TeX{} code that looks as if it were Plain \TeX{}. Well, it +isn't---it's just not the normal \LaTeX{} markup. No change in +\cweave{} is necessary to use \LaTeX{}. + +For the sake of those \cweb{} programmers who have used the original +markup interface (i.e., the Plain \TeX{} macros) before, I'll +sometimes contrast the approach presented here with the original one. +Then I'll call the original interface ``Plain \cweb{}''. The new +interface is called ``\LaTeX{} \cweb{}''. + +If you never used \cweb{} before, you won't find enough information in +this manual. Please read the user manual of \cweb{} first, and then +come back again. I assume a working knowledge, and will only present +the new stuff introduced by this class. + + +\sect This bundle does \emph{not} support inclusion of \cweb{} code in +other (general) \LaTeX{} documents. This is not the task of the +\cls{cweb} class -- its task is the usage of \LaTeX{} for creation of +\cweb{} documents. + +Note also that you will not be able to \LaTeX{} your \cweb{} documents +(i.e., the program files) directly. You must still process them first +by \cweave{}, then you can use \LaTeX{} to process the resulting +\TeX{} file. + + +\sect You have to use \cweb{} version~3 and you need at least \LaTeX{} +version \mbox{$\langle$1994/12/01$\rangle$} (or any later one), this +class does not work with older versions. + + +\sect A \cweb{} document has two concurrent structures, a +\textsl{document structure} and a \textsl{program structure}. + +The basic building block of the document structure, the bricks that +build up our document, are called \textsl{chunks}. We use chunks to +present one point of our work to our reader, the presentation has both +informal (explanation) and formal parts (code). This is the essence of +Literate Programming, that we tell each point twice, once on an +abstract and once on a technical level. + +A chunk consists of three parts: (1)~the \textsl{documentation part}, +(2)~the \textsl{definition part}, and (3)~the \textsl{program part}. +Each of these parts can be empty. The documentation part is mostly +text with \LaTeX{} tags. In this text material from \textsl{restricted +program mode} can appear. The definition part consists of a series of +either \textsl{macro} or \textsl{format definitions}. The program part +is one piece of a refinement, identified by a name (see below). + +A chunk starts with `\verb*|@ |', and gets assigned a unique +identification, a number; we'll use that number to refer to that +chunk. In particular, the number is of interest when we want to refer +to the code part of the chunk, otherwise it's often regarded as +superfluous. + +\sect And we have higher-level structure elements as well. They combine a +sequence of chunks and a sequence of structure elements on a lower +level, both sequences may be empty. As usual in \LaTeX{}, we call +these elements \textsl{section divisions} or short \textsl{sections}. +We do not give them names +like `part,' `chapter,' `subsection,' etc., to denote their level; +most often we'll use level-numbers (sometimes called \textit{rank}) +instead. + +A section division starts with `|@*|' and is followed by a character, the rank +indicator. The highest rank is~`|@**|', you can think of it as an +equivalence to \LaTeX{}'s |\part|. (Often we don't use that rank in +smaller programs, as we don't use |\part| in smaller articles.) A +section on the next rank is started with~`\verb*|@* |' (synonym to +`|@*0|'), roughly equivalent to chapters. Then we'll use numbers to +mark the next ranks, from |@*1| to~|@*9| (sections to +sub$^{9}$sections). That's outrageous---I'll hope you'll never use +11~hierarchy levels in your documents, they would be unreadable. + +A section has a title, that title comes after the section start tag +and ends with a full stop. If you need periods in your title, enclose +them in braces. (That behavior can be changed if there's enough +interest. I can also make it possible to use braces to delimit the +section title, as in |\section|, etc. Send mail with your opinion.) + +As a matter of convenience, a section implicitly starts a chunk; +i.e., one does not need to use `\verb*|@ |' after the section title. +Of course, it doesn't hurt to use it either. + +\medskip + +The explanation might have been a bit too abstract, so let me make one +thing plain clear: You should \emph{never ever} use |\part|, +|\chapter|, |\section|, or any other \LaTeX{} sectioning command in +your \cweb{} documents. Use the sectioning commands of \cweb{}, i.e., +`|@*|\textit{rank}'. + + + +\sect The description above does not mean that the output is fixed to +the style you'll know from the \cls{book} or \cls{report} document +classes. Quite in contrary, the default layout is oriented along the +\cls{article} class. + +There is a very easy possibility to change that default layout: With +the option |baseclass| (see chunk~\ref{chunk:baseclass}) you can +specify the document class \cls{cweb} inherits from. If that document +class has chapters (like \cls{report} or \cls{book}), you'll get the +layout as you're used from these classes. + + +\sect In Plain \cweb{}, the term \textit{section} was used for +`chunk.' We abstain from that usage, as sections are used in \LaTeX{} +(and in almost all other documentation systems, for that matter) to +designate higher-level structure elements. We prefer to follow the +traditional usage of terms here, even if that means that we'll have to +confront Plain \cweb{} users with a slight shift in semantics. + +And you'll find the term \textit{starred section} in Plain \cweb{} and +might think these are our sections. Well, almost. There's a subtle, +but important difference between these starred sections and our +terminology: A starred section is just a chunk with a special +attribute (a title). That title will appear in a table of contents, +but that does not mean that the starred section is an element to +denote a structural \emph{hierarchy}. + +You won't find a section number like `1.5.2' in Plain \cweb{}, do you? +--- In \LaTeX{} \cweb{}, you've got the choice. You have the new +support of the hierarchical structure, or you may stay with Plain +\cweb{}'s (flat) structure. + + +\sect We still have one open point in our explanation of the +document's structure. As mentioned at the start, we've got two +concurrent structures, let's have a look at the program structure +finally. + +A \cweb{} program consists of a tree of \textsl{refinements}. A +refinement is a sequence of program parts with the same name, ordered +in appearance in the document. The root of the tree is the refinement +with the special name~|@c|. + +The complete program text is defined by the depth-first traversal +(DFS, i.e.\ infix-order) of the tree, the tool \ctangle{} extracts the +program text from a \cweb{} document. + + + + +\chap Markup for your document structure. + +Like every \LaTeX{} document, a \cweb{} document starts with a +document class specification; then comes the preamble, terminated by +the document start. This way we brought some structure in the \cweb{} +limbo, but this shouldn't be a problem for you. You must tag the end +of the document, as you do in other \LaTeX{} files. But here you must +take a bit more care: +% +\begin{quote} + \itshape + + Assert that the\/ |\end{document}| is in the documentation part of + a\/ chunk, neither in the definition nor in the program part. + +\end{quote} +% +If it would be in the program part, \cweave{} would readily process it +and \LaTeX{} would never see this tag. Nevertheless, if you make this +mistake, you will detect it early: \ctangle{} will copy this tag to +the C file as well, and your program will be erroneous\,\dots + +And there's another difference you'll have to take care of: Usually +you can put arbitrary text after the end of your document, \LaTeX{} +will not see it. Please note that both \ctangle{} and \cweave{} will +still see it---don't put a program part or even complete chunks there. +For technical reasons, there must not be any |\fi| token after the +document end, too. + + +\sect The resulting structure of your \cweb{} document is exemplified +in figure~\ref{fig:structure}. Note that |\end{document}| is placed +in a new, empty, chunk. This isn't necessary, you could write more +documentation there---but it's considered good style to use a sole +chunk for document finish. + +%% my little joke +\begin{figure} + +\setbox0=\vbox{\parindent=0pt \hsize=.85\textwidth +\begin{minipage}{\hsize} +\begin{verbatim} +\documentclass{cweb} + +\begin{document} + +\title{My Program, Doomed for the ACM Software Systems Award} +\author{Joe L. User} + +\maketitle + +\tableofcontents % if you want + + +@* A PSPACE solution for the Traveling Salesman. + +< insert your program here > + + + +@ +\end{document} +\end{verbatim} +\end{minipage} +} + +\begin{center} +\fboxsep=1em +\fbox{\box0} +\end{center} + +\caption{Exemplified \cweb{} document structure} +\label{fig:structure} +\end{figure} + + +\sect If you don't call \cweave{} with the |-x| option, an identifier +index and a list of all refinements is created at the end of the +document. You can specify an introductionary text for the index with +the tag |\cwebIndexIntro|, the introduction is the argument of this +tag. + + + + +\chap Configuration. + +You may configure the \cls{cweb} class in several ways, with class +options, redefinitions in the preamble, supplying additional +packages, and by subclassing it. + +At start of the processing, the file |cweb.cfg| is read if it exists. +That file may contain configuration code that shall apply to all your +\cweb{} documents. You can set the paper size there, etc. Please don't +set the default structure there (see +chunk~\ref{chunk:structure-option}), others would get different results +when they process your document. + + +\sect Options are specified with the new ``keyword$=$value''-scheme, +first introduced with the \pkg{graphicx} package. I.e., the options have a +set of possible values, you may choose one. For instance, the option +|structure| has the possible values |flat| and |hierarchic|. You tell +that you want a flat document structure by +% +\begin{quote} + |\documentclass[structure=flat]{cweb}| +\end{quote} +% +As usual, options are separated by commas. From the set of possible +option values, two ones are special: The \textsl{predefined value} and +the \textsl{default value}. The predefined value is the one that's +used when you don't specify the option at all. The default value is +used of you don't specify the value in the option; e.g., +% +\begin{quote} + |\documentclass[suppress]{cweb}| +\end{quote} +% +selects the default value of the option |suppress|. (Not that there is +one currently. :--) + +There is always a predefined value, a default value may not be there. +If a default value exists, it is always different from the predefined +one. The default value gives you an easy specification of an option +value that is expected to be common. If that value would be the +predefined one, you won't need to specify the option in the first +hand. + +The following options are available and explained below: +% +\begin{options} +\item[structure] Select the structure model used by the \cls{cweb} + class. +\item[suppress] Suppress output of different document parts. +\item[baseclass] Select the base document class. +\item[language] Select a language for inserted texts. +\end{options} + + +\sect \label{chunk:structure-option} + +We have two possibilities to output chunks and sections, either +as a flat or as a hierarchic structure. This configuration is selected +by the option |structure|, either through the value |flat| or +|hierarchic|. +% +\begin{options} + +\item[flat] The flat structure is the ``classic'' approach, + the way Plain \cweb{} renders its chunks. Then each chunk starts + with its number. The chunk numbers are output in boldface, followed + by a dot and a quad. + + Sections show chunk numbers as well (remember, they implicitly + start a chunk). ``Important'' sections are added to the table of + contents. + +\item[hierarchic] The hierarchic structure is the + ``modernistic'' (aka \LaTeX{}) approach, then we mark the start of a + chunk by a start sign. (By default, that's a paragraph sign, `\P'). + Chunk numbers are rendered in the margin of the program part. If + there's no program part, no chunk number will be rendered---after + all, they are only used for identification of program parts. + + Section numbers are hierarchic, like in other \LaTeX{} document + classes. + +\end{options} +% +The predefined value of |structure| is |hierarchic|. There doesn't +exist a default value. + + +\sect The option |suppress| allows to select suppression of different +document parts. You have different parts you can suppress. The value +of the |suppress| option is a comma-separated list of identifiers, +enclosed in braces. If you have only one thing you want to suppress, +you don't need to surround that identifier by braces. Possible +identifiers are: + +\begin{options} + +\item[changehints] suppress output of hints that a changefile was + used: The change flag (by default a star at the start of a chunk) + and the list of changed chunks at the end of the document. + +\item[unchanged] suppress output of chunks that are not changed by + a changefile. This value implies |changehints|---by definition all + printed chunks are changed, it doesn't make any sense to hint to + that fact in addition. + +\item[index] suppress the identifier index. + +\item[reflist] suppress the refinement list. + +\item[format] suppress output of `|@f|' directives. + +\end{options} + +The predefined value is the empty list, i.e., nothing is suppressed. +There is no default value since I don't know which parts are +suppressed most often. Send email with your demands, I'll add a +default if I see that there is one major application of this option. + + +\sect \label{chunk:baseclass} The option |baseclass| allows to select +the base document class used by the \cls{cweb} class. In particular, +if the base class has |\chapter| defined the layout of major section +divisions (`|@**|' and `\verb*|@* |') will be changed to be in a +chapter layout. + +The predefined value is |article|, the default value is |report|. + + +\sect The option |language| allows to adapt inserted texts to +different languages. E.g., with the option `|language=german|' German +texts are inserted for cross references, headings, etc. That option +will neither switch on language-specific hyphenation, nor will it +trigger any other processing -- that's the task of Babel or any other +\LaTeX{} language style. + +There is neither a predefined nor a default value. (Without the +|language| option, inserted texts are in English.) + +That option actually triggers the usage of a package +\pkg{cwbl-\textit{language}}. To see if a language is supported, you +have to look for respective files in the \LaTeX{} \cweb{} macro +directory.% + \footnote{That's |texmf/tex/latex/cweb|, on a TDS compliant + installation. Please beware that pseudo operating systems like DOS + cripple file names and shorten them to eight characters; if you + see a file |cwbl-ger.sty| you'll know that the option value + |german| is supported.} +Of course, the easiest way to check the availability is to try it +out -- you'll get a comprehensible error message if there is no +respective \cweb{} language package. In November 1995, |german|, +|french|, and |italian| were supported, more might have been added +later. + +\smallskip + +For compatibility with Babel, some other options (e.g., |german| or +|french|) are also supported as nicknames for +|language=|\textit{option}. If you use packages that make also use of +these options (e.g., \pkg{babel} or \pkg{varioref}), you'll probably +prefer them over |language| since they are picked up by those packages +as well. + + + + + +\chap Restrictions. + +The following restrictions will not be withdrawn as far as I can +see---except if somebody will send me a patch with changes. I tried to +sort the restrictions in order of severity. + + +\sect \emph{(Restrictions due to the design of \cweave{}.)} + +Please be aware that the vertical bar (`\verb"|"') is used by \cweb{} +to delimit small C code pieces in the documentation parts, and is +therefore processed (and mangled) by \cweave{}. \emph{You cannot use +it for \TeX{} any more.} + +In particular, you cannot specify rules for the |tabular| or the +|array| environment. Since you most certainly want to do so: You have +two choices left: +% +\begin{enumerate} + +\item Make sure you have the \pkg{array} package (by Frank Mittelbach and + David Carlisle, from the Tools bundle) installed. Then you may use + the package \pkg{cwebarray}, it defines `|I|' (that's an uppercase~`i') + as a specifier for rules. I.e., instead of + \verb"\begin{tabular}{l|l}" you have to write + |\begin{tabular}{lIl}|. Not the most elegant solution, but it + works\,\dots + +\item + Use `|^^7c|' instead of `\verb"|"'. I.e., instead of + \verb"\begin{tabular}{l|l}" you may write |\begin{tabular}{l^^7cl}|. + +\end{enumerate} +% +These two choices are compatible, you may use both in one document. +Needless to say, I consider the first alternative the better one. + + +\sect Neither a refinement name nor an index entry made by~|@^| may +consist of a \emph{single} dot-accented term. I.e., you must not +write `|@<\.O@>|', `|@^\.o@>|', or even `|@^\.{foolish}@>|'. Of +course you may write `|@^\.o, accent@>|' or `|@< Handle accent \.o @>|'. + + +\sect \emph{(Restriction due to the implementation of \LaTeX{}.)} + +One cannot use restricted C mode in moving arguments. Most notably, +this is disturbing in the section titles and in |\caption| +tags. Sorry, folks. + +(Basically, that's because the definition of |\addcontentsline|, etc., +in the \LaTeX{} kernel is brain damaged; it wants to expand its +argument. And I don't want to maintain redefinitions of such basic +macros.) + + +\sect \emph{(Restrictions due to \TeX{}.)} + +\C++ comments (i.e., from |//| to the end of the line) are typeset as C +comments. This is especially bad if they are used for a whole block of +comment lines, as it is quite common. Please put such comment blocks +in the documentation part. (An |\everyline| implementation would be +needed to lift that restriction, and that's impossible in general.) + + + + +\chap Details. + +The following tags are reserved and must neither be used nor redefined: + |\ATL|, + |\B|, + |\M|, + |\N|, + |\PB|, + and~|\Y|. + +|\9| is already explained in the \cweb{} user manual: It's a special +control sequence used for the index entries tagged with~`|@:|'. Its +default definition is setup in such a way that you can cheat +\cweave{} concerning the sort order of this entry: If you enter +`|@:sort}{print@>|' you will get an index entry ``print'' next to the +place where the index entry ``sort'' would be. But you're allowed to +change this default definition.% + \footnote{Remember: A package is a very good place to place such + redefinitions; your document should be concerned with contents, not + with appearance.} + +The names of all other control sequences defined by this +class---besides the common \LaTeX{} control sequences---start with +|cweb|, |Cweb|, or |cwbb|. Please don't define new control sequences starting +with this prefix. (The control sequences starting with |Cweb| may be +redefined in a package to change the appearance of the \cweb{} +document or the behavior in a controlled manner, check the +description of the internal interface for this possibility.) + + +\sect Plain \cweb{} users +should note that the macros from |cwebmac.tex| are not available any +more. E.g., you cannot use |\.| to typeset typewriter material; use +either |\texttt| or~|\verb|, as it fits the situation. On the other hand, +now you're able to use |\.| for the dot accent, you can define |\3| +for the `sharp~s', |\C++| for the \C++ logo,% + \footnote{I will not define any such logos in this class. A + package like \pkg{logos} with lots of name definitions is the + appropriate place for this.} +etc. + +Another detail for ex-plainies: The table of contents is produced by +the |\tableofcontents| tag (during the second \LaTeX{} run), not +automatically. But this is the standard \LaTeX{} behavior. + + + + +\chap Known Problems. +\label{sec:problems} + +There is a bunch of known bugs, problems, and ommisions. + +\bigbreak + +\noindent \textit{Bugs:} + % +\begin{itemize} + +\item The presentation of |@l| redefinitions is not proper. But it +wasn't in Plain \cweb{}, either. + +\end{itemize} + +\noindent \textit{Problems:} + % +\begin{itemize} + +\item You can't use |\index| and |\makeindex| as-is to create an + index. Add your entries instead to \cweave{}'s index using `|@^|', + `|@.|', or `|@:|'. That problem is caused by a clash in the usage of + the filename extension |idx| by \cweave{} and \LaTeX{}. The + \pkg{index} package by \textsc{David Jones} will help you to define + additional index categories (that use an other extension) if you + don't want to mix identifiers and your other index entries. + +\end{itemize} + +\noindent \textit{Ommisions} (``wouldn't it be nice, if''s): + % +\begin{itemize} + +\item The current chunk number and most section titles (below rank 1 + or~2, depending on the base class) are not available as a mark for + inclusion in a running head. + +\item Better integration of \pkg{rcs} package. That package is used to + support including information from the revision management system + RCS into the document. E.g., the revision log at the end of that + document was produced by that package. + +\end{itemize} + + +\sect I would like to thank those who helped me to improve this bundle. +% In particular, XXX provided XXXsubstantial parts of the code. + +\textsc{Michael M\"uller} and \textsc{Zden\v{e}k Wagner} did thorough +checks that helped me to improve the alpha test version. + +\textsc{Christian Kumpf} triggered the addition of language support +and pointed out where configuration could be made easier by supplying +more macros in the protected interface. \textsc{Andreas Scherer} +provided packages for French and Italian \cweb{} documents. + +\textsc{Laurent Desnogues}, +\textsc{Felix G\"artner}, +and +\textsc{John S. Robinson} +provided error and problem reports. +\textsc{Bronne Louis} pointed out the embarrassing error that section +numbers were not reset when a higher-level section began. + + + +\endSubDocument + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newpage + +\begin{rcslog} +$DocLog: cweb-user.tex,v $ +\Revision 2.10 1995/11/20 22:34:16 schrod +Add language support.\\ +Triggered by Christian Kumpf \path|<smurf@igd.fhg.de>| and Andreas +Scherer \path|<scherer@physik.rwth-aachen.de>|. + +Use my `official' (ACM) email address. + +\Revision 2.9 1995/11/20 10:39:34 schrod + Explicate that one must not use |\section| etc., that one cannot +\LaTeX{} the \cweb{} program directly but must run \cweave{} first, +and that the \cls{cweb} class does not provide inclusion of \cweb{} +programs in other \LaTeX{} documents.\\ +Clarification triggered by Laurent Desnogues +\path|<laurent.desnogues@aiguemarine.unice.fr>|. + +\Revision 2.8 1995/09/15 10:22:58 schrod +The \cls{cweb} class needs at least \LaTeX{} version +\mbox{$\langle$1994/12/01$\rangle$}.\\ +Problem reported by John S. Robinson \path|jsrobin@umiacs.umd.edu|. + +\Revision 2.7 1995/09/12 22:58:38 schrod +|cwbb| is also a reserved namespace. + +Added acknowledgements. + +\Revision 2.6 1995/08/29 17:34:14 schrod + \LaTeX{} \cweb{}, version 1.0. + +\Revision 2.5 1995/08/29 02:07:28 schrod +Discard dependencies on 10\,pt fonts. + +Support suppression of format directives. + +\Revision 2.4 1995/08/27 19:31:11 schrod +Suppression of index and reference list is supported. + +Discard documentation on |\cwebSecNoEject|, that's part of the +protected interface. + +\Revision 2.3 1995/08/27 17:24:45 schrod +Make usage of baseclass with chapters work. + +\Revision 2.2 1995/08/27 13:25:59 schrod +Add possibility to suppress change hints. Suppression of unchanged +chunks suppress change hints as well, they are meaningless as all +printed chunks are changed by definition. + +Update problems section, they were partly resolved by the current +changes. Added hint to \pkg{index} package that resolves the problem +of extensions clashes with \MakeIndex{}. + +\Revision 2.1 1995/08/25 19:11:17 schrod +Add keyword-value option style, with new \pkg{keyvald} package. + +Hierarchic strucutures are supported now, in addition to the flat +structure of the beta-test version. One can choose with an option. For +that step, the terminology was cleaned up, too: Chunks are not named +sections any more. (That change involved reimplementation of almost +all the structure and toc stuff.) + +The chunk number supplied by \cweave{} is used now, not some computed +number. Change flags are printed, too. + +One can suppress output of unchanged sections. + +One can select the baseclass with an option. That may be used to use +\cls{report} or \cls{book} to get chapter-style layout. Of course, +using an arbitrary baseclass is dangerous, it must conform to the +conventions of \LaTeX{} standard classes. + +\Revision 1.10 1995/08/08 00:14:28 schrod +Updated to \LaTeXe{}, the |cweb| style is now a document class. Used +my standard templates for that, no changes in functionality. + +\Revision 1.9 1993/08/10 14:15:40 schrod +New page on main section only if group level $<$ |\cwebSecNoEject|. +Default for the latter is 3. + +Document that logos will not be defined in this style file. + +Copy of plain macros for |\CwebNumber| does not work. Repaired the +most important one (subscript must be accessed via |\sb|). +Incompatibility to NFSS will be addressed later.\\ +(Problems reported by Zden\v{e}k Wagner \path|<wagner@csearn.bitnet>|.) + +\Revision 1.8 1993/08/10 11:21:03 schrod +Reference to section number does not render a period after the +number any more. + +\Revision 1.7 1993/08/09 18:05:54 schrod +Mentioned that `\verb"|"' cannot be used for LaTeX purposes, in +particular, not for ruled tables. Described workarounds, one of them +is the new style option |cwebarray|.\\ +(Problem reported by Felix G\"artner +\path|<theedge@rbg.informatik.th-darmstadt.de>|.) + +\Revision 1.6 1993/06/17 16:10:06 schrod +`|cweb|' was still an option in the example. + +\Revision 1.5 1993/06/17 15:09:30 schrod +\cweb{} 3.0 was released officially on June 16, 1993. Mentioned in +the documentation that this version is needed for the |cweb| style. + +\Revision 1.4 1993/06/15 15:19:11 schrod +It's a style now, was an option formerly. + +\Revision 1.3 1993/06/14 15:40:42 schrod +Added section about restrictions (no restricted C mode material +in moving arguments, no single dot-accented term in an index entry). + +\Revision 1.2 1993/05/12 20:23:32 schrod +Adapted to recent changes of \cweave{} (of April 93): Main sections +have a group level, represented in the table of contents. + +Boxed the example, it was not legible formerly. + +\Revision 1.1 1993/04/09 15:00:37 schrod +Initial revision + +\end{rcslog} + + + +\end{document} + +% LocalWords: baseclass DFS PSPACE graphicx changehints changefile reflist idx +% LocalWords: cwebarray cwebmac plainies ommisions if''s rcs cwbb uller Zden |