PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : In eine Tabelle eine Zeile einfügen..



elturco
17-03-2009, 16:48
Hiii,

ich habe folgendes Problem...
Ich möchte zu einer Tabelle eine weitere Zeile hinzufügen, mit weniger Spaltenanzahl..habe mir einige Beispiele angeschaut, bin aber leider nicht weitergekommen...

Ich möchte die letzte Zeile, dass mit "Verzögerung" beginnt nur mit 2 Spalten darstellen und nicht 5 wie die anderen Zeilen.
Mein code bisher sieht folgendermaßen aus:


\begin{table}
\centering
\begin{tabular}{|l|l|l|l|l|l}
\toprule
\hline
Anzahl der Hops & Parameter & 3Mbit/s & 5Mbit/s & 7Mbit/s \\
\hline
\hline

\multirow{3}{*}{1 Hop} & Datenrate \o & 3Mbit/s & 5Mbit/s & 6,9782Mbit/s\\
\cline{2-5}
& Jitter \o & 0,0335ms & 0,0661ms & 0,2698ms \\
\cline{2-5}
& Packetverlust \o & 0,005\% & vsdas & 0.020\%\\
\hline
\hline

\multirow{3}{*}{2 Hop} & Datenrate \o & 3Mbit/s & 5Mbit/s & 6,5755Mbit/s\\
\cline{2-5}
& Jitter \o & 0,2610ms & 0,1980ms & 1,5560ms \\
\cline{2-5}
& Packetverlust \o & 0\% & 0\% & 0,008\% \\
\hline
\hline

\multirow{3}{*}{3 Hop} & Datenrate \o & 2,999Mbit/s & 5Mbit/s & 6.5754ms \\
\cline{2-5}
& Jitter \o & 0,6102ms & 0.1980ms & 1.5560ms \\
\cline{2-5}
& Packetverlust \o & 0\% & 0.0\% & 0.008\%\\
\hline
\hline

\multirow{1}{*} {Verzögerung} & xsx \\
\cline{3-5}
\hline
\end{tabular}
\caption{Übersicht der Leistungsparameter von OLSR }
\label{tab:Kamil}
\end{table}


Kann mir jemand helfen bitte ?

Grüße,
elturco

Stefan_K
17-03-2009, 20:40
Hallo elturco,

Du könntest \multicolum (http://www.weinelt.de/latex/multicolumn.html) verwenden. Das Tabellendesign empfinde ich übrigens nicht als schön, wirf doch einmal einen Blick in tabsatz.pdf (http://userpage.fu-berlin.de/~latex/Materialien/tabsatz.pdf).

Viele Grüße,

Stefan

elturco
17-03-2009, 20:48
Hii Stefan,

danke Dir...

aber bei den Beispielen die du aufgeführt hast sind keine Tabellen die von allen Seiten geschlossen sind...

Hast Du irgendwie sonst noch beispiele wo die Tabellen rechts und links geschlossen sind ?

Grüße,
elturco

edico
17-03-2009, 20:51
Was du


.. mit "Verzögerung" beginnt nur mit 2 Spalten darstellen und nicht 5 wie die anderen Zeilen.

verstehen willst, weiss ich nicht genau.

Solltest Du meinen, dass Verzögerung in der Spalte1 xsx zentriert in den anderen Spalten eingebracht werden soll, dann



\multicolumn{1}{|l|}{Verzögerung} & \multicolumn{4}{c|}{xsx}\\


Solltest du aber versuchen wollen, die 2 Spalten auf die 5 Spalten 'gleichmässig' einzubauen (somit unterschiedliche Spaltenbreiten unterstellen), dann wird's etwas 'problematischer' und könnte ggf. in folgendem Modus gelingen:



\newcommand\vl{\hfil}% (in preamble)
...
\multicolumn{2}{|l|}{\vl Verzögerung} & \multicolumn{3}{l|}{\vl xsx} \\
...


Wegen Fehlen eines Minimalbeispieles ungetestet.

edico

elturco
17-03-2009, 21:16
Hii edico,


Solltest du aber versuchen wollen, die 2 Spalten auf die 5 Spalten 'gleichmässig' einzubauen

ja das möchte ich...

danke dir erstmal... aber die Zeile ergibt eine Fehlermeldung..ich werde wohl die ganze Tabelle anders aufbauen müssen...So wird es anscheinend nicht hinhauen...

edico
17-03-2009, 22:28
ergibt eine Fehlermeldung..ich werde wohl die ganze Tabelle anders aufbauen müssen


Warum es bei dir so ist, weiss ich nicht, da du immer noch nicht 'Butter bei die Fisch' lieferst und eine Glaskugel wenig Auskunft gibt, hast du gleichwohl recht, nachdem ich mir das nochmals näher angeschaut habe, dass du besser beraten bist auf tabularx umzusteigen.

Der angedachte Lösungsansatz lässt sich hier sehrwohl umsetzen:



\documentclass[paper=a5,landscape,pagesize,10pt]{scrartcl}

\usepackage{tabularx,array,booktabs,calc,multirow}
\newcommand\vl{\hfil\hspace*{\tabcolsep}\hfil}
%\newcommand\vl{\hfil}

\begin{document}
\centering
%\begin{tabular}{|l|l|l|l|l|}
\begin{tabularx}{\linewidth}{|X|X|X|X|X|}
\toprule\hline
Anzahl der Hops & Parameter & 3Mbit/s & 5Mbit/s & 7Mbit/s \\
\hline\hline

\multirow{3}{*}{1 Hop} & Datenrate \o & 3Mbit/s & 5Mbit/s & 6,9782Mbit/s\\
\cline{2-5}
& Jitter \o & 0,0335ms & 0,0661ms & 0,2698ms \\
\cline{2-5}
& Packetverlust \o & 0,005\% & vsdas & 0.020\%\\
\hline\hline

\multirow{3}{*}{2 Hop} & Datenrate \o & 3Mbit/s & 5Mbit/s & 6,5755Mbit/s\\
\cline{2-5}
& Jitter \o & 0,2610ms & 0,1980ms & 1,5560ms \\
\cline{2-5}
& Packetverlust \o & 0\% & 0\% & 0,008\% \\
\hline\hline

\multirow{3}{*}{3 Hop} & Datenrate \o & 2,999Mbit/s & 5Mbit/s & 6.5754ms \\
\cline{2-5}
& Jitter \o & 0,6102ms & 0.1980ms & 1.5560ms \\
\cline{2-5}
& Packetverlust \o & 0\% & 0.0\% & 0.008\%\\
\hline\hline

% \multirow{1}{*} {Verzögerung} & xsx \\
% \cline{3-5}
%%%
\multicolumn{1}{|l|}{Verzögerung} & \multicolumn{4}{c|}{xsx}\\
\hline\hline
%%%
\multicolumn{2}{|l|}{\vl Verzögerung} & \multicolumn{3}{l|}{\vl xsx} \\
\hline
%%%
\multicolumn{2}{|l}{\vl Verzögerung} &
\multicolumn{1}{l}{\vl\vrule\vl} &
\multicolumn{2}{l|}{xsx} \\
\hline
\end{tabularx}
%\end{tabular}

\end{document}


edico

edico
17-03-2009, 22:34
Die betroffene Zeile (3.Spalte) muss noch nachjustiert werden ;-)


\multicolumn{2}{|l}{\vl Verzögerung} &
\multicolumn{1}{l}{\vl\vrule\vl} &
\multicolumn{2}{c|}{xsx\vl} \\% << ! \vl


edico

elturco
18-03-2009, 14:09
Danke Dir edico...

Sehr nett von Dir...
Ich es übrigens auch möglich die Größe der Tabellen zu ändern oder macht Latex die Skalierung auf die Textbreite selbst ?

Grüße,
elturco

Xenara
18-03-2009, 15:06
Das rot eingefärbte ist der Parameter, den TabularX für die Maximalbreite zur Skalierung nimmt. Dort kannst du natürlich alles mögliche angeben.


\begin{tabularx}{\linewidth}{|X|X|X|X|X|}

edico
18-03-2009, 17:45
Eine bessere Lösung liegt darin, eine Tabelle in einer Tabelle anzuordnen, um die Symmetrie 'problemlos' zu realisieren und 'Helferchen' zu vermeiden. Hinsichtlich der Breite von Tabellen (sprich: Tabellentypen s. mal tabsatz.pdf [zumindest auf ctan]) kann man unter tabularx die von Xenara genannte Lösung anpacken oder die Textweite in p- oder m-Spalten splitten.

Hier wird die 2-spaltige letzte Zeile nunmehr mit einer tabularx kreiert, die in einer tabular mit p-Spalten eingebettet wird. Die Breite muss angegeben werden; nur l-c-r-Spalten werden 'automatisch' auf Breite gesetzt.



\documentclass[paper=a5,landscape,pagesize,10pt]{scrartcl}

\usepackage{tabularx,array,booktabs,calc,multirow}

\begin{document}
\begin{abstract}
Eine Tabelle mit 5 Spalten (hier: Spaltenbreite \verb|.5\linewidth|
\footnote{Die Breitenaufteilung wurde zur Demonstration in dieser Form
gew\"ahlt. Das ist nicht notwendig und nur willk\"urlich; die Spalten
k\"onnen jedwede Breite innerhalb der Textbreite einnehmen.})
soll am Ende eine Zeile mit 2 gleichgrossen Spalten aufnehmen.
\end{abstract}

\newcolumntype{C}{>{\centering}X}

\small
\begin{tabular}{*{5}{|p{.2\linewidth-2\tabcolsep}}|}
\toprule\hline
Anzahl der Hops & Parameter & 3Mbit/s & 5Mbit/s & 7Mbit/s \\
\hline\hline
\multirow{3}{*}{1 Hop} & Datenrate \o & 3Mbit/s & 5Mbit/s & 6,9782Mbit/s\\
\cline{2-5}
& Jitter \o & 0,0335ms & 0,0661ms & 0,2698ms \\
\cline{2-5}
& Packetverlust \o & 0,005\% & vsdas & 0.020\%\\
\hline\hline
%%% ------------------------------------------------------------------
\multicolumn{5}{|p{.2\textwidth-2\tabcolsep}|}{%
\begin{tabularx}{\textwidth-2\tabcolsep}{C|C}
tbx-in-tbl : 2 C-Spalten & xsx
\end{tabularx}}\\
\hline\bottomrule
\end{tabular}
\end{document}


edico