PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \tabbing in \minipage, um Umbruch zu erzwingen?



JuL!
11-10-2006, 09:14
Ich habe eine zweispaltige multicol-Umgebung und möchte dort gerne eine Tabelle erzeugen, die in die zweite Spalte umbrechen kann. Bekanntlich gibt es dafür keine Möglichkeit. So wollte ich wenigstens alternativ es über tabbing erreichen. Doch das schöne tabbing hat das Problem, dass es keinen automatischen Zeilenumbruch ermöglichst. Nun wollte ich die tabbing-Umgebung in eine minipage verfrachten, aber das funktioniert irgendwie auch nicht! :mad: Hat jemand eine andere Idee?

Code:

\begin{multicols}{2}
\begin{minipage}

\begin{tabbing}
\hspace*{3mm} \= \hspace{3mm} \= \kill
{\bf Headline} \\
\> 1 \> Hier befindet sich Text Nummer 1 \\
\> 2 \> Und dieser Text würde bei der multicol-Geschichte gnadenlos über den Rand hinauslaufen, was allerdings auf irgendeinem Wege überwunden werden soll. - Sieht ja auch irgendwie doof aus.\\
\> 3 \> Das ist Text Nummer 3
\end{tabbing}
\end{multicol}

MasterOfPuppets
11-10-2006, 20:50
Wie du schon gesagt hast, Spalten und Tabellen bzw. Boxen vertragen sich einfach nicht.
Du könntest statt \begin{multicols}{2} auf \twocolumn umsatteln. Eine Tabelle mit Supertabular könnte dann von der linken in die rechte Spalte umbrechen, nicht aber auf der rechten Spalte beginnen.
Vielleicht reicht dir das ja.

ap.latex.mrunix
12-10-2006, 19:42
Nun ja, ich habe das 'mal ausprobiert. Und wenn ich dich richtig verstanden habe, hab' ich auch ein erfolgreiches Ergebnis. Aber, ich habe es genau andersherum gemacht. Den Tabbing-Bereich eingerichtet, um die Elemente zu positionieren. Und dann, "auf" die Tabstop Positionen Minipages der entsprechenden Breite gesetzt, um die Elemente zu umbrechen.
Hier der Quelltext:

\begin{tabbing}
\hspace*{1cm}\= \hspace*{5cm}\= \kill
lalelu \>a\>Y\\
\>\begin{minipage}[t]{5cm}
Dieser Text dient als Test f"ur die Umbruchf"ahigkeit einer Kombination von Tabbing und Minipage.
\end{minipage}
\>\begin{minipage}[t]{3cm}
Dieser Text auch.
\end{minipage}
\end{tabbing}
so, und hier geht der normale Text dann weiter...\\
N"achste Zeile

Ich hoffe, das hilft ersteinmal weiter. Wenn ja, würde ich \newcommand und \newenvironment verwenden, um mir Schreibarbeit zu sparen. Z.B. ein Command, um eine Zeile zu setzen.

Viel Erfolg :)

JuL!
17-10-2006, 23:12
Danke ap.latex.mrunix,

das ist zumindest eine Lösung, die unter gegebenen Umständen funktioniert. Leider gibt es nach einer mehrzeiligen \minipage-Umgebung einen kleineren Zeilenabstand zur kommenden Zeile, was etwas komisch aussieht. Gibt es hierfür eine Möglichkeit, dass dieser Abstand dem Zeilenabstand entspricht?

edico
18-10-2006, 09:22
... ich könnte es mir so vorstellen:

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[german]{babel}
\usepackage{multicol}
\usepackage{tabularx,booktabs}

\newcommand\twocols[2]{%
\noindent
% \begin{tabularx}{\linewidth}{@{}>{\raggedright}X>{\raggedright}X@{}}
\begin{tabularx}{\linewidth}{@{}>{\raggedright}X>{\centering}X@{}}
#1 & #2
\end{tabularx}\par\noindent
}

\def\x{Das ist hier ein mehr oder weniger sinnloser Text, der kaum zum Lesen geeignet und trotzdem sinnvoll ist. Und trotzdem kann's jeder halten wie ein Dachdecker. }

\begin{document}
%%%
%%% 2-spaltiger-Text
%%%
\begin{multicols}{2}
\x\x\x
\end{multicols}
%%%
%%% 1-spaltig mit Tabelle_2_spaltig
%%%
\twocols{\underline{\textbf{Tabellenüberschrift A}}\\ \x\\ $ 1.23$\\ n$\geq 1$}
{\underline{\textbf{Tabellenüberschrift B}}\\ \x\\ $54.67$\\ m$\leq 2$}
%%%
%%% 2-spaltiger-Text
%%%
\begin{multicols}{2}
\x\x\x
\end{multicols}
\end{document}

edico

JuL!
18-10-2006, 10:30
ap.latex.mrunix war noch am nächsten daran, was ich wollte. Ich habe nun einfach mal den Sourcecode angehängt, der die Situation am plausibelsten beschrieben dürfte. Dabei ist nur noch das Problem,

1. dass der Zeilenabstand von der Oberüberschrift zur \rule zu gross ist
2. der Zeilenabstand zwischen den normalen Zeilen zu klein ist
3. und vor allem der Abstand einer mehrzeiligen minipage zur nächsten zu gering (nicht dem regulärem Zeilenabstand entspricht)

Vielen Dank schon mal für eure Hilfe!! :)




\documentclass[a4paper, 10pt, twoside]{report}
\usepackage[ngerman]{babel}
\usepackage{multicol}
\usepackage{longtable}

% BODY
\begin{document}

Nordkoreas Militär habe seinen engsten Verbündeten China über das Vorhaben informiert, gleich mehrere Atomwaffentests zu beginnen, berichtete der US-Sender NBC unter Berufung auf US-Vertreter. Konkrete Daten oder andere Details seien nicht genannt worden. Es hatte sich zuvor bereits angedeutet, dass Nordkorea anscheinend zu weiteren Atomwaffentests entschlossen ist.

% TWO COLUMNS text
\begin{multicols}{2}

\noindent % keine Absatzeinrückungen

{\footnotesize
\begin{tabbing}

\hspace*{3mm}\= \hspace*{6mm}\= \kill
\> No. \> Name und Inhalt \\ % Der Abstand nach dieser Zeile soll etwas geringer sein
\rule{\linewidth}{.1mm} \\

{\bf Test - Headline 1} \\
\> 1 \> \begin{minipage}[t]{74mm} Test 1 - ein kurzer Text \end{minipage}\\ % alternativ als Zeilenabstandshalter: \vspace{5mm}
\> 2 \> \begin{minipage}[t]{74mm} Test 1 - dieser Text ist deutlich länger und sollte auch über mehrere Zeilen hinweg gehen - also nicht nur über eine Zeile \end{minipage}\\ % nach diesen mehrzeiligen minipages ist der Abstand zur nächsten geringer, als der übliche Zeilenabstand - wie ändern?
\> 3 \> \begin{minipage}[t]{74mm} Irgendwas - ein neuer Text \end{minipage}\\
\> 4 \> \begin{minipage}[t]{74mm} Etwas anderes - ebenso eine kurzer Text \end{minipage}\\
\> 5 \> \begin{minipage}[t]{74mm} Nochwas - Nun folgt ein wieder ein längerer Text völlig ohne Bedeutung, aber über mehrere Zeilen gehend \end{minipage}\\
\> 6 \> \begin{minipage}[t]{74mm} Text - dies ist ein sinnvoller Text \end{minipage}\\
\> 7 \> \begin{minipage}[t]{74mm} News - irgendwie ist dieser Text auch sinnfrei \end{minipage}\\
\> 8 \> \begin{minipage}[t]{74mm} Text - langsam schwindet meine Kreativität \end{minipage}\\

{\bf Test - Headline 2} \\ % vor dieser Zeile soll ein kleiner Abstand
\> 9 \> \begin{minipage}[t]{74mm} Nochwas - es fällt mir wirklich nichts mehr ein \end{minipage}\\
\> 10 \> \begin{minipage}[t]{74mm} Sonstiges - ja, sonstiges hatte ich tatsächlich noch nicht \end{minipage}\\
\> 11 \> \begin{minipage}[t]{74mm} Text - das hatte ich schonmal \end{minipage}\\
\> 12 \> \begin{minipage}[t]{74mm} Text - auch dieser ist nix neues \end{minipage}

\end{tabbing}
}
\end{multicols}

\end{document}

edico
18-10-2006, 14:32
\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage{multicol}
\usepackage{paralist}
\def\x{Das ist hier irgend ein sinnloser Text, der nicht zum Lesen geeignet und trotzdem sinnvoll ist. }

\begin{document}
Wenn du schon eine Liste willst, dann entscheide dich doch auch dafür.
So kann dann eine Lösung aussehen \ldots

\begin{multicols}{2}
\x\x\x\x\x

\begin{compactitem}
\item[1] \x
\item[2] \x
\item[3] \x
\end{compactitem}
\end{multicols}

\ldots so kann dann eine andere Lösung aussehen ldots

\begin{multicols}{2}
\x\x\x\x\x
\end{multicols}

\begin{multicols}{2}
\begin{compactitem}
\item[1] \x
\item[2] \x
\item[3] \x
\end{compactitem}
\end{multicols}

\begin{multicols}{2}
\x\x\x\x\x
\end{multicols}
\end{document}

edico

JuL!
18-10-2006, 17:45
Eigentlich logisch. Danke Dir!! Die paralist-Umgebung passt genau. Nun muss ich nur noch den Zeilenabstand variieren können und die Einrückung, aber das werde ich mit der Literatur schon finden.