저는 특정 행 하나를 강조 표시(굵게)해야 하는 여러 TeX 테이블(Stata 포함)을 생성 중입니다. 그러나 첫 번째 열만 수정할 수 있으므로 열의 첫 번째 셀에 명령을 배치하여 굵게 표시하고 싶습니다.
지금까지 나는 이것을 사용하고 있습니다 "표의 첫 번째 행을 모두 굵게 표시", 내가 원하는 것을 정확히 수행합니다.
\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
대신 사용하는 것은 트릭을 수행하지 않는 것 같습니다. 어떤 제안이라도 대단히 감사하겠습니다.
답변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}