PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \toprule etc. von Tabelle ragt über Seitenrand hinaus



sharpType
25-08-2009, 01:16
Hallo,

ich habe folgendes Problem:



\documentclass[pdftex,
final,
10pt,
toc=listof,
toc=indented,
listof=chapterentry,
numbers=noenddot,
a4paper,
pagesize,
oneside,
titlepage,
ngerman,
svgnames,
parskip=full-]{scrreprt}


\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{setspace}
\usepackage{xspace}
\usepackage{graphicx}
\usepackage[left=2.8cm,right=1.75cm,top=2.25cm,bottom=2.25cm]{geometry}
\usepackage{colortbl}
\usepackage{ragged2e,booktabs}
\usepackage{array, tabularx}
\usepackage{caption}

\setlength{\intextsep}{1cm}

\begin{document}
Test Text Test TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest TextTest Text

\begin{table}[htbp]
\captionabove{Harzsysteme}
\centering
\begin{tabular}{p{\linewidth}}
\toprule
\rowcolor{blue}
\textbf{Duroplastische Matrix}\\
\midrule
\begin{itemize}
\item nach Aushärtung fest
\end{itemize}
\\ \addlinespace[3ex]
\midrule
\rowcolor{blue}
\textbf{Thermoplastische Matrix}\\
\midrule
\begin{itemize}
\item nach Aushärtung fest
\end{itemize} \\
\bottomrule
\end{tabular}
\label{tab:Harzsysteme}
\end{table}

Text danach
\end{document}



Die Top/Mid/Bottom Linien ragen samt Füllfarbe über den Seitenrand hinaus und ich weiß nicht warum.:confused: (die Farbe ist nur für Testzwecke blau:))

Kann mir da jmd helfen? Möchte natürlich nicht das die Linien in den Rand laufen sondern bündig abschließen.

Weiterhin nutze ich zb das caption paket und den befehl captionabove wie man sieht. dadurch ist angemessener platz zw. tabelle und überschrift, jedoch wandern die tabellenüberschrift mir zu nah an den text. das ändere ich mit \setlength{\intextsep}{1cm}. ist das eine passende lösung dafür oder sollte man das anders machen?

beim wrapfigurepaket macht man \setlength{\intextsep}{1cm} ja meistens auf null, um blöde abstände wegzubekommen. das würde doch in konflikt stehen oder kann man \setlength{\intextsep}{1cm} nur für eine bestimmte umgebung festlegen?

noch eine weitere frage: kann man die füllfarbe (blau in diesem fall) irgendwie bündig mit den rules abschließen, ohne das da zwischenraum ist? das sieht irgendwie blöd aus....

Vielen vielen dank
Gruß

Legion
25-08-2009, 07:31
Du kannst
\setlength\leftmargini{3pt} in die Präambel aufnehmen und bei Bedarf noch ein bisschen mit dem Wert rumspielen.

Dein \setlength{\intextsep}{1cm} hat bei mir keinen Effekt auf den Abstand von Tabellenbeschriftung <-> Tabelle. Dafür vergrößert sich der Abstand für den nachfolgenden Text recht unschön. Ich habe die Positionen der Beschriftungen als Optionen mit dem caption-Paket geladen. Da ist die Beschriftung aber näher an der Tabelle. \captionabove sorgt in deinem Text für den größeren Abstand, auch wenn ich mich immer wieder frage warum einige da so einen megamäßigen Abstand haben wollen ...

Für die Füllfarbe kannst du nach \centering noch
\setlength{\belowrulesep}{0pt}
\setlength{\aboverulesep}{0pt} setzten. Das klappt in dieser Tabelle, da durch die Aufzählung genug Abstand zu den Linien ist. In einer "normalen" Tabelle würde der Text durch die beiden Befehle zu nah an die Linien kommen.

Gruß
Philipp

sharpType
25-08-2009, 10:45
okay vielen dank...

und was macht der marigin wert und wie wirkt der sich auf andere pakete aus? ist der nur für diese linien gedacht?

Legion
25-08-2009, 11:42
Der Wert kümmert sich um den Einzug. Wenn ich das richtig verstanden habe, dann beschränkt "i" am Enden von \leftmargini den Einzug auf einen lokalen Bereich. In eineam anderen Thread (http://mrunix.de/forums/showthread.php?t=65579) wurde das Problem auch schon angesprochen.

Dort wird \setlength\leftmargini{xpt} in der Tabelle vor \begin{itemize} definert. Diese Lösung ist sogar noch besser, da du sie für jede Auflistung separat definieren kannst, wenn du z.B. unterschiedlich große Aufzählungszeichen verwenden möchtest.

Gruß
Philipp

rais
25-08-2009, 12:51
Moin moin,




\begin{tabular}{p{\linewidth}}

(...)
Die Top/Mid/Bottom Linien ragen samt Füllfarbe über den Seitenrand hinaus und ich weiß nicht warum.:confused: (die Farbe ist nur für Testzwecke blau:))

wie hier schon öfter angesprochen wurde: Tabellenspalten besitzen auch Freiraum (\tabcolsep), sonst würden zwei benachbarte Spalten direkt aneinanderklatschen.
Ein paar Möglichkeiten:


\begin{tabular}{p{\linewidth-2\tabcolsep}}

(benötigt (wieder) calc). Ohne Extrapaket ginge es so


\begin{tabular}{@{}p{\linewidth}@{}}

da Du bereits tabularx lädst ginge auch


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

oder entsprechend


\begin{tabularx}{\linewidth}{@{}X@{}}

bei den beiden letztgenannten Ansätzen muß es statt


\end{tabular}
dann natürlich entsprechend


\end{tabularx}
heißen.

@Legion: das `i' am Ende von \leftmargini hat nix mit lokal zu tun, es steht vielmehr für die `erste Ebene' -- bei geschachtelten enumerate/itemize-Umgebungen kommen dann \leftmarginii etc. mit ins Spiel.;)

MfG

Legion
25-08-2009, 13:55
aha ... ok. möchte ja keine haare spalten, aber für mich ist das immer noch lokal, weil ja nicht den ganzen seiteneinzug global ändert. was passiert eigentlich wenn man das i weglässt? kann keine unterschiede sehen ... funktioniert das dann so gar nicht und man muss mit \addmargin arbeiten?

rais
25-08-2009, 19:07
Moin moin,

aha ... ok. möchte ja keine haare spalten, aber für mich ist das immer noch lokal, weil ja nicht den ganzen seiteneinzug global ändert.

ahh, nee, Du kannst auch \leftmargini lokal/global beeinflussen oder irgend eine andere Länge (oder sonstwas) nehmen ... kurz gesagt: eine lokale Änderung findet dann statt, wenn nach der lokalen Gruppe der alte Wert wiederhergestellt wird, sprich: der vor dieser lokalen Gruppe global gesetzte Wert wieder greift. Eine globale Änderung hast Du dann, wenn fortan jeder Zugriff auf diese Länge (oder sonstwas) eben diesen geänderten Wert darstellt ... bis Dokumentende oder diese Länge (oder sonstwas) wieder geändert wird. Ich versuch das mal anhand einer neuen Länge `\mya' darzustellen:


\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\newlength\mya
\setlength\mya{0.5\linewidth}%<--globale Definition
\newcommand*\foo[1]{%
\section{#1}
\noindent\rule{\mya}{1pt}\par
(\textbackslash mya: \the\mya)\par
}
\begin{document}
\foo{voreingestellt}

\begingroup
\setlength\mya{0.25\linewidth}%
\foo{Aufruf nach lokaler Änderung}
\endgroup
\foo{Aufruf nach Gruppenende}

\setlength\mya{0.25\linewidth}%
\foo{erster Aufruf nach globaler Änderung}
\foo{zweiter Aufruf nach globaler Änderung}

\setlength\mya{0.5\linewidth}%
\foo{zurück auf Startwert}
\begingroup
\setlength\mya{\linewidth}%
\global\mya=\mya%globalisieren
\foo{Aufruf nach lokaler Änderung}
\endgroup
\foo{Aufruf nach Ende Lokalbereich: diesmal doch global;-)}
\end{document}

Die einzige lokale Änderung hier ist beim zweiten \foo.;)
Anders ausgedrückt: mit


Du kannst

\setlength\leftmargini{3pt}
in die Präambel aufnehmen (..)

hast Du diesen \leftmargini global verändert, weil er sich auf jede im Dokument folgende itemize-Umgebung -- zumindest der ersten Schachtelungstiefe -- auswirkt (es sei denn, \leftmargini wird andernorts wieder verändert).


was passiert eigentlich wenn man das i weglässt? kann keine unterschiede sehen ... funktioniert das dann so gar nicht und man muss mit \addmargin arbeiten?
Afaics wird hier innerhalb der Listenumgebung \leftmargin mit -- in Abhängigkeit von der Schachtelungstiefe -- \leftmargini, \leftmarginii, \leftmarginiii oder \leftmarginiv vorbelegt, deshalb bringt eine Änderung von \leftmargin hier nix, wird ja überschrieben ... d. h. evtl akkumulieren sich diese \leftmargin{i--n} auch, so genau hab ich da nicht geschaut.

MfG

Legion
25-08-2009, 20:02
alles klar, habs verstanden :)