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