# How can I set lateral margins to every paragraph, but not other elements?

I would like to obtain narrow paragraphs within wide pages, so that section titles, figures, tables, may all be wide, and paragraphs may all be narrow.

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}

\setlength{\parindent}{0pt} % so we can see better what is happening

\newenvironment{narrowpar}% I’d like every paragraph to follow these rules.
{\begin{list}{}{%
\setlength{\listparindent}{\parindent}%
\setlength{\itemindent}{\parindent}%
\setlength{\leftmargin}{2cm}%
\setlength{\rightmargin}{2cm}%
}\item }%
{\end{list}}

\begin{document}

\section{A section title that ranges across the page}

This is a paragraph (Loret Ipsum So On). And below, an equation that can make use of the whole page width:

$$p v = R T$$

Here is another paragraph.

\begin{narrowpar}
This very text looks exactly the way I would like my paragraphs to look. But unfortunately it forces me to insert code manually before and after every paragraph in the source file.
\end{narrowpar}

\end{document}


Said in a different way, I am trying to control lateral space ("padding left and right" in HTML/CSS speak) for all paragraphs, without using page margins. I would appreciate any help...

-
It might be easier to control the "outdent" of environments like equation, figure and table as well as those of sectional units rather than to control the indentation of all paragraphs. That is, set your page margins to match that of the paragraph style, and then use margin adjustments for everything else. The motivation here is that you typically wrap the non-paragraph content using an environment/macro, so you have a handle on the object, while paragraph text may be less "hookable". –  Werner Sep 1 '12 at 14:41
Thank you for the insight, Werner. Can we construct an answer like this? How can we set about to "enlarge" a {section} and an {equation} element within a narrow page? –  doobadooba Sep 2 '12 at 17:35

You can try to redefine paragraph shape with \parshape command:

\parshape 1 .15\hsize.65\hsize


Argument 1: first line, argument pair: .15\hsize.65\hsize left and right margin. All other lines will be indent as the first line.

It works only for the paragraph where the command is present. So you must include \parshape to redefinition of \par, i.e.:

\def\par{\ifhmode\ownpar\fi\endgraf}
\def\ownpar{\parshape 1 .15\hsize.65\hsize}

-