% \iffalse meta-comment
%
% Copyright 1993 1994 1995 1996 1997 1998 1999
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX2e system.
% ----------------------------------------
%
% It may be distributed under the terms of the LaTeX Project Public
% License, as described in lppl.txt in the base LaTeX distribution.
% Either version 1.0 or, at your option, any later version.
%
% \fi
%
% \iffalse
%%% From File: ltpar.dtx
%
%<*driver>
% \fi
\ProvidesFile{ltpar.dtx}
[1995/04/29 v1.1c LaTeX Kernel (paragraphs)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltpar.dtx}
\title{\filename}
\date{\filedate}
\author{%
Johannes Braams\and
David Carlisle\and
Alan Jeffrey\and
Leslie Lamport\and
Frank Mittelbach\and
Tobias Oetiker \thanks{Tobi did the documentation update}\and
Chris Rowley\and
Rainer Sch\"opf}
\begin{document}
\maketitle
\DocInput{\filename}
\end{document}
%</driver>
% \fi
%
% \CheckSum{18}
%
% \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 \~}
%
% \changes{v1.1a}{1994/05/16}{(ASAJ) Split from ltinit.dtx.}
% \changes{v1.1b}{1995/04/29}{(TO) Comments clean-up.}
%
% \section{Paragraphs}
%
% This section of the kernel declares the commands used to set
% |\par| and |\everypar| when ever their function needs to be
% changed for a long time.
%
% \StopEventually{}
%
% \subsection{Implementation}
%
%
% There are two situations in which |\par| may be changed:
%
% \begin{itemize}
% \item Long-term changes, in which the new value is to remain in effect
% until the current environment is left. The environments that
% change |\par| in this way are the following:
% \begin{itemize}
% \item All list environments (itemize, quote, etc.)
% \item Environments that turn |\par| into a noop:
% tabbing, array and tabular.
% \end{itemize}
% \item Temporary changes, in which |\par| is restored to its previous
% value the next time it is executed. The following are all such uses.
% \begin{itemize}
% \item |\end| when preceded by |\@endparenv|, which is called by
% |\endtrivlist|
% \item The mechanism for avoiding page breaks and getting the
% spacing right after section heads.
% \end{itemize}
% \end{itemize}
%
% \DescribeMacro{\@setpar}
% To permit the proper interaction of these two situations, long-term
% changes are made by the |\@setpar{|\meta{VAL}|}| command.
% It's function is:
% \begin{quote}
% To set |\par|. It |\def|'s |\par| and |\@par| to \meta{VAL}.
% \end{quote}
%
% \DescribeMacro{\@restorepar}
% Short-term changes are made by the usual |\def\par| commands.
% The original values are restored after a short-term change
% by the |\@restorepar| commands.
%
% \DescribeMacro{\@@par}
% |\@@par| always is defined to be the original \TeX{} |\par|.
%
% \DescribeMacro{\everypar}
% |\everypar| is changed only for the short term. Whenever |\everypar|
% is set non-null, it should restore itself to null when executed.
%
% The following commands change |\everypar| in this way:
% \begin{itemize}
% \item |\item|
% \item |\end| when preceded by |\@endparenv|, which is called by
% |endtrivlist|
% \item |\minipage|
% \end{itemize}
%
% When dealing with |\par| and |\everypar| remember the following two
% warnings:
% \begin{enumerate}
% \item Commands that make short-term changes to |\par| and |\everypar|
% must take account of the possibility that the new commands and the
% ones that do the restoration may be executed inside a group. In
% particular, |\everypar| is executed inside a group whenever a new
% paragraph begins with a left brace. The |\everypar| command
% that restores its definition should be local to the current
% group (in case the command
% is inside a minipage used inside someplace where |\everypar| has
% been redefined). Thus, if |\everypar| is redefined to do an
% |\everypar{}| it could take several executions of |\everypar|
% before the restoration ``holds''. This usually causes no problem.
% However, to prevent the extra executions from doing harm,
% use a global switch to keep anything harmful in the new
% |\everypar| from being done twice.
% \item Commands that change |\everypar| should remember that
% |\everypar| might be supposed to set the following switches false:
% \begin{itemize}
% \item |@nobreak|
% \item |@minipage|
% \end{itemize}
% they should do the setting if necessary.
% \end{enumerate}
% \begin{macrocode}
%<*2ekernel>
\message{par,}
% \end{macrocode}
%
%
% \begin{macro}{\@setpar}
% \begin{macro}{\@par}
% Initiate a long-term change to |\par|.
% \begin{macrocode}
\def\@setpar#1{\def\par{#1}\def\@par{#1}}
% \end{macrocode}
%
% The default definition of |\@par| will ensure that if
% |\@restorepar| defines |\par| to execute |\@par| it will redefine
% itself to the primitive |\@@par| after one iteration.
% \begin{macrocode}
\def\@par{\let\par\@@par\par}
%</2ekernel>
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@restorepar}
% Restore from a short-term change to |\par|.
% \begin{macrocode}
\def\@restorepar{\def\par{\@par}}
% \end{macrocode}
% \end{macro}
%
% \Finale
\endinput
|