如何修改彩色表格?我想添加标题并将文本放在中间,并将整个表格放在中间。 \caption、\centering 不起作用。以下是代码
\documentclass{article}
% for color models
\usepackage{xcolor}
% for nice coloring in tables
\usepackage{tabularray}
% for multi-row cells
\usepackage{multirow}
%for Helvetica-like sans font
\usepackage[T1]{fontenc}
\usepackage{tgheros}
\begin{document}
\sffamily
% adds some vertical padding in cells
\renewcommand{\arraystretch}{1.5}
% slightly thicker lines
\setlength{\rulewidth}{0.8pt}
% define colors
\definecolor{mycyan}{HTML}{d4f0dc}
\definecolor{myblue}{HTML}{b7e0ff}
\definecolor{mygreen}{HTML}{92d050}
\begin{tblr}{
colspec={|p{1.5cm}|p{1.5cm}|p{6cm}|},
}
\hline
\SetRow{yellow}
Step 1 & 1 & xx \\
\hline
\SetRow{mycyan}
Step 2 & 2 & xx \\
\hline
\SetRow{myblue}
Step 3 & \SetCell[r=4]{wd=1.5cm}{3} & xx\\
\cline{1-1}\cline{3-3}
\SetRow{myblue}
Step 4 & & xx \\
\cline{1-1}\cline{3-3}
\SetRow{myblue}
Step 5 & & xx\\
\cline{1-1}\cline{3-3}
\SetRow{myblue}
Step 6 & & xx\\
\hline
\SetRow{mygreen}
Step 7 & 1 & xx\\
\hline
\end{tblr}
\end{document}
答案1
至少对我来说,你并不完全清楚自己想要什么。因此,我首先将使用的语法更改为包中定义的语法tabularray
,然后在多行单元格中插入一些文本,将表格插入table
浮动环境,其中表格水平居中。最后,我为表格添加标题:
\documentclass{article}
%--------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%
\usepackage{lipsum} % for dummy text
%---------------------------------------------------------------%
\usepackage[T1]{fontenc}
\sffamily
%\usepackage{tgheros}
\usepackage{xcolor}
\definecolor{mycyan}{HTML}{d4f0dc}
\definecolor{myblue}{HTML}{b7e0ff}
\definecolor{mygreen}{HTML}{92d050}
\usepackage{tabularray}
\begin{document}
\begin{table}[ht]
\centering
\caption{Caption}
\label{tab:?}
\begin{tblr}{hlines, vlines,
colspec = {Q[l,wd=15mm] Q[l,wd=15mm] Q[l,wd=60mm]},
row{1} = {bg=yellow},
row{2} = {bg=mycyan},
row{3-Y}= {bg=myblue},
row{Z} = {bg=mygreen},
}
Step 1 & 1 & xx \\
Step 2 & 2 & xx \\
Step 3 & \SetCell[r=4]{l} multi line text in the middle of table
& xx \\
Step 4 & & xx \\
Step 5 & & xx \\
Step 6 & & xx \\
Step 7 & 1 & xx \\
\end{tblr}
\end{table}
\end{document}
(红线表示文本区域边框)
这就是你要找的吗?
答案2
以下是用 构建该表的一种方法nicematrix
。
\documentclass{article}
\usepackage{lipsum} % for dummy text
\usepackage{xcolor}
\usepackage{nicematrix}
\usepackage{caption}
\begin{document}
\lipsum[1]
\begin{table}[ht]
\centering
\caption{Caption}
\label{tab:?}
\begin{NiceTabular}[hvlines,colortbl-like,cell-space-limits=3pt]
{w{c}{15mm}w{l}{15mm}w{c}{60mm}}
\rowcolor{yellow}
Step 1 & 1 & xx \\
\rowcolor[HTML]{d4f0dc}
Step 2 & 2 & xx \\
\RowStyle[nb-rows=4,rowcolor=[HTML]{b7e0ff}]{}
Step 3 & \Block{4-1}{multi line text in the middle of table}
& xx \\
Step 4 & & xx \\
Step 5 & & xx \\
Step 6 & & xx \\
\rowcolor[HTML]{92d050}
Step 7 & 1 & xx \\
\end{NiceTabular}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。