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 lipsum
desse 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 mdwlist
e 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 description
meio 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-text
blocos, largura fixa da coluna esquerda/largura da legenda e quebra de página dentro dos blocos), mas fornece a interface que você procura:
\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}
Oenviron
pacotefornece a interface, capturando todo o conteúdo de captioned-text
e 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.
parcolumns
també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}
}