PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem beim vertikalen zentrieren einer Tabellenzeile mit \multicolumn



latexuser78
10-02-2005, 09:28
Hallo!

Bei der Darstellung von physikalischen Einheiten in einer Tabelle hatte ich das
Problem, dass die Einheitenbrüche oben und unten an den Tabellenrand
anstiessen. Nun habe ich \extrarowheight und \multicolumn eingesetzt, wobei ich mit der Option
m die Zeile zentriere:

[..]
\usepackage{array}
[..]
\setlength{\extrarowheight}{0.6em}
[..]
\begin{tabular}{|p{4cm}|p{2cm}|p{1cm}|p{3cm}|}
\hline
\multicolumn{1}{|m{4cm}}{Innendurchmesser} &
\multicolumn{1}{|m{2cm}}{$D_i$} &
\multicolumn{1}{|m{1cm}}{[$mm$]} &
\multicolumn{1}{|m{3cm}|}{$\,\pm\,$} \\
\hline

Das funktioniert aber nicht, die Zeile ist nach wie vor nicht zentriert.
Wenn ich aber die erste Tabellenzelle nicht zentriere, dann sind die folgenden
drei Zellen auf einmal zentriert:

\begin{tabular}{|p{4cm}|p{2cm}|p{1cm}|p{3cm}|}
\hline
\multicolumn{1}{|b{4cm}}{Innendurchmesser} &
\multicolumn{1}{|m{2cm}}{$D_i$} &
\multicolumn{1}{|m{1cm}}{[$mm$]} &
\multicolumn{1}{|m{3cm}|}{$\,\pm\,$} \\
\hline

Ein Bug bei MikTex?

Wenn jemand eine andere Idee hat, 1) die Zeilenhöhe zu vergrößern und
2) die Textzeile darin vertikal zu zentrieren, möge er bitte helfen!
Das wäre super nett! :)

Gruß
Torsten

edico
10-02-2005, 12:36
... wenn du auf multicolumn fixiert bist, dann überlies dieses posting. Ansonsten hier eine Lösung für deine 2 Problembeschreibungen (Ob das macro auf multicolumn adaptiert werden kann, überlass ich dann dir):
...
%--- Zeilenhoehe in Tabellen -------------------------------------------------
\makeatletter
\newcommand*{\Formel}[1]{%
\begingroup
\setbox\@tempboxa=\hbox{%
\ensuremath{%
\displaystyle
#1%
}%
}%
% Hinzufuegung von 1ex zu Hoehe (\ht)
% und Tiefe (\dp) der Box.
% Umweg ueber \dimen@ erforderlich,
% da man \ht, und \dp nur etwas zuweisen,
% aber nichts hinzufuegen kann.
\setlength{\dimen@}{\ht\@tempboxa}%
\addtolength{\dimen@}{1ex}%
\setlength{\ht\@tempboxa}{\dimen@}%
\setlength{\dimen@}{\dp\@tempboxa}%
\addtolength{\dimen@}{1ex}%
\setlength{\dp\@tempboxa}{\dimen@}%
\usebox\@tempboxa
\endgroup
}
\makeatother
%-----------------------------------------------------------------------------
...
\begin{table}[!hp]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
Innendurchmesser &\Formel{D_i} &\Formel{[mm]} &\Formel{\,\pm\,} \\
\hline
\end{tabular}
\caption{Physikalische Einheiten}
\end{table}
...
edico

latexuser78
17-02-2005, 17:58
Danke, Edico, Dein Vorschlag hat geklappt!

Gruß
Torsten

latex-laie
20-04-2006, 14:54
Hallo!

Ich habe ein ähnliches Problem. Ich möchte jedoch Brüche vertikal zentrieren.
Leider habe ich es bei ihnen wie oben beschrieben nicht hinbekommen, zumal Zähler und Nenner der Brüche plötzlich für sich so groß sind wie einzelne Ziffern. Zudem wird auch beispielsweise der Abstand des Zählers zum Bruchstrich unwillentlich vergrößert.

Kann mir jemand weiterhelfen???

Mein Minimalbeispiel:




\begin{tabular}{*{9}{|c}|}\hline

Nummer & 1 & 2 & 3 & 4 & 5 & 6 & 7 & \ldots\\\hline
Bruch & $\frac{1}{2}$ & $\frac{1}{3}$ & $\frac{2}{3}$ & $\frac{1}{4}$ & $\frac{2}{4}$ & $\frac{3}{4}$ & $\frac{1}{5}$ & \ldots\\\hline

\end{tabular}


Die fettgedruckten Brüche würde ich gern vertikal zentriert haben, damit sie nicht oben bzw. unten an der Linie "kleben"...:confused:
Geht das?

Danke schon einmal für die Hilfe.

Gruß, Katha

bischi
20-04-2006, 15:04
1) Dies ist kein Minimalbeispiel (aber schon wesentlich besser, als vieles, was ich bis jetzt gesehen hab ;) Minimalbeispiel = 1: Minimal, 2: Kompilierbar, ohne weiteren Code hinzuzufügen)

2) Zum Problem: Eine wirklich saubere Lösung hab ich nicht - zur Not könntest dus aber mit nem \vspace*{2mm} versuchen.

MfG Bischi

edico
20-04-2006, 17:25
@bischi: so geht das nicht
Nimm eine parbox, mache ein kleines Makro, so dass du nicht immer alles neu schreiben musst.
edico

s174084
23-08-2007, 15:28
Hallo!

Vielleicht kann mir ja jemand weiter helfen, bis jetzt hat noch nichts was ich hier gefunden habe so richtig geklappt. :(

Im folgenden ist mein Header und die entsprechende Tabelle (leider wird das ne recht große Tabelle).

\documentclass[pdftex,a4paper,appendixprefix,bibtotocnumbered,lis tstotocnumbered]{scrreprt}
...
\usepackage{array}
\usepackage{tabularx}
\usepackage{float}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{multicol}
\usepackage{longtable}
\usepackage{rotating}
\usepackage[aboveskip=0.5cm,belowskip=1.5cm]{caption}

\begin{table}[htbp]
\scriptsize
\centering
$\begin{tabular}{|p{0.06\textwidth}|p{0.2\textwidt h}|p{0.15\textwidth}|p{0.25\textwidth}|p{0.15\text width}|}
\hline
{\textbf{Probe}}&{\textbf{Precursor}}&{\textbf{Lösemittel/\newline Zusatz} } & {\textbf{Bedingungen/ \newline Nachbehandlung}} & {\textbf{Produkt}} \\
\hline
VC1 & Dy(Oleat)_3 & Hexan 20ml \newline NH_3 1ml & 24h/250°C, \newline pH=9 & \\ \hline
VC6 & Gd3(O^tBu)_9HO^tBu_2 & ^iPrOH 20ml \newline KOH 1ml & 24h/250°C & \\ \hline
VC8 & Dy3(O^tBu)_9HO^tBu_2/ Fe_2O^tBu_6 (1:3)& ^iPrOH~20ml,\newline THF~1ml \newline KOH 1ml & 24h/250°C & \\ \hline
VC13 & Gd3(O^tBu)_9HO^tBu_2 & MeOH 20ml & 3h/Rückfluß & \\ \hline
\end{tabular}$
\normalsize
\caption{Übersicht von Umsetzungen der Vorstufen zum Material}
\label{tab:zersetzungen}


So hoffe das ist net zu verwirrend. :o Hätte auf jeden Fall gerne die Einträge v.a. in der 1. und 2. Spalte vertikal zentriert.

Schon mal Danke für eure Hilfe :)
Grüßle Vicky

edico
23-08-2007, 22:15
... meinst Du es so:

\documentclass{report}%{scrreprt}
\usepackage{array,booktabs,calc}
\usepackage[belowskip=9pt]{caption}
\begin{document}
here comes the text

\begin{table}[htbp]
\centering
\caption{\"Ubersicht von Umsetzungen der Vorstufen zum Material}
\label{tab:zersetzungen}
\small
\begin{tabular}{m{0.1\textwidth-2\tabcolsep}m{0.3\textwidth-2\tabcolsep}m{0.2\textwidth-2\tabcolsep}m{0.25\textwidth-2\tabcolsep}m{0.15\textwidth-2\tabcolsep}}
\toprule
{\textbf{Probe}} &
{\textbf{Precursor}} &
{\textbf{L\"osemittel/ \newline Zusatz} } &
{\textbf{Bedingungen/ \newline Nachbehandlung}} &
{\textbf{Produkt}} \\
\midrule
$VC1$ & $Dy(Oleat)_3$ & $Hexan 20ml$ \newline $NH_3 1ml$ & $24h/250C$, \newline $pH=9$ & \\ \midrule
$VC6$ & $Gd3(O^tBu)_9HO^tBu_2$ & $^iPrOH 20ml$ \newline $KOH 1ml$ & $24h/250C$ & \\ \midrule
$VC8$ & $Dy3(O^tBu)_9HO^tBu_2$ \newline $Fe_2O^tBu_6 (1:3)$ & $^iPrOH~20ml$,\newline $THF~1ml$ \newline $KOH 1ml$ & $24h/250C$ & \\ \midrule
$VC13$ & $Gd3(O^tBu)_9HO^tBu_2$ & $MeOH 20ml$ & $3h/Rckflu$ & \\
\bottomrule
\end{tabular}
\end{table}

here goes the text
\end{document}

... also m-Spalten!

edico

P.S. und bitte nächstes Mal ein Minimalbeispiel statt Codeschnipsel mit überfüllten unwichtigen packages anbieten. Warum - ist mehrfach beschrieben worden und kann unter Schlagwort nachgelesen werden, sonst s. http: //www.minimalbeispiel.de/

P.P.S.
Und weil's so schön ist ... Die nachfolgende Variation halte ich für noch übersichtlicher:
...
$VC1$ & $Dy(Oleat)_3$ & $Hexan 20ml$ \newline $NH_3 1ml$ & $24h/250C$, \newline $pH=9$ & \tabularnewline\tabularnewline
%\midrule
$VC6$ & $Gd3(O^tBu)_9HO^tBu_2$ & $^iPrOH 20ml$ \newline $KOH 1ml$ & $24h/250C$ & \tabularnewline\tabularnewline
%\midrule
$VC8$ & $Dy3(O^tBu)_9HO^tBu_2$ \newline $Fe_2O^tBu_6 (1:3)$ & $^iPrOH~20ml$,\newline $THF~1ml$ \newline $KOH 1ml$ & $24h/250C$ & \tabularnewline\tabularnewline
%\midrule
$VC13$ & $Gd3(O^tBu)_9HO^tBu_2$ & $MeOH 20ml$ & $3h/Rckflu$ & \tabularnewline
\bottomrule
...