Ich versuche, ein Dokument mit einer Liste von Absätzen zu schreiben, die links neben der ersten Zeile jedes Absatzes eine einführende Überschrift haben, sodass die Überschriften als linke Spalte und die Absätze als rechte Spalte erscheinen. All dies erscheint in einem standardmäßigen einspaltigen Artikel.
Ich bin auf die Idee gekommen, eine Tabelle zu verwenden. Ich habe:
\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}
Wenn das lipsum
in diesem Beispiel durch echten Absatztext ersetzt wird, wird es ziemlich unhandlich, da alles zusammen eingebettet ist und Zeilenfortsetzungen erforderlich sind. Das Ganze ist ziemlich chaotisch. Was ich möchte, ist so etwas wie das hier:
\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}
Mit echtem Text (möglicherweise mehreren Absätzen mit echtem Text) wäre dies besser lesbar.
Ich hoffe, dass es bereits ein Paket gibt, das so etwas kann, und ich habe es einfach nicht gefunden. Gibt es eine bessere Möglichkeit, dies zu erreichen, als eine Tabelle zu verwenden?
Antwort1
Nun, dank Piotr Wydrych bin ich darauf gestoßen mdwlist
und es macht genau das, was ich will:
\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}
Antwort2
Im Allgemeinen sollten Tabellen zum Vergleichen mehrerer Fakten verwendet werden und nicht zum Setzen von Absatzlisten. Haben Sie sich die description
Umgebung angesehen? Es funktioniert gut mit mehr als einem Absatz pro Überschrift.
\begin{description}
\item[First caption] \lipsum[1]
\lipsum[2]
\item[Second caption] \lipsum[3]
\item[Third caption] \lipsum[4]
\end{description}
Antwort3
Das Folgende ist nicht perfekt (Abstand zwischen captioned-text
Blöcken, feste Breite für linke Spalte/Beschriftung und Seitenumbruch innerhalb von Blöcken), bietet aber die Schnittstelle, die Sie suchen:
\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}
Derenviron
Paketstellt die Schnittstelle bereit, erfasst den gesamten Inhalt von captioned-text
und platziert ihn in einer Spalte mit fester Breite tabular
. Die linke Spalte hat eine Standardbreite von 0.3\linewidth
, während die rechte Spalte den restlichen Platz einnimmt.
SeitenumbruchinnerhalbDer Absatztext würde einen völlig anderen Ansatz erfordern (siehe weiter unten). Der Abstand zwischen den Blöcken könnte jedoch an Ihre Bedürfnisse angepasst werden.
parcolumns
kann auch verwendet werden, um den Vorbehalt des vorherigen Ansatzes und die fehlende Seitenumbruchfunktion zu umgehen:
\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}
}