
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:
Dies ist das Muster, das ich gerne hätte:
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 nicematrix
und 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 nicematrix
im Hintergrund PGF/TikZ-Knoten verwendet werden).
Hier ist eine Version mit einer leeren Ecke in Position NW (Nordwest). Der Schlüssel corners
von nicematrix
wurde für diese Aufgabe entwickelt, funktioniert aber aus technischen Gründen nicht mit Zellen vom Typ X
. Deshalb habe ich l
fü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}