表内の太字の行は dcolumn に揃えられています

表内の太字の行は dcolumn に揃えられています

私は、(Stata を使って)たくさんの TeX テーブルを生成していますが、その中で特定の行をハイライト表示(太字)する必要があります。ただし、最初の列しか変更できないので、列の最初のセルにコマンドを配置して太字にする(または太字にしない)必要があります。

これまで私はこれを使ってきました」表の最初の行をすべて太字にする」はまさに私が望んでいることを実現します。

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

そこで、 に切り替えることにしましたdcolumn。これは素晴らしいのですが、数式モードでセルをラップするため、太字の回避策が機能しなくなります。David がここで提供した解決策 (太字にすると、表の小数点が dcolumn と一致しない\multicolumn{1}{B}{...}) も、太字のセルごとにが必要になるため、実際には機能しません。

単にmathbfinstead を使用するだけではうまくいかないようです。 ご提案があれば、ぜひお聞かせください。

答え1

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

ここに画像の説明を入力してください

答え2

パッケージを使用したソリューション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}

結果

答え3

私はこれを使用します:

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

そして、表の中で、\best{1.1}数字を太字にしたい場所に太字で表示します。

これは特に数式モード用であり、 と連携して動作しますsiunitx

インスピレーション源ここ. 参照ここ

関連情報