summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/corrects
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/corrects
Initial commit
Diffstat (limited to 'macros/latex209/contrib/corrects')
-rw-r--r--macros/latex209/contrib/corrects/corrects.pdfbin0 -> 57627 bytes
-rw-r--r--macros/latex209/contrib/corrects/corrects.sty45
-rw-r--r--macros/latex209/contrib/corrects/corrects.tex273
3 files changed, 318 insertions, 0 deletions
diff --git a/macros/latex209/contrib/corrects/corrects.pdf b/macros/latex209/contrib/corrects/corrects.pdf
new file mode 100644
index 0000000000..fea2eff2fe
--- /dev/null
+++ b/macros/latex209/contrib/corrects/corrects.pdf
Binary files differ
diff --git a/macros/latex209/contrib/corrects/corrects.sty b/macros/latex209/contrib/corrects/corrects.sty
new file mode 100644
index 0000000000..f734fafc1f
--- /dev/null
+++ b/macros/latex209/contrib/corrects/corrects.sty
@@ -0,0 +1,45 @@
+
+%%% CORRECTS.STY
+\typeout{Corrections style option for LaTeX, (c) Mike Piff, 07/22/92}
+
+\newif\ifcorrections \correctionsfalse
+\newif\ifrealpage \realpagetrue
+\def\correctionsonly{%
+ \correctionstrue \realpagefalse}
+\def\currentstate#1#2#3{%
+ \setcounter{#1}{#2}%
+ \addtocounter{#1}{-1}%
+ \csname #1\endcsname{#3}\mbox{}}%
+\def\startpage#1{\npage{#1}%
+ \resetcounters}
+\def\startpageflushleft#1{\npage{#1}%
+ \noindent\resetcounters}
+\newcommand{\resetcounters}{\ignorespaces}
+\def\npage#1{\clearpage
+ \global\realpagetrue
+ \setcounter{page}{#1}}
+\def\endpageflushright{%
+ {\parfillskip0pt\par\pagebreak}}
+\def\endpage{\pagebreak}
+\def\anotherpageflushleft{%
+ \global\realpagetrue\noindent}
+\def\anotherpage{\global\realpagetrue}
+\def\morefootnotetext#1{\@bsphack{%
+ \def\@makefntext##1{\noindent ##1}%
+ \footnotetext{#1}}\@esphack}
+\let\@@outputpage\@outputpage
+\def\@outputpage{%
+ \ifrealpage\@@outputpage
+ \else\global\@specialpagefalse
+ \let\firstmark\botmark\fi
+ \ifcorrections\global\realpagefalse\fi}
+\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Dr M J Piff %% e-mail:
+%% Department of Pure Mathematics %%
+%% University of Sheffield %% M.Piff@sheffield.ac.uk
+%% Hicks Building %%
+%% Hounsfield Road %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% SHEFFIELD S3 7RH %% Telephone: SHEFFIELD (0742) 768555
+%% England %% Ext. 4431
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex209/contrib/corrects/corrects.tex b/macros/latex209/contrib/corrects/corrects.tex
new file mode 100644
index 0000000000..06eaee0865
--- /dev/null
+++ b/macros/latex209/contrib/corrects/corrects.tex
@@ -0,0 +1,273 @@
+
+\documentstyle{ltugboat}
+\emergencystretch1in
+\title{Correction sheets in \LaTeX}
+\author{Mike Piff}
+\address{Department of Pure Mathematics\\University of Sheffield\\Sheffield
+ S10 2TN\\England}
+\netaddress[\network{Janet}]{pm1mjp@pa.shef.ac.uk}
+\begin{document}
+\maketitle
+\begin{abstract}
+ In this article the author explains how to produce minor correction
+ sheets to a \LaTeX\ book.
+ The sort of corrections handled are those which
+ involve changes to a few words or possibly rewriting a few lines on a page,
+ but not the sort that would cause \TeX\ to reformat the whole book because
+ a page has stretched or shrunk too much. The
+ author has used these macros for corrections to a book in print, but they
+ could equally well make the last stages of proof reading
+ and correction less irksome.
+\end{abstract}
+\section{Introduction}
+Reprinting individual pages of a \LaTeX\ book for correction
+can be quite a tricky task. One can always process the whole book again,
+but chances are that the page breaks will all be different. This can also
+cause
+cross-references and the index to be inaccurate, and so is
+not really suitable unless the whole book is being reset.
+
+The following style option \verb"corrections.sty" makes the job easier.
+It was developed in particular for the author's needs,
+but should be easy to customize.
+
+\section{The style in use}
+It is assumed that a root file is available to produce the book.
+Make a copy of this,
+and insert the correction style option, and also the commands
+\begin{verbatim}
+\correctionsonly
+\renewcommand{\resetcounters}[2]{%
+ \setcounter{Theorem}{#1}%
+ \setcounter{Example}{#2}%
+ \ignorespaces}
+\end{verbatim}
+in the preamble. The former is to tell \LaTeX\ to produce only correction
+sheets, and the latter is customized to the particular counters being
+used in the
+current book---in this case, theorem and example counters.
+We must either make a copy of the \verb"aux" file from the original book,
+or carefully replace
+any \verb"\ref" and \verb"\pageref" commands with
+their expansions in the corrections file. The author's own preference was the
+latter; he changed his root file so that it actually contained the pages to be
+printed, rather than have to \verb"\input" or \verb"\include" copies of each
+chapter file and \verb"aux" file. As a precaution, he also redefined \verb"\ref"
+and \verb"\pageref" so as to give an error message.
+
+Most of the body of the book may now be discarded.
+In its place, we put instructions to print individual pages.
+At least the text of these pages must be retained.
+But this is where the complications begin, since it is possible to be heavily
+nested within several layers of environments at the start of a page, as well
+as being mid-paragraph in section~9 of chapter~4, and about to produce
+Example~4.97 and Theorem~4.25. Moreover, at the end of the page we may be in
+a different paragraph and a different section. The headers on the pages will
+have to reflect the current state, and the page must finish flush right.
+
+None of these problems is of much significance in itself, but the
+combination of all of them means that we have to be pretty careful in giving
+the exact state of the book for each page. Some counters change rapidly from
+page to page, whereas some change more slowly. I have divided them
+accordingly, and provide explicit commands to reset the slow counters, such
+as \verb"chapter" and \verb"section", whilst allowing the individual page
+instruction to reset the quicker moving sort, such as \verb"Theorem" or
+\verb"Example".
+
+The instructions
+\begin{verbatim}
+\currentstate{chapter}{4}%
+ {The theory of relaxors}
+\currentstate{section}{9}%
+ {Covariant relaxors}
+\end{verbatim}
+tell \LaTeX\ that we are firmly in chapter~4, section~9. \LaTeX\ now needs to
+know how many theorems and examples are behind us. We will tell it at the start
+of the next page.
+
+But first we need to inform \LaTeX\ of the current state
+of nesting of environments
+at the top of the next page.
+We can do this either by leaving the immediately
+preceding text in, or by just giving it a clue like this.
+\begin{verbatim}
+\begin{enumerate}
+ \item \mbox{}
+ \item \mbox{}
+ \item
+ \begin{itemize}
+ \item\mbox{}
+ %%This is the text that
+ %%immediately preceded the curr-
+\end{verbatim}
+The paragraph is clearly in full flow, and so we tell \LaTeX\ to start the page
+flush left, where ``left'' means according to the level of indentation of
+environments.
+\begin{verbatim}
+\startpageflushleft{101}{24}{96}%
+ -ent page.
+ Now we are producing page~101.
+ The next theorem will be~25.
+ The next example will be~97.
+\end{verbatim}
+There is also a similar \verb"\startpage" command to produce a normally
+indented paragraph at the top of the page, or to use if the first thing
+on the page is a theorem, say.
+
+This page ends in mid-flow, so we let \LaTeX\ know about this.
+\begin{verbatim}
+ ...it was clearly not too diff-%
+ \endpageflushright.
+\end{verbatim}
+The \verb"\endpage" command has a similar meaning, but allows normal
+paragraph termination in mid-line. Both cause the page to end flush bottom.
+Just use \verb"\clearpage" if this page is at the end of a chapter.
+
+It may happen that a run of two or more pages have mistakes on them. The macros
+in the style option are designed to make that easier to handle. At the start of
+a second, or subsequent, page in mid-paragraph, insert the instruction
+\begin{verbatim}
+\anotherpageflushleft
+\end{verbatim}
+or include the command \verb"\anotherpage" in its text if it does not have to
+start flush left.
+Terminate any such pages in the usual way.
+This saves having to retype the
+current state of the fast moving counters.
+
+The author has found that floating figures are handled correctly, but \TeX\
+has to see the whole page where the figure is defined. Alternatively,
+the figure can be moved to an appropriate place on the page being printed.
+Clearly a large number of held-over insertions could present some problems,
+and the best course of action might then be to move them to the exact place
+where they should appear, with the ``insert here'' option active.
+
+Footnotes on the current page can be handled by using the optional
+parameter to set the correct mark. Footnotes held over wholly from a
+previous page can be inserted with \verb"\footnotetext".
+A split footnote from a previous page is handled by means of the
+\verb"\morefootnotetext" command, which takes the text of the footnote
+as its only parameter.
+
+The final feature of this style option is the fact that {\em only\/} the pages
+specified above get through to the \verb"dvi" file.
+
+\section{The style in detail}
+
+We first of all define two boolean variables. The variable
+\verb"\ifcorrections" is an indicator of
+whether we are producing corrections or not. Its default is false, so the
+style will have no effect unless it is changed to true.
+Variable \verb"\ifrealpage" is used internally to tell \LaTeX\ to
+actually ship out the current page. Its default is true.
+\begin{verbatim}
+\newif\ifcorrections \correctionsfalse
+\newif\ifrealpage \realpagetrue
+\end{verbatim}
+To switch from this default mode, where the style has no effect, we provide
+a command to change the values of these two variables.
+\begin{verbatim}
+\def\correctionsonly{%
+ \correctionstrue \realpagefalse}
+\end{verbatim}
+
+The sectioning counters can be changed by means of the \verb"\currentstate"
+command. We provide some dummy text by means of the
+\verb"\mbox{}" command.
+\begin{verbatim}
+\def\currentstate#1#2#3{%
+ \setcounter{#1}{#2}%
+ \addtocounter{#1}{-1}%
+ \csname #1\endcsname{#3}\mbox{}}%
+\end{verbatim}
+
+To start a page of output, we specify the page number and then call a
+command \verb"\resetcounters", whose default meaning is to do
+nothing but ignore spaces.
+This command should be redefined in the user's
+preamble to take account of any counters that might
+need updating.
+\begin{verbatim}
+\def\startpage#1{\npage{#1}%
+ \resetcounters}
+\def\startpageflushleft#1{\npage{#1}%
+ \noindent\resetcounters}
+\newcommand{\resetcounters}{\ignorespaces}
+\end{verbatim}
+
+Both commands to produce a new page make use of the \verb"\npage" command.
+\begin{verbatim}
+\def\npage#1{\clearpage
+ \global\realpagetrue
+ \setcounter{page}{#1}}
+\end{verbatim}
+
+The end of a page, flush right or not, is produced by the following two
+commands, or if appropriate by a \verb"\clearpage".
+\begin{verbatim}
+\def\endpageflushright{%
+ {\parfillskip0pt\par\pagebreak}}
+\def\endpage{\pagebreak}
+\end{verbatim}
+If the page after this one also needs to be printed, an alternative way
+of producing it is to use one of the following two commands.
+\begin{verbatim}
+\def\anotherpageflushleft{%
+ \global\realpagetrue\noindent}
+\def\anotherpage{\global\realpagetrue}
+\end{verbatim}
+
+A footnote from the previous page, part of which appears at the bottom of
+the current page, can be handled by inserting a left justified
+footnote without a mark in either the text or the footnote itself.
+This command should be invisible in the surrounding text, and so we make
+certain that it does not alter \TeX' space factor.
+\begin{verbatim}
+\def\morefootnotetext#1{\@bsphack{%
+ \def\@makefntext##1{\noindent ##1}%
+ \footnotetext{#1}}\@esphack}
+\end{verbatim}
+
+The only thing that remains is to make sure that any extraneous text, such
+as is created by sectioning commands, is not printed. We first take a copy
+of the \LaTeX\ command that actually ships a page to the \verb"dvi" file.
+\begin{verbatim}
+\let\@@outputpage\@outputpage
+\end{verbatim}
+The command \verb"\@outputpage" is then redefined in terms of its old
+meaning. First, only ``real'' pages are printed, that is, only when
+\verb"\ifrealpage" returns true. Then, if we are only printing correction
+sheets, we immediately switch off printing of pages after this one.
+Only the \verb"\startpage" and \verb"\anotherpage" commands will switch
+printing on again.
+
+Note that we need to ensure that any special page style
+set by \verb"\thispagestyle" on a page that has not been printed
+does not carry over to the following page.
+For instance, a \verb"\chapter" command will generally introduce a
+\verb"plain" page style command into the document.
+
+The command \verb"\@outputpage" should otherwise do everything that its old
+version did, apart from shipping the page out to the \verb"dvi" file.
+\begin{verbatim}
+\def\@outputpage{%
+ \ifrealpage\@@outputpage
+ \else\global\@specialpagefalse
+ \let\firstmark\botmark\fi
+ \ifcorrections\global\realpagefalse\fi}
+\end{verbatim}
+\makesignature
+\end{document}
+
+%%% CORRECTION.STY
+
+\typeout{Corrections style option for LaTeX, (c) Mike Piff, 07/22/92}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Dr M J Piff %% e-mail:
+%% Department of Pure Mathematics %%
+%% University of Sheffield %% M.Piff@sheffield.ac.uk
+%% Hicks Building %%
+%% Hounsfield Road %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% SHEFFIELD S3 7RH %% Telephone: SHEFFIELD (0742) 768555
+%% England %% Ext. 4431
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%