3

I am new to latex and I a trying to draw tables. Here is what look for / [![enter image description here][1]][1]

But instead when I export the file as pdf I get this : enter image description here

I tried to fix it but I just can't find the issue, here is the code :

\documentclass{article}
%\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage[table,xcdraw]{xcolor}

\usepackage{makecell}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{booktabs}
\usepackage{graphicx}

\begin{document}
\centering
\begin{table}[]
\caption{Les modules de la phase d'intervention}
\vspace{2cm}
\label{tab:my-table}
\begin{tabular}{l|p{4cm}|p{5cm}|} \cline{2-3}
{\color[HTML]{FFFFFF} \textbf{}} & \multicolumn{1}{|c|}{\cellcolor[HTML]{FFFFFF}\textbf{Modules}} & \multicolumn{1}{c|}{\textbf{Actions}} \\ \hline
\multicolumn{1}{|l|}{} & Vérification   de la quarantaine & Valide la   capacité du système à mettre en quarantaine l’accès au système en externe et   les données en interne. \\ \cline{2-3} 
\multicolumn{1}{|l|}{} & Vérification   des privilèges & Evalue la   capacité d’élévation des privilèges au sein du système. \\ \cline{2-3} 
\multicolumn{1}{|l|}{} & Validation   de survivabilité & Evalue la   résistance du système à des situations excessives ou défavorables. \\ \cline{2-3} 
\multicolumn{1}{|l|}{\multirow{-7}{*}{\textbf{Phase d’intervention}}} & Contrôle   des alertes et des journaux & Evalue les activités de l’audit. \\ \hline
\end{tabular}
\end{table}
\end{document}

Thanks,

1
  • 1
    color interference -- lot of answers on this site are available
    – js bibra
    Sep 23, 2021 at 3:36

5 Answers 5

8

Using only the nicematrix package all problems can be solved. Provides the \Block command that replaces multicolumn and multirow, allows the use of \\ inside, align the text, color the cell, etc.

For instance \Block 4-1} creates a cell with 4 rows x 1 columns, vertically centered, while \Block[ fill = gray!30]{} creates a 1x1 cell, colored and centered.

Also, there are generic directives like hvlines to draw all vertical and horizontal lines in the table. Just changing hvlines for hlines you get a table as shown in the last figure.

The final code is much simpler, easier to read and modify.

It must be compiled twice.

x

% !TeX TS-program = pdflatex    

\documentclass{article} 

\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[table,xcdraw]{xcolor}
\usepackage{caption}
\usepackage{nicematrix} % <<<<<<<<<<<<

\begin{document}

\begin{table}[ht]
\centering \small
\caption{Les modules de la phase d'intervention}\label{tab:my-table}
\setlength{\tabcolsep}{5pt}
\begin{NiceTabular}{ccc}[corners,hvlines, cell-space-top-limit=3pt]
    \RowStyle{\bfseries}  & Modules &  Actions \\ 
    \Block{4-1}<\bfseries>{Phase \\ d’intervention}   
    & \Block[fill=gray!10]{}{Vérification de la quarantaine}
    & \Block[l]{}{Valide la capacité du système à \\mettre en quarantaine l’accès au \\ système en externe et   les \\ données en interne.} \\ 
    
    & \Block[fill=gray!10]{}{Vérification des privilèges} 
    & \Block[l]{}{Evalue la capacité d’élévation \\ des  privilèges au sein du \\système.} \\
    
    & \Block[fill=gray!10]{}{Validation de survivabilité}
    & \Block[l]{}{Evalue la résistance du système \\ à des situations excessives \\ ou défavorables.} \\ 
    
    & \Block[fill=gray!10]{}{Contrôle des alertes et des \\ journaux} 
    & \Block[l]{}{Evalue les activités  de l’audit.} \\ 
\end{NiceTabular}
\end{table}

\end{document}

Using hlines instead of hvlines.

y

5

With tabularray:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[xcdraw]{xcolor} % <---
\usepackage{caption}
\usepackage{tabularray}     % <---

\begin{document}
    \begin{table}[ht]
    \centering \small
\caption{Les modules de la phase d'intervention}
\label{tab:my-table}
    \begin{tblr}{hline{1}={2-Z}{solid}, hline{2-Z}={solid}, 
                 vline{1}={2-Z}{solid}, vline{2-Z}={solid},
                 colspec={X[1,c] X[2,c,m] X[2,l,m]},
                 column{1} = {font=\bfseries},
                 column{2} = {bg=gray!30},
                 row{1} = {font=\bfseries, bg={}}
                 }
    & Modules   &  Actions      \\
\SetCell[r=4]{c}    Phase d’intervention
    & Vérification de la quarantaine
        & Valide la capacité du système à mettre en quarantaine l’accès au système en externe et les données en interne.     \\
    & Vérification des privilèges
        & Evalue la capacité d’élévation des  privilèges au sein du système.            \\

    & Validation de survivabilité
        & Evalue la résistance du système à des situations excessives ou défavorables.  \\

    & Contrôle des alertes et des journaux
        &  Evalue les activités  de l’audit.                                            \\
    \end{tblr}
    \end{table}
\end{document}

enter image description here

4
  • how can I find the code for colours to change this "column{2} = {bg=gray!30}"? Sep 23, 2021 at 15:19
  • @DidyouknowTHAT, color names are determined in xcolor package (if this is the problem, I don't fully understand your comment). bg is shortness for background. If you like to have for example cyan color for second column, write column{2} = {bg=cyan}, or more brite color column{2} = {bg=cyan!30} Package tabularray load/support ninecolors package, which enable simple syntax for nine shades of color. Close to color column{2} = {bg=cyan!30} is column{2} = {bg=cyan8}. Details about colors are extensive described in xcolor package documentation.
    – Zarko
    Sep 23, 2021 at 19:24
  • When I execute the code on overleaf I get this : [![enter image description here][1]][1] [1]: i.stack.imgur.com/wosND.png Sep 23, 2021 at 19:33
  • @DidyouknowTHAT, Overleaf so far doesn't support tabularray package. You need add it yourself. Ask their support team (they are very friendly) how to do this (I don't use it, so I can't help you in this).
    – Zarko
    Sep 23, 2021 at 19:36
3

As @jsbibra has already pointed out in a comment, colored cells and columns can create various interference problems, especially with \cline-type horizontal rules.

Rather than fight directly, I'd recommend you use the opportunity to simplify and streamline the overall "look" of the table, such as by getting rid of all vertical and most horizontal rules. I'd also take care of of some glaring issues, such as the fact that the table is too wide to fit inside the text block. To fix that particular problem, I'd employ a tabularx environment and let width of the first column be determined as a residual.

enter image description here

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{multirow}

\usepackage[table,x11names]{xcolor}
\usepackage{tabularx,ragged2e}
\newcolumntype{L}{>{\RaggedRight}X}
\newcolumntype{M}[1]{>{\RaggedRight}m{#1}}

\begin{document}

\begin{table}
\setlength{\extrarowheight}{3pt} % for a more open 'look'
\caption{Les modules de la phase d'intervention}
\label{tab:my-table}
\vspace{2mm} % why '2cm'?

\begin{tabularx}{\textwidth}{@{}
      L 
      >{\columncolor{Snow2}}M{4cm}
      M{5.25cm} @{}} 
& \multicolumn{1}{c}{\cellcolor{Snow2}\textbf{Modules}} 
& \multicolumn{1}{c}{\textbf{Actions}} \\ 
\hline
\multirow{7.5}{=}{\textbf{Phase d'intervention}}
& Vérification de la quarantaine 
& Valide la capacité du système à mettre en quarantaine l'accès au système en externe et les données en interne. \\ 
& Vérification des privilèges 
& Evalue la capacité d'élévation des privilèges au sein du système. \\ 
& Validation de survivabilité 
& Evalue la résistance du système à des situations excessives ou défavorables. \\   
& Contrôle des alertes et des journaux 
& Evalue les activités de l'audit. \\ 
\hline
\end{tabularx}

\end{table}
\end{document}
3

Here is what I would do with nicematrix.

\documentclass{article} 
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{xcolor}
\usepackage{caption}
\usepackage{nicematrix}

\begin{document}

\begin{table}[ht]
\centering \small
\caption{Les modules de la phase d'intervention}\label{tab:my-table}
\setlength{\tabcolsep}{5pt}
\begin{NiceTabular}{ccX[m,l]}[corners,hvlines, cell-space-top-limit=3pt]
\CodeBefore
    \rectanglecolor{gray!10}{2-2}{5-2}
\Body
    \RowStyle{\bfseries\centering}  & Modules &  Actions \\ 
    \Block{4-1}<\bfseries>{Phase \\ d’intervention}   
    & Vérification de la quarantaine
    & Valide la capacité du système à mettre en quarantaine l’accès au système en externe et les données en interne. \\ 
    & Vérification des privilèges
    & Évalue la capacité d’élévation des  privilèges au sein du système. \\
    & Validation de survivabilité
    & Évalue la résistance du système à des situations excessives ou défavorables. \\ 
    & \Block{}{Contrôle des alertes et des \\ journaux} 
    & Évalue les activités  de l’audit. \\ 
\end{NiceTabular}
\end{table}

\end{document}

You need several compilations (because nicematrix uses PGF/Tikz nodes under the hood).

Output of the above code

2

With basic packages. Note that loading utf8 input encoding is not necessary nowadays, since it is the encoding tha latex expects by default. Also loadin xcolor with option [table] loads `colortbl, so you don't have to load it. To vertically centre a multirow, remember you van use a number of ‘rows’ with a decimal part.

\documentclass{article}
\usepackage{geometry}
\usepackage[table, svgnames, xcdraw]{xcolor}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{hhline}
\usepackage{booktabs, caption}
\usepackage{graphicx}

\begin{document}

\begin{table}[]
\centering
\setlength{\extrarowheight}{2pt}
\caption{Les modules de la phase d'intervention}
\label{tab:my-table}
\begin{tabular}{|l|>{\columncolor{Gainsboro!60}}p{4cm}|p{5cm}|}
\hhline{~|--|}
\rowcolor{white}\multicolumn{1}{c|}{} & \textbf{Modules} & \textbf{Actions} \\ \hline
 & Vérification de la quarantaine & Valide la capacité du système à mettre en quarantaine l’accès au système en externe et les données en interne. \\
\hhline{~|--|}
 & Vérification des privilèges & Évalue la capacité d’élévation des privilèges au sein du système. \\
\hhline{~|--|}
& Validation de survivabilité & Évalue la résistance du système à des situations excessives ou défavorables. \\ \hhline{~|--|}
\multirow{-8.4}{*}{\textbf{Phase d’intervention}} & Contrôle des alertes et des journaux & Évalue les activités de l’audit. \\
\hline
\end{tabular}
\end{table}

\end{document} 

Unrelated to your problem: accented letters remain accented when used in capital form. enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.