Como formatar um conjunto de parágrafos com legendas à esquerda da primeira linha

Como formatar um conjunto de parágrafos com legendas à esquerda da primeira linha

Estou tentando escrever um documento com uma lista de parágrafos que possuem uma legenda introdutória exibida à esquerda da primeira linha de cada parágrafo, de forma que as legendas apareçam na coluna da esquerda e os parágrafos na coluna da direita. Tudo isso aparece em um artigo padrão de uma coluna.

O que eu descobri é usar uma mesa. Eu tenho:

\begin{tabularx}{\linewidth}{l X}
First row caption & \lipsum[1]\\
Second row caption & \lipsum[2]\\
Third row caption & \lipsum[3]\\
Fourth row caption & \lipsum[4]
\end{tabularx}

Se o texto lipsumdesse exemplo for substituído por texto de parágrafo real, ele se tornará bastante complicado devido ao fato de estar tudo incorporado e à necessidade de continuações de linha, tudo é bastante confuso. O que eu gostaria é algo assim:

\begin{captioned-text}{First row caption}
\lipsum[1]}
\end{captioned-text}
\begin{captioned-text}{Second row caption}
\lipsum[2]}
\end{captioned-text}
\begin{captioned-text}{Third row caption}
\lipsum[3]}
\end{captioned-text}
\begin{captioned-text}{Fourth row caption}
\lipsum[4]}
\end{captioned-text}

Com texto real no lugar (potencialmente vários parágrafos de texto real), isso seria mais legível.

Espero que exista algum pacote por aí que já faça esse tipo de coisa e simplesmente não o encontrei. Existe uma maneira melhor de conseguir isso do que usando uma tabela?

Responder1

Bem, graças a Piotr Wydrych, descobri mdwliste ele faz exatamente o que quero:

\usepackage{mdwlist}
\begin{basedescript}{\desclabelwidth{4cm}}
    \item[First caption] \lipsum[1]
    \lipsum[2]
    \item[Second caption] \lipsum[3]
    \item[Third caption] \lipsum[4]
 \end{basedescript}

Responder2

Geralmente, as tabelas devem ser usadas para comparar uma série de fatos, e não para compor listas de parágrafos. Você já olhou para o descriptionmeio ambiente? Funciona bem com mais de um parágrafo por legenda.

\begin{description}
\item[First caption] \lipsum[1]

\lipsum[2]

\item[Second caption] \lipsum[3]
\item[Third caption] \lipsum[4]
\end{description}

Responder3

O seguinte não é perfeito (espaçamento entre captioned-textblocos, largura fixa da coluna esquerda/largura da legenda e quebra de página dentro dos blocos), mas fornece a interface que você procura:

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{environ,lipsum}% http://ctan.org/pkg/{environ,lipsum}
\NewEnviron{captioned-text}[2][0.3\linewidth]{%
  \noindent%
    \begin{tabular}{@{}p{#1}p{\dimexpr\linewidth-#1-2\tabcolsep}@{}}
      #2 & \BODY
    \end{tabular}
}
\begin{document}
\begin{captioned-text}{First row caption}
\lipsum[1]
\end{captioned-text}
\begin{captioned-text}{Second row caption}
\lipsum[2]
\end{captioned-text}
\begin{captioned-text}{Third row caption}
\lipsum[3]
\end{captioned-text}
\begin{captioned-text}{Fourth row caption}
\lipsum[4]
\end{captioned-text}
\end{document}

Oenvironpacotefornece a interface, capturando todo o conteúdo de captioned-texte colocando-o em uma coluna de largura fixa tabular. A coluna da esquerda tem largura padrão de 0.3\linewidth, enquanto a coluna da direita ocupa o restante do espaço.

Quebra de páginadentro deo texto do parágrafo exigiria uma abordagem completamente diferente (veja a seguir). No entanto, o espaço entre os blocos pode ser ajustado para atender às suas necessidades.


parcolumnstambém pode ser usado para contornar a ressalva da abordagem anterior e a falta de capacidade de quebra de página:

\usepackage{environ,lipsum,parcolumns}% http://ctan.org/pkg/{environ,lipsum,parcolumns}
\NewEnviron{captioned-text}[2][0.3\linewidth]{%
  \begin{parcolumns}[colwidths={1=#1,2=\dimexpr\linewidth-#1-2em},nofirstindent]{2}
    \colchunk[1]{#2}%
    \colchunk[2]{\BODY}%
  \end{parcolumns}
}

informação relacionada