为子表着色

为子表着色

我想修改下面的例子来获得一个彩色的子表(只有边框),就像现在的图片一样。

子表

\documentclass{article}
\usepackage{array}


\begin{document}

\begin{tabular}{|c|c|c|c|c|}
\hline
1 & 3 & 2& B&  C \\
\hline
A & B&  C& B&  C \\
\hline
D & E & K& B&  F \\
\hline
G & H & I& B&  C\\
\hline
\end{tabular}


 \end{document}

答案1

这只是为了好玩:你可以用 tikz 画出几乎任何东西,那么为什么不在这里呢?特别是,使用时tikzmark你可以方便地注释你已经拥有的任何东西。

\documentclass{article}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}
\begin{document}

\begin{tabular}{|c|c|c|c|c|}
\hline
1 & \tikzmarknode{3}{3} & 2& B&  C \\
\hline
A & B&  \tikzmarknode{C1}{C}& B&  C \\
\hline
D & E & K& \tikzmarknode{B}{B}&  F \\
\hline
G & H & I& B&  \tikzmarknode{C2}{C}\\
\hline
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\draw[red,thick] ([yshift=-1pt]$(3)!0.5!(C1)$) rectangle ([yshift=-1pt]$(B)!0.5!(C2)$);
\end{tikzpicture}
\end{document}

在此处输入图片描述

需要说明的是,如果你只想画一些红线,我不建议使用这个。在这种情况下,我认为Leandris 的回答非常好是正确的选择。但是,如果你现在对更奇特的东西感兴趣,那么这里可能就是你的最佳选择。

\documentclass{article}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}
\begin{document}

\begin{tabular}{|c|c|c|c|c|}
\hline
1 & \tikzmarknode{3}{3} & 2& B&  C \\
\hline
A & B&  \tikzmarknode{C1}{C}& B&  C \\
\hline
D & E & K& \tikzmarknode{B}{B}&  F \\
\hline
G & H & I& B&  \tikzmarknode{C2}{C}\\
\hline
\end{tabular}
\begin{tikzpicture}[overlay,remember picture]
\newlength{\Border}
\Border=0.8pt
\fill[left color=red,right color=blue,shading angle=45,even odd rule] 
([yshift={-1pt+0.5\Border},xshift={-0.5\Border}]$(3)!0.5!(C1)$) rectangle 
([yshift={-1-0.5\Border},xshift={+0.5\Border}]$(B)!0.5!(C2)$)
[rounded corners]
([yshift={-1pt-0.5\Border},xshift={0.5\Border}]$(3)!0.5!(C1)$) rectangle 
([yshift={-1pt+0.5\Border},xshift={-0.5\Border}]$(B)!0.5!(C2)$)
;
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

\cline虽然不是那么优雅,但你可以使用和的组合\multicolumn来实现四个单元格周围所需的红色框架:

\documentclass{article}
\usepackage{array}
\usepackage[table]{xcolor}

\begin{document}

\begin{tabular}{|c|c|c|c|c|}
\hline
1 & 3 & 2& B&  C \\
\cline{1-2} \arrayrulecolor{red}\cline{3-4} \arrayrulecolor{black}\cline{5-5}
A & \multicolumn{1}{c!{\color{red}\vrule}}{B}& C& \multicolumn{1}{c!{\color{red}\vrule}}{B}&  C \\
\hline
D & \multicolumn{1}{c!{\color{red}\vrule}}{E} & K& \multicolumn{1}{c!{\color{red}\vrule}}{B}&  F \\
\cline{1-2} \arrayrulecolor{red}\cline{3-4} \arrayrulecolor{black}\cline{5-5}
G & H & I& B&  C\\
\hline
\end{tabular}

\end{document}

在此处输入图片描述

答案3

您可以使用\cellcolor{..}为单个单元格着色。您需要xcolor包或仅colortbl包,前者加载后者。请注意,某些 PDF 查看器会将表格线隐藏在颜色后面。

\documentclass{article}
\usepackage{array}
\usepackage[table]{xcolor}

\begin{document}

\begin{tabular}{|c|c|c|c|c|}
\hline
1 & 3 & 2& B&  C \\\hline
A & B&  \cellcolor{blue!25}C& \cellcolor{blue!25}B&  C \\\hline
D & E & \cellcolor{blue!25}K& \cellcolor{blue!25}B&  F \\\hline
G & H & I& B&  C \\\hline
\end{tabular}

\end{document}

在此处输入图片描述

答案4

您可以使用{NiceTabular}nicematrix此环境基于{array}array但在单元格、行和列下创建 PGF/Tikz 节点。

因此,使用 Tikz 可以绘制任何你想要的规则。

备注:实际上,{NiceTabular}有一个键hvlines可以绘制(黑色)表格中的所有水平和垂直规则。我已经使用过该键(并使用 Tikz 绘制了红色矩形)。

\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}

\begin{document}

\begin{NiceTabular}{ccccc}[hvlines]
1 & 3 & 2& B&  C \\
A & B&  C& B&  C \\
D & E & K& B&  F \\
G & H & I& B&  C \\
\CodeAfter
\tikz \draw [red, thick] (2-|3) rectangle (4-|5) ;
\end{NiceTabular}

\end{document}

上述代码的输出

也可以在数组本身中使用命令\Block(由提供)。nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{ccccc}[hvlines]
1 & 3 & 2& B&  C \\
A & B & \Block[draw=red,line-width=1pt,transparent]{2-2}{}
        C& B&  C \\
D & E & K& B&  F \\
G & H & I& B&  C \\
\end{NiceTabular}

\end{document}

输出是一样的。

相关内容