Muster zur LaTeX-Tabellenzelle hinzufügen

Muster zur LaTeX-Tabellenzelle hinzufügen

Ich habe einen Stundenplan mit der tabellarischen LaTeX-Umgebung erstellt und möchte einigen leeren Zellen diagonale Streifen hinzufügen, wie in der Abbildung unten gezeigt:

Bildbeschreibung hier eingeben

Dies ist das Muster, das ich gerne hätte:

Bildbeschreibung hier eingeben

Wie kann ich das machen? Hier ist der Code, den ich zum Generieren der Tabelle verwendet habe:

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

Antwort1

Mit {NiceTabular}of nicematrixund TikZ können Sie die Muster zeichnen.

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

Sie benötigen mehrere Kompilierungen (da nicematrixim Hintergrund PGF/TikZ-Knoten verwendet werden).

Ausgabe des ersten Codes


Hier ist eine Version mit einer leeren Ecke in Position NW (Nordwest). Der Schlüssel cornersvon nicematrixwurde für diese Aufgabe entwickelt, funktioniert aber aus technischen Gründen nicht mit Zellen vom Typ X. Deshalb habe ich lfür die erste Spalte einen Spaltentyp verwendet.

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

Ausgabe des zweiten Codes

verwandte Informationen