Estoy intentando escribir un documento con una lista de párrafos que tienen un título introductorio a la izquierda de la primera línea de cada párrafo, de modo que los títulos aparezcan como una columna de la izquierda y los párrafos como una columna de la derecha. Todo esto aparece dentro de un artículo estándar de una columna.
Lo que se me ocurrió es utilizar una tabla. Tengo:
\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}
Si lipsum
en ese ejemplo se reemplaza con texto de párrafo real, se vuelve bastante difícil de manejar debido al hecho de que está todo incrustado y la necesidad de continuaciones de línea, todo es bastante complicado. Lo que me gustaría es algo como esto:
\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}
Con texto real en su lugar (potencialmente varios párrafos de texto real), esto sería más legible.
Espero que ya exista algún paquete que haga este tipo de cosas y simplemente no lo he encontrado. ¿Existe una mejor manera de lograr esto que usar una tabla?
Respuesta1
Bueno, gracias a Piotr Wydrych, encontré mdwlist
y hace exactamente lo que quiero:
\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}
Respuesta2
Generalmente, las tablas deben usarse para comparar una serie de hechos, no para componer listas de párrafos. ¿Has mirado el description
medio ambiente? Funciona bien con más de un párrafo por título.
\begin{description}
\item[First caption] \lipsum[1]
\lipsum[2]
\item[Second caption] \lipsum[3]
\item[Third caption] \lipsum[4]
\end{description}
Respuesta3
Lo siguiente no es perfecto (espaciado entre captioned-text
bloques, columna izquierda de ancho fijo/ancho de título y salto de página dentro de los bloques), pero proporciona la interfaz que busca:
\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}
Elenviron
paqueteproporciona la interfaz, captura todo el contenido de captioned-text
y lo coloca en una columna de ancho fijo tabular
. La columna de la izquierda tiene un ancho predeterminado de 0.3\linewidth
, mientras que la columna de la derecha ocupa el resto del espacio.
salto de páginadentroel texto del párrafo requeriría un enfoque completamente diferente (ver a continuación). Sin embargo, el espacio entre bloques se puede ajustar según sus necesidades.
parcolumns
También se puede utilizar para eludir la advertencia del enfoque anterior y la falta de capacidad de salto 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}
}