
Creé mi horario usando el entorno tabular LaTeX y quiero agregar franjas diagonales a algunas celdas vacías, como se muestra en la siguiente imagen:
Este es el patrón que me gustaría tener:
¿Cómo puedo hacerlo? Aquí está el código que utilicé para generar la tabla:
\documentclass[landscape,a4paper]{article}
\usepackage{graphicx,caption,multirow}
\usepackage[top=0.5cm,bottom=3.8cm,right=2cm,left=2cm]{geometry}
\usepackage[table]{xcolor}
\captionsetup{labelformat=empty}
\begin{document}
\begin{table}[ht]
\large
\centering
\caption{{\Large 08/01/2024 $\rightarrow$ 13/01/2024}}
\resizebox{0.8\textwidth}{!}{
\setlength{\tabcolsep}{10pt}
\renewcommand{\arraystretch}{2.5}
\begin{tabular}{|>{\columncolor{cyan!30}}l|c|c|c|c|c|}
\cline{2-6}
\multicolumn{1}{c|}{} & \cellcolor{cyan!30}8:30-10:30 & \cellcolor{cyan!30}10:30-12:30 & \cellcolor{cyan!30}12:30-14:30 & \cellcolor{cyan!30}14:30-16:30 & \cellcolor{cyan!30}16:30-18:30 \\ \hline
Lundi & & & & & \\ \hline
Mardi & & & & & \\ \hline
Mercredi & & & & & \cellcolor{red!30}\parbox[c]{3cm}{Droit\\{\small Ms Y}} \\ \hline
Jeudi & & & & & \\ \hline
Vendredi & & & & & \\ \hline
Samedi & & & & \cellcolor{red!30}\parbox[c]{3cm}{Informatique\\{\small Mr X}} & \\ \hline
\end{tabular}}
\end{table}
\end{document}
Respuesta1
Con {NiceTabular}
of nicematrix
y TikZ para dibujar los patrones.
\documentclass[landscape,a4paper]{article}
\usepackage{graphicx,caption}
\usepackage[top=0.5cm,bottom=3.8cm,right=2cm,left=2cm]{geometry}
\usepackage{xcolor}
\captionsetup{labelformat=empty}
\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{patterns}
\newcommand{\MyBlock}{\Block[transparent,tikz={pattern = north west lines, pattern color = red}]}
\begin{document}
\begin{table}[ht]
\large
\centering
\caption{{\Large 08/01/2024 $\rightarrow$ 13/01/2024}}
\renewcommand{\arraystretch}{2.5}
\begin{NiceTabular}{|>{\columncolor{cyan!30}}X[l]X[c]X[c]X[c]X[c]X[c]}[hvlines,color-inside,width=0.8\textwidth]
\rowcolor{cyan!30}
& 8:30-10:30 & 10:30-12:30 & 12:30-14:30 & 14:30-16:30 & 16:30-18:30 \\
Lundi & & & \MyBlock{*-1}{} \\
Mardi & & & & & \\
Mercredi & & & & \MyBlock{}{} & \Block[fill=red!30]{}{Droit\\ \small Ms Y} \\
Jeudi & & & & & \\
Vendredi & & & & & \\
Samedi & & & & \Block[fill=red!30]{}{Informatique\\ \small Mr X} & \MyBlock{}{}\\
\end{NiceTabular}
\end{table}
\end{document}
Necesita varias compilaciones (porque nicematrix
utiliza nodos PGF/TikZ bajo el capó).
Aquí hay una versión con una esquina vacía en la posición NW (noroeste). La clave corners
de nicematrix
ha sido diseñada para ese trabajo pero, por motivos técnicos, no funciona con celdas de tipo X
. Por eso he utilizado un tipo de columna l
para la primera columna.
\documentclass[landscape,a4paper]{article}
\usepackage{graphicx,caption}
\usepackage[top=0.5cm,bottom=3.8cm,right=2cm,left=2cm]{geometry}
\usepackage{xcolor}
\captionsetup{labelformat=empty}
\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{patterns}
\newcommand{\MyBlock}{\Block[transparent,tikz={pattern = north west lines, pattern color = red}]}
\begin{document}
\begin{table}[ht]
\large
\centering
\caption{{\Large 08/01/2024 $\rightarrow$ 13/01/2024}}
\renewcommand{\arraystretch}{2.5}
\begin{NiceTabular}{|>{\columncolor{cyan!30}}lX[c]X[c]X[c]X[c]X[c]}[hvlines,corners=NW,color-inside,width=0.8\textwidth]
\rowcolor{cyan!30}
& 8:30-10:30 & 10:30-12:30 & 12:30-14:30 & 14:30-16:30 & 16:30-18:30 \\
Lundi & & & \MyBlock{*-1}{} \\
Mardi & & & & & \\
Mercredi & & & & \MyBlock{}{} & \Block[fill=red!30]{}{Droit\\ \small Ms Y} \\
Jeudi & & & & & \\
Vendredi & & & & & \\
Samedi & & & & \Block[fill=red!30]{}{Informatique\\ \small Mr X} & \MyBlock{}{}\\
\end{NiceTabular}
\end{table}
\end{document}