
Criei um horário usando o ambiente tabular LaTeX e quero adicionar faixas diagonais a algumas células vazias, conforme mostrado na imagem abaixo:
Este é o padrão que eu gostaria de ter:
Como eu posso fazer isso? Aqui está o código que usei para gerar a tabela:
\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}
Responder1
Com {NiceTabular}
of nicematrix
e TikZ para desenhar os padrões.
\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}
Você precisa de várias compilações (porque nicematrix
usa nós PGF/TikZ nos bastidores).
Aqui está uma versão com um canto vazio na posição NW (noroeste). A chave corners
de nicematrix
foi desenhada para esse trabalho mas, por motivos técnicos, não funciona com células do tipo X
. É por isso que usei um tipo de coluna l
para a primeira coluna.
\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}