答案1
有一些并不简单的技巧。
填入。
\documentclass{article}
\usepackage{array}
\usepackage[table]{xcolor}
\usepackage{hhline}
\begin{document}
\begin{tabular}{
|
>{\columncolor{black!30}\sffamily}l
|
>{\sffamily\vphantom{\'A}}l
|
*{11}{>{\sffamily}l|}
}
\hhline{>{\arrayrulecolor{white}}~ >{\arrayrulecolor{black}}| *{12}-}
\rowcolor{black!30}\multicolumn{1}{c|}{\cellcolor{white}}
& I & P & Q & K & S & T & J & V & W & X & Y & Z \\
\hline
I & I & P & Q & & & & & & W & & & \\
\hline
P & P & I & K & & & & & & & W & & \\
\hline
& & & & & & & & & & & W & \\
\hline
& & & & & & & & & & & & W \\
\hline
& & & & & W & & & & & & & \\
\hline
& & & & & & & W & & & & & \\
\hline
& & & & & & & & W & & & & \\
\hline
& & & & & & W & & & & & & \\
\hline
W & W & & & & & & & & & & & \\
\hline
& & & & W & & & & & & & & \\
\hline
& & W & & & & & & & & & & \\
\hline
& & & W & & & & & & & & & \\
\hline
\end{tabular}
\end{document}
答案2
NiceTabular
在的环境下nicematrix
。
键
corners
指定了角落列表。这里只有 NW(西北)角落。使用键
hvlines
,除角落外,所有规则均已绘制。包含
\CodeBefore
在数组内容排版之前(和规则之前)执行的指令。对行和列着色的指令在角落中没有任何效果。
然而,您需要多次编译。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{xcolor}
\begin{document}
\sffamily
\begin{NiceTabular}{*{13}{l}}[corners=NW,hvlines]
\CodeBefore
\rowcolor{lightgray}{1}
\columncolor{lightgray}{1}
\Body
& I & P & Q & K & S & T & J & V & W & X & Y & Z \\
I & I & P & Q & & & & & & W & & & \\
P & P & I & K & & & & & & & W & & \\
& & & & & & & & & & & W & \\
& & & & & & & & & & & & W \\
& & & & & W & & & & & & & \\
& & & & & & & W & & & & & \\
& & & & & & & & W & & & & \\
& & & & & & W & & & & & & \\
W & W & & & & & & & & & & & \\
& & & & W & & & & & & & & \\
& & W & & & & & & & & & & \\
& & & W & & & & & & & & & \\
\end{NiceTabular}
\end{document}