summaryrefslogtreecommitdiff
path: root/obsolete/macros/inrstex/inrsdoc/thsubdoc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'obsolete/macros/inrstex/inrsdoc/thsubdoc.tex')
-rw-r--r--obsolete/macros/inrstex/inrsdoc/thsubdoc.tex157
1 files changed, 157 insertions, 0 deletions
diff --git a/obsolete/macros/inrstex/inrsdoc/thsubdoc.tex b/obsolete/macros/inrstex/inrsdoc/thsubdoc.tex
new file mode 100644
index 0000000000..88c2933a46
--- /dev/null
+++ b/obsolete/macros/inrstex/inrsdoc/thsubdoc.tex
@@ -0,0 +1,157 @@
+%-*-tex-*-
+\ifundefined{writestatus} \input status \relax \fi %
+\chcode{subdoc}
+
+\def\cqu{\cquote{Divide et Impera}{Ancient Roman political maxim}
+ \cquote{For example, when the author prepared this manual, he did
+ one chapter at a time,}{The \TeX book, Donald~E.~Knuth}
+}
+
+\chapterhead{subdoc}{\tex ING\cr PARTS\cr of DOCUMENTS}
+\intex\ allows for parts of documents,\footnote{\dagger}{\intex\ calls these
+{\it subdocuments}.}
+either complete sections or chapters
+to be processed individually for initial checking before \tex ing the entier
+document. The individual files can be used {\bf without change} in the final
+processing. In fact it is possible to \tex\ sections, combine them into a
+chapter, and then combine the chapters into a final document. With care, even
+parts of separate documents could be combined.
+
+The system works best with the automatic numbering and creation features of
+\intex\ but these are not required. With care and a little luck, it is
+possible to re \tex\ a section of the ``final'' version without redoing the
+complete document.
+
+It is also possible to increase to automatically save the status of a
+subdocument. This feature is not an integral part of \intex\ but an example
+used for this book is given in Section~\ref{subauto}.
+
+
+\shead{subdoccomlist}{Command List}
+\line{
+\ext|\inputsubdocument|\hss
+\ext|\following|\hss
+\ext|\subdocumentmacros|
+}
+
+\shead{subdocformat}{Subdocument Forms}
+The form required for creating a subdocument and \tex ing it is quite simple.
+It should be of this form:
+\begintt
+\subdocumentmacros{<macro list>}
+<text>
+\done
+\endtt
+The |<macro list>| contains the information needed to \tex\ this part of the
+document by itself. Only {\bf one} |\subdocumentmacros| command is allowed in
+a subdocument. This |<macro list>| is executed when the subdocument is
+processed by itself and {\bf completely} ignored when it is processed as part
+of a larger document. A typical |<macro list>| for a chapter of this book
+was
+\begintt
+\input helphdr
+\following\chnum = 28
+\pagenumber = 88
+\endtt
+This list contained {\bf all} the special macros for the book in the file
+|helphdr.tex|. Since the \tex ing was being done on a chapter basis, the
+|\following\chnum| sets the next chapter
+number, and the |\pagenumber| set the
+pagenumber. If this were the third section in a chapter, then
+|\following\shnum = 3|, might be also included. If any special numbers ought to be
+set, they should be also inserted.
+
+It should be emphasized that these numbers affect the subdocument when it is
+being processed by itself only. The normal \intex\ autonumbering will override
+them when it is being inserted as a subdocument.
+To insert a subdocument in another, use
+\begintt
+\inputsubdocument{<filename>}
+\endtt
+The |\done| in the subdocument will {\bf not} terminate the
+processing. However, a |\bye| or |\end| will.
+
+\shead{subauto}{Automatic Saving of Status of a Subdocument}
+The commands given below were intended to save the status of each chapter. It
+was assumed that a chapter had a |<tag>| and that the status was saved in a
+command that had the same name as that tag. The commands are stored in a file
+called |status.tex|. At the top of each subdocument the following two
+commands are inserted:
+\begintt
+\ifundefined{writestatus} \input status \relax \fi %
+\chcode{subdoc} % subdoc is the <tag> for this chapter
+\endtt
+The first line essentially checks to see if the |status| definitions have
+been inputted. If they have not, they are brought in. The |status.tex|
+defines |\chcode{<tag>}| so it must be input before |\chcode| is called.
+The actual |status| definitions follow. They are probably only understandable
+to \tex\ writers and should be skipped by novices.
+\begingroup\eightpoint
+\begintt
+% Status commands for each chapter.
+% these write out the chapter code, page number, and previous chapter number.
+
+\newwrite\docstatus % gets new output file
+\def\openstatusfile{\immediate\openout\docstatus=\jobname.sta}
+ % this is called in the outer master program
+\def\closestatusfile{\closeout\docstatus}
+\def\writestatus#1{\immediate\write
+ \docstatus{\string\chstatus//#1//\the\chnum//\the\pageno//}}
+ % this writes out the actual string when the page is output
+\def\chstatus//#1//#2//#3//{\expandafter\def\csname#1:\endcsname{\chnum=#2
+ \pagenumber=#3}}
+ % this creates a command with the name #1 and sets values for
+ % the chapter number and page number ... the only status of
+ % interest here.
+\def\getstatus#1{\csname#1:\endcsname}
+ % executes the status with name #1
+\def\chcode#1{\subdocumentmacros{\input helphdr \bookstyle % macros/style
+ \input masth.sta % status file name
+ \autonumberingon % opens local tag file
+ \input masth.tag % master tag file
+ \getstatus{#1}
+ \def\writestatus##1{}%disables writestatus
+ }
+ \writestatus{#1}} % will write status unless disabled
+\endtt
+\endgroup
+Note that this imbeds a |\subdocumentmacros| inside the |\chcode|. The status
+is written unless |\subdocumentmacros| is actually executed.
+
+
+
+\shead{subdocstyle}{Command Forms}
+\beginblockmode
+\ext\@|\inputsubdocument{<file name>}|
+\nbr
+This command inserts the subdocument into the present part of the document.
+It encloses the subdocument in a group so that any changes to variables or
+commands made in that subdocument, unless they are specifically |\global|,
+will {\bf not} affect the rest of the document. It disables the effect of
+|\done|, but not |\bye| or |\end|. It ignores everything that is inside the
+|\subdocumentmacros| command.
+
+\mbr
+\ext\@|\following\...hnum|
+\nbr
+The |\chead| and various |\s..head| commands increment their respective
+number upon entering the command. The |\following| command automatically
+compensates for this. So |\following\chnum = 4| {\bf before} the
+|\chead|, means that the chapter beginning with the next |\chead| will
+be 4
+and not 5. The same command also works for |\shnum|, |\sshnum| and |\ssshnum|.
+
+\mbr
+\ext\@|\subdocumentmacros{<macros for subdocument>}|
+\nbr
+This is the means of introducing information to the subdocument that is
+needed to reasonably process the subdocument,
+but that might create disaster, or \tex\
+overload if read in more than once. A single subdocument may have only {\bf
+one} |\subdocumentmacros| command. Typical information included in this macro
+would be section numbers, chapter numbers, tag files, or citation files. No
+|\outer| command is allowed.
+\endblockmode
+\ejectpage
+
+\done \ No newline at end of file