diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/noindentafter/noindentafter.tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/noindentafter/noindentafter.tex')
-rw-r--r-- | macros/latex/contrib/noindentafter/noindentafter.tex | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/macros/latex/contrib/noindentafter/noindentafter.tex b/macros/latex/contrib/noindentafter/noindentafter.tex new file mode 100644 index 0000000000..6aac2ebe06 --- /dev/null +++ b/macros/latex/contrib/noindentafter/noindentafter.tex @@ -0,0 +1,205 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% Copyright (c) 2014 - Michiel Helvensteijn - www.mhelvens.net % +% % +% http://latex-noindentafter.googlecode.com % +% % +% This work may be distributed and/or modified under the % +% conditions of the LaTeX Project Public License, either % +% version 1.3 of this license or (at your option) any later % +% version. The latest version of this license is in % +% http://www.latex-project.org/lppl.txt % +% and version 1.3 or later is part of all distributions of % +% LaTeX version 2005/12/01 or later. % +% % +% This work has the LPPL maintenance status `maintained'. % +% % +% The Current Maintainer of this work is Michiel Helvensteijn. % +% % +% This work consists of the files noindentafter.tex and noindentafter.sty. % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[a4paper]{noindentafter-packagedoc} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Setup % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NoIndentAfterEnv{latex-example-show} +\NoIndentAfterCmd{\describemacro} + +\moretexcs{% + NoIndentAfterThis,NoIndentAfterEnv,NoIndentAfterCmd +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Global Changes % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\changes{0.0.1}{2013/08/02} + {initial version} +\changes{0.2.0}{2014/11/30} + {new implementation, fixing a spacing issue} +\changes{0.2.2}{2014/11/30} + {fixed version number in the README} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\maketitle + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Some people prefer certain LaTeX environments ---such as |itemize| or +|theorem|--- never to be followed by an indented paragraph. It is of course +possible to manually add the |\noindent| command to each occurrence, but +it's easy to forget to do this. Also, all those |\noindent| commands leave +your \TeX{} code just a little bit more chaotic and more burdensome to read. + +There are a number of solutions floating around, but many of them are not +particularly robust, or only work in specific cases. + +The |noindentafter| package provides a few simple commands which can be used +to patch existing macros and environments. They work as expected in all cases +I've encountered. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Usage} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\noindent\DescribeMacro{\NoIndentAfterThis} +% +This is the most primitive macro offered by the package. It forces a +paragraph break and suppresses indentation for whatever follows: + +\begin{latex-example-show} + Lorem ipsum dolor sit amet, consectetur adipiscing + elit. \NoIndentAfterThis Pellentesque hendrerit volutpat + feugiat. Ut purus leo, pulvinar sit amet vehicula non, + pulvinar eu lacus. Curabitur id mollis ligula. +\end{latex-example-show} + + + +\pagebreak % Hack to make the footnote appear on page 1. + + + +\describemacro{\NoIndentAfterEnv}{\marg{environment}} + +This is probably the command most people will want to use. +The \meta{environment} argument should contain an environment +name. After using this command, any paragraph following such +an environment will remain unindented. + +\begin{latex-example-show} + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + + \begin{itemize} + \item First Item + \item Second Item + \end{itemize} + + Pellentesque hendrerit volutpat feugiat. Ut purus + leo, pulvinar sit amet vehicula non, pulvinar eu + lacus. Curabitur id mollis ligula. + + \NoIndentAfterEnv{itemize} + + Vestibulum id erat venenatis, facilisis enim non, + consectetur felis. Quisque iaculis eu arcu non pretium. + + \begin{itemize} + \item Third Item + \item Fourth Item + \end{itemize} + + Curabitur est elit, posuere pulvinar laoreet sed, varius + id mi. Nam lobortis elit nec mauris condimentum gravida. +\end{latex-example-show} + +You'll probably want to use these commands in the document +preamble but, as you can see, you don't really have to. + +\needspace{10\baselineskip} +Note that using the |\NoIndentAfterEnv| command on your own +environment is not the same as adding |\NoIndentAfterThis| +to the end of it: + +\begin{latex-example-show} + \newenvironment{test}{\itshape}{\NoIndentAfterThis} + + \begin{test} + Lorem ipsum dolor sit amet, consectetur + adipiscing elit. + \end{test} + + Pellentesque hendrerit volutpat feugiat. Ut purus + leo, pulvinar sit amet vehicula non, pulvinar eu + lacus. Curabitur id mollis ligula. +\end{latex-example-show} + +|\NoIndentAfterEnv| works because it bypasses the group +that surrounds every \LaTeX{} environment (and localizes +declarations). + + + +\describemacro{\NoIndentAfterCmd}{\marg{command}} + +Finally, you may also patch command sequences using the +|\NoIndentAfterCmd| command. There may not be many situations +where this is useful, but for me, there is at least one: + +\begin{latex-example-show} + Lorem ipsum dolor sit amet, consectetur adipiscing elit: + + \[ 1 + 1 = 2 \] + + Pellentesque hendrerit volutpat feugiat. Ut purus leo: + + \NoIndentAfterCmd \] + + \[ 2 + 2 = 4 \] + + Vestibulum id erat venenatis, facilisis enim non, + consectetur felis. +\end{latex-example-show} + +Note that braces around the \meta{command} argument are +optional, as always when an argument in \TeX{} consists +of only a single token. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Acknowledgements} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +I had been looking for a solution like this for quite a while. I came up +with a number of hacks that workedin some situations but not in others. +Eventually I asked a question on \url{http://tex.stackexchange.com}: +\begin{itemize} + \item \url{http://tex.stackexchange.com/questions/112404} +\end{itemize} + +I received two excellent answers -- one from cgnieder and one from lockstep. +This package was originally based on the technique proposed by cgnieder, as +it is simpler and more generally applicable. Still, the answer by lockstep +is definitely worth a read. + +Most recently, a better approach was implemented by tudscr to fix the spacing +above headers: +\begin{itemize} + \item \url{https://github.com/mhelvens/latex-noindentafter/pull/1} +\end{itemize} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\end{document} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |