Como posso definir margens laterais para cada parágrafo, mas não para outros elementos?

Como posso definir margens laterais para cada parágrafo, mas não para outros elementos?

Eu gostaria de obter parágrafos estreitos em páginas largas, de modo que os títulos das seções, figuras, tabelas possam ser todos largos e os parágrafos possam ser todos estreitos.

\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:

\begin{equation}
p v = R T
\end{equation}

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}

o que desejo obter

Dito de outra forma, estou tentando controlar o espaço lateral ("preenchimento para a esquerda e para a direita" na linguagem HTML/CSS) para todos os parágrafos, sem usar as margens da página. Eu apreciaria qualquer ajuda...

Responder1

Você pode tentar redefinir a forma do parágrafo com \parshapeo comando:

\parshape 1 .15\hsize.65\hsize

Argumento 1: primeira linha, par de argumentos: .15\hsize.65\hsizemargens esquerda e direita. Todas as outras linhas serão recuadas como a primeira linha.

Funciona apenas para o parágrafo onde o comando está presente. Então você deve incluir \parshapea redefinição de \par, ou seja:

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

informação relacionada