diff options
author | Karl Berry <karl@freefriends.org> | 2014-12-02 00:51:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-12-02 00:51:34 +0000 |
commit | 2d61f61469832711b5c4f930c95962f722e9a88c (patch) | |
tree | a83becc8ef5ae9c39870b6a50837d6c7c901a909 /Master/texmf-dist/tex | |
parent | 9be7603a9d9b17519eaa56496d97cebc8a8749c3 (diff) |
noindentafter (1dec14)
git-svn-id: svn://tug.org/texlive/trunk@35709 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/noindentafter/noindentafter.sty | 90 |
1 files changed, 73 insertions, 17 deletions
diff --git a/Master/texmf-dist/tex/latex/noindentafter/noindentafter.sty b/Master/texmf-dist/tex/latex/noindentafter/noindentafter.sty index ef0131d85c2..2ea6e22b37d 100644 --- a/Master/texmf-dist/tex/latex/noindentafter/noindentafter.sty +++ b/Master/texmf-dist/tex/latex/noindentafter/noindentafter.sty @@ -1,6 +1,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse %%%% % % -% Copyright (c) 2013 - Michiel Helvensteijn - www.mhelvens.net % +% Copyright (c) 2014 - Michiel Helvensteijn - www.mhelvens.net % % % % http://latex-noindentafter.googlecode.com % % % @@ -19,7 +19,7 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi %%%% -% \CheckSum{0} +% \CheckSum{50} % % \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 @@ -47,7 +47,7 @@ % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{noindentafter}[2013/08/02 0.0.1 +\ProvidesPackage{noindentafter}[2014/11/30 0.2.2 prevent paragraph indentation after specific environments or macros] % \end{macrocode} % @@ -63,10 +63,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% We only need |etoolbox|. The definitions below can probably -% be rewritten not to need it, but for me it has not been -% worth the effort. -% % \begin{macrocode} \RequirePackage{etoolbox} % \end{macrocode} @@ -76,10 +72,69 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \subsection{Patches} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% \needspace{5\baselineskip}\begin{macro}{\end} +% +% The package |etoolbox| provides the command +% |\AfterEndEnvironment| which creates a hook executed at a +% very late point inside the |\end| command. However, this +% hook is still located before |\ignorespaces|, which is +% too early to properly suppress the indention after an +% environment. Therefore another hook is now added to |\end| +% using |\patchcmd|. This new hook puts new code at the very +% end. +% +% \begin{macrocode} +\patchcmd\end{% + \if@ignore\@ignorefalse\ignorespaces\fi% +}{% + \if@ignore\@ignorefalse\ignorespaces\fi% + \csuse{@noindent@#1@hook}% +}{}{% + \PackageWarningNoLine{noindentafter}{% + Patching `\string\end' failed!\MessageBreak% + `\string\NoIndentAfter...' commands won't work% + }% +} +% \end{macrocode} +% +%\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \subsection{Macros} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% \needspace{5\baselineskip}\begin{macro}{\@NoIndentAfter} +% +% \noindent This command implements the main principle +% behind this package. It checks whether it is followed by +% a paragraph. If so, the command |\par| is temporarily +% changed using |\everypar|, so that the following paragraph +% is not indented. Immediately afterwards, default paragraph +% behavior is restored with |\@restorepar| (from the \LaTeX{} +% base). +% +% \begin{macrocode} +\newcommand*\@NoIndentAfter{% + \@ifnextchar\par{% + \def\par{% + \everypar{\setbox\z@\lastbox\everypar{}}% + \@restorepar% + }% + }{}% +} +% \end{macrocode} +% +%\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% \needspace{5\baselineskip}\begin{macro}{\NoIndentAfterThis} @@ -88,11 +143,7 @@ % indentation for whatever follows. % % \begin{macrocode} -\newrobustcmd*{\NoIndentAfterThis}{% - \par% - \@afterindentfalse% - \@afterheading% -} +\newrobustcmd*{\NoIndentAfterThis}{\@NoIndentAfter\par\par} % \end{macrocode} % %\end{macro}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -102,12 +153,12 @@ % \needspace{5\baselineskip}\begin{macro}{\NoIndentAfterEnv} %%% \marg{environment}\\ % -% \noindent Append |\NoIndentAfterThis| to the output of -% \meta{environment}. +% \noindent Append |\@NoIndentAfter| to the output of +% \meta{environment} by using the new environment hook. % % \begin{macrocode} -\newrobustcmd*{\NoIndentAfterEnv}[1]{% - \AfterEndEnvironment{#1}{\NoIndentAfterThis}% +\newrobustcmd{\NoIndentAfterEnv}[1]{% + \csdef{@noindent@#1@hook}{\@NoIndentAfter}% } % \end{macrocode} % @@ -123,7 +174,12 @@ % % \begin{macrocode} \newrobustcmd*{\NoIndentAfterCmd}[1]{% - \apptocmd{#1}{\NoIndentAfterThis}{}{}% + \apptocmd{#1}{\NoIndentAfterThis}{}{% + \PackageWarning{noindentafter}{% + Patching `\string#1' failed!\MessageBreak% + `\string\NoIndentAfterCmd' won't work% + }% + }% } % \end{macrocode} % |