Verschachtelte Tabellen: länger als eine Seite

Tabellen und Grafiken erstellen und anordnen


Daniel_le_Rouge
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Fr 29. Jan 2010, 02:38

Verschachtelte Tabellen: länger als eine Seite

Beitrag von Daniel_le_Rouge »

Hallo zusammen!

Ich habe in meiner Magisterarbeit sehr lange Tabellen, die über mehrere Seiten gehen und ineinander verschachtelt sind, d. h. eine Tabelle, die über mehr als eine Seite geht, enthält eine oder mehrere weitere Tabellen, die ebenfalls über mehr als eine Seite gehen.

Ich habe den longtable-Befehl angewendet und der klappt soweit ganz gut. Wenn jetzt jedoch eine verschachtelte tabular-Tabelle länger als eine Seite ist, dann klappt's schon nicht mehr und wenn ich anstatt tabular longtable in die verschachtelte Tabelle einfüge, kommt folgende Fehlermeldung: ! Forbidden control sequence found while scanning use of \LT@nofcols.

Meine Tabelle sieht folgendermaßen aus:
\begin{longtable}{@{}>{\bfseries\sffamily}p{2cm}p{12cm}}
Code	&	\code{Text}	\\
Text	 &	Text	\\
	\multicolumn{2}{l}
	{\begin{tabular}{>{\bfseries\sffamily}p{2cm}p{11cm}} %Tabelle länger als 1 Seite
	Text	&	Text\\
		\multicolumn{2}{l}
		{\begin{tabular}{>{\bfseries\sffamily}p{2cm}p{10cm}} % Tabelle länger als eine Seite
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		\end{tabular}}	\\
	Text	&	Text	\\
		\multicolumn{2}{l}
		{\begin{tabular}{>{\bfseries\sffamily}p{2cm}p{11cm}}
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		\end{tabular}}	\\
	Text	&	Text	\\
		\multicolumn{2}{l}
		{\begin{tabular}{>{\bfseries\sffamily}p{2cm}p{11cm}}
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		\end{tabular}}	\\
	Text	&	Text\\
		\multicolumn{2}{l}
		{\begin{tabular}{>{\bfseries\sffamily}p{2cm}p{11cm}}
		Text	&	Text	\\
		Text	&	Text	\\
		Text	&	Text	\\
		\end{tabular}}	\\
	\end{tabular}}	\\
\end{longtable}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Richtig erkannt. longtable ist nicht schachtelbar und innerhalb einer longtable können Seitenumbrüche nur an longtable-Zeilenenden erfolgen. Da eine tabular innerhalb einer longtabe immer innerhalb einer longtable-Zeile steht, geht das, was Du willst nicht.

Da ich nicht verstehe, was Du tatsächlich vorhast, kann ich Dir leider auch keinen alternativen Vorschlag machen.

Daniel_le_Rouge
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Fr 29. Jan 2010, 02:38

Beitrag von Daniel_le_Rouge »

Vielen Dank für deine Hilfe!

Ich bin noch an der Uni, aber ich scanne einfach später ein Beispiel ein, an dem man genau sieht was ich meine. Das zu erklären, würde jetzt eine Ewigkeit dauern und ich weiß, auch nicht, ob ich's vernünftig hinbekomme.

Daniel_le_Rouge
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Fr 29. Jan 2010, 02:38

Beitrag von Daniel_le_Rouge »

Also, ich wollte einfach nur ein paar Zeilen einrücken und dachte, wenn ich die Tabellen verschachtele, dann werden eben die gewünschten Zeilen automatisch eingerückt. Jetzt habe ich gemerkt, dass das nicht so schlau ist.

Wenn ich vor die betroffenen Spalten \hspace{xy} setze, reicht das völlig. Ist allerdings ein wenig aufwendig, vor jede einzurückende Zeile den Befehl zu setzen. Gibt es vielleicht etwas, was solange einrückt bis man es wieder außer Kraft setzt?

Danke!

Daniel

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Die addmargin-Umgebung (siehe jede KOMA-Script-Klasse oder das Paket scrextend) kann das. Man kann sich mit der labeling-Umgebung (ebenfalls KOMA-Script) etwas basteln. Man kann sich selbst eine passende Listenumgebung basteln. Man kann sich mit \hspace + \parbox oder \hspace + minipage etwas basteln (Seitenumbruch nur zwischen \parbox bzw. minipage). Man kann sich mit \makebox + \parbox oder \makebox + minipage etwas basteln (Seitenumbruch nur zwischen den \makebox). Und wenn es nur bis zum Ende des Absatzes sein soll, genügt sogar \hangindent. Die Möglichkeiten sind sehr vielfältig. Was günstig ist, hängt von der konkreten Anwendung ab, die ich noch immer nicht verstanden habe.

Daniel_le_Rouge
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Fr 29. Jan 2010, 02:38

Beitrag von Daniel_le_Rouge »

Ich habe jetzt mal etwas entsprechendes eingescannt und angehängt.

Ich habe die Zahlencodes (»111«) und den Text (»Allgemeine Bewertung der Erwünschtheit«) in eine zweispaltige mehrseitige Tabelle gesetzt. Um die Einrückungen zu erreichen, habe ich zuerst auf verschachtelte Tabellen gesetzt. Beispielweise wäre 111–113 eine eigene Tabelle gewesen und 121–122 auch usw.

Ich kann aber ja auch so einen Einzug erreichen, z. B. mit \hspace{}. Meine Frage ist, ob ich eine Umgebung einrichten kann, durch die erreicht wird, dass von 111 bis 113 eingerückt wird. So was wie \nohyphens{} fürs Einrücken.

Vielen Dank, Koma, für deine Hilfe!

Daniel
Dateianhänge
Auszug aus Rössler, Patrick (2005): Inhaltsanalyse. Konstanz: UVK.
Auszug aus Rössler, Patrick (2005): Inhaltsanalyse. Konstanz: UVK.
Scan10011.JPG (344.23 KiB) 2009 mal betrachtet

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Du brauchst also eine nummerierte Liste mit einer speziellen Form der Nummerierung. Von 0 aufgebaut könnte man das so machen:
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\makeatletter
\newcounter{TOPdepth}
\newcounter{TOPi}
\newcounter{TOPii}
\newcounter{TOPiii}
\newcommand*{\labelTOPi}{\theTOPi}
\newcommand*{\labelTOPii}{\theTOPii}
\newcommand*{\labelTOPiii}{\theTOPiii}
\renewcommand*{\theTOPi}{\arabic{TOPi}00}
\renewcommand*{\theTOPii}{\arabic{TOPi}\arabic{TOPii}0}
\renewcommand*{\theTOPiii}{\arabic{TOPi}\arabic{TOPii}\arabic{TOPiii}}
\newcommand*{\TOPctr}{}
\newenvironment{TOP}{%
  \ifnum \value{TOPdepth}>\tw@ \@toodeep\else
    \advance\value{TOPdepth}\@ne% dadurch bleibt der Zähler lokal
    \edef\TOPctr{TOP\roman{TOPdepth}}%
      \expandafter
      \list
        \csname label\TOPctr\endcsname
        {%
          \settowidth{\leftmargin}{000}%
          \addtolength{\leftmargin}{.5em}%
          \usecounter\TOPctr\def\makelabel##1{\hss\makebox[0pt][r]{##1}}%
        }%
  \fi
}{%
  \endlist
}
\makeatother

\setcounter{section}{14}
\begin{document}
\section{Aussagecodierung: Gegenstand}
\begin{TOP}
\item Übersiedler: Bewertung des Zuzugs
  \begin{TOP}
    \item Bewertung des Zuzugs: gesellschaftiche Perspektive
      \begin{TOP}
        \item Allegemeine Bewertung der Erwünschtheit
        \item Maßnahmen zur Regelung des zuzugs
        \item Sozial- und Sonderleistungen für Übersiedler und DDR-Bürger

          \emph{Hier werden alle Aussagen verschlüsselt, die sich mit
            Leistungen in der Bundesrepublik Deutschland für die Übersiedler
            und DDR-Bürger positiv oder negativ wertend beschäftigen}
      \end{TOP}
    \item Bewertung des Zuzugs: individuelle Perspektive
  \end{TOP}
\end{TOP}
\end{document}
Weitere Informationen zu \list (auch bezüglich der Längen, über die Abstände etc. geregelt werden) sind source2e (Link, siehe zweite Zeile meiner Signatur) zu entnehmen.

Antworten