我正在尝试为表格中的特定单元格着色。我尝试过以下建议仅为表格的一个单元格着色和高效地为表格单元格块着色,但当我尝试代码时,我的表格中只出现了一个文本。我的 MWE(在 Zarko 和 Mico 的帮助下)如下所示:
\documentclass[12pt]{article}
\usepackage[margin=3cm]{geometry}
\usepackage[font=scriptsize,
labelfont=bf]{caption}
\usepackage[xcdraw]{xcolor}
\usepackage{tabularray}
\usepackage{pdflscape}
\UseTblrLibrary{siunitx}
\usepackage{lipsum}
\begin{document}
\begin{table}[ht]
\begin{tblr}{width=\linewidth,
hlines, vlines,
colspec={*{12}{X[c,m]}},
colsep=4pt,
row{1}={ht=7ex},
row{2}={ht=5ex},
hspan=minimal
}
\SetCell[c=4]{c} I want this to align vertically
& & & & \SetCell[c=4]{c} I want this to align vertically
& & & & \SetCell[c=4]{c} I want this to align vertically
& & & \\
\SetCell[c=4]{c} Left
& & & & \SetCell[c=4]{c} Center
& & & & \SetCell[c=4]{c} Right
& & & \\
\SetCell[r=2]{c} {Same\\ here}
& \SetCell[r=2]{c} {Same\\ here}
& \SetCell[c=2]{c} {Ambient\\ Conditions}
& & \SetCell[r=2]{c} {Same\\ here}
& \SetCell[r=2]{c} {Same\\ here}
& \SetCell[c=2]{c} {Ambient\\ Conditions}
& & \SetCell[r=2]{c} {Same\\ here}
& \SetCell[r=2]{c} {Same\\ here}
& \SetCell[c=2]{c} {Ambient\\ Conditions}
& \\
& & RH & Temp & & & RH & Temp & & & RH & Temp \\
A & 200 & 200 & 200 & A & 200 & 200 & 200 & A & 200 & 200 & 200 \\
B & 200 & 200 & 200 & B & 200 & 200 & 200 & B & 200 & 200 & 200 \\
C & 200 & 200 & 200 & C & 200 & 200 & 200 & C & 200 & 200 & 200 \\
D & 200 & 200 & 200 & D & 200 & 200 & 200 & D & 200 & 200 & 200 \\
E & 200 & 200 & 200 & E & 200 & 200 & 200 & E & 200 & 200 & 200 \\
\end{tblr}
\end{table}
\end{document}
在此示例中,我想将“左”涂成蓝色,“中”涂成绿色,“右”涂成红色。非常感谢。
答案1
答案2
我主要处理由其他应用程序生成的大型表格,并且仅导入到 Latex 中进行发布。
对我来说,该包最重要的特性tabularray
是它可以通过将样式与内容完全分离来编写非常干净的代码。
即使表格在最终版本之前发生变化(通常都会发生),也可以轻松更新内容,而不必再次逐个单元格地痛苦地检查单元格的值。
同时,可以测试不同同事对风格的输入,而不会意外更改单元格内容。
给第二行着色是一件简单的任务。
\documentclass[12pt]{article}
\usepackage[margin=3cm]{geometry}
\usepackage[font=scriptsize,
labelfont=bf]{caption}
\usepackage[xcdraw]{xcolor}
\usepackage{tabularray}
\usepackage{pdflscape}
\UseTblrLibrary{siunitx}
\usepackage{lipsum}
\begin{document}
\begin{table}[ht]
\begin{tblr}{width=\linewidth,
hlines, vlines,
colspec={*{12}{X[c,m]}},
colsep=4pt,
row{1}={ht=7ex},
row{2}={ht=5ex},
hspan=minimal,
cell{1}{1}={c=4}{c},
cell{1}{5}={c=4}{c},
cell{1}{9}={c=4}{c},
cell{2}{1}={c=4}{c,blue!20}, % shaded colors added <<<<<<<<<<<<<<<
cell{2}{5}={c=4}{c,green!50!black!10},
cell{2}{9}={c=4}{c,red!15},
cell{3}{1}={r=2}{c},
cell{3}{2}={r=2}{c},
cell{3}{3}={c=2}{c},
cell{3}{5}={r=2}{c},
cell{3}{6}={r=2}{c},
cell{3}{7}={c=2}{c},
cell{3}{9}={r=2}{c},
cell{3}{10}={r=2}{c},
cell{3}{11}={c=2}{c},
}
I want this to align vertically&&&
&I want this to align vertically&&&
&I want this to align vertically&&&\\
Left&&&&Center&&&&Right&&&\\
{Same\\ here}&{Same\\ here}&{Ambient\\ Conditions}&
&{Same\\ here}&{Same\\ here}&{Ambient\\ Conditions}&
&{Same\\ here}&{Same\\ here}&{Ambient\\ Conditions}&\\
& & RH & Temp & & & RH & Temp & & & RH & Temp \\
A & 200 & 200 & 200 & A & 200 & 200 & 200 & A & 200 & 200 & 200 \\
B & 200 & 200 & 200 & B & 200 & 200 & 200 & B & 200 & 200 & 200 \\
C & 200 & 200 & 200 & C & 200 & 200 & 200 & C & 200 & 200 & 200 \\
D & 200 & 200 & 200 & D & 200 & 200 & 200 & D & 200 & 200 & 200 \\
E & 200 & 200 & 200 & E & 200 & 200 & 200 & E & 200 & 200 & 200 \\
\end{tblr}
\end{table}
\end{document}