[Résolu] Encadrement d'un tabular par des pointillés

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Encadrement d'un tabular par des pointillés

Messagepar pzorba75 » Jeudi 24 Octobre 2019, 03:53

Bonjour à tous,
pour encadrer des algorithmes dans des sujets de mathématiques, les auteurs des livres des nouveaux programmes ont retenu des lignes en pointillés de couleur rouge.
Avec le code ci-dessous, je fais une présentation identique à celle des livres que j'utilise, sauf que je ne parviens à trouver d'exemples sur google où les lignes horizontales et verticales du cadre sont en pointillés et en rouge. J'ai écarté l'idée du package tcolorbox, beaucoup trop vaste pour ce besoin élémentaire.
MA question aux utilisateurs expérimentés des tableaux sous Latex / Commet faire en restant simple?
Code: Tout sélectionner
\begin{center}
\setlength{\fboxrule}{0pt}
\begin{tabular}{|l|}
\hline
Choisir un nombre positif\tabularnewline
Ajouter $\dfrac{1}{2}$\tabularnewline
Mettre au carré\tabularnewline
Soustraire le cube du nombre initial\tabularnewline
\hline
\end{tabular}
\end{center}

Bonne journée à tous.
Pierre
Dernière édition par pzorba75 le Jeudi 24 Octobre 2019, 16:00, édité 1 fois.
On se lasse de tout, excepté d'apprendre.
Virgile
pzorba75
Kilo-utilisateur
 
Messages: 174
Inscription: Mardi 20 Août 2013, 03:50
Localisation: Paris
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Encadrement d'un tabular par des pointillés

Messagepar un bon petit » Jeudi 24 Octobre 2019, 08:21

Pour continuer sur la lancée d'hier, je continue, comme à mon habitude, de ré-inventer la roue en TeX pur. Au moins, ça fait progresser et comprendre même si c'est plus lent à concevoir. Bien évidemment, il y a des solutions plus simples (en apparence seulement) en faisant appel à des packages plus ou moins obèses qui rendent la tâche facile.

Je propose une macro \fdash courte pour encadrer en pointillés rouges un contenu arbitraire :

dasedfbox.png

Code: Tout sélectionner
\documentclass{article}
\usepackage{amsmath,xcolor}
\newdimen\fdashwidth    \fdashwidth  = 0.8pt % épaisseur traits
\newdimen\fdashlength   \fdashlength = 0.5mm % longueur des pointillés et séparation entre pointillés
\newdimen\fdashsep      \fdashsep    = 3pt % séparateur entre contenu et traits
\def\fdash#1{%
   \leavevmode\begingroup
   \setbox0\hbox{#1}%
   \ifdim\fdashsep>0pt
      \setbox0\hbox{\vrule width0pt height\dimexpr\ht0+\fdashsep depth\dimexpr\dp0+\fdashsep\kern\fdashsep\unhbox0 \kern\fdashsep}%
   \fi
   \edef\hdash{\hbox to\the\wd0{\noexpand\color{red}\xleaders\hbox{\vrule height\fdashwidth width\fdashlength \kern\fdashlength}\hfil}}%
   \edef\vdash{\vbox to\the\dimexpr\ht0+\dp0{\noexpand\color{red}\xleaders\vbox{\hrule height\fdashlength width\fdashwidth \kern\fdashlength}\vfil}}%
   \hbox{%
      \vdash
      \vtop{\vbox{\offinterlineskip\hdash\hbox{\unhbox0 }\hdash}}%
      \vdash}%
   \endgroup
}
\begin{document}
Un algorithme :
\begin{center}
   \fdash{\begin{tabular}{l}
      Choisir un nombre positif\\
      Ajouter $\dfrac{1}{2}$\\
      Mettre au carré\\
      Soustraire le cube du nombre initial\\
      \end{tabular}}
\end{center}
\end{document}
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Encadrement d'un tabular par des pointillés

Messagepar pzorba75 » Jeudi 24 Octobre 2019, 09:43

C'est magique quand on voit la solution, qui passe quand même bien au-dessus de mes cheveux grisonnants. Merci beaucoup.
On se lasse de tout, excepté d'apprendre.
Virgile
pzorba75
Kilo-utilisateur
 
Messages: 174
Inscription: Mardi 20 Août 2013, 03:50
Localisation: Paris
Statut actuel: Actif et salarié | Enseignant

Re: Encadrement d'un tabular par des pointillés

Messagepar un bon petit » Jeudi 24 Octobre 2019, 10:44

pzorba75 a écrit:C'est magique quand on voit la solution, qui passe quand même bien au-dessus de mes cheveux grisonnants. Merci beaucoup.

C'est toujours les mêmes primitives de boites : \setbox, \hbox, \box, \copy, \unhbox, \vrule, \hrule, \vbox, \vtop
Et toujours les mêmes primitives de remplissages ; \kern, \hfil, \vfil, \[x][c]leaders

Ce n'est pourtant pas bien compliqué de les étudier une bonne fois pour toutes et d'apprendre à les manipuler. On réinvente la roue (meilleur moyen pour se former à un langage), mais au moins, on progresse et on comprend ce que l'on fait.

Ceci dit, l'embêtant avec \xleaders, c'est que le remplissage commence et finit par du blanc et donc les coins de l'encadrement sont « vides », ce qui est à mon avis très moche. En forçant le remplissage à commencer et finir par un trait plein, les coins sont tracés ce qui me semble plus esthétique.
Code: Tout sélectionner
\def\fdash#1{%
   \leavevmode\begingroup
   \setbox0\hbox{#1}%
   \def\hdash{\vrule height\fdashwidth width\fdashlength\relax}%
   \def\vdash{\hrule height\fdashlength width\fdashwidth\relax}%
   \def\dashblank{\kern\fdashlength}%
   \ifdim\fdashsep>0pt
      \setbox0\hbox{\vrule width0pt height\dimexpr\ht0+\fdashsep depth\dimexpr\dp0+\fdashsep\kern\fdashsep\unhbox0 \kern\fdashsep}%
   \fi
   \edef\hdash{\hbox to\the\wd0{\noexpand\color{red}\hdash\kern.5\fdashlength\xleaders\hbox{\hdash\dashblank}\hfil\hdash}}%
   \edef\vdash{\vbox to\the\dimexpr\ht0+\dp0+2\fdashwidth{\noexpand\color{red}\vdash\kern.5\fdashlength\xleaders\vbox{\vdash\dashblank}\vfil\vdash}}%
   \hbox{%
      \vdash
      \vtop{\vbox{\offinterlineskip\hdash\hbox{\unhbox0 }\hdash}}%
      \vdash}%
   \endgroup
}
un bon petit
Giga-utilisateur
 
Messages: 748
Inscription: Vendredi 12 Juin 2009, 21:35
Localisation: Chambéry
Statut actuel: Actif et salarié | Enseignant

Re: Encadrement d'un tabular par des pointillés

Messagepar balf » Jeudi 24 Octobre 2019, 10:51

Il existe déjà l'extension dashbox, qui n'a pas prévu la couleur, mais il n'est pas bien compliqué d'en mettre:

Code: Tout sélectionner
    \documentclass{article}
    \usepackage{amsmath, nccmath}
    \usepackage[svgnames]{xcolor}
    \usepackage{dashbox}
 
    \begin{document}

    \begin{center}\setlength{\fboxrule}{1pt}
     \color{Coral}
      \dashbox{\color{black}
      \begin{tabular}{l}
          Choisir un nombre positif\\
          Ajouter $\mfrac{1}{2}$\\
          Mettre au carré\\
          Soustraire le cube du nombre initial\\
          \end{tabular}}
    \end{center}

    \end{document}

B. A.
Fichiers joints
reddashbox.pdf
(23.26 Kio) Téléchargé 17 fois
balf
Zetta-utilisateur
 
Messages: 3856
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Encadrement d'un tabular par des pointillés

Messagepar pzorba75 » Jeudi 24 Octobre 2019, 16:00

Bonne solution avec dashbox. Pas facile à rertrouver avec google + "encadrement boite en pointillés latex".
Je conserve la solution également.
Merci pour l'aide apportée.
Pierre
On se lasse de tout, excepté d'apprendre.
Virgile
pzorba75
Kilo-utilisateur
 
Messages: 174
Inscription: Mardi 20 Août 2013, 03:50
Localisation: Paris
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot], Yandex [Bot] et 7 invités

cron