PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Doppelseitige Tabelle



mcsonix
17-02-2010, 21:59
Hallo!
Ich würde gerne eine Tabelle über eine Doppelseite setzen. Konkret sind es zwei Spalten auf der linken Seite und zwei auf der rechten Seite. Erschwerend kommt hinzu, dass sie die Tabelle wie ein longtable auf die nächste Seite umbrechen lassen sollte. Schön wäre, wenn sie genau so gut mit Fußnoten klar käme wie longtable. Es handelt sich um recht viel Textmaterial, daher kommt eine Bastellösung mit viel Handarbeit nicht infrage.

Eine ähnliche Fragestellung kam letztes Jahr schon einmal
(http://www.mrunix.de/forums/showthread.php?t=66285)
Leider komme ich so nicht weiter.

Hat jemand eine Idee, wie sich dieses Problem lösen ließe?
Ist es möglich, ein entsprechendes Package selbst zu programmieren?
Es gibt viele gute Tutorials für den LaTeX-Anwender, aber ich habe kaum Material über das Programmieren von Makros gefunden. Hat da jemand eine Empfehlung?

Vielen Dank und viele Grüße,
Mc.

ctansearch
17-02-2010, 23:03
mcsonix,
so ganz verständlich ist das nicht.
Wozu soll die Tabelle über eine Doppelseite gehen?

mcsonix
18-02-2010, 16:50
Hallo ctansearch,



Wozu soll die Tabelle über eine Doppelseite gehen?

Das habe ich in der Tat nicht erwähnt. Es geht um die Gegenüberstellung von vier Texten, die Absatzweise parallel gehalten werden sollen. Ich finde je zwei Spalten auf einer Seite deutlich schöner, als vier Spalten auf eine Seite zu quetschen.

Es gibt zwar das parallel Package, das unterstützt aber nur zwei Texte. Außerdem stoße ich mit parallel immer wieder auf Schwierigkeiten mit Überschriften, Fußnoten etc. während longtable mit all dem recht gut klar kommt. Deshalb die Idee einer vierspaltige Tabelle, bei der zwei Spalten auf der gegenüberliegenden Seite liegen.

Natürlich bin ich auch offen für ganz andere Gedanken.

Vielen Dank und viele Grüße,
Mc.

PS: So eine ungewöhnliche Idee ist es doch nicht, eine besonders große Tabelle auf eine Doppelseite zu verteilen, oder?

ctansearch
18-02-2010, 17:27
Ungewöhnlich oder nicht, eine interessante Idee.
Auf jeden Fall ist longtable dazu eine gute Wahl, weil s eine gute Registerhaltigkeit bietet. Dazu muss man aber jede Spalte mit einem \newline beginnen.
Wenn es über mehrere Seiten funktionieren soll, würde ich die Texte zunächst als Fließtext eingeben und dann, wenn die Tabelle funktioniert, die entsprechenden Abschnitte verschieben, so dass es auch inhaltlich passt.

Ich bastel nachher mal ein Beispiel.

voss
18-02-2010, 17:41
Das habe ich in der Tat nicht erwähnt. Es geht um die Gegenüberstellung von vier Texten, die Absatzweise parallel gehalten werden sollen. Ich finde je zwei Spalten auf einer Seite deutlich schöner, als vier Spalten auf eine Seite zu quetschen.

Es gibt zwar das parallel Package, das unterstützt aber nur zwei Texte. Außerdem stoße ich mit parallel immer wieder auf Schwierigkeiten mit Überschriften, Fußnoten etc. während longtable mit all dem recht gut klar kommt. Deshalb die Idee einer vierspaltige Tabelle, bei der zwei Spalten auf der gegenüberliegenden Seite liegen.

Natürlich bin ich auch offen für ganz andere Gedanken.


du kannst einfach _in_ der zweispaltigen longtable mit \pagebreak einen
Seitenumbruch erzwingen. Wenn die linke Tabelle nicht oben anfängt,
dann musst du rechts den entsprechenden Abstand durch die
\phantom-Anweisung einstellen. Hier ein Beispiel:
http://ftp.uni-erlangen.de/mirrors/CTAN/info/examples/Tabellen2/06-00-26.ltx2

Herbert

Legion
18-02-2010, 17:58
Und du kannst mit
\endhead statt \\ am Ende deiner Überschrift erreichen, dass diese auf jeder Seite wiederholt wird.

voss
18-02-2010, 19:30
Und du kannst mit
\endhead statt \\ am Ende deiner Überschrift erreichen, dass diese auf jeder Seite wiederholt wird.

womit du nix anfangen kannst, wenn die linke Tabelle nicht oben auf der Seite
anfängt.

Herbert

Legion
18-02-2010, 19:55
womit du nix anfangen kannst, wenn die linke Tabelle nicht oben auf der Seite
anfängt.

Herbert

Meinst du die erste Zeile? Die fängt bei mir sehr weit unten auf der Seite an und das funktioniert trotzdem prima. Auch ein \pagebrake nach 4 weitern Zeilen ändert daran nichts.

voss
18-02-2010, 20:09
Meinst du die erste Zeile? Die fängt bei mir sehr weit unten auf der Seite an und das funktioniert trotzdem prima. Auch ein \pagebrake nach 4 weitern Zeilen ändert daran nichts.

es geht darum, dass _beide_ Tabellen links und rechts auf
derselben Höhe beginnen. Und man kann mit \pagebreak und
\endhead nichts anfangen, wenn auf der linken Seite vor der Tabelle
irgendein Text steht ...

Herbert

Legion
18-02-2010, 20:22
OK, hatte es allerdings so verstanden, dass auf den Seiten nur die Tabelle ist.

ctansearch
18-02-2010, 21:21
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{fontenc}
\usepackage{graphicx,longtable,array,blindtext}
\usepackage[dvips]{hyperref}
\newcommand{\textA}{\newline \subsection*{Rapunzel}\blindtext}
\newcommand{\textB}{\newline\subsection*{Schneewit tchen}\blindtext}
\newcommand{\textC}{\newline\subsection*{Schneewei sschen}\blindtext}
\newcommand{\textD}{\newline\subsection*{Rosenrot} \blindtext}
\newcommand{\textE}{\newline \subsection*{Stiefmutter}\blindtext}
\newcommand{\textF}{\newline\subsection*{Zwerge}\b lindtext}
\newcommand{\textG}{\newline\subsection*{Bären}\bl indtext}
\newcommand{\textH}{\newline\subsection*{Adler}\bl indtext}
\newcommand{\textI}{\newline\subsection*{Könige}\b lindtext}
\newcommand{\textJ}{\newline\subsection*{Prinzen}\ blindtext}
\date{2010-02-18}

\begin{document}

\begin{longtable}{p{7cm}p{7cm}} Vergleichen der Märchenfiguren \endfirsthead Vergleichen der Märchenfiguren\endhead

\textA&\textB \\
\textC& \textD \\
\textC& \textD \\
\textE& \textF \\
\textG& \textH \\
\textI& \textJ \\
\end{longtable}

\end{document}

mcsonix
21-02-2010, 22:05
Hallo allerseits!
Vielen Dank zunächst einmal für die zahlreichen Antworten.

Das Hauptproblem ist vor allem, dass es sich wie eingangs erwähnt um seeeehr viel Text handelt, genauer gesagt um vier Übersetzungen desselben Textes. Das Ziel ist, die vier Übersetzungen übersichtlich vergleichbar zu präsentieren. Weil es so viel Text ist (ich erwarte auf jeden Fall eine dreistellige Seitenzahl) ist es praktisch unmöglich, jeden Seitenumbruch manuell festzulegen.

Das Resultat sollte in etwas so aussehen, wie im angehängten Beispiel, in dem die Absätze links und rechts noch nicht auf derselben Höhe stehen.

Mir ist bewusst, dass das eine eher knifflige Aufgabe ist.

Ich habe mir übers Wochenende überlegt, ob man nicht ausgehend von longtable eine Umgebung doubletable ableiten könnte, die folgendes macht:
1. Man definiert eine Tabelle mit vier Spalten. Die Umgebung ermittelt, wie hoch jede Zeile sein muss und wie viele Zeilen auf eine Seite passen (das kann longtable ja schon)
2. Jetzt werden aber statt vier Spalten nur die ersten beiden ausgegeben, dann die Seite umgebrochen und dann Spalten 3 und 4 ausgegeben.
3. Danach geht es wieder von vorn los.

Ist das realistisch eine realistische Idee?

Vielen Dank nochmal und einen guten Start in die Woche,
Mc

PS: Es ging bei den Antworten u.a. auch darum, ob auf der linken Seite oberhalb der Tabelle Text stehen soll. Das wäre ein klassisches nice-to-have. Ich kann aber auch gut damit leben, wenn die Tabelle allein auf der Seite steht.

tral
21-02-2010, 22:15
Hallo,

ich habe auch noch eine Idee: Man könnte vielleicht einfach die Papiergröße anpassen (2xA4) und dann auf diese Doppelseite eine vierspaltige longtable setzen. Es gibt dann bestimmt Tools, die beim Drucken wieder einzelne A4-Seiten daraus machen...

Wäre das eine Möglichkeit?

Christian.

ctansearch
21-02-2010, 22:45
mcsonix,
ich vermute. das kannst Du nur durch immer gleichgroße Zellen hinbekommen, also definierte Spalten - und Zeilengrößen.
Ob longtable sowas anbietet weiß ich nicht, aber Du kannst \raisebox dazu benutzen.
Die maximale Zeilenhöhe kannst Du mit dem \newcommand {\maxheight} {\raisebox{xcm}beeinflussen. Dann musst Du lediglich den größten Absatz ermitteln und den Wert anpassen.


\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage{fontenc}
\usepackage{graphicx,longtable,array,blindtext}
\usepackage[dvips]{hyperref}
\newcommand{\textA}{\newline \subsection*{Rapunzel}hznhzzh}
\newcommand{\textB}{\newline\subsection*{Schneewit tchen}juhzgt}
\newcommand{\textC}{\newline\subsection*{Schneewei sschen}huzhztg}
\newcommand{\textD}{\newline\subsection*{Rosenrot} hjdhffgbf fbfgfbf fbfgfbf fbfgffbf}
\newcommand{\textE}{\newline \subsection*{Stiefmutter}hndddgbddf dbdfddgdbd dvdgdfddbd dbdvdfddf}
\newcommand{\textF}{\newline\subsection*{Zwerge}hd gdbdfdtd dbdgdvd ddbdddkdkddjd dndfhfjfgughg g}
\newcommand{\textG}{\newline\subsection*{Bären}jgu gitturzeetrsgafsrwew dgdetege}
\newcommand{\textH}{\newline\subsection*{Adler}hnd ddgbddf dbdfddgdbd dvdgdfddbd dbdvdfddfblindtext}
\newcommand{\textI}{\newline\subsection*{Könige}hn dddgbddf dbdfddgdbd dvdgdfddbd dbdvdfddfblindtext}
\newcommand{\textJ}{\newline\subsection*{Prinzen}h ndddgbddf dbdfddgdbd dvdgdfddbd dbdvdfddfblindtext}
\date{2010-02-18}
\newcommand{\maxheight}[1]{\newline \raisebox{#1}}
\begin{document}

\begin{longtable}{p{0.1cm}p{7cm}p{7cm}} Vergleichen der Märchenfiguren \endfirsthead Vergleichen der Märchenfiguren\endhead

\maxheight{2cm}&\textA&\textB \\
\maxheight{7cm}&\textC& \textD \\
\maxheight{3cm}&\textC& \textD \\
\maxheight{1cm}&\textE& \textF \\
\maxheight{1cm}&\textG& \textH \\
\maxheight{8cm}&\textI& \textJ \\
\end{longtable}
\end{document}


1.Habe es nochmal verändert. Du kannst \maxheight auch variabel angeben, z.B. pro Seite
\newcommand{\maxheight}[1]{\raisebox{#1}}
und
\maxheight{5cm}&\textI&\maxheight{5cm}& \textJ \\

2.Nochmal verändert: Es genügt, pro Zeile eine \raisebox zu definieren.
3. Die \raisebox muss natürlich auch mit \newline beginnen!!!!