PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle: Zellenhöhe, Textposition



Fite
08-11-2015, 07:54
Hallo zusammen,

für mein Tabellenbeispiel würde ich gerne noch

- die Zellenhöhe durch einen Zentimeterwert direkt vorgeben
- die Texte "Text 1" und "Text 2" vertikal und horizontal zentrieren
- die Textfelder in der rechten Spalte vertikal zentrieren, aber linksbündig lassen

Ist soetwas möglich?

Viele Grüße
Fite



%% Dokumentklasse
\documentclass[11pt,a4paper]{article}

%% Pakete allgemein
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

% Seitenlayout
\usepackage{geometry}
\geometry{a4paper, top=25mm, left=25mm, right=25mm, bottom=20mm, headsep=10mm, footskip=12mm}
\textwidth160mm
\textheight252mm
\headheight5.5mm

%% Tabellen
\usepackage{tabularx}
\usepackage{colortbl}
\definecolor{hgrau}{rgb}{0.85,0.85,0.85}


\begin{document}

\begin{table}[htbp]
\centering

\begin{tabular}{|p{3cm}|p{10cm}|}\hline
\cellcolor{hgrau}\textbf{Text 1} & In dieser Zelle steht ein relativ langer Text, der wahrscheinlich über zwei Zeilen geht.\\\hline\hline
\cellcolor{hgrau}\textbf{Text 2} & In dieser Zelle steht ein relativ langer Text, der wahrscheinlich über zwei Zeilen geht.\\\hline
\end{tabular}
\caption{Beschriftung der Tabelle}
\end{table}

\end{document}

rais
10-11-2015, 17:21
für mein Tabellenbeispiel würde ich gerne noch

- die Zellenhöhe durch einen Zentimeterwert direkt vorgeben

Innerhalb einer Zelle könntest Du einfach \rule{0pt}{Höhe} verwenden oder dem benachbarten \\ ein optionales Argument mitgeben. Evtl. genügt auch ein Vergrössern von \arraystretch (>1).
Vllt suchst Du auch so etwas wie \extrarowheight (vgl. `texdoc array'), mit dem Du etwas (mehr) Abstand zwischen Text und einer etwaigen Linie darüber bekämst.
Meiner einer nutzt hier meist das booktabs-Paket (vgl. `texdoc booktabs'), damit hätte ich das Problem gar nicht erst, OTOH nutze ich auch keine vertikalen Linien in Tabellen ...

Apropos vertikale (und doppelte) Linien: schau Dir mal mori, tabsatz und/oder die booktabs-Aneitung an.
Mori/tabsatz findest Du unter den Top Ten im HowTo (http://www.mrunix.de/forums/showthread.php?53764-How-To-Vom-LaTeX-Neuling-zum-LaTeX-Profi-in-nullkommanix-(oder-zumindest-fast-D)) verlinkt.

Wenn so eine Höhenangabe aber per Spaltendeklaration erfolgen soll, müsstest Du Dir erstmal einen passenden Spaltentyp deklarieren, etwa


\newcolumntype{V}[2]{>{\minipage[c][#1][c]{#2}\centering\arraybackslash}c<{\endminipage}}

-- auch \newcolumntype benötigt das array-Paket, das Du hier aber nicht selbst zu laden brauchst (tabularx/colortbl fordern das array-Paket bereits an).
Danach könntest Du dann mit V{Höhe}{Breite} statt p{Breite} in der Spaltendeklaration eine entsprechende Spalte anfordern.


- die Texte "Text 1" und "Text 2" vertikal und horizontal zentrieren
- die Textfelder in der rechten Spalte vertikal zentrieren, aber linksbündig lassen

cm{Breite2} oder
>{\centering}m{Breite1}m{Breite2}
oder halt
V{Höhe}{Breite1}m{Breite2}
in der Spaltendeklaration sollten so tun.
``Linksbündig'' wird die zweite Spalte dadurch allerdings nicht (und war sie als p-Spalte auch nicht), vielmehr bleibt hier Blocksatz aktiv.
Wenn die zweite Spalte wirklich linksbündig sein soll, ergänze die zweite Spaltendeklaration zu
>{\raggedright\arraybackslash}m{Breite2}

>{..}, <{..} und m{..} hast Du übrigens auch dem array-Paket zu verdanken.

VG

Fite
11-11-2015, 09:34
Vielen Dank! :)