% \iffalse meta-comment % % Copyright 1994 the LaTeX3 project and the individual authors. % All rights reserved. For further copyright information see the file % legal.txt, and any other copyright indicated in this file. % % This file is part of the LaTeX2e system. % ---------------------------------------- % % This system 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: % % For error reports in case of UNCHANGED versions see bugs.txt. % % Please do not request updates from us directly. Distribution is % done through Mail-Servers and TeX organizations. % % You are not allowed to change this file. % % You are allowed to distribute this file under the condition that % it is distributed together with all files mentioned in manifest.txt. % % If you receive only some of these files from someone, complain! % % You are NOT ALLOWED to distribute this file alone. You are NOT % ALLOWED to take money for the distribution or use of either this % file or a changed version, except for a nominal charge for copying % etc. % \fi % % \iffalse %%% File: ltpar.dtx %<*driver> % \fi \ProvidesFile{ltpar.dtx} [1994/05/16 v1.1a 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 Chris Rowley\and Rainer Sch\"opf} \begin{document} \maketitle \DocInput{\filename} \end{document} % % \fi % % \CheckSum{18} % % \changes{v1.1a}{1994/05/16}{(ASAJ) Split from ltinit.dtx.} % % \section{Paragraphs} % % This section deals with |\par| and |\everypar| % % \StopEventually{} % % \begin{oldcomments} % % \begin{macrocode} %<*2ekernel> \message{par,} % \end{macrocode} % **************************************** % * \par AND \everypar * % **************************************** % % There are two situations in which \par may be changed: % % - 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: % % * All list environments (itemize, quote, etc.) % * Environments that turn \par into a noop: % tabbing, array and tabular. % % - Temporary changes, in which \par is restored to its previous value % the next time it is executed. The following are all such uses. % * \end [when preceded by \@endparenv, which is called by % \endtrivlist] % * The mechanism for avoiding page breaks and getting the % spacing right after section heads. % % To permit the proper interaction of these two situations, long-term % changes are made by the following command: % \@setpar{VAL} : To set \par. It \def's \par and \@par to VAL. % 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. % % NOTE: \@@par always is defined to be the original TeX \par. % % \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: % * \item % * \end [when preceded by \@endparenv, which is called by % \endtrivlist] % * \minipage % % WARNING: 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. % % WARNING: Commands that change \everypar should remember that \everypar % might be supposed to set the following switches false: % @nobreak % @minipage % they should do the setting if necessary. % % \begin{macrocode} \def\@par{\let\par\@@par\par} % \end{macrocode} % % \begin{macrocode} \def\@setpar#1{\def\par{#1}\def\@par{#1}} \def\@restorepar{\def\par{\@par}} % % \end{macrocode} % % \end{oldcomments} % % \Finale \endinput