Fila en negrita en la tabla alineada con la columna d

Fila en negrita en la tabla alineada con la columna d

Estoy generando un montón de tablas TeX (con Stata), en las que una fila en particular debe estar resaltada (en negrita). Sin embargo, solo puedo modificar la primera columna allí, por lo que quiero colocar un comando en la primera celda de la columna para ponerla en negrita (o no).

Hasta ahora he estado usando esto "Poner la primera fila de la tabla en negrita.", que hace exactamente lo que quiero.

\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}

Ahora decidí cambiar a dcolumn, lo cual es genial, pero elimina la solución alternativa en negrita, ya que envuelve las celdas en modo matemático. La solución que David proporcionó aquí (Los decimales de la tabla no se alinean con la columna d cuando están en negrita) tampoco funciona realmente, ya que requeriría un \multicolumn{1}{B}{...}en cada celda en negrita.

Simplemente usarlo mathbfen su lugar no parece funcionar. Cualquier sugerencia es bienvenida.

Respuesta1

\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}

ingrese la descripción de la imagen aquí

Respuesta2

Una solución con paquete 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}

Resultado

Respuesta3

Yo uso esto:

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

Y luego en la tabla, justo \best{1.1}o donde quieras tener algún número en negrita.

Esto es específicamente para el modo matemático y funciona bien junto con siunitx.

Inspirado deaquí. Ver tambiénaquí.

información relacionada