summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/localloc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-10-01 03:04:13 +0000
committerNorbert Preining <norbert@preining.info>2020-10-01 03:04:13 +0000
commitd2a6bb90e56a2836bb59477b8f27248aab9149f5 (patch)
tree5d6be29a531495452688a3c8456355fa58d485f2 /macros/latex/contrib/localloc
parent36f406d8d1fc994af516d837e6a87c68839cdb2d (diff)
CTAN sync 202010010304
Diffstat (limited to 'macros/latex/contrib/localloc')
-rw-r--r--macros/latex/contrib/localloc/localloc.README43
-rw-r--r--macros/latex/contrib/localloc/localloc.dtx1026
-rw-r--r--macros/latex/contrib/localloc/localloc.pdfbin259706 -> 0 bytes
3 files changed, 0 insertions, 1069 deletions
diff --git a/macros/latex/contrib/localloc/localloc.README b/macros/latex/contrib/localloc/localloc.README
deleted file mode 100644
index 395102aeae..0000000000
--- a/macros/latex/contrib/localloc/localloc.README
+++ /dev/null
@@ -1,43 +0,0 @@
-Readme File for the package `localloc' by Bernd Raichle
-Copyright (C) 1991,1994,1995 Bernd Raichle. All rights reserved.
-
- The `localloc' package reimplements plain-TeX's basic allocation
-macros to allow local allocation of registers. It can be used with
- * plain-TeX,
- * LaTeX2e,
- * LaTeX 2.09,
-and all other formats which are based on plain-TeX.
- In the past people complained about the restriction of 256
-registers imposed by TeX and want either more registers or a more
-clever way to maintain this limited resource. This package shows
-and implements a mechanism which doesn't remove this restrictions
-but allows local allocation of registers. Using this mechanism
-you can often replace global register allocations by ones local
-to a group allowing the register to be used for other purposes
-after the group is left.
-
-
-Installation:
--------------
-
-This package contains 2 files, namely
- * localloc.README This README file
- * localloc.dtx The docstrip archive file containing the
- source for the macro file `localloc.sty'
- and the documentation.
-
-To unpack the archive file you need `docstrip.tex' version 2.x or
-newer. You can find this file in the LaTeX2e release; it can be
-used with plain-TeX _and_ LaTeX. Run `localloc.dtx' through
-plainTeX or LaTeX to unpack the archive file:
- tex localloc.dtx
-or
- latex localloc.dtx
-
-
-This package is supported by
-
-Bernd Raichle
-Stettener Str. 73
-D-73732 Esslingen, FRG
-Email: raichle@Informatik.Uni-Stuttgart.DE
diff --git a/macros/latex/contrib/localloc/localloc.dtx b/macros/latex/contrib/localloc/localloc.dtx
deleted file mode 100644
index ad770b5d85..0000000000
--- a/macros/latex/contrib/localloc/localloc.dtx
+++ /dev/null
@@ -1,1026 +0,0 @@
-% \iffalse
-%
-% Package `localloc' to use with LaTeX 2e/2.09 and plain-TeX
-% Copyright (C) 1991,1994,1995 Bernd Raichle. All rights reserved.
-%
-%
-% Copying of this file is authorized only if either
-% (1) you make absolutely no changes to your copy, including name, or
-% (2) if you do make changes, you name it something other than
-% localloc.dtx, localloc.doc, localloc.tex, or localloc.sty.
-% This restriction helps ensure that all styles developed here
-% remain identical.
-%
-% Error reports in case of UNCHANGED versions please to:
-% Bernd Raichle
-% Stettener Str. 73
-% D-73732 Esslingen
-% Federal Republic of Germany
-% Email: raichle@Informatik.Uni-Stuttgart.DE
-%
-%
-% ========== INSTALLATION GUIDE: ==========
-%
-% The complete distribution consists of a set of files, which are
-% packed and documented in _one_ `docstrip archive file' called
-% `localloc.dtx' (the file you are currently reading). This archive
-% file can be unpacked to create the necessary files containing the
-% macros, documentation, etc.
-%
-% To unpack the archive file you need:
-%
-% * `localloc.dtx' (it is the file you are currently reading)
-%
-% * `docstrip.tex' version 2.x or newer
-% (You can find this file in the LaTeX 2e release.)
-%
-% Then run `localloc.dtx' through plainTeX or LaTeX to unpack the
-% archive file:
-%
-% tex localloc.dtx
-% or
-% latex localloc.dtx
-%
-% This will create a set of file which contain the macro code or
-% code to produce the documentation of the `localloc' package.
-%
-% --------------- start of docstrip archive file ------------------
-% \fi
-%
-% \CheckSum{369}
-%
-% \iffalse
-%<*install>
-\def\batchfile{localloc.dtx}
-\input docstrip.tex
-\preamble
-
-This is a file of the `localloc' package reimplementing
-plain-TeX's and LaTeX's basic allocation macros to allow
-local allocation of registers.
-
--- Copyright (C) 1991-1995 Bernd Raichle. All rights reserved --
-
-This package is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
-IMPORTANT NOTICE:
-
-Copying of this file is authorized only if either
-(1) you make absolutely no changes to your copy, including name, or
-(2) if you do make changes, you name it something other than
- localloc.dtx, localloc.doc, localloc.tex, or localloc.sty.
-
-For error reports see original source file `localloc.dtx'.
-
-\endpreamble
-%\generateFile{localloc.ins}{t}{\from{localloc.dtx}{install}}
-\generateFile{localloc.sty}{t}{\from{localloc.dtx}{package}}
-\generateFile{localloc.drv}{t}{\from{localloc.dtx}{driver}}
-\generateFile{localtst.tex}{t}{\from{localloc.dtx}{test}}
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* \space\space localloc.sty}
-\Msg{*}
-\Msg{* To produce the documentation of this archive file run the}
-\Msg{* file `localloc.drv' through LaTeX 2e:}
-\Msg{*}
-\Msg{* \space\space latex localloc.drv}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-\relax\endinput
-%</install>
-% \fi
-%
-% \changes{v1.1b}{95/09/24}{Released after a long sleep in my
-% archives; prefixed some tokens with \cs{lcllc@}.}
-% \changes{v1.1a}{94/10/16}{English documentation; added support for
-% \LaTeXe; added self unpacking archive code.}
-% \changes{v1.0b}{91/09/06}{Error in \cs{newinsert}: consecutive calls
-% return the same insertion register number.}
-% \changes{v1.0a}{91/09/04}{All macros in {plain.tex} replaced.}
-%
-% \DoNotIndex{\fileversion,\filedate,\docdate,\filename}
-% \DoNotIndex{\begingroup,\endgroup,\def,\relax}
-% \DoNotIndex{\ifnum,\ifcase,\else,\fi}
-% \DoNotIndex{\expandafter,\the}
-% \DoNotIndex{\@ne,\m@ne,\next}
-%
-%
-% \newcommand{\PiCTeX}{\protect\pPiCTeX}
-% \newcommand{\pPiCTeX}{\relax
-% P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC\kern-.11em\TeX}
-%
-%
-% \title{An Enhanced Implementation of the Allocation Macros in \LaTeXe,
-% \LaTeX~2.09, and plain-\TeX}
-% \date{\filedate~(\fileversion)}
-% \author{Bernd Raichle\\
-% Stettener Str.~73\\
-% D-73732 Esslingen, FRG\\
-% Email: {\tt raichle@Informatik.Uni-Stuttgart.DE}}
-%
-% \maketitle
-%
-% \begin{abstract}
-% This style option reimplements the allocation command macros
-% provided by plain-\TeX\ and adds macros to allow allocation
-% of local registers inside groups.
-% \end{abstract}
-%
-%^^A \tableofcontents
-%
-% \section{Introduction}
-%
-% \subsection{Restrictions of {\tt plain.tex}'s Register Allocation Macros}
-%
-% In {\tt plain.tex}, Donald E.\ Knuth writes about the macros for
-% register allocation~\cite[lines 149ff]{plain.tex-3.14159}:
-% \begin{quote}
-% When a register is used only temporarily, it need not be
-% allocated; grouping can be used, making the value previously in
-% the register return after the close of the group. The main use
-% of these macros is for registers that are defined by one macro
-% and used by others, possibly at different nesting levels. All
-% such registers should be defined through these macros; otherwise
-% conflicts may occur, especially when two or more more macro
-% packages are being used at once.
-% \end{quote}
-% Additional remarks can be read in the TeXbook~\cite[p.~346]{DEK91}:
-% \begin{quote}
-% {\it Allocation of registers.\/} The second major part of the
-% {\tt plain.tex} file provides a foundation on which systems of
-% independently developed macros can coexist peacefully without
-% interfering in their usage of registers. The idea is that macro
-% writers should abide by the macro conventions following ground
-% rules: [\ldots]
-% (4)~Furthermore, it's possible to use any register in a group, if
-% you ensure that \TeX's grouping mechanism will restore the
-% register when you're done with the group, and if you are certain
-% that other macros will not make global assignments to that
-% register when you need it. \
-% (5)~But when a register is used by several macros, or over long
-% spans of time, it should be allocated by \verb+\newcount+,
-% \verb+\newdimen+, \verb+\newbox+, etc. \ (6)~Similar remarks apply
-% [\ldots]
-% to insertions (which require \verb+\box+, \verb+\count+,
-% \verb+\dimen+, and \verb+\skip+ registers all having the same
-% number).
-% \end{quote}
-%
-% This means, that within plain-\TeX\ and all formats based on
-% plain-\TeX\ a user can not allocate a register for temporary use
-% using the given mechanisms. Nonetheless there is often the need
-% for a allocated register which is only used within a rather small
-% piece of document text and should be set free for reuse in the rest
-% of the formatting run:
-%
-% If a macro~\verb+\macroa+ needs a register which should never be
-% destroyed by another macro~\verb+\macrob+ which is called by
-% \verb+\macroa+, you either have to know about the realisation of
-% \verb+\macrob+ or you have to allocate a new register.
-%
-% The name of this newly allocated register is only known to the
-% macro package in which macro~\verb+\macroa+ resides. If you have
-% a lot of macros which needs registers by their own it is possible
-% that all of the 256~registers of one type will be allocated. In
-% most cases it would be possible to share some of these registers by
-% more than one macro because the register is only needed within (an
-% environment delimited by) a group. To share registers---if they are
-% used only locally---it will be necessary to provide a mechanism to
-% allocate registers locally. Unfortunately {\tt plain.tex} and all
-% derived formats, like \LaTeX, misses this mechanism leading to the
-% problem that some macro packages cannot be combined.
-%
-% In the following example it is necessary to call two macros
-% |\macroa| and |macrob| in the same group (e.g.\ because |\macroa|
-% performs special actions at the begin and |\macrob| at the end of
-% an environment). Further you do not have any knowledge about the
-% use of scratch register in |\macroa|, |\macrob| or the text in the
-% argument specified by the user. Therefore it is impossible to use
-% a scratch register to save the current value of |\hsize|; we have
-% to allocate a new register to save it.
-%\begin{verbatim}
-% \newdimen\savedhsize
-%\end{verbatim}
-%\begin{verbatim}
-% \def\callAandB#1{\begingroup
-% \savedhsize=\hsize
-% \hsize=0.8\hsize \macroa
-% #1\relax
-% \hsize=\savedhsize \macrob
-% \endgroup}
-%\end{verbatim}
-% If there will be a mechanism, e.g. by a macro |\lnewdimen|, to
-% allocate a local register it is possible to use this local register
-% inside the group without worrying about possible dependencies
-% between the macros and the user specified text. Additionally after
-% leaving the group, the dimen register will be free to be used by
-% other macros.
-%\begin{verbatim}
-% \def\callAandB#1{\begingroup
-% \lnewdimen\savedhsize \savedhsize=\hsize
-% \hsize=0.8\hsize \macroa
-% #1\relax
-% \hsize=\savedhsize \macrob
-% \endgroup}
-%\end{verbatim}
-%
-%
-% \subsection{Local Register Allocation Macros}
-%
-% \DescribeMacro{\newcount}
-% \DescribeMacro{\newdimen}
-% \DescribeMacro{\newskip}
-% \DescribeMacro{\newbox}
-% {\let\newinsert=\relax \DescribeMacro{\newinsert}}^^A
-% When using this reimplementation of the allocation macros, the {\tt
-% plain.tex} macros |\newcount|, |\newdimen|, |\newskip|, and
-% |\newbox| will have a changed behaviour in two aspects:
-% \begin{itemize}
-% \item Do not assume that registers which are allocated consecutively
-% have consecutive register numbers. In general you should not
-% make any assumption about the order of register numbers.
-% \item It is possible that a register was locally allocated and used
-% in the past. After leaving the group the register is set to free
-% and the old value---normally zero---is restored. Nonetheless
-% you should not assume that a newly allocated register is
-% initialised with the value zero.
-% \end{itemize}
-%
-% {\let\newmuskip=\relax \DescribeMacro{\newmuskip}}
-% {\let\newtoks=\relax \DescribeMacro{\newtoks}}^^A
-% The behaviour of the macros |\newmuskip| and |\newtoks| are not
-% changed because they are not used for insertions. Nonetheless this
-% can be changed in a future version.
-%
-% \DescribeMacro{\lnewcount}
-% \DescribeMacro{\lnewdimen}
-% \DescribeMacro{\lnewskip}
-% \DescribeMacro{\lnewmuskip}
-% \DescribeMacro{\lnewbox}
-% \DescribeMacro{\lnewtoks}
-% |\lnewcount|, |\lnewdimen|, |\lnewskip|, |\lnewmuskip|, |\lnewbox|,
-% and |\lnewtoks| are the set of new macros to allocate registers
-% within the scope of the current group. At the end of the current
-% group the allocated register is freed.
-%
-% As with their global counterparts you should not assume that the
-% registers are allocated in a consecutive order---neither increasing
-% nor decreasing---or that the allocated register is initialised with
-% zero.
-%
-%
-% \subsection{Usage Examples}
-%
-% \subsubsection{\LaTeX's Picture Environment}
-%
-% \LaTeX's picture environment uses the box register |\@picbox| and
-% the dimen register |\@picht| to save the contents of a picture and
-% the user specified height of this picture at the beginning of the
-% environment. These two registers are set at the beginning and used
-% at the end of the |picture| environment. Because the two registers
-% are used nowhere else, it is possible to share them by only
-% allocating them within the environment.
-%
-% This is the simplified code for the |\begin{picture}| and
-% |\end{picture}| commands; the macros |\begin| and |\end| start and
-% end a new group:
-%\begin{verbatim}
-%\newbox\@picbox
-%\newdimen\@picht
-%\end{verbatim}
-%\begin{verbatim}
-%\def\picture(#1,#2){%
-% \@picht = #2\unitlength % save picture height
-% \setbox\@picbox = \hbox to #1\unitlength\bgroup
-% \ignorespaces}
-%\end{verbatim}
-%\begin{verbatim}
-%\def\endpicture{%
-% \hss
-% \egroup % close picture box
-% \ht\@picbox = \@picht % set box height to save picture height
-% \dp\@picbox = 0pt % set box depth to 0pt
-% \mbox{\box\@picbox}} % output this box
-%\end{verbatim}
-%
-% Using the new local allocation macros the code changes is simple:
-% Move the |\newbox| and |\newdimen| command within the |\picture|
-% macro definition and rename them to |\lnewbox| and |\lnewdimen|:
-%\begin{verbatim}
-% %\newbox\@picbox
-% %\newdimen\@picht
-%\end{verbatim}
-%\begin{verbatim}
-%\def\picture(#1,#2){%
-% \lnewbox\@picbox
-% \lnewdimen\@picht
-% \@picht = #2\unitlength % save picture height
-% \setbox\@picbox = \hbox to #1\unitlength\bgroup
-% \ignorespaces}
-%\end{verbatim}
-%
-% Additionally we can use a property of the usage pattern of these
-% two registers:
-% Within a nested use of the |picture| environment---you can use
-% subpictures within a picture---these registers are allocated for
-% each nesting level. This is not really necessary because the box
-% and the dimen register is always used in a group and is never
-% changed globally.
-% It is possible to add tests to avoid a (local) reallocation of
-% these registers:
-%\begin{verbatim}
-%\let\@picbox=\relax % mark register as not yet allocated
-%\let\@picht =\relax % mark register as not yet allocated
-%\end{verbatim}
-%\begin{verbatim}
-%\def\picture(#1,#2){%
-% \ifx\@picbox\relax \lnewbox\@picbox \fi
-% \ifx\@picht\relax \lnewdimen\@picht \fi
-% \@picht = #2\unitlength % save picture height
-% \setbox\@picbox = \hbox to #1\unitlength\bgroup
-% \ignorespaces}
-%\end{verbatim}
-%
-%
-% \subsubsection{\LaTeX's {\tt\protect\bslash multiput} Macro}
-%
-% Another example of registers which are used only in one rarely
-% used macro, are the count register |\@multicnt| and the two dimen
-% registers |\@xdim| and |\@ydim| for the |\multiput| command. To
-% change it according to the scheme above you have to insert an
-% additional grouping.
-%
-% In \LaTeXe\ these three rarely used registers and some more are
-% shared with the |\bezier| command, whose definition has to be
-% changed accordingly. This shows the need---and advantage---of a
-% better allocation scheme.
-%
-% \subsubsection{\PiCTeX}
-%
-% The macro package \PiCTeX\ uses a lot of dimen registers. A subset
-% of these registers are only used within a picture or within a set
-% of drawing and parameter setting commands.
-%
-% As an example the dimen registers |\totalarclength| is only used in
-% a very restrictic set of commands, i.e., it can be allocated within
-% the scope of the higher level commands or within \PiCTeX's
-% |\beginpicture| \ldots\ |\endpicture| environment.
-%
-%
-% \StopEventually{^^A
-% \begin{thebibliography}{0}
-% \bibitem{DEK91} Donald E.\ Knuth,
-% {\it The \TeX{}book},
-% Addison-Wesley Publ., Reading, Mass., Juni 1991.
-% \bibitem{plain.tex-3.14159} File {\tt plain.tex},
-% version 3.14159,
-% March 1995.
-% \end{thebibliography}
-% }
-%
-%
-%
-% \section{Implementation}
-%
-%
-% \subsection{Prolog, \LaTeXe\ Package Declarations, etc.}
-%
-% The very first thing we do is to ensure that this file is not
-% read in twice. To this end we check whether the macro
-% |\lnewcount| is defined. If so, we just stop reading this file.
-% \begin{macrocode}
-%<+package>\expandafter\ifx\csname lnewcount\endcsname\relax
-%<+package>\else \expandafter\endinput \fi
-% \end{macrocode}
-%
-% For the sake of \LaTeXe\ users declarations for this package are
-% included. The additional group hack is needed to prevent the
-% definition of |\ProvidesPackage| as |\relax| if it is undefined.
-% \begin{macrocode}
-%<+package|test>\begingroup\expandafter\expandafter\expandafter\endgroup
-%<+package|test>\expandafter\ifx\csname ProvidesPackage\endcsname\relax
-%<+package|test>\else
- \NeedsTeXFormat{LaTeX2e}
-%<+package> \ProvidesPackage{localloc}%
-%<+test> \ProvidesFile{localtst.tex}%
-%<*!package&!test>
- \ProvidesFile{localloc.dtx}%
-%</!package&!test>
- [1995/09/24 v1.1b %
- Additional LaTeX Kernel Macros (local allocation)]
-%<+package|test>\fi
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*package>
-% \end{macrocode}
-%
-% To allow the use of this file within a plain-\TeX\ job, we have
-% to change the category code of the `at' character~{\tt @}.
-% \begin{macrocode}
-\expandafter\chardef\csname lcllc@at\endcsname=\catcode`\@
-\catcode`\@=11 % \makeatletter
-% \end{macrocode}
-%
-%
-% \subsection{Accessing the {\tt muskip} registers}
-%
-% Beside the well-known \TeX\ registers, like |\count| or |\box|,
-% there is another set of registers which are used only in few
-% macros. The |\muskip| registers are normally used in math mode
-% only and the coercion of the value in a |\muskip| register to an
-% integer (|\count|), dimension (|\dimen|), or glue (|\glue|)
-% produces an error.
-%
-% The unit of a |\muskip| value is~$1$\,mu---there are $18$\,mu in
-% $1$\,em of the current font in {\em math family~2}. If you
-% assign a value to a |\muskip| register, this value is represented
-% in the unit~mu, not in~pt. The dimension of the |\muskip| value
-% is computed, if this value is used by |\mskip| or |\mkern|.
-%
-% To use a |\muskip| register as a replacement for a |\count|
-% register, it is necessary to do assignments, additions, and other
-% operations in units of~mu. If you want to coerce an
-% integer to a |\muskip| register, you have to get the value with
-% |\the| and add the keyword~|mu| while scanning the number. To get
-% the integer value of a |\muskip| register, you can use the
-% following macro~|\lcllc@cnvmutocnt|.
-%
-% \begin{macro}{\lcllc@cnvmutocnt}
-% The macro |\lcllc@cnvmutocnt| ist called with a |\muskip| register
-% or a value in~|mu| units as its argument. It will expand to the
-% integer value. To get the value of a register, we first expand
-% the value of this register to a list of tokens with \TeX's |\the|
-% primitive.
-% Example: if the register has the value~$3.4$\,mu, the expansion of
-% |\the| produces the tokens $\mbox{\tt 3}_{12} \mbox{\tt .}_{12}
-% \mbox{\tt 4}_{12} \mbox{\tt m}_{12} \mbox{\tt u}_{12}$.
-% \begin{macrocode}
-\def\lcllc@cnvmutocnt#1{\expandafter\lcllc@delmukey\the#1}
-% \end{macrocode}
-%
-% After we have expanded the value of the register, it is necessary
-% to strip of the unit keyword~|mu| and the fraction of the value.
-% To do this, we have to use tokens with {\em category code}~12 to
-% match the expansion string produced by~|\the|.
-% \begin{macrocode}
-\begingroup \catcode`\M=12 \catcode`\U=12 \catcode`\.=12
- \lowercase{\endgroup
-\def\lcllc@delmukey#1.#2MU{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{Allocation registers}
-%
-% \subsubsection{Registers defined in {\tt plain.tex}}
-%
-% Plain-\TeX's allocation macros use a fixed set of |count|
-% registers containing a set of numbers with the highest allocated
-% register number. To make the following macro code more readable,
-% alias names for these |count| registers are defined.
-% \begin{macrocode}
-\countdef\count@ptr = 10
-\countdef\dimen@ptr = 11
-\countdef\skip@ptr = 12
-\countdef\muskip@ptr = 13
-\countdef\box@ptr = 14
-\countdef\toks@ptr = 15
-\countdef\read@ptr = 16
-\countdef\write@ptr = 17
-\countdef\mathfam@ptr = 18
-% \end{macrocode}
-% {\tt plain.tex} for \TeX~3 introduces a new allocation command
-% needing an additional allocation count register. To simplify the
-% code of this package with older versions of {\tt plain.tex}, a
-% dummy count register is allocated and used.
-% \begin{macrocode}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname newlanguage\endcsname\relax
- \csname newcount\endcsname\language@ptr
-\else
- \countdef\language@ptr = 19
-\fi
-% \end{macrocode}
-%
-% The allocation command for insertion uses another register, which
-% is already aliased as |\insc@unt|.
-%\begin{verbatim}
-%\countdef\insc@unt = 20 % = 19 in older versions of `plain.tex'
-%\end{verbatim}
-%
-%
-% \subsubsection{Additional Registers}
-%
-% For the new local allocation macros additional registers are
-% needed containing the boundaries for all types of locally
-% allocated registers. Whereas all globally allocated registers
-% are located in the lower region of the register numbers (with the
-% exception of the set of registers needed for an insertion),
-% locally allocated registers are taken from the higher region of
-% the register numbers---from top towards the bottom.
-%
-% To avoid using six additional count registers we use |\muskip|
-% registers to save the current lower boundary of the allocatable
-% register region. These boundaries are initialised either
-% with~$256$ or the actual boundary of the insertion allocation
-% register.
-% \begin{macrocode}
-\newmuskip\count@limit \count@limit = \the\insc@unt mu
-\newmuskip\dimen@limit \dimen@limit = \the\insc@unt mu
-\newmuskip\skip@limit \skip@limit = \the\insc@unt mu
-\newmuskip\box@limit \box@limit = \the\insc@unt mu
-\newmuskip\muskip@limit \muskip@limit = 256mu
-\newmuskip\toks@limit \toks@limit = 256mu
-% \end{macrocode}
-%
-% To simplify the code of the following allocation macros and to
-% save macro space, two additional |\muskip| registers are
-% allocated and initialised with the constants $16$ and~$256$.
-% \begin{macrocode}
-\newmuskip\cclvi@mu \cclvi@mu = 256mu
-\newmuskip\xvi@mu \xvi@mu = 16mu
-% \end{macrocode}
-%
-%
-% \subsection{Allocation Macros for the ``End User''}
-%
-% \subsubsection{Global Allocation Macros}
-%
-% \begin{macro}{\newcount} \begin{macro}{\newdimen}
-% \begin{macro}{\newskip} \begin{macro}{\newmuskip}
-% \begin{macro}{\newbox} \begin{macro}{\newtoks}
-% \begin{macro}{\newread} \begin{macro}{\newwrite}
-% \begin{macro}{\newfam} \begin{macro}{\newlanguage}
-% We have to replace the original macros in {\tt plain.tex} by new
-% ones to allow locally allocated registers. Otherwise it will be
-% possible that the two regions, the lower one with globally
-% allocated registers and the higher one with locally allocated
-% registers, will overlap resulting in a double use of the same
-% register.
-%
-% With the new macros it will be unnecessary to un-outer the {\tt
-% plain.tex} macros, because the local allocation macros have to be
-% non outer. Nonetheless we want to use this package in
-% conjunction with \LaTeX\ and therefore we have to define some of
-% them as non outer.
-%
-% The top level macros use the low level macro |\alloc@| which has
-% the following parameters:
-% The boundaries of the lower and the higher region, the type of
-% the allocated register, a flag if we have to check on overlapping
-% with insertion registers, the \TeX\ primitive to be used to
-% define this register, and the user given control sequence.
-% \begin{macrocode}
-%\outer
-\def\newcount {\alloc@\count@ptr \count@limit \count 1\countdef }
-%\outer
-\def\newdimen {\alloc@\dimen@ptr \dimen@limit \dimen 1\dimendef }
-%\outer
-\def\newskip {\alloc@\skip@ptr \skip@limit \skip 1\skipdef }
-% \outer
-\def\newmuskip {\alloc@\muskip@ptr \muskip@limit\muskip 0\muskipdef}
-%\outer
-\def\newbox {\alloc@\box@ptr \box@limit \box 1\chardef }
-% \outer
-\def\newtoks {\alloc@\toks@ptr \toks@limit \toks 0\toksdef }
-% \outer
-\def\newread {\alloc@\read@ptr \xvi@mu \read 0\chardef }
-%\outer
-\def\newwrite {\alloc@\write@ptr \xvi@mu \write 0\chardef }
-%\outer
-\def\newfam {\alloc@\mathfam@ptr\xvi@mu \fam 0\chardef }
-% \outer
-\def\newlanguage{\alloc@\lang@ptr \cclvi@mu \language0\chardef }
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
-%
-% |\newinsert| needs additional code because this macro has to
-% allocate a set of |\box|, |\count|, |\dimen|, and |\skip|
-% registers with the restriction that all registers have to have
-% the same number. |\newinsert| is redefined at the end of this
-% file.
-%
-%
-% \subsubsection{Local Allocation Macros}
-%
-%
-% \begin{macro}{\lnewcount} \begin{macro}{\lnewdimen}
-% \begin{macro}{\lnewskip} \begin{macro}{\lnewmuskip}
-% \begin{macro}{\lnewbox} \begin{macro}{\lnewtoks}
-% There is an equivalent set of macros to allocate registers
-% locally. Instead of using the low level macro |\alloc@| it uses
-% the macro |\lalloc@| with the same set of parameters.
-% \begin{macrocode}
-\def\lnewcount {\lalloc@\count@ptr \count@limit \count 1\countdef }
-\def\lnewdimen {\lalloc@\dimen@ptr \dimen@limit \dimen 1\dimendef }
-\def\lnewskip {\lalloc@\skip@ptr \skip@limit \skip 1\skipdef }
-\def\lnewmuskip{\lalloc@\muskip@ptr\muskip@limit\muskip 0\muskipdef}
-\def\lnewbox {\lalloc@\box@ptr \box@limit \box 1\chardef }
-\def\lnewtoks {\lalloc@\toks@ptr \toks@limit \toks 0\toksdef }
-% \end{macrocode}
-% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
-%
-% Local allocation macros for |\read|, |\write| streams, math
-% |\fam|, |language| numbers, or insertions are possible but not
-% very useful because of the global nature of these resources.
-%
-%
-% \subsection{Low Level Allocation Macros}
-%
-% The allocation scheme used by the macros in {\tt plain.tex} is
-% simple:
-% \begin{itemize}
-% \item all allocations are global,
-% \item register, math family, language, input/output stream
-% numbers are allocated using the lowest possible number, i.e.,
-% it is done from lower number to higher numbers,
-% \item the set of insertion registers (|box|, |count|, |skip|, and
-% |dimen|), which have to have the same register number, are
-% allocated beginning from~$255$ to lower numbers.
-% \end{itemize}
-%
-% Contrary to this simple scheme this package uses numbers for
-% locally allocated registers from top to bottom interfering with
-% the original insertion register allocation scheme {\it and\/} the
-% simple test for a register number overflow.
-%
-% \begin{macro}{\lcllc@insnums}
-% Insertion registers are now allocated in a non-monotonous order
-% using the lowest possible number (because the allocation of the
-% needed set of registers is done in a global way). To allow the
-% checking of overlapping of globally or locally allocated
-% registers with the registers used for insertions, the insertion
-% register numbers are saved as a list in |\lcllc@insnums|.
-% Each entry in this list is saved as \mbox{\tt\string\do$\langle
-% n\rangle$.}; the list is initialised as empty.
-% \begin{macrocode}
-\def\lcllc@insnums{}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\lcllc@checkins}
-% Whenever a new |box|, |count|, |skip|, or |dimen| register is
-% allocated it has to be checked first, if the next possible
-% free register is already allocated for an insertion.
-%
-% To detect a collision between a possibly free register number and
-% the set of insertion registers, the macro |\lcllc@checkins| is
-% called with the register number to be tested in
-% |\allocationnumber|. The argument of this macro has to be either
-% $1$ or~$-1$ and is used to get the next register number to be
-% tested against the insertion number list if an additional
-% iteration is needed. The result is a register number in
-% |\allocationnumber| which is not used for an insertion. (Note:
-% Nonetheless it can be an out-of-region register number of an
-% already used register!)
-% \begin{macrocode}
-\def\lcllc@checkins#1{%
- \begingroup
-% \end{macrocode}
-% After opening a new group, the macro |\do| is defined to read the
-% next insertion number delimited by a simple dot. It then tests
-% this number against the current |\allocationnumber| and if the
-% register numbers are equal, |\allocationnumber| is advanced by the
-% given argument (which is $1$ or~$-1$).
-%
-% To avoid a global change of |\allocationnumber|, a group hack
-% with expansion is used: If the list |\lcllc@insnums| is expanded
-% with this definition of |\do|, the result is empty if the
-% register number is not used for an insertion. Otherwise it
-% expands to the |\advance| command followed by an additional
-% |lcllc@checkins| (which has to be protected by |\noexpand|) to
-% start another iteration with the changed |\allocationnumber|.
-% \begin{macrocode}
- \def\do##1.{%
- \ifnum##1=\allocationnumber
- \advance\allocationnumber#1\relax
- \noexpand\lcllc@checkins{#1}%
- \fi}%
-% \end{macrocode}
-% The following expanded definition text of |\x| contains code to
-% close the group and the expansion of |\lcllc@insnums|, which is
-% either empty or contains the change of |\allocationnumber| and an
-% iterative call of |\lcllc@checkins|. After the definition is
-% completed, the code is executed which closes the group.
-% \begin{macrocode}
- \edef\x{\endgroup \lcllc@insnums}%
- \x}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\alloc@}
-% |\alloc@| is the low level macro for global allocation, which is
-% called with six arguments. The macro itself only uses the first
-% four argument: The two boundaries, the item type to be allocated,
-% and a flag if this item is propably used for an insertion. The
-% remaining two arguments, the \TeX\ primitive and the control
-% sequence to assign the allocated number is used by
-% |\lcllc@def|.
-% \begin{macrocode}
-\def\alloc@#1#2#3#4{%
-% \end{macrocode}
-% In the first step we assign the boundary of the lower region for
-% this item type to |\allocationnumber| and increment it by one.
-% \begin{macrocode}
- \allocationnumber#1%
- \advance\allocationnumber\@ne
-% \end{macrocode}
-% If this item type is used by insertion, we have to check for
-% collision with the |\lcllc@checkins| macro. After the execution of
-% this macro, |\allocationnumber| contains the next free number to
-% be used for allocation. This number is assigned globally to the
-% register containing the boundary.
-% \begin{macrocode}
- \ifnum#4=\@ne \lcllc@checkins\@ne \fi
- \global#1\allocationnumber
-% \end{macrocode}
-% We now have found an unused register. Nonetheless it is possible
-% that the register number is either not in the range of existing
-% register number or it is used for a locally allocated register.
-% |\ch@ck| is used to test these things.
-% \begin{macrocode}
- \ch@ck#1#2#3%
-% \end{macrocode}
-% At the end the \meta{control sequence} is defined using the
-% found |\allocationnumber|.
-% \begin{macrocode}
- \lcllc@def\global{}#3}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\lalloc@}
-% |\lalloc@| is the low level macro for local allocation. The
-% definition of this macro a copy of |\alloc@| with some small
-% changes.
-% \begin{macrocode}
-\def\lalloc@#1#2#3#4{%
-% \end{macrocode}
-% In the first step we assign the boundary of the {\it higher\/}
-% region and {\it decrement\/} it by one. Because the higher
-% boundary is saved in a |\muskip| register, we have to use
-% |\lcllc@cnvmutocnt| to get the boundary value.
-% \begin{macrocode}
- \allocationnumber\lcllc@cnvmutocnt#2%
- \advance\allocationnumber\m@ne
-% \end{macrocode}
-% The check for insertion number collisions is called with~$-1$ to
-% decrement the register number to get the next free register
-% number. The |\allocationnumber| is then assigned {\it locally\/}
-% to the |\muskip| register containing the boundary.
-% \begin{macrocode}
- \ifnum#4=\@ne \lcllc@checkins\m@ne \fi
- #2\the\allocationnumber mu %
-% \end{macrocode}
-% The check for an already used globally allocated register or a
-% range underflow is needed, too.
-% \begin{macrocode}
- \ch@ck#1#2#3%
-% \end{macrocode}
-% At the end the \meta{control sequence} is defined using the
-% found |\allocationnumber|.
-% \begin{macrocode}
- \lcllc@def\relax{(local)}#3}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\ch@ck}
-% The test macro |\ch@ck| for a collision of the globally and
-% locally allocated registers from {\tt plain.tex} has to be
-% changed because the higher boundary is given as a |\muskip| value
-% instead of a normal integer.
-% \begin{macrocode}
-\def\ch@ck#1#2#3{%
- \ifnum#1<\lcllc@cnvmutocnt#2\relax \else
- \errmessage{No room for a new #3}%
- % \allocationnumber\m@ne
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\lcllc@def}
-% |\lcllc@def| is used to assign the found |\allocationnumber|
-% to the \meta{control sequence} using the \TeX\ primitive.
-% Additionally an entry is written to the {\tt log} file.
-% \begin{macrocode}
-\def\lcllc@def#1#2#3#4#5{%
- #1#4#5=\allocationnumber
- \wlog{\string#5#2=\string#3\the\allocationnumber}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsubsection{Low Level Insertion Allocation Macros}
-%
-% Insertions need a set of registers with the same register number.
-% To find a new register number when allocating an insertion, we
-% have to get the maximum of all boundaries used for an insertion.
-%
-% \begin{macro}{\lcllc@getmax}
-% |\lcllc@getmax| is used to assign |\allocationnumber| to the
-% maximum of |\allocationnumber| and its argument.
-% \begin{macrocode}
-\def\lcllc@getmax#1{%
- \ifnum#1<\allocationnumber \else
- \allocationnumber#1\advance\allocationnumber\@ne
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\newinsert}
-% |\newinsert| globally allocates a set of registers used for an
-% insertion.
-% \begin{macrocode}
-\outer\def\newinsert{%
-% \end{macrocode}
-% First we have to find the maximum of all globally allocated
-% register number used for an insertion. We start
-% by setting |\allocationnumber| to~$-1$\,\ldots
-% \begin{macrocode}
- \allocationnumber\m@ne
-% \end{macrocode}
-% \ldots\,and get the maxmimum of the boundaries for |count|,
-% |dimen|, |skip|, and |box| registers.
-% \begin{macrocode}
- \lcllc@getmax\count@ptr \lcllc@getmax\dimen@ptr
- \lcllc@getmax\skip@ptr \lcllc@getmax\box@ptr
-% \end{macrocode}
-% Then we have to check if this |\allocationnumber| is already used
-% for another insertion.
-% \changes{v1.0b}{91/09/06}{\cs{lcllc@checkins} inserted}
-% \begin{macrocode}
- \lcllc@checkins\@ne
-% \end{macrocode}
-% At last we have to check if this |\allocationnumber| is used for
-% one of the locally allocated registers.
-% \begin{macrocode}
- \ch@ck\allocationnumber\count@limit\count
- \ch@ck\allocationnumber\dimen@limit\dimen
- \ch@ck\allocationnumber\skip@limit\skip
- \ch@ck\allocationnumber\box@limit\box
-% \end{macrocode}
-% The found register number for insertions is then (globally)
-% inserted into the list of insertion numbers.
-% \begin{macrocode}
- \begingroup
- \let\do\relax
- \xdef\lcllc@insnums{\do\the\allocationnumber.\lcllc@insnums}%
- \endgroup
-% \end{macrocode}
-% At the end the \meta{control sequence} is defined using the
-% found |\allocationnumber|.
-% \begin{macrocode}
- \lcllc@def\global{}\insert\chardef}
-% \end{macrocode}
-% \end{macro}
-%
-% The register |\insc@unt| which is used to contain the boundary
-% number for insertion registers in the original {\tt plain.tex}
-% macro is not used anymore.
-%
-%
-% Finally, the category code of the `at' character~{\tt @} is reset
-% to its original value.
-% \begin{macrocode}
-\catcode`\@=\lcllc@at
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</package>
-% \end{macrocode}
-%
-%
-% \iffalse
-%<*driver>
-\NeedsTeXFormat{LaTeX2e}
-\documentclass[a4paper]{ltxdoc}
-\GetFileInfo{localloc.dtx}
-\begin{document}
- \DocInput{\filename}
-\end{document}
-%</driver>
-% \fi
-%
-% \iffalse
-%
-% \section{Test File}
-%
-% A first version of a test file which can be used for plain-TeX,
-% \LaTeX~2.09, and \LaTeXe. The result shows the allocated register
-% numbers. You should notice that the insertions and global box
-% registers are not contiguously allocated but interfere. Further
-% from one to the next line there is a new global register number
-% greater than the former one. Whereas the local register numbers
-% are set to zero when leaving a group and they are recycled in the
-% next lines.
-%
-% \begin{macrocode}
-%<*test>
-% This test file can be used with plain-TeX & LaTeX 2.09/2e.
-%
-\edef\FORMAT{%
- \expandafter\ifx\csname documentstyle\endcsname\relax 0%
- \else\expandafter\ifx\csname documentclass\endcsname\relax
- 1\else 2\fi\fi}
-\immediate\write16{=====>>> You are using %
- \ifcase\FORMAT plainTeX\or LaTeX 2.09\or LaTeX 2e\else ??\fi}
-\ifcase\FORMAT
- \input localloc.sty\relax \or
- \documentstyle[localloc]{article}\begin{document}\or
- \documentclass{article}\usepackage{localloc}\begin{document}\fi
-\tracingstats=1
-% some macros
-\def\Message#1{\immediate\write16{#1}}
-\def\RegVal#1{\the\csname test#1\endcsname}
-\def\ShowSet#1{\if l#1local\else global\fi:
- \RegVal{i#1} \RegVal{ii#1}/\RegVal{iii#1}
- \RegVal{iv#1}}
-\def\ShowAll#1{\Message{#1 -- \ShowSet{g} -- \ShowSet{l}}}
-\def\ShowIns{\Message{Insertions:
- \the\testinsi, \the\testinsii, \the\testinsiii}}
-% initialise
-\chardef\testig=0 \chardef\testil=0
-\chardef\testiig=0 \chardef\testiil=0
-\chardef\testiiig=0 \chardef\testiiil=0
-\chardef\testivg=0 \chardef\testivl=0
-\chardef\testinsii=0 \chardef\testinsiii=0
-% allocate an insertion/set of registers
-\newinsert\testinsi
-% make sure that a collision boxes/insertions occurs
-{\count0=\testinsi \advance\count0 -2
- \loop\csname newbox\endcsname\testig
- \ifnum\testig<\count0\repeat}
-%
-\newbox\testig \lnewbox\testil
-\ShowAll{Level 0}
-\begingroup
- \lnewbox\testiil \newbox\testiig
- \ShowAll{Level 1}
- \begingroup
- \newbox\testivg \lnewbox\testivl
- \ShowAll{Level 2}\ShowIns
- \endgroup
- \lnewbox\testiiil \newbox\testiiig
- \ShowAll{Level 1b}
- \csname newinsert\endcsname\testinsii
- \ShowIns
- \begingroup
- \newbox\testivg \lnewbox\testivl
- \ShowAll{Level 2}
- \endgroup
- \ShowAll{Level 1b}
-\endgroup
-\newinsert\testinsiii
-\ShowAll{Level 0}\ShowIns
-\begingroup
- \lnewbox\testiil \newbox\testiig
- \lnewbox\testiiil \newbox\testiiig
- \ShowAll{Level 1}
- \begingroup
- \newbox\testivg \lnewbox\testivl
- \newbox\testvg \lnewbox\testvl
- \ShowAll{Level 2}\ShowIns
- \endgroup
- \ShowAll{Level 1}
-\endgroup
-\ShowAll{Level 0}
-\end{document}
-%</test>
-% \end{macrocode}
-%
-% \fi
-%
-% \Finale
-%
-%% \CharacterTable
-%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-%
-\endinput
diff --git a/macros/latex/contrib/localloc/localloc.pdf b/macros/latex/contrib/localloc/localloc.pdf
deleted file mode 100644
index 3a25e8fd45..0000000000
--- a/macros/latex/contrib/localloc/localloc.pdf
+++ /dev/null
Binary files differ