[Tex/LaTex] How to get all paragraphs in a block to have a hanging indent

indentationparagraphs

I have a manual bibliography (i.e. not bibtex) that I'd like to indent with hanging indent (only second, third, etc, lines). Ideally, I'd like not to have to do this with a command on each line, but for the whole block, like \begin{hangingindent} and \end{hangingindent}. How do you do that?

Best Answer

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}

enter image description here

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}

enter image description here