As mentioned in comments I think that usually in such circumstances the unindented paragraphs are logically section breaks with anonymous untitled sections. So like a titled section they suppress following indentation.
Spacing and font choice could be better and with acknowledgement to Douglas Adams, the except shown in the amazon fragment is I think logically something like this:
\documentclass{book}
\setcounter{secnumdepth}{0}
\begin{document}
\chapter{}
The house stood on a slight rise \ldots
The only person for whom the house was in any way special was Arthur Dent, and \ldots
\ldots bulldozer, found his slippers and stomped off to wash.
\vdots
Fifteen seconds later he was out of the house and lying in front of a big yellow bulldozer that was advancing up his garden path.
\section{}
Mr L. Prosser was, as they say, only human \ldots
He was by no means a great warrior \ldots
\end{document}
Which without any changes to the book layout produces this:
Perhaps a list
environment is all you need?
\documentclass{article}
\newenvironment{hangingpar}[1]
{\begin{list}
{}
{\setlength{\itemindent}{-#1}%%'
\setlength{\leftmargin}{#1}%%'
\setlength{\itemsep}{0pt}%%'
\setlength{\parsep}{\parskip}%%'
\setlength{\topsep}{\parskip}%%'
}
\setlength{\parindent}{-#1}%%
\item[]
}
{\end{list}}
\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\begin{hangingpar}{2em}
\lipsum[1-5]
\end{hangingpar}
\vspace{2ex}
But, \lipsum[6-7]
\end{document}
Alternatively, you could define an environment as follows:
\newenvironment{hangingparII}[1]
{\setlength{\leftskip}{#1}%%
\setlength{\parindent}{#1}%%
}
{\par}
This approach is not quite equivalent to the first. \leftskip
handles the horizontal placement of displayed math differently from how a list
environment handles things as the following MWE illustrates.
\documentclass{article}
\newenvironment{hangingpar}[1]
{\begin{list}
{}
{\setlength{\itemindent}{-#1}%%'
\setlength{\leftmargin}{#1}%%'
\setlength{\itemsep}{0pt}%%'
\setlength{\parsep}{\parskip}%%'
\setlength{\topsep}{\parskip}%%'
}
\setlength{\parindent}{-#1}%%
\item[]
}
{\end{list}}
\newenvironment{hangingparII}[1]
{\setlength{\leftskip}{#1}%%'
\setlength{\parindent}{-#1}%%'
}
{\par}
\usepackage{lipsum}
\pagestyle{empty}
\begin{document}
\begin{hangingpar}{3em}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibu- lum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam dui ligula,
fringilla a, euismod sodales, sollicitudin vel, wisi.
\[
\sin^2(x) + \cos^2(x) = 1
\]
Morbi auctor lorem non justo. Nam lacus libero, pretium at,
lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed
accumsan bibendum, erat ligula aliquet magna, vitae ornare odio
metus a mi. Morbi ac orci et nisl hendrerit mollis.
Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. Cum
sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Aliquam tincidunt urna. Nulla
ullamcorper vestibulum turpis. Pellentesque cursus luctus
mauris.
\end{hangingpar}
\begin{hangingparII}{3em}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibu- lum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida mauris. Nam dui ligula,
fringilla a, euismod sodales, sollicitudin vel, wisi.
\[
\sin^2(x) + \cos^2(x) = 1
\]
Morbi auctor lorem non justo. Nam lacus libero, pretium at,
lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed
accumsan bibendum, erat ligula aliquet magna, vitae ornare odio
metus a mi. Morbi ac orci et nisl hendrerit mollis.
Suspendisse ut massa. Cras nec ante. Pellentesque a nulla. Cum
sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Aliquam tincidunt urna. Nulla
ullamcorper vestibulum turpis. Pellentesque cursus luctus
mauris.
\end{hangingparII}
\end{document}
Best Answer
Others have mentioned enumerations, but perhaps have overlooked the request for material between items. An out-of-the-box solution for this is provided by the
enumitem
package, where there is the possibility of labelling anenumerate
with aseries
name. Following instances can then useenumerate
together withresume
If you would like a dedicated environment
numpar
for this without the need forresume
oritem
then you can use the following code, which produces the same output as above. The idea is to add a toggle to keep track of whether this is the first instance or not and pass eitherseries
orresume
to the list constructor. Additionally, it has been set-up with a dedicated list typenumparmain
, that could be customised further (via standard options inenumitem
) to adjust indentation or label style.