PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Siunitx und fette Schrift



Mare
12-08-2010, 08:41
Hallo

ich habe hier eine Tabelle mit Hilfe des siunitx Packet. Mein Problem damit ist, dass ich gerne eine ganze Zeile mit Fetter Schrift haben möchte, diese dann aber nicht mehr rechtsbündig ausgerichtet wird, noch die Vorteile, des Tausendertrennzeichen mit sich bringt.
Gibt es hierdür einen speziellen Befehl?
Vielen Dank für Eure Hilfe

Mare

Hier ein Bespiel



\documentclass [12pt,a4paper,twoside]{scrartcl}
\usepackage {xcolor} % f�r farbe
\usepackage{colortbl}
\usepackage{array}
\usepackage {tabularx, ragged2e}
\usepackage {siunitx} % für Tausendertrennzeichen
\begin{document}
\newcolumntype{L}[1]{>{\hspace{0pt}\RaggedRight}p{#1}}

\begin{tabular} {
S[tabnumalign=right,tabformat=8.0, digitsep=period ] % Spalte 1
S[tabnumalign=right,tabformat=8.0, digitsep=period ] % Spalte 2
L{3cm} %Spalte 3
S[tabnumalign=right,tabformat=8.2, digitsep=period ] %Spalte 4
S[tabnumalign=right,tabformat=8.0, digitsep=period ] % Spalte5
}

12345 & 1234567 & Test Testf & 12345 & 12345678\\
\rowcolor[gray]{0.9}1234567 & 12345 & Test Test & 12345678 & 12345\\
12345 & 12345 & Test Test & 12345 & 1234567\\
\rowcolor[gray]{0.9} \bf1234567 & \textbf{\num{12345}} &\bf Test Test & \bf 12345 & \bf12345\\
1234567 & 12345 & Test Test & 12345 & 12345\\
\end{tabular}

\end{document}

bobmalaria
12-08-2010, 10:26
hi,

ich habe das gerade mal mit der neues v2 von siunitx versucht und es kommt zum gleichen verhalten. das hat eventuell damit zu tun das die zahlen mehr platz einnehmen als die normalen nummern bzw. das die meisten zahlen in der spalte kürzer sind als die vorreservierten 8 stellen.

ich habe einfach mal joseph (dem entwickler) geschrieben. vielleicht hat er eine idee.

gruss

bobmalaria
12-08-2010, 23:41
hi,

joseph hat mir eben zurückgeschrieben. ich habe dir mal die komplette nachricht angehängt. er hat auch eine lösung parat die ich soeben versucht habe. sie funktioniert soweit ich sehen kann wunderbar.


> In the first (gray) row, the number in the second column seems to be not
> aligned on the rigth as requested by the option. Do you have any idea
> why that happens? Is there a fix/work-around available?


Okay, the way that siunitx works with formatting is a little complex as it has to pick up which macros to expand and which not to. As e-TeX is required, I've taken the attitude that things 'not to expand' can be e-TeX \protected. For the case in hand, you therefore need to make \bfseries robust. Something like

\documentclass{article}
\usepackage{colortbl,etoolbox,siunitx,xcolor}
\robustify\bfseries
\sisetup{
detect-weight = true ,
locale = DE ,
}
\begin{document}

\begin{table}
\sisetup{
group-separator = . ,
table-format = 5.0 ,
table-number-alignment = right ,
}
\begin{tabular}{S[table-format = 8.0,table-number-alignment = right]SlSS}
\rowcolor[gray]{0.9}
\bfseries 1234567 & \bfseries 12345 &
\bfseries Test & \bfseries 12345 & \bfseries 12345 \\
1234567 & 12345 & Test & 12345 & 12345 \\
\end{tabular}
\end{table}

\end{document}

should do the job. I've got a bug fix of siunitx to do, so I'll add a note on this to the documentation. Let me know if the above works for you.

Mare
13-08-2010, 09:04
Oh vielen lieben Dank für die schnelle Hilfe! Ist schon viel besser.

Aber durch die fette Schrift werden die Zahlen etwas auseinader gezogen. Ist es möglich, dass sowohl die fette als auch die normale Schrift den gleichen Platz "verbrauchen", so dass die Tausendertrennzeichen immer untereinander stehen.
Dies würde die Lesbarkeit meiner Tabelle enorm verbessern, denn sie besteht aus mehreren Summen inklusive Zwischensummen.

Legion
13-08-2010, 09:51
Hm ... dann müsstest du entweder die nicht fetten Zahlen strecken, oder die fetten zusammenpferchen, beides fände ich optisch äußerst fragwürdig. Und ob man Lust hat einen Mittelweg zu finden ... naja ich hätte es nicht ;) Wenn es dich so stört, warum hast du überhaupt fette Zahlen? Könntest die ja auch normal einfärben. Dann wären sie noch hervorgehoben, aber das "Platzproblem" hätte sich erledigt.

u_fischer
13-08-2010, 15:17
Hm ... dann müsstest du entweder die nicht fetten Zahlen strecken, oder die fetten zusammenpferchen,

Oder wie die Dokumentation von siunitx eine Schrift benutzen, bei der bold + mager (fast) gleich breit läuft:


\documentclass{article}
\usepackage{colortbl,etoolbox,siunitx,xcolor,mathp azo}


\robustify\bfseries
\sisetup{
detect-weight = true ,
locale = DE ,
}
\begin{document}

abcabcabcabcabcabcabc

{\bfseries abcabcabcabcabcabcabc}


\begin{table}
\sisetup{ group-separator = . , table-format = 5.0 , table-number-alignment =
right , }
\begin{tabular}{S[table-format = 8.0,table-number-alignment = right,]SlSS}
\rowcolor[gray]{0.9}
\bfseries 1234567 & \bfseries 12345 &
\bfseries Test & \bfseries 12345 & \bfseries 12345 \\
1234567 & 12345 & Test & 12345 & 12345 \\
\end{tabular}
\end{table}


\end{document}

Mare
17-08-2010, 15:54
Vielen Dank für Eure Hilfe!