Línea en negrita alrededor de una celda

Línea en negrita alrededor de una celda

Quiero una línea en negrita alrededor de una sola celda. El problema es que las celdas de abajo y de los lados están coloreadas con \cellcolor por lo que \cline no funcionó. Luego encontré esta solución que produjo líneas en negrita en todos los lados de la celda.Resalte las celdas de la tabla usando un borde grueso y de colorPero no quería que cambiara la altura de la celda y no sé qué cambiar para que las líneas de derecha e izquierda no terminen antes de tabcolsep.

ingrese la descripción de la imagen aquí

\documentclass[11pt]{article}

\usepackage[ngerman]{babel}
\usepackage[a4paper, text={16.5cm, 25.2cm}, centering]{geometry}
\usepackage[sfdefault]{ClearSans}
\usepackage[utf8]{inputenc}
\setlength{\parskip}{1.2ex}
\setlength{\parindent}{0em}

\usepackage{tabularx}

\usepackage[dvipsnames]{xcolor}
\usepackage{colortbl}

\makeatletter
\def\highlight#1{%
\fboxrule2pt %
\hsize=\dimexpr\hsize-2\fboxrule-2\fboxsep\relax
#1%
\@endpbox\unskip\setbox0\lastbox\bgroup
\fboxrule2pt %
\fcolorbox{black}{white}{\box0}\hfill}


\begin{document}


\center{hiragana test :)}

\vspace{12pt}

\begin{center}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}

\setlength{\extrarowheight}{0.8cm}
\begin{tabular}{|C{1.5cm}|C{1.5cm}|C{1.5cm}|C{1.5cm}|C{1.5cm}|C{1.5cm}|}

\hline
& a & i & u & e & o \\
\hline
\cellcolor{gray!60} & & & & &  \\
\hline
k & & & & &  \\
\hline
s & & & & &  \\
\hline
t & & & & &  \\
\hline
n & & & & &  \\
\hline
h & & & & &  \\
\hline
m & & & & &  \\
\hline
y & & & & &  \\
\hline
r & & & & &  \\
\hline
w & &\cellcolor{gray!60} & \cellcolor{gray!60}& \cellcolor{gray!60}&  \\
 \hline
n & \highlight{} &\cellcolor{gray!60} &\cellcolor{gray!60} &\cellcolor{gray!60} & \cellcolor{gray!60} \\
\hline
\cellcolor{gray!60}& \cellcolor{gray!60} &\cellcolor{gray!60} &\cellcolor{gray!60} &\cellcolor{gray!60} & \cellcolor{gray!60} \\
\hline
g & & & & &  \\
\hline
z & & & & &  \\
\hline
d & & & & &  \\
\hline
b & & & & &  \\
\hline
p & & & & &  \\
\hline
\end{tabular}

\end{center}

\end{document}

Respuesta1

Se necesitan algunos ajustes más en la respuesta original. Logré obtener un buen resultado con lo siguiente:

\makeatletter
\def\highlight#1{%
\fboxrule2pt%
\hsize=\dimexpr\hsize+\fboxrule\relax
#1%
\@endpbox\unskip\setbox0\lastbox\bgroup
\fboxrule2pt%
\hspace*{-2\fboxsep}\fcolorbox{black}{white}{\box0}\hspace*{\dimexpr-2\fboxsep-\fboxrule\relax}}
\makeatother

Sin embargo, no sé cómo cambiar la altura del cuadro.


Editar:Primer enfoque para hacer que la altura sea igual a la de las celdas normales. Logré establecer la altura del fbox, pero incluso si el fbox es más bajo que el cuadro de la celda, el cuadro de la celda aumentará ligeramente en altura.

\makeatletter
\newsavebox\saved@arstrutbox%
\global\setbox\saved@arstrutbox\copy\@arstrutbox%
\def\highlight#1{%
\fboxrule2pt%
\ht\@arstrutbox=\dimexpr\ht\saved@arstrutbox+\extrarowheight+2\fboxrule+2\arrayrulewidth\relax%
\dp\@arstrutbox=\dimexpr\dp\saved@arstrutbox\relax%
\hsize=\dimexpr\hsize+\fboxrule\relax%
#1%
\@endpbox\unskip\setbox0\lastbox\bgroup%
\fboxrule2pt%
\hspace*{-2\fboxsep}\fcolorbox{black}{white}{\box0}\hspace*{\dimexpr-2\fboxsep-\fboxrule\relax}}
\makeatother

Respuesta2

Con {NiceTabular}of nicematrix, solo tienes que poner \Block[draw,line-width=2pt]{}{}una celda para tener una regla en negrita alrededor de esa celda.

\documentclass[11pt]{article}

\usepackage{nicematrix}

\begin{document}

\begin{center}

\setlength{\extrarowheight}{0.8cm}

\begin{NiceTabular}{*{6}{w{c}{1.5cm}}}[hvlines,color-inside]
& a & i & u & e & o \\
\cellcolor{gray!60} & & & & &  \\
k & & & & &  \\
s & & & & &  \\
r & & & & &  \\
w & &\rowcolor{gray!60} \\
n & \Block[draw,line-width=2pt]{}{} &\rowcolor{gray!60} \\
\rowcolor{gray!60} \\*
g & & & & &  \\
\end{NiceTabular}

\end{center}

\end{document}

Salida del código anterior

información relacionada