我正在尝试为多行表格着色。我希望“Formação Candeias”单元格为灰色,“Rifte”单元格为粉色,“Pré-rifte”单元格为蓝色。
下面我将展示我的代码。我尝试了很多方法,但都没有用。
\begin{table}[!h]\large
\centering
\begin{tabular}{|c|c|c|}
\hline
\rowcolor{yellow} \textbf{Rochas geradoras} & \textbf{Rochas reservatório} & \textbf{Sequências} \\ \hline
\multirow{8}{*}{Formação Candeias}
& Formação Taquipe \cellcolor{pink} & \multirow{5}{*}{\shortstack{Rifte}} \\ \cline{2-2}
& Formação Pojuca \cellcolor{pink} &\\ \cline{2-2}
& Formação Marfim \cellcolor{pink} & \\ \cline{2-2}
& Formação Maracangalha \cellcolor{pink} &\\ \cline{2-2}
& Formação Candeias \cellcolor{pink} & \\ \cline{2-3}
& Formação Água Grande \cellcolor{cyan}& \multirow{3}{*}{\shortstack{Pré-rifte}}\\\cline{2-2}
& Formação Sergi \cellcolor{cyan} &\\ \cline{2-2}
& Formação Aliança \cellcolor{cyan} & \\ \cline{2-2}
\hline
\end{tabular}
\caption{Resumo das principais rochas geradoras e rochas reservatório da Bacia do Recôncavo.}
\label{tab:1}
\end{table}
答案1
现代软件包可以通过将设计与内容分离来使表格布局更容易。
单元格、行或其他单元格集的字体、颜色、对齐方式等都是从数据“外部”指定的。
因此,这些元素可以在设计阶段轻松更改,而无需更改表格的原始内容。同时,可以在不更改设计的情况下更新原始内容。
本示例基于nicematrix
。
该命令\RowStyle
给出将应用于当前行(示例中的第一个)每个单元格的格式化指令。
\Block{<nrows>-<ncolumns>}{<cell content>}
将元素放置在 n 行 x n 列的合并单元格矩形的中心。
\CodeBefore
和之间\Body
是关于给单元格或单元格集着色的说明:例如\rectanglecolor{cyan}{7-2}{9-2}
将第 7 行至第 9 行第 2 列的单元格颜色设为青色。
hvlines
绘制所有线条(或vlines
:仅绘制垂直线条,或hlines
:仅绘制水平线条)
cell-space-limits
垂直扩展单元格以便于阅读。在此示例中,标题被扩展了一点。
\documentclass{article}
\usepackage{nicematrix} % <<<<<<<<<<<<<<<<
\begin{document}
\begin{table}[!h]\large
\centering
\begin{NiceTabular}{ c c c}[hvlines, cell-space-limits=4pt]
\CodeBefore
\rectanglecolor{pink}{2-2}{6-2}
\rectanglecolor{cyan}{7-2}{9-2}
\rectanglecolor{gray!20}{2-1}{9-1}
\rectanglecolor{red!30}{2-3}{6-3}
\rectanglecolor{blue!40}{7-3}{9-3}
\Body
\RowStyle[rowcolor=yellow, cell-space-limits=8pt]{\bfseries}
Rochas geradoras & Rochas reservatório & Sequências \\
\Block{8-1}{Formação Candeias} & Formação Taquipe & \Block{5-1}{Rifte} \\
& Formação Pojuca & \\
& Formação Marfim & \\
& Formação Maracangalha & \\
& Formação Candeias & \\
& Formação Água Grande & \Block{3-1}{Pré-rifte}\\
& Formação Sergi & \\
& Formação Aliança & \\
\end{NiceTabular}
\caption{Resumo das principais rochas geradoras e rochas reservatório da Bacia do Recôncavo.}
\label{tab:1}
\end{table}
\end{document}
第一次会编译多次。
答案2
更简单的是tabularray
:
\documentclass{article}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{table}[!h]\large\centering
\begin{tblr}{
vlines,hlines,colspec={ccc},
row{1}={yellow, font=\bfseries},
cell{2}{1}={r=8}{},
cell{2}{3}={r=5}{},
cell{7}{3}={r=3}{},
cell{2-6}{2}={pink},
cell{7-Z}{2}={cyan},
}
Rochas geradoras & Rochas reservatório & Sequências \\
Formação Candeias & Formação Taquipe & Rifte \\
& Formação Pojuca & \\
& Formação Marfim & \\
& Formação Maracangalha & \\
& Formação Candeias & \\
& Formação Água Grande & Pré-rifte\\
& Formação Sergi & \\
& Formação Aliança & \\
\end{tblr}
\caption{Resumo das principais rochas geradoras e rochas reservatório da Bacia do Recôncavo.\label{tab:1}}
\end{table}
\end{document}