我希望所有表格的第一行都用某种颜色(如下yellow
)着色,但不知何故下面的事情并没有按预期工作
这:
\documentclass[a4paper, 12pt]{report}
\usepackage{colortbl}
\begin{document}
\begin{tabular*}{0.90\textwidth}{@{\extracolsep{\fill}}ll}
\rowcolor{yellow}
OS & Features \\ \hline
iOS & blah blah.\\
Android & blah blah.\\
\end{tabular*}
\end{document}
结果是:
OS
这是不理想的,因为和之间有空白。Features
另外,我想使hline
稍微宽一点,以便与黄色区域的宽度相匹配,或者使黄色区域稍微窄一点,以便与水平线相匹配。我该怎么做?
非常感谢您的帮助。
答案1
使用包tabularx
来代替,这是比 star 版本更好的选择tabular
\documentclass[12pt]{report}
\usepackage{tabularx,colortbl}
\begin{document}
\begin{tabularx}{0.90\textwidth}{Xl}
\rowcolor{yellow}
OS & Features \\ \hline
iOS & blah blah.\\
Android & blah blah.\\
\end{tabularx}
\end{document}
答案2
我不知道如何修补\rowcolor
(及其子项),但我提供了一个新的\Rowcolor[<pad>]{<color>}
宏:
<color>
代表使用的颜色,<pad>
对于第一列之前的填充(通常,即默认值)这是第一行之前\tabcolsep
内容的宽度。@{dded}
关于后一句话的注释:您指定@{\extracolsep{\fill}}ll
删除了\tabcolsep
第一列之前的。原始版本\rowcolor
无法处理这种情况,请看您的图片,这就是您要求将规则加长的原因,而您实际上已经说过,它应该更短!(关于此内容的更多信息:colortbl:\rowcolor 在表格中使用 \begin{tabular}{@{}ccc@{}})
如果您使用类似的东西@{}<…>
,您需要使用\Rowcolor[]{<color>}
(与相同\Rowcolor[0pt]{<color>}
)。
代码
\documentclass[a4paper, 12pt]{report}
\usepackage{colortbl}
\usepackage{etoolbox}
\makeatletter
\newlength{\qrr@dimen@}
\expandafter\pretocmd\csname tabular*\endcsname{\setlength{\qrr@dimen@}{#1}}{}{}
\newcommand*{\Rowcolor}[2][\tabcolsep]{%
\ifx\relax#1\relax\else
\kern-\the\dimexpr#1\relax
\fi
\makebox[0pt][l]{%
\fboxsep=0pt
\colorbox{#2}{%
\strut\kern\qrr@dimen@
}%
}%
\ifx\relax#1\relax\else
\kern\the\dimexpr#1\relax
\fi
\ignorespaces
}
\makeatother
\begin{document}
\noindent
\begin{tabular*}{.9\linewidth}{l@{\extracolsep{\fill}}l}
\rowcolor{yellow} \multicolumn{1}{>{\columncolor{green}[\tabcolsep][\tabskip]}l}{OS} & Features \\ \hline
\Rowcolor{yellow} OS & Features \\ \hline
iOS & blah blah. \\
Android & blah blah. \\
\end{tabular*}
\end{document}
输出
答案3
您可以使用{NiceTabular*}
(nicematrix
和键colortbl-like
来指定行的颜色,语法与 相同colortbl
)。您可以直接获得预期的输出。
\documentclass[a4paper, 12pt]{report}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular*}{0.90\textwidth}{@{\extracolsep{\fill}}ll}[colortbl-like]
\rowcolor{yellow}
OS & Features \\ \hline
iOS & blah blah.\\
Android & blah blah.\\
\end{NiceTabular*}
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。