Barrer une cellule d'un tableau

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Ophiucus02
Utilisateur confirmé
Utilisateur confirmé
Messages : 26
Inscription : vendredi 18 octobre 2013, 17:29
Statut actuel : Enseignant

Barrer une cellule d'un tableau

Message non lu par Ophiucus02 »

Bonjour,

J'ai un tableau avec des cellules remplies :

Code : Tout sélectionner

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
	\begin{tabular}{*{4}{|c}|}
		\hline
		2&6&9&9\\
		\hline
		17&24&33&130\\
		\hline
	\end{tabular}
\end{document}
J'aimerais barrer certaines cellules comme dans l'exemple suivant :
tableau.png
tableau.png (5.59 Kio) Consulté 4149 fois
Auriez-vous une solution ?
J'ai essayé une solution avec le package cancel mais le texte ne respecte plus la hauteur de la ligne.
Je pensais à une solution avec TIKZ mais je n'arrive pas à adapter le trait à la taille de la cellule.

Merci.
Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 297
Inscription : mercredi 24 avril 2013, 19:47
Statut actuel : Enseignant

Re: Barrer une cellule d'un tableau

Message non lu par Arathorn »

Une proposition avec tabularray.

Code : Tout sélectionner

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{tabularray,cancel}
\begin{document}
	\begin{tblr}{colspec={*{4}{|c}|}, cell{1-2}{3} = {cmd=\bcancel}}
		\hline
		2&6&9&9\\
		\hline
		17&24&33&130\\
		\hline
	\end{tblr}
\end{document}
Avec Nicematrice, il est peut-être possible de le faire car les nœuds tikz sont utilisés.
F. Pantigny
Utilisateur confirmé
Utilisateur confirmé
Messages : 23
Inscription : dimanche 07 juillet 2019, 14:37

Re: Barrer une cellule d'un tableau

Message non lu par F. Pantigny »

Avec nicematrix, on peut utiliser l'environnement NiceTabular et TikZ pour tracer les traits en utilisant les nœuds PGF/TikZ créés par nicematrix.

Code : Tout sélectionner

\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{nicematrix,tikz}

\begin{document}

\begin{NiceTabular}{*{4}{|c}|}
  \hline
  2&6&9&9\\
  \hline
  17&24&33&130\\
  \hline
\CodeAfter
  \tikz \draw [red] (1-|3) -- (2-|4) (2-|3) -- (3-|4) ; 
\end{NiceTabular}

\end{document}

Plusieurs compilations successives sont nécessaires.

En fait, avec nicematrix, il est possible de simplifier le code en utilisant la clé hvlines pour tracer tous les filets horizontaux et verticaux.

Code : Tout sélectionner

\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{nicematrix,tikz}

\begin{document}

\begin{NiceTabular}{cccc}[hvlines]
  2&6&9&9\\
  17&24&33&130\\
\CodeAfter
  \tikz \draw [red] (1-|3) -- (2-|4) (2-|3) -- (3-|4) ; 
\end{NiceTabular}

\end{document}
On peut aussi écrire une commande \crossbox à utiliser dans une cellule du tableau et barrera cette cellule.

Code : Tout sélectionner

\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{nicematrix,tikz}

\begin{document}

\ExplSyntaxOn
\cs_new_protected:Nn \__pantigny_crossbox:nnn
  {
    \tikz \draw [ #3 ]
          ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
  }


\NewDocumentCommand \crossbox { ! O { } }
  {
    \tl_gput_right:Nx \g_nicematrix_code_after_tl
      {
        \__pantigny_crossbox:nnn
          { \arabic { iRow } }
          { \arabic { jCol } }
          { \exp_not:n { #1 } }
      }
  }
\ExplSyntaxOff

\begin{NiceTabular}{cccc}[hvlines]
  2&6&\crossbox[red]9&9\\
  17&24&\crossbox[red]33&130\\
\end{NiceTabular}

\end{document}
jcs
Utilisateur chevronné
Utilisateur chevronné
Messages : 1389
Inscription : lundi 24 novembre 2008, 22:17
Statut actuel : Autre

Re: Barrer une cellule d'un tableau

Message non lu par jcs »

Bonjour

Le package diagbox devrait faire cela.