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 mathbf
stattdessen 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}
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}
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
.