PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahlen nach Komma ausrichten



mic
31-05-2013, 20:05
In meinen Tabellen sollten sämtliche Zahlen nach dem Komma ausgerichtet sein (d.h. Komma sollen exakt untereinander angeordnet sein). Funktioniert dies mit der tabularx Umgebung? Beispiel siehe unten.

Vielen Dank für eure Hinweise bereits im Vorhinein.

mic


\documentclass[11pt,bibtotoc,abstracton,headinclude,BCOR=1cm]{scrreprt}

\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{fixltx2e}
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage[automark]{scrpage2}
\usepackage[margin=0.05\textwidth,format=plain,justification=R aggedRight,singlelinecheck=false,font={footnotesiz e,singlespacing,it},labelfont=bf,listformat=simple ,figurewithin=none,tablewithin=none,tableposition= top,skip=2pt]{caption}[2008/08/24]
\usepackage{lscape}
\usepackage{rotating}
\usepackage[]{acronym}
\usepackage{array}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{ltxtable}
\usepackage{ragged2e}
\usepackage{ltxtable}

\usepackage[table]{xcolor}
\definecolor{light-gray}{gray}{0.80}
\usepackage{charter}
\setkomafont{disposition}{\normalcolor\bfseries}

\usepackage{setspace}
%\onehalfspacing
\doublespacing
\typearea[current]{last}



\begin{document}

\begin{table}[htbp]
\caption{Hello}
\label{tab:fa1}
\vspace{0.2cm}
\setlength{\tabcolsep}{13pt}
\renewcommand{\arraystretch}{1.7}
\centering
\begin{tabularx}{4cm}{@{}>{\raggedright}p{1cm} >{\raggedright}p{1cm}@{}}
\toprule
\multicolumn{2}{l}{\textbf{XXXXXXX}} \tabularnewline
\textbf{Coef.} & \textbf{p-vlaue} \tabularnewline
\midrule
2.567 & -0.34 \tabularnewline
.3 & 1 \tabularnewline
\tabularnewline
\end{tabularx}
\end{table}

ctansearch
31-05-2013, 23:22
Ich schätze, das wird nur mit führenden und folgenden Nullen gehen., siehe Code. (Mein Code ist rot markiert)
Die Zahlen werden einfach nur nach links und rechts aufgefüllt und die Nullen werden per color ausgeblendet. (white statt green), hier nur zur Demo sichtbar gelassen. Schön wird so eine Tabelle natürlich nicht.


\documentclass[11pt,bibtotoc,abstracton,headinclude,BCOR=1cm]{scrreprt}
\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman,english]{babel}
\usepackage{fixltx2e}
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage[automark]{scrpage2}
\usepackage[margin=0.05\textwidth,format=plain,justification=R aggedRight,singlelinecheck=false,font={footnotesiz e,singlespacing,it},labelfont=bf,listformat=simple ,figurewithin=none,tablewithin=none,tableposition= top,skip=2pt]{caption}[2008/08/24]
\usepackage{lscape}
\usepackage{rotating}
\usepackage[]{acronym}
\usepackage{array}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{ltxtable}
\usepackage{ragged2e}
\usepackage{ltxtable}
\usepackage[table]{xcolor}
\definecolor{light-gray}{gray}{0.80}
\usepackage{charter}
\setkomafont{disposition}{\normalcolor\bfseries}
\usepackage{setspace}
%\onehalfspacing
\doublespacing
\typearea[current]{last}
\newcommand{\leadzero}{}
\newcommand{\followzero}{}
\newcommand{\leadzerocolor}{\textcolor{green}}
\newcommand{\followzerocolor}{\textcolor{green}}
\def\cp[#1.#2]{
\ifnum #1<10 \def\leadzero{\leadzerocolor{000000}}\fi
\ifnum #1>9 \ifnum #1<100 \def\leadzero{\leadzerocolor{00000}}\fi\fi
\ifnum #1>99 \ifnum #1<1000 \def\leadzero{\leadzerocolor{0000}}\fi\fi
\ifnum #1>999 \ifnum #1<10000 \def\leadzero{\leadzerocolor{000}}\fi\fi
\ifnum #1>9999 \ifnum #1<100000 \def\leadzero{\leadzerocolor{00}}\fi\fi
\ifnum #1>99999 \ifnum #1<1000000 \def\leadzero{\leadzerocolor{0}}\fi\fi
\ifnum #1>999999 \ifnum #1<10000000 \def\leadzero{\leadzerocolor{}}\fi\fi

\ifnum #2<10 \def\followzero{\followzerocolor{000000}}\fi
\ifnum #2>9 \ifnum #1<100 \def\followzero{\followzerocolor{00000}}\fi\fi
\ifnum #2>99 \ifnum #1<1000 \def\followzero{\followzerocolor{0000}}\fi\fi
\ifnum #2>999 \ifnum #1<10000 \def\followzero{\followzerocolor{000}}\fi\fi
\ifnum #2>9999 \ifnum #1<100000 \def\followzero{\followzerocolor{00}}\fi\fi
\ifnum #2>99999 \ifnum #1<1000000 \def\followzero{\followzerocolor{0}}\fi\fi
\ifnum #2>999999 \ifnum #1<10000000 \def\followzero{\followzerocolor{}}\fi\fi
{\leadzero #1.#2 \followzero}}

\begin{document}
\centering
\begin{table}[htbp]
\begin{tabularx}{8cm}{ll}
\toprule
\multicolumn{2}{l}{\textbf{XXXXXXX}} \tabularnewline
\textbf{Coef.}&\textbf{p-value} \tabularnewline
\midrule
\cp[3.564]&\cp[1.564]\tabularnewline
\cp[31.5896]&\cp[31.5688]\tabularnewline
\cp[333.4]&\cp[833.4]\tabularnewline
\cp[3333.4]&\cp[9333.4]\tabularnewline
\cp[33333.4]&\cp[93333.4]\tabularnewline
\cp[333333.4]&\cp[93333.4]\tabularnewline
\cp[3333333.4]&\cp[93333.4]\tabularnewline
\cp[3.564]&\cp[1.564]\tabularnewline
\cp[31.5896]&\cp[31.5688]\tabularnewline
\cp[33.4]&\cp[83443.4]\tabularnewline
\cp[3333.4]&\cp[9433.4]\tabularnewline
\cp[33.4]&\cp[933.4]\tabularnewline
\cp[3333.4]&\cp[93.4]\tabularnewline
\cp[3333.4]&\cp[9333.4]\tabularnewline
\end{tabularx}
\end{table}
\end{document}

bobmalaria
01-06-2013, 00:45
das dcolumn paket sowohl als auch das siunitx paket bieten funktionen um zahlen am dezimaltrenner auszurichten.

ich würde das siunitx paket empfehlen mit dem sich auch sonst im text hervorragend zahlen und einheiten darstellen lassen.

gruss

ctansearch
01-06-2013, 02:02
Etwas hübscher und trotzdem handgemacht geht es mit:

\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath,amssymb,amstext}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{xcolor}
\newcommand{\leadspace}{}
\def\cp[#1.#2]{
\ifnum #1<10 \def\leadspace{\hspace{6.00em}}\fi
\ifnum #1>9 \ifnum #1<100 \def\leadspace{\hspace{5.5em}}\fi\fi
\ifnum #1>99 \ifnum #1<1000 \def\leadspace{\hspace{5.0em}}\fi\fi
\ifnum #1>999 \ifnum #1<10000 \def\leadspace{\hspace{4.5em}}\fi\fi
\ifnum #1>9999 \ifnum #1<100000 \def\leadspace{\hspace{4.0em}}\fi\fi
\ifnum #1>99999 \ifnum #1<1000000 \def\leadspace{\hspace{3.5em}}\fi\fi
\ifnum #1>999999 \ifnum #1<10000000 \def\leadspace{\hspace{3.0em}}\fi\fi
{\leadspace #1\textcolor{red}{\hspace{1pt}\vline}.#2}}%rote Linie nur zur Demo

\begin{document}
\centering
\begin{table}[htbp]
\begin{tabularx}{8cm}{ll}
\cp[3.564]&\cp[1.564]\tabularnewline
\cp[3.5896]&\cp[1.5688]\tabularnewline
\cp[3.4]&\cp[1.4]\tabularnewline
\cp[3.4]&\cp[1.4]\tabularnewline
\cp[3.4]&\cp[3.4]\tabularnewline
\cp[3.4]&\cp[3.4]\tabularnewline
\cp[3.4]&\cp[9.4]\tabularnewline
\cp[3.564]&\cp[771.564]\tabularnewline
\cp[3.5896]&\cp[1.5688]\tabularnewline
\cp[3.4]&\cp[1.4]\tabularnewline
\cp[3.4]&\cp[1.4]\tabularnewline
\cp[3.4]&\cp[3.4]\tabularnewline
\cp[3.4]&\cp[3.4]\tabularnewline
\cp[3.4]&\cp[3.4]\tabularnewline
\end{tabularx}
\end{table}
\end{document}

wobei man bei c-spalten und r-Spalten \hspace anpassen muß und natürlich müssen die Spalten breit genug sein, um die Zahlen aufzunehmen.

mic
02-06-2013, 09:42
Vielen Dank.

mic

rais
03-06-2013, 02:02
Moin moin,
das hat jetzt nichts mit Deinem Problem zu tun, aber




\begin{tabularx}{4cm}{@{}>{\raggedright}p{1cm} >{\raggedright}p{1cm}@{}}

solange Du keine X-Spalte verwendest, kannst Du genau so gut die tabular-Umgebung verwenden (siehe dazu auch die tabularx-Doku).

MfG