Fettgedruckte Zeile in Tabelle, ausgerichtet an der D-Spalte

Fettgedruckte Zeile in Tabelle, ausgerichtet an der D-Spalte

Ich erstelle eine Reihe von TeX-Tabellen (mit Stata), in denen eine bestimmte Zeile hervorgehoben (fett) werden muss. Ich kann dort jedoch nur die erste Spalte ändern, daher möchte ich einen Befehl in die erste Zelle der Spalte einfügen, um sie fett zu machen (oder nicht).

Bisher habe ich dies verwendet "Erste Tabellenzeile komplett fett formatieren", das genau das tut, was ich will.

\documentclass[12pt]{standalone}
\usepackage{dcolumn}    
\newcolumntype{X}{>{\rowstyle{\relax}}l}
\newcolumntype{Y}{>{\currentrowstyle}c}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}}
\begin{document}
\begin{tabular}{XYY}
normal row & 1.1 & 2.2\\
bold row \rowstyle{\bfseries} & 1.1 & 2.2\\
\end{tabular}
\end{document}

Nun habe ich mich entschieden, auf umzusteigen dcolumn, was großartig ist, aber den Fett-Workaround unterbricht, da es Zellen im Mathemodus umbricht. Die Lösung, die David hier bereitgestellt hat (Dezimalstellen in der Tabelle werden bei Fettdruck nicht mit der d-Spalte ausgerichtet) funktioniert auch nicht wirklich, da dafür \multicolumn{1}{B}{...}in jeder fettgedruckten Zelle ein erforderlich wäre.

Die einfache Verwendung von mathbfstattdessen scheint nicht zu funktionieren. Für Vorschläge bin ich sehr dankbar.

Antwort1

\documentclass[12pt]{standalone}
\usepackage{dcolumn}  

\makeatletter  
\newcolumntype{X}{>{\rowstyle{\relax}}l}
\newcolumntype{D}[3]{>{\currentrowstyle\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}}
\begin{document}
\begin{tabular}{XD..{-1}D..{-1}}
normal row & 1.1 & 2.2\\
bold row \rowstyle{\bfseries\boldmath} & 1.1 & 2.2\\
\end{tabular}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Eine Lösung mit Paket siunitx:

\documentclass[12pt]{standalone}

\usepackage{array}
\usepackage{siunitx}

\newcolumntype{X}{%
  >{\rowstyle{\relax}}l%
}
\newcolumntype{Y}{%
  >{\currentrowstyle}S[detect-weight]%
}
\newcommand{\rowstyle}[1]{%
  \protected\gdef\currentrowstyle{#1}%
}

\begin{document}
  \begin{tabular}{XYY}
    normal row & 1.1 & 2.2\\
    normal row & 12.34 & 56.78\\
    bold row \rowstyle{\bfseries} & 1.1 & 2.2\\
    bold row \rowstyle{\bfseries} & 12.34 & 56.78\\
  \end{tabular}
\end{document}

Ergebnis

Antwort3

Ich benutze das:

\newsavebox\CBox
\def\mathBF#1{\sbox\CBox{#1}\resizebox{\wd\CBox}{\ht\CBox}{\ensuremath{\mathbf{#1}}}}
\newcommand{\best}[1]{\mathBF{#1}}  % for table

Und dann können Sie in der Tabelle \best{1.1}oder wo immer Sie möchten, eine Zahl fett drucken.

Dies ist speziell für den Mathematikmodus und funktioniert gut zusammen mit siunitx.

Inspiriert vonHier. Siehe auchHier.

verwandte Informationen