2
1

Je dois composer un tableau dont les cellules mesurent 17 x 19 mm. Chacune d'entre elles contient un symbole (étoile, carré, marvosym, lettre grecque, triangle, etc.) centré tant horizontalement que verticalement.

Comment procéder ? Créer un tableau ? Ou me servir de TikZ, utiliser la fonction grid et créer un nœud par symbole ? Qu'en pensez-vous ?

Posée 03 Sep '17, 03:14

Pathe's gravatar image

Pathe ♦♦
7.5k42203251
Taux d'acceptation : 55%

Modifiée 03 Sep '17, 19:27


Une solution définissant un nouveau type de colonne : M{largeur}{hauteur} grâce aux extensions array et collcell. On utilise les arguments optionnels de la commande \raisebox qui permettent de définir hauteur et profondeur de son contenu indépendamment du contenu réel :

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{array, collcell}
\newlength{\cellheight}
\newcolumntype{M}[2]{>{\setlength{\cellheight}{#2}\collectcell{\centering\raisebox{0pt}[0.55\cellheight][0.45\cellheight]}}m{#1}%
<{\endcollectcell}}

\begin{document}

\begin{tabular}{|*{3}{M{17mm}{19mm}|}}%{
  \hline
  A & B & C \\\hline
  D & E & F \\\hline
\end{tabular}

\end{document}

alt text

Lien permanent

Publiée 03 Sep '17, 18:57

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 03 Sep '17, 23:58

La commande \makebox(larg,haut)[pos]{contenu} est conçue pour être utilisée avec l'environnement picture, mais elle peut être utilisée en dehors de cet environnement.

Il suffit alors de faire :

\renewcommand*{\unitlength}{mm} \makebox(17,19){symbol}

ECM

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\newcommand*{\mtbox}{\makebox(17,19)}
\newcommand*{\mtligne}[3]{%
\mtbox{#1}&\mtbox{#2}&\mtbox{#3}\\\hline}
\begin{document}

\setlength{\tabcolsep}{0pt}
\renewcommand*{\arraystretch}{0} 
\renewcommand*{\unitlength}{mm}   
\begin{tabular}{|*3{c|}}
\hline 
\mtligne{A}{B}{C}
\mtligne{*}{\textbullet}{$\triangle$}
\mtligne{$\heartsuit$}{$\spadesuit$}{$\diamondsuit$}
\end{tabular}

\end{document}

Une deuxième solution basée sur l'extension easytable :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\usepackage{easytable}
\makeatletter 
\setlength{\@tab@size@rule}{0.4pt}
\makeatother
\begin{document}

\begin{TAB}(b,17mm,19mm)[0mm]{|c|c|c|}{|c|c|c|c|}
A & B & C\\    
A & B & C\\    
A & B & C\\   
A & B & C
\end{TAB}

\end{document}

Remarque : je n'ai pas utilisé cet extension auparavant. Merci de lire la documentation ainsi que la doc de l'extension easybmat.

Lien permanent

Publiée 03 Sep '17, 14:45

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Modifiée 03 Sep '17, 19:28

Pathe's gravatar image

Pathe ♦♦
7.5k42203251

La première solution, remarquable, fonctionne parfaitement.

Je ne connaissais ni easytable, ni easybmat ; ces extensions ont un grand intérêt.

En revanche, augmenter la taille des caractères en faisant précéder le tableau de votre deuxième solution par {\fontsize{15mm}{0.5cm}\selectfont suffit à faire varier la largeur des cellules.

(03 Sep '17, 15:42) Pathe ♦♦ Pathe's gravatar image

Comme j'ai dit je n'ai jamais utilisé cet extension, j'ai ajouter cette solution à titre informatif seulement.

J'ai essayé avec \fontsize{17mm}{0.5cm}\selectfont et ça marche.

(03 Sep '17, 23:03) touhami touhami's gravatar image

Je me suis basé sur une hauteur de 8 pt pour un symbole marvosym afin de régler la hauteur et la profondeur. pour un symbole marvosym (un point faisant 0,35 mm...). Les dimensions des cellules sont bien de 17 x 19  mm.

Ouvrir dans l'éditeur Overleaf
\documentclass[a4paper,10pt]{article}
\usepackage{array}  
\usepackage{marvosym}
\begin{document} 
\newcolumntype{C}{%
   >{\vrule height 30.92pt depth 22.92pt width 0pt\centering\arraybackslash}p{17mm}%
   <{}}  
\renewcommand{\tabcolsep}{0pt}

\begin{tabular}{|C|C|C|} 
\hline 
\Mobilefone & \Football & \Coffeecup \\\hline
\YinYang & \Capricorn & \Handwash \\\hline  
\end{tabular} 
\end{document}
Lien permanent

Publiée 03 Sep '17, 14:13

Nikopol's gravatar image

Nikopol
1.0k614
Taux d'acceptation : 42%

Modifiée 03 Sep '17, 23:20

La solution fonctionne. La largeur de la colonne est déterminée par le paramètre p{17mm} et sa hauteur par l'addition de height et de depth : (30,92 + 22.92) x 0.35 ≈ 19.

Mais si l'on désire avoir des symboles plus gros, par exemple grâce au paramètre \Huge, ils ne sont plus centrés en hauteur. Il faut alors modifier au jugé height et depth : ce n'est pas très pratique.

(03 Sep '17, 14:37) Pathe ♦♦ Pathe's gravatar image

De cette question en a découlé une autre, relative au centrage des caractères.

(03 Sep '17, 15:00) Pathe ♦♦ Pathe's gravatar image
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.