Добавить узор в ячейку таблицы LaTeX

Добавить узор в ячейку таблицы LaTeX

Я создал расписание с использованием табличной среды LaTeX и хочу добавить диагональные полосы в некоторые пустые ячейки, как показано на рисунке ниже:

введите описание изображения здесь

Вот какой узор я хотел бы иметь:

введите описание изображения здесь

Как это сделать? Вот код, который я использовал для генерации таблицы:

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

решение1

С помощью {NiceTabular}of nicematrixи TikZ можно рисовать узоры.

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

Вам нужно несколько компиляций (т.к. nicematrixпод капотом используются узлы PGF/TikZ).

Вывод первого кода


Вот версия с пустым углом в позиции СЗ (северо-Запад). Ключ cornersбыл nicematrixразработан для этой работы, но по техническим причинам он не работает с ячейками типа X. Вот почему я использовал тип столбца lдля первого столбца.

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

Вывод второго кода

Связанный контент