Estou gerando um monte de tabelas TeX (com Stata), nas quais uma linha específica deve ser destacada (negrito). No entanto, só posso modificar a primeira coluna, por isso quero colocar um comando na primeira célula da coluna para torná-la em negrito (ou não)
Até agora tenho usado isso "Deixe a primeira linha da tabela em negrito", que faz exatamente o que eu quero.
\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}
Agora, decidi mudar para dcolumn
, o que é ótimo, mas quebra a solução alternativa ousada, pois envolve as células no modo matemático. A solução que David forneceu aqui (Os decimais na tabela não se alinham com dcolumn quando em negrito) também não funciona, pois exigiria um \multicolumn{1}{B}{...}
em cada célula em negrito.
Simplesmente usar mathbf
em vez disso não parece resolver o problema. Qualquer sugestão é muito apreciada.
Responder1
\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}
Responder2
Uma solução com pacote 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}
Responder3
Eu uso isso:
\newsavebox\CBox
\def\mathBF#1{\sbox\CBox{#1}\resizebox{\wd\CBox}{\ht\CBox}{\ensuremath{\mathbf{#1}}}}
\newcommand{\best}[1]{\mathBF{#1}} % for table
E então na tabela, apenas \best{1.1}
ou onde você quiser, coloque algum número em negrito.
Isso é especificamente para o modo matemático e funciona bem junto com o siunitx
.