PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dcolumn in tabularx



Gurke
10-02-2008, 12:19
Hallo Leute,

habe ein kleines Problem und hoffe das ihr mir helfen könnt.

Und zwar möchte ich X-Spalten so umdefinieren, dass ich sie als D-Spalten benutzen kann.

Ziel ist eine Tabelle in der sich die Spalten automatisch an an eine definierte Gesammtbreite anpassen. Die Spalten selber möchte ich dann nur noch mit d{1.1} z.B. definieren. Kann d in diesem Fall überhaupt eine X-spalte sein?

Falls dies nicht verständlich war nochmal anders.

1. Ausrichtung am Dezimaltrennzeichen
2. Ausrichtung zentriert

Spalten sollen aber alle gleich groß sein und sich an definierte Spaltenbreite ausrichten.

Spaltentitel würde ich über \multicolumn umdefinieren.

Habe es mit tabular* probiert, scheint aber nicht optimal

\makeatletter
\newcolumntype{d}[1]{>{\DC@{.}{.}{#1}}c<{\DC@end}}
\makeatother

\begin{table}[ht] \footnotesize
\centering

\begin{tabular*}{0.8\textwidth}{@{}r@{\extracolsep \fill}d{3.1}@{\extracolsep\fill}d{3.1}@{\extracols ep\fill}d{1.2}l@{}} \\\toprule

\multicolumn{1}{c}{}&\multicolumn{1}{c} {\textsf{V$_{max}$}} &\multicolumn{1}{c} {\textsf{k$_{cat}$}} &\multicolumn{1}{c} {\textsf{Km}} & \multicolumn{1}{c@{}}{ \textsf{k$_{cat}$/Km}}\\\cmidrule{2-5}
\multicolumn{1}{c}{}&\multicolumn{1}{c} {\tiny\textsf{[U/mg]}} &\multicolumn{1}{c} {\tiny\textsf{[s$^{-1}$]}} &\multicolumn{1}{c} {\tiny\textsf{[mmol/l]}} & \multicolumn{1}{c@{}}{\tiny \textsf{[M$^{-1}$s$^{-1}$]}}\\\cmidrule{1-5}

5x750 & 50.4 & 29.4 & 5.38 & 5.46E+03 \\
2x750 & 348.7 & 203.4 & 3.27 & 6.23E+04 \\
0.5x750& 367.7 & 214.5 & 3.29 & 6.53E+04 \\
0.1x750 & 314.0 & 183.2 & 3.86 & 4.75E+04 \\ \addlinespace
5x2000 & 58.1 & 33.9 & 5.82 & 5.83E+03 \\
2x2000 & 334.4 & 195.1 & 6.02 & 3.24E+04 \\
0.5x2000 & 392.9 & 229.2 & 3.22 & 7.12E+04 \\
0.1x2000 & 334.1 & 194.9 & 3.48 & 5.60E+04 \\ \addlinespace
\multicolumn{1}{c}{WT} & 376.7 & 219.7 & 2.90 & 7.58E+04 \\\bottomrule

\end{tabular*}

\caption{Kinetik Pegylierung DFPase}
\label{default}
\end{table}


Schon mal vielen Dank für Anregungen

Gruß


Gurke

Gurke
11-02-2008, 09:40
Hat keiner eine Idee, oder war das ganze zu missverständlich??

sofa-surfer
11-02-2008, 10:04
Hallo,

vielleicht ja in diesem Fall so?



\documentclass{article}
\usepackage{dcolumn}
\usepackage{booktabs}
\usepackage{tabularx}

\makeatletter
\newcolumntype{d}[1]{>{\DC@{.}{.}{#1}}c<{\DC@end}}
\makeatother
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{C}{>{\centering\sffamily\arraybackslash}X}


\begin{document}
\begin{table}[ht] \footnotesize
\centering


\begin{tabularx}{.6\textwidth}{@{}Rd{3.1}d{3.1}d{1 .2}c@{}} \\\toprule

&\multicolumn{1}{C}{\textsf{V$_{max}$}} &\multicolumn{1}{C}{k$_{cat}$} &\multicolumn{1}{C}{Km} & \multicolumn{1}{C@{}}{k$_{cat}$/Km}\\
\cmidrule{2-5}
%
&\multicolumn{1}{C}{\tiny[U/mg]} &\multicolumn{1}{C}{\tiny[s$^{-1}$]} &\multicolumn{1}{C}{\tiny[mmol/l]} & \multicolumn{1}{C@{}}{\tiny[M$^{-1}$s$^{-1}$]}\\
\cmidrule{1-5}

5x750 & 50.4 & 29.4 & 5.38 & 5.46E+03 \\
2x750 & 348.7 & 203.4 & 3.27 & 6.23E+04 \\
0.5x750& 367.7 & 214.5 & 3.29 & 6.53E+04 \\
0.1x750 & 314.0 & 183.2 & 3.86 & 4.75E+04 \\ \addlinespace
5x2000 & 58.1 & 33.9 & 5.82 & 5.83E+03 \\
2x2000 & 334.4 & 195.1 & 6.02 & 3.24E+04 \\
0.5x2000 & 392.9 & 229.2 & 3.22 & 7.12E+04 \\
0.1x2000 & 334.1 & 194.9 & 3.48 & 5.60E+04 \\ \addlinespace
\multicolumn{1}{c}{WT} & 376.7 & 219.7 & 2.90 & 7.58E+04 \\\bottomrule

\end{tabularx}

\caption{Kinetik Pegylierung DFPase}
\label{default}
\end{table}

\end{document}


Matthias

Gurke
11-02-2008, 17:19
Danke Matthias, so habe ich mit das vorgestellt.

Nur noch eine zweite Frage, wenn ich eine einzelne Zelle mit fetter Schrift dargestellt haben möchte /textbf{} rückt mir der wert dann aus der reihe heraus. Wie soll ich es anstellen??

Was macht \sffamily ?

Gruss


Gurke

sofa-surfer
11-02-2008, 17:49
Danke Matthias, so habe ich mit das vorgestellt.

Nur noch eine zweite Frage, wenn ich eine einzelne Zelle mit fetter Schrift dargestellt haben möchte /textbf{} rückt mir der wert dann aus der reihe heraus. Wie soll ich es anstellen??


Das Problem ist der Punkt zwischen den Vor- und Nachkommazahlen. Wie du dir sicher denken kannst, handelt es sich dabei um keinen normalen Punkt, denn der wird ja für das Aufsplitten und Anordnen der Tabelleneinträge geparst und dann intern wieder mit dem gewünschten Trenner ersetzt. Wenn du nun den ganzen Eintrag in \textbf{xx.xx} setzt, dann gibt es hier Probleme ...
Was du tun kannst, ist die Vor- und Nachkommazahlen getrennt in \textbf einzufassen. Korrekter wäre wahrscheinlich ein \mathbf, denn in den d-Spalten befindest du dich im Mathemodus.


Was macht \sffamily ?

Auf serifenlose Schrift umstellen (vorher hattest du \textsf, was sich aber schlecht in die globale Spaltendefinition einbauen lässt)

Matthias