PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstand zur Schrift in Tabellen



Lenny
18-04-2011, 10:01
Hallo,

wenn ich mit LaTex Tabellen erstelle, dann ist zwischen der Schrift und der darüber liegenden Linie (von der Tabelle) kein Platz/Abstand.

Dies sieht nicht so schön aus. Wie kann ich dort einen Abstand erzwingen oder selber definieren???

Xenara
18-04-2011, 10:32
Mach bitte ein Minimalbeispiel (http://www.mrunix.de/forums/showthread.php?t=66921), das das Problem zeigt. Wir wissen ja schliesslich überhaupt nicht, wie du deine Tabellen überhaupt erzeugst.

u_fischer
18-04-2011, 10:40
Siehe Dokumenation von array.sty.

Schweinebacke
18-04-2011, 11:01
Siehe auch Paket booktabs (http://www.ctan.org/pkg/booktabs).

Lenny
18-04-2011, 11:37
Hallo,

die Tabelle erstelle ich so:



%Tabelle Projektauftrag
\begin{table}[htbp]
\label{tab:auftrag}
\begin{tabular}{|p{8cm}|p{8cm}|} %\hline
\hline \multicolumn{2}{|c|}{\LARGE\bf Projektauftrag}\\ \hline
%\tabularnewline[0pt] |
{\large\bf Projektsstartereignis:}
\begin{itemize}
\item Text
\end{itemize} &
{\large\bf Projektstarttermin:}
\begin{itemize}
\item datum
\end{itemize} \\ \hline

%\tabularnewline[0pt] |
{\large\bf Projektendereignis:}
\begin{itemize}
\item text
\end{itemize} &
{\large\bf Projektendtermin:}
\begin{itemize}
\item datum
\end{itemize} \\ \hline

%\tabularnewline[0pt]
{\large\bf Projektziele:}
\begin{itemize}
\item
\end{itemize} &
{\large\bf Nicht-Projektziele:}
\begin{itemize}
\item
\end{itemize} \\ \hline

%\tabularnewline[0pt]
{\large\bf Hauptaufgaben:}
\begin{itemize}
\item
\end{itemize} &
{\large\bf Projektressourcen und -kosten:}
\begin{itemize}
\item
\end{itemize} \\ \hline

%\tabularnewline[0pt]
{\large\bf Projektauftraggeber/in:}
\begin{itemize}
\item person
\end{itemize} &
{\large\bf Projektleiter/in:}
\begin{itemize}
\item person
\end{itemize} \\ \hline

\multicolumn{2}{|l|}{{\large\bf Projektteam:}} \\ \hline

\end{tabular}
\caption{Projektauftrag}
\end{table}
\newpage

%************************************************* *******************


Was auch nicht funktioniert, ist eine Liste in der multicolumn Zeile.

Lenny
19-04-2011, 09:29
Niemand eine Idee?

Wäre wirklich wichtig. Danke!

u_fischer
19-04-2011, 09:34
Niemand eine Idee?

Wäre wirklich wichtig. Danke!

Dann solltest du die Hinweise auf array + booktabs nicht ignorieren.

Lenny
19-04-2011, 16:51
Danke.

Aber geht es denn nicht auch ohne die Einbindung von irgendwelchen Paketen?

Wenn nicht, wie muss ich eines der beiden Varianten einbinden?
Ein Beispiel wäre hilfreich.

u_fischer
20-04-2011, 10:17
Aber geht es denn nicht auch ohne die Einbindung von irgendwelchen Paketen?

Du kannst dir selbstverständlich den Code, den diese Pakete anbieten, selbst schreiben. Aber im Ernst: Wenn du Probleme damit hast, Pakete einzubinden, verwende nicht ein modulare System wie LaTeX sondern z.B. context.


Ein Beispiel wäre hilfreich.

Das ist das Lesen der Dokumentation auch.

Lenny
21-04-2011, 08:23
Habe mich wohl falsch ausgedrückt.

Das Package habe ich versucht mit \package{longtable} einzubinden und dies dann auch in der Tabelle zu verwenden.

Jedoch scheint er dies nicht zu kennen, da die Fehlermeldungen beim pdflatex genau auf diese "neuen" Stellen verweisen.

Deshalb hätte ich gerne ein "einfaches" Beispiel dazu.

Schweinebacke
21-04-2011, 09:42
Wie man Pakete einbindet, ist in vielen Paket-Anleitungen und jeder LaTeX-Einführung, insbesondere auch in l2kurz (http://www.ctan.org/pkg/lshort-german), Abschnitt 2.6, zu finden. l2kurz ist das absolute Minimum dessen, was ein LaTeX-Anfänger gelesen haben sollte.

u_fischer
21-04-2011, 10:13
Das Package habe ich versucht mit \package{longtable} einzubinden

longtable? Ich habe dich auf array verwiesen und das bindet man mit \usepackage{array} ein.


Deshalb hätte ich gerne ein "einfaches" Beispiel dazu.

Und ich habe gerne kleine, vollständige (!) Beispiele, die das Problem demonstrieren, statt vager Problembeschreibungen und Codeschnipsel. Und ich hätte gerne einen Hinweis, dass du die Dokumentation von array mittlerweile zur Kenntnis genommen hast und zumindest weißt, welchen Befehl du einfügen willst.

fantex
21-04-2011, 13:31
Um das Einbinden des array-Paketes kommst Du wohl nicht herum.
\usepackage{array}Dann kannst Du eine Deklaration mit einem strut (zu Deutsch "Strebe") einfügen. Dies kann in Form einer leeren \mbox geschehen, die keine horizontale, wohl aber eine vertikale Ausdehnung hat. Hier ein Beispiel:


\begin{tabular}{|>{\mbox{\rule[0pt]{0pt}{15pt}}}l|c|r|}
\hline
A & B & C \\ \hline
Links & Mitte & Rechts \\
\hline
\end{tabular}

Noch einfacher ist es mit der Deklaration \extrarowheight. Durch:


\setlength\extrarowheight{4pt}
\begin{tabular}{|l|c|r|}
\hline
A & B & C \\ \hline
Links & Mitte & Rechts \\
\hline
\end{tabular}

erreichst Du, daß die Zeilenhöhe um 4pt erhöht wird.

Lenny
21-04-2011, 18:56
Danke für das Beispiel.

Der Code:


\setlength\extrarowheight{4pt}
\begin{tabular}{|l|c|r|}
\hline
A & B & C \\ \hline
Links & Mitte & Rechts \\
\hline
\end{tabular}

Gilt für alle Zeilen und Tabellen. Ich möchte nur die erste Zeile größer haben, da ich dort \LARGE\bf bei der Schrift verwende.

Kannst du mir die Zeile
\begin{tabular}{|>{\mbox{\rule[0pt]{0pt}{15pt}}}l|c|r|}
bitte erklären. Danke.

voss
22-04-2011, 07:19
Gilt für alle Zeilen und Tabellen. Ich möchte nur die erste Zeile größer haben, da ich dort \LARGE\bf bei der Schrift verwende.



\documentclass{article}
\begin{document}

\begin{tabular}{ l c r }\hline
\rule[-5mm]{0pt}{10mm}%
\Large A & B & C \\ \hline
Links & Mitte & Rechts \\\hline
\end{tabular}

\end{document}

Lenny
22-04-2011, 10:00
Danke. Wo kann ich nachlesen, was die einzelnen Optionen von
\rule[-5mm]{0pt}{10mm} bedeuten?

[-5mm] ?
{0pt} ?
{10mm} ?

rstuby
22-04-2011, 10:12
Zum Beispiel hier http://www.golatex.de/wiki/index.php?title=%5Crule
oder hier http://www.weinelt.de/latex/rule.html

Lenny
22-04-2011, 10:23
Danke. Die Erklärungen sind verständlich.

Allerdings funktioniert das Ganze nicht mit multicolumn.



\begin{table}[htbp]
\label{tab:organisation}
\begin{tabular}{|l|l|l|}
%\hline
\multicolumn{3}{c}{\large\bf Projekorganisation}\\[6pt] \hline
{\bf Projektrolle} & {\bf Aufgabenbereiche} & {\bf Name} \\ \hline
...
\end{tabular}
\caption{Projektorganisation}
\end{table}


Warum???

Sepp99
22-04-2011, 10:56
Geht doch:

\listfiles
\documentclass{article}
\begin{document}

\begin{table}[htbp]
\begin{tabular}{|l|l|l|}
\hline
\multicolumn{3}{|c|}{\rule[-7mm]{0pt}{15mm}\large\bf Projekorganisation}\\ \hline
{\bf Projektrolle} & {\bf Aufgabenbereiche} & {\bf Name} \\ \hline
1 & 2 & 3 \\
\end{tabular}
\caption{Projektorganisation}
\label{tab:organisation}

\end{table}
\end{document}
Übrigens \label immer nach \caption, sonst funktioniert das Referenzieren nicht.
Gruß, Sepp.-

rstuby
22-04-2011, 10:58
Geht das nicht auch mal wieder sehr viel schöner mit booktabs?


\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}

\begin{table}[htbp]
\label{tab:organisation}
\begin{tabular}{lll}
\toprule
\multicolumn{3}{c}{\large\bf Projekorganisation}\\ \midrule
{\bf Projektrolle} & {\bf Aufgabenbereiche} & {\bf Name} \\ \midrule
...&&\\
\bottomrule
\end{tabular}
\caption{Projektorganisation}
\end{table}
\end{document}

Das unterstützt allerdings keine senkrechten Linien, da diese heutzutage sowieso als sehr unschön und störend gelten.

Und das \toprule bringt irgendwie doch noch nicht ganz den Abstand, den ich gehofft hatte.
Innerhalb der Zelle eine Größenformatierung vorzunehmen ist anscheinend an sich schon problematisch.

UPD: Aber man kann den Trick mit \rule auch hier wieder anwenden:
\documentclass{article}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}

\begin{table}[htbp]
\label{tab:organisation}
\begin{tabular}{lll}
\toprule
\multicolumn{3}{c}{\rule[-5mm]{0pt}{10mm}\large\bf Projekorganisation}\\ \midrule
{\bf Projektrolle} & {\bf Aufgabenbereiche} & {\bf Name} \\ \midrule
...&&\\
\bottomrule
\end{tabular}
\caption{Projektorganisation}
\end{table}
\end{document}

fantex
22-04-2011, 10:59
Der Befehl \rule zeichnet eine Linie. Die Befehlsargumente geben 1. den Versatz, 2. die Breite und 3. die Höhe an. Hat diese Linie eine Breite von 0pt, wird diese nicht gezeichnet, dehnt die Zeile vertikal aber nach unten um den Versatz (-5mm) und nach oben um die Höhe. Wenn man diese vertikale Ausdehnung auf alle Tabellenzeilen anwenden möchte, kann man diese Linie in eine \mbox packen und in die Spaltendeklaration der \tabular-Umgebung aufnehmen; dies geschieht dann über >{}, wie in meinem Beispiel zuvor. Dies alles steht z. B. wunderbar im LaTeX-Begleiter von Frank Mittelbach und Michel Goossens, den ich Dir wärmstens empfehlen kann.

Sepp99
22-04-2011, 11:32
Noch eine Möglichkeit mit \cmidrule aus booktabs, um Tabellen aufzulockern:

\listfiles
\documentclass{article}
\usepackage{booktabs}
\begin{document}

\begin{table}[htbp]
\centering
\begin{tabular}{lll}
\toprule
\multicolumn{3}{c}{\rule[-7mm]{0pt}{15mm}\large\bf Projekorganisation}\\ \midrule
{\bf Projektrolle} & {\bf Aufgabenbereiche} & {\bf Name} \\ \cmidrule(r){1-1} \cmidrule(r){2-2} \cmidrule(r){3-3}
1 & 2 & 3 \\ \bottomrule
\end{tabular}
\caption{Projektorganisation}
\label{tab:organisation}

\end{table}
\end{document}

Sepp.-