wie muss eine Spalte deklariert werden, so dass der Inhalt am Dezimalpunkt
ausgerichtet wird, und dann das ganze zentriert in einer Spalte mit
vorgegebener Breite gesetzt wird?
Es wäre ungefähr das Ergebnis des folgenden Algorithmus:
1. Nimm alle Einträge der Spalte, die einen Dezimalpunkt haben und richte
sie nach dem Dezimalpunkt aus.
2. Nimm das umschliessende Rechteck der Einträge und zentriere es innerhalb
der Spalte.
3. Zentriere alle anderen Einträge aus der Spalte.
Zusätzlich wäre es gut, das auch für variable Spaltenbreiten zu haben. Damit
meine ich die X Spaltenoption von tabularx.
Grüße
Christoph Bartoschek
> wie muss eine Spalte deklariert werden, so dass der Inhalt am Dezimalpunkt
> ausgerichtet wird, und dann das ganze zentriert in einer Spalte mit
> vorgegebener Breite gesetzt wird?
Kennst Du tabsatz.pdf? (Leicht mit Google zu finden)
Da ist eine Lösung für dieses und viele andere
Tabellenprobleme zu finden.
Gruß, Gunter
Schau Dir mal numprint an. Vielleicht kommt auch noch siunitx in
Frage, das aber so neu ist, dass ich es noch nicht kenne.
Grüße
Christoph
--
(La)TeX-FAQ: http://www.dante.de/faq/ +++ Minimalbeispiel erstellen
und Einführung in de.comp.text.tex: http://www.latex-einfuehrung.de/
+++ Veraltete Befehle, Pakete und andere Fehler:
ftp://ftp.dante.de/tex-archive/info/l2tabu/german/l2tabu.pdf
+++ Typografie-Regeln: http://zvisionwelt.de/downloads.html (1.6)
> Schau Dir mal numprint an. Vielleicht kommt auch noch siunitx in
> Frage, das aber so neu ist, dass ich es noch nicht kenne.
Beide Pakete lassen mich nicht die Breite der Spalte und die Ausrichtung in
der Spalte angeben. Ausrichtung kriegt man mit newcolumntype wohl noch hin,
aber ich sehe nicht, wie ich die Breite reinbekomme.
Christoph
Hallo,
irgendwie finde ich darin die Lösung nicht für das Problem. Könntest du mir
auch noch die Seite angeben?
Danke,
Christoph
> irgendwie finde ich darin die Lösung nicht für das Problem. Könntest du
> mir auch noch die Seite angeben?
Auf die Schnelle geschaut: z.B. Tabellen 4, 18 und 22.
Schau in tabsatz.tex, um zu sehen, wie es genau geht.
Man braucht anscheinend dcolumn.sty. Man kann sogar den
Dezimalpunkt ersetzen: im Quelltext verwendet man einen
Punkt, im Dokument erscheint stattdessen ein Komma.
Hab' es auch schon lange nicht mehr benutzt.
Gruß, Gunter
> Hallo,
> wie muss eine Spalte deklariert werden, so dass der Inhalt am Dezimalpunkt
> ausgerichtet wird, und dann das ganze zentriert in einer Spalte mit
> vorgegebener Breite gesetzt wird?
Versuch' mal, Dir aus folgendem Codeschnipsel etwas abzuleiten.
Das sollte eigentlich sein, was Du suchst, oder?
Jürgen
\begin{tabularx}{\linewidth}{@{}lCCd{2.2}@{}}
\toprule
$M$ & $\mquer (X)$ & $R$ & \multicolumn{1}{C}{$r$} \\
& bit/Symbol & bit/Symbol & \multicolumn{1}{c}{\%} \\
\cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3}\cmidrule(l){4-4}
0 & 2,000 & 0,705 & 35.3 \\
1 & 1,400 & 0,105 & 7.50 \\
2 & 1,335 & 0,040 & 3.00 \\
3 & 1,309 & 0,014 & 1.10 \\
\bottomrule
\end{tabularx}
Wenn Du die auskommentierten tabular*-Zeilen nutzt, wird die Tabelle auf
Seitenbreite gestreckt.
Grüße
Burkhard
\documentclass{scrartcl}
\usepackage{lmodern,siunitx,booktabs,numprint}
\begin{document}
%\begin{tabular*}{1.0\textwidth}{@{\extracolsep\fill}%
\begin{tabular}{%
n{3}{0}% Zahlen ohne Dezimalstelle erhalten sonst ein
% Dezimaltrenner. Deklaration aus numprint.sty.
s[tabalign=centre,tabformat=1.2]%
s[tabalign=right,tabformat=1.2]%
s[tabalign=left,tabformat=1.2,decimalsymbol=comma]%
s%
}%
%
\toprule
%
{$\dot{\mathrm{V}}$}
&{H$_{\mathrm{GHDP{,}1}}$}
&{$\dot{\mathrm{V}}_{\mathrm{GHDP{,2}}}$}
&{H$_{\mathrm{GHDP_{berechnet}}}$}
&{$\mathrm{c_{s}}$}\\
%
\midrule
0 & 0,00 & 0,00 & 0,00 & 0,00 \\
80 & 2,30 & 3,13 & 4,28 & 2,83 \\
100 & 3,30 & 4,50 & 4,97 & 3,54 \\
\bottomrule
\end{tabular}
% \end{tabular*}
\label{tab:A10-1}
\end{document}
> \begin{tabularx}{\linewidth}{@{}lCCd{2.2}@{}}
> \toprule
> $M$ & $\mquer (X)$ & $R$ & \multicolumn{1}{C}{$r$} \\
> & bit/Symbol & bit/Symbol & \multicolumn{1}{c}{\%} \\
> \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3}\cmidrule(l){4-4}
> 0 & 2,000 & 0,705 & 35.3 \\
> 1 & 1,400 & 0,105 & 7.50 \\
> 2 & 1,335 & 0,040 & 3.00 \\
> 3 & 1,309 & 0,014 & 1.10 \\
> \bottomrule
> \end{tabularx}
Hier erkennt meine installation das C nicht. Welches Paket muss ich
einbinden?
> Christoph Bartoschek wrote:
>
>> irgendwie finde ich darin die Lösung nicht für das Problem. Könntest du
>> mir auch noch die Seite angeben?
>
> Auf die Schnelle geschaut: z.B. Tabellen 4, 18 und 22.
>
> Schau in tabsatz.tex, um zu sehen, wie es genau geht.
> Man braucht anscheinend dcolumn.sty. Man kann sogar den
> Dezimalpunkt ersetzen: im Quelltext verwendet man einen
> Punkt, im Dokument erscheint stattdessen ein Komma.
Danke fürs Nachschauen. Leider wird in allen Beispielen die Spalte nur so
breit wie der Inhalt. Ich möchte aber die Breite selbst bestimmen, oder von
tabularx berechnen lassen.
Gruß
Christoph
> Christoph Bartoschek schrieb:
>> Christoph Bier wrote:
>>
>>> Schau Dir mal numprint an. Vielleicht kommt auch noch siunitx in
>>> Frage, das aber so neu ist, dass ich es noch nicht kenne.
>>
>> Beide Pakete lassen mich nicht die Breite der Spalte und die Ausrichtung
>> in der Spalte angeben. Ausrichtung kriegt man mit newcolumntype wohl noch
>> hin, aber ich sehe nicht, wie ich die Breite reinbekomme.
>>
>> Christoph
>>
>
> Wenn Du die auskommentierten tabular*-Zeilen nutzt, wird die Tabelle auf
> Seitenbreite gestreckt.
Danke für das Beispiel, aber ich möchte die Spalten mit den Zahlen von
tabularx strecken lassen. In deinem Beispiel sind die Spalten so breit, wie
der Inhalt.
Gruß
Christoph
> Danke für das Beispiel, aber ich möchte die Spalten mit den Zahlen von
> tabularx strecken lassen. In deinem Beispiel sind die Spalten so
> breit, wie der Inhalt.
Die X-Spalte kann ja auch die nächste Spalte rechts neben der d-Spalte
sein.
--
Uwe
> Hier erkennt meine installation das C nicht. Welches Paket muss ich
> einbinden?
Verzeihung, das stammt aus meinem eigenen columns.sty und sieht so aus:
% Spaltendefinition zentriert für tabularx
% 29. Oktober 2000
\newcolumntype{C}{>{\centering\arraybackslash}X}
Jürgen
Ok, das wäre ein Hack. Die X Spalten als variable Puffer verwenden. Die
leeren Spalten sind aber schon lästig einzutippen.
Christoph