私は、(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}{...}
) も、太字のセルごとにが必要になるため、実際には機能しません。
単にmathbf
instead を使用するだけではうまくいかないようです。 ご提案があれば、ぜひお聞かせください。
答え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}