將圖案新增至 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}ofnicematrix和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 節點)。

第一個程式碼的輸出


這是一個在 NW 位置有一個空角的版本(西北)。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}

第二段程式碼的輸出

相關內容