Comment pourrait-on encadrer (ou entourer) une ligne d'un tableau pour la mettre en valeur ? Comme on le ferait sur une feuille, avec un entourage qui « sort du tableau » ?

Posée 20 Fév '16, 12:34

yves's gravatar image

yves
4315
Taux d'acceptation : 0%

Modifiée 20 Fév '16, 15:01

Pathe's gravatar image

Pathe ♦♦
7.5k42204251


On peut faire avec TikZ et ses options overlay et remember picture : elles permettent de dessiner à des points fixes de la page. L'exemple parle de lui-même. Ce n'est pas totalement automatique, mais ça doit s'envisager.

Ouvrir dans l'éditeur
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\newcommand{\tikzmarkin}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\newcommand{\tikzmarkout}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\usepackage{babel}
\begin{document}
%
\begin{tabular}{cccc}
\tikzmarkin{a} 0 &2&4&6\\
 1&3&5&7\tikzmarkout{b}\\
0&0&0&0
\end{tabular}

\tikz[overlay,remember picture]{\draw ($(a)+(-0.1,0)$) rectangle ($(b)+(0.1,-0.1)$);}

\end{document}
Lien permanent

Publiée 21 Fév '16, 15:01

Maxime's gravatar image

Maxime ♦
1.4k32439
Taux d'acceptation : 60%

Modifiée 21 Fév '16, 15:26

Pathe's gravatar image

Pathe ♦♦
7.5k42204251

C'est une réponse avec TikZ que je cherchais.

(21 Fév '16, 16:37) yves yves's gravatar image

@yves Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.

(21 Fév '16, 17:11) denis ♦♦ denis's gravatar image

@yves Les formules de politesse et les signatures sont à éviter : celle(s) de votre contribution a (ont) été supprimée(s).

(21 Fév '16, 17:12) denis ♦♦ denis's gravatar image
3

Il est assez agaçant de se faire « corriger » ses phrases systématiquement par @Pathe.

(21 Fév '16, 18:00) Maxime ♦ Maxime's gravatar image
1

@Maxime : tout à fait d'accord avec vous. Vous pouvez dé-corriger et remettre la syntaxe initiale, c'est ce que je fais. D'un autre côté, on peut aussi demander à @Pathe de bien vouloir se faire beaucoup moins intrusif et cesser de corriger systématiquement toutes les contributions de tout le monde sur ce site.

(21 Fév '16, 18:53) unbonpetit ♦♦ unbonpetit's gravatar image

Cette règle me choque un peu, je suis peut-être vieux jeu... mais je trouve qu'un peu d'humanité ne fait pas de mal. De plus, sans le merci, mon commentaire ressemble plus à un reproche (sans intérêt par ailleurs) qu'à un remerciement... Autant le supprimer dans ce cas.

(21 Fév '16, 18:58) yves yves's gravatar image

@Maxime Je peux comprendre. En même temps, la FAQ stipule bien que les membres expérimentés (sous-entendu « expérimentés dans l'usage du site ») peuvent de remanier les contributions des autres. Mais on va veiller à être moins intrusifs.

(21 Fév '16, 19:06) denis ♦♦ denis's gravatar image

@yves Je suis d'accord que mettre un peu d'humanité dans ce monde de brutes ne fait pas de mal et je m'y efforce systématiquement sur les listes et forums de discussion que je fréquente. Mais l'idée d'un site de questions et réponses est de, autant que faire se peut, n'y faire figurer que sa substantifique moelle : des solutions (et seulement des solutions) optimales à des questions (ici concernant (La)TeX). Si ton commentaire te paraît du coup sans objet, tu peux effectivement le supprimer.

(21 Fév '16, 19:12) denis ♦♦ denis's gravatar image
Affichage de 5 parmi 8 Afficher 3 commentaire(s) en plus

Voici un exemple utilisant pstricks, et plus spécifiquement pst-node.

Principe : les deux extrémités de la ligne (ou de la colonne) sont des \Rnode (de forme rectangulaire) et on les joint par une \ncboxNode Connecting Box »), dont les paramètres sont précisés en argument optionnel.

Pour compiler en pdflatex, on met le tout dans un environnement postscript ou pspicture et il suffit de charger l'extension auto-pst-pdf (après pstricks) puis de lancer pdflatex avec l'option --enable-write18 sous MiKTeX, ou --shell-escape (TeX Live, MacTeX).

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage{amsmath}
\usepackage[table, x11names]{xcolor}
\usepackage{fourier} 
\usepackage{pst-node}
\usepackage{auto-pst-pdf}
\pagestyle{empty}
\begin{document}

 \begin{table}[h]
 \setlength\extrarowheight{2pt}
  \begin{equation*}
\begin{postscript}
   \begin{array}{cc}
          \\
       & z \\
     0 & s_1 \\
     0 & s_2 \\
     0 & s_3 \\
     $-3$ & x_{1} \\
   \end{array}
%
   \begin{bmatrix}
    \begin{array}{c >{\columncolor{PaleVioletRed3!20}[-0.7pt][-0.7pt]}ccccc|cc}
     x_1 & \cellcolor{white}{x_2} & s_1 & s_2 & s_3 & s_4 & b & \theta \\ \hline
     0 & \cellcolor{white}{-2} & 0 & 0 & 0 & 3 & 6 & \\ \hline
    \pnode{B}0 & \circlenode[linewidth=0.4pt, framesep=1pt]{P}{$2$} & 1 & 0 & 0 & -1 & 4 & 2\pnode{E} \\
    0 & 1 & 0 & 1 & 0 & -2 & 4 & 4 \\
     0 & 1 & 0 & 0 & 1 & 1 & 3 & 3\\
     1 & 0 & 0 & 0 & 0 & 1 & 2 & 0 \\
    \end{array}%
\ncbox[nodesep=3pt, boxsize=2.1ex, boxdepth=0.6ex, linestyle=none, fillstyle=solid, fillcolor=PaleVioletRed3, opacity=0.2]{B}{E}
   \end{bmatrix}%
\end{postscript}
  \end{equation*}
 \end{table}

\end{document}
Lien permanent

Publiée 20 Fév '16, 13:09

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 30 Nov '17, 01:37

Pathe's gravatar image

Pathe ♦♦
7.5k42204251

On peut faire cela facilement avec {NiceTabular} de nicematrix (qui utilise en fait PGF en interne).

\documentclass[french]{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{cccc}
0&2&4&6\\
\Block[draw]{1-*}{}%
1&3&5&7\\
0&0&0&0
\end{NiceTabular}

\end{document}
Lien permanent

Publiée 25 Avr '21, 17:53

fpantigny's gravatar image

fpantigny
1.3k44
Taux d'acceptation : 36%

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.