
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.
\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}