Die Frage ist ungefähr diese:Dezimalstellen in der Tabelle werden bei Fettdruck nicht mit der d-Spalte ausgerichtet
Ich möchte, dass bestimmte Zahlen in einer Tabelle mit dcolumn kursiv und mit den anderen ausgerichtet sind. Ich habe etwas Ähnliches ausprobiert wie das, was für fettgedruckte Zahlen vorgeschlagen wurde:
\newcolumntype{I}[3]{>{\textit\DC@{#1}{#2}{#3}}c<{\DC@end}}
Es funktioniert jedoch nicht.
Beispiel:
\documentclass[12pt]{article}
\usepackage{dcolumn}
\newcolumntype{.}{D{.}{.}{-1}}
\makeatletter
\newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
\begin{document}
\begin{tabular}{..}
\hline
1.5 & 0.19 \\
\multicolumn{1}{B{.}{.}{-1}}{2.75} & 4.2 \\
3.4 & \textit{8.0} \\
\hline
\end{tabular}
\end{document}
Antwort1
Am einfachsten ist es wahrscheinlich, die Schriftart zweimal anzugeben
\documentclass[12pt]{article}
\usepackage{dcolumn}
\newcolumntype{.}{D{.}{.}{-1}}
\makeatletter
\newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
\begin{document}
\begin{tabular}{..}
\hline
1.5 & 0.19 \\
\multicolumn{1}{B{.}{.}{-1}}{2.75} & 4.2 \\
3.4 & \mathit{8}.\mathit{0} \\
\hline
\end{tabular}
\end{document}
Antwort2
Sie können eine neue mathematische Version für die Berechnung von Ziffern in Kursivschrift definieren, aber ich werde zunächst eine Lösung vorstellen, die auf siunitx
(Teile stammen aushttps://tex.stackexchange.com/a/334323/4427)
\documentclass[12pt]{article}
\usepackage{siunitx,booktabs,etoolbox}
\begin{document}
\begin{table}
\centering
%% local redefinitions
\renewrobustcmd{\bfseries}{\fontseries{b}\selectfont}
\renewrobustcmd{\boldmath}{}
\begin{tabular}{
S[table-format=1.2,detect-weight,mode=text]
S[table-format=1.2,detect-weight,mode=text]
}
\toprule
1.5 & 0.19 \\
\bfseries 2.75 & 4.2 \\
3.4 & \itshape 8.0 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Alternativ, mit dcolumn
:
\documentclass[12pt]{article}
\usepackage{dcolumn}
\DeclareMathVersion{italic}
\SetSymbolFont{operators}{italic}{OT1}{\familydefault}{m}{it}
\newcolumntype{.}{D{.}{.}{-1}}
\makeatletter
\newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3}}c<{\DC@end}}
\newcolumntype{I}[3]{>{\mathversion{italic}\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
\begin{document}
\begin{tabular}{..}
\hline
1.5 & 0.19 \\
\multicolumn{1}{B{.}{.}{-1}}{2.75} & 4.2 \\
3.4 & \multicolumn{1}{I{.}{.}{-1}}{8.0} \\
\hline
\end{tabular}
\end{document}
Antwort3
Dieselbe Idee wie die von David, aber der Einfachheit halber in ein Makro verpackt:
\documentclass[12pt]{article}
\usepackage{dcolumn}
\newcolumntype{.}{D{.}{.}{-1}}
\makeatletter
\newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
% call \mathit separately for integer and decimal parts
\newcommand{\itnum}[2]{\mathit{#1}.{\mathit{#2}}}
\begin{document}
\begin{tabular}{..}
\hline
1.5 & 0.19 \\
\multicolumn{1}{B{.}{.}{-1}}{2.75} & 4.2 \\
3.4 & \itnum{8}{0} \\
\hline
\end{tabular}