我是 Latex 的新手,但我正在尝试学习并将来自不同帖子的各种代码拼凑在一起,因此如果这段代码“混乱”,我深表歉意。
在表格中,我想自定义列的宽度,还想将特定行设为粗体。我从另一篇文章中找到了如何将特定行设为粗体,但现在当我添加代码以使列的宽度自定义并右对齐时,粗体行部分不再起作用。以下是一个例子,您可以看到这两种情况:
\documentclass{scrreprt}
%for adding the ability to make entire rows bold:
\usepackage{array}
\newcolumntype{$}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
%define right justified column with custom width
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\begin{document}
\begin{table}[ht]
\begin{tabular}{$p{2.1cm} ^p{1.6cm} R{1.5cm} R{2cm}}
\hline
header1 & header2 & header3 & header4\\
\hline
a & b & c & d\\
\rowstyle{\bfseries}
e & f & g & h\\
\hline
\end{tabular}
\end{table}
\end{document}
正如您所看到的,当我使用 raggedleft 列类型(使其右对齐)时,粗体不起作用。
关于如何让这两者协同工作,您有什么想法吗?
答案1
您需要\currentrowstyle
在R
列类型中包含:
\newcolumntype{R}[1]{>{\currentrowstyle\raggedleft\arraybackslash}p{#1}}
进行此更改将产生以粗体显示的完整行: