So formatieren Sie eine Reihe von Absätzen mit Überschriften links von der ersten Zeile

So formatieren Sie eine Reihe von Absätzen mit Überschriften links von der ersten Zeile

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 lipsumin 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 mdwlistund 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 descriptionUmgebung 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-textBlöcken, feste Breite für linke Spalte/Beschriftung und Seitenumbruch innerhalb von Blöcken), bietet aber die Schnittstelle, die Sie suchen:

Bildbeschreibung hier eingeben

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

DerenvironPaketstellt die Schnittstelle bereit, erfasst den gesamten Inhalt von captioned-textund 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.


parcolumnskann 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}
}

verwandte Informationen