Hauteur makebox

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 membres 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.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 990
Inscription : jeudi 25 novembre 2010, 22:10

Hauteur makebox

Message non lu par marco56 »

Bonjour, je me suis inspiré largement d'un code qui a été mis sur le forum et j'ai un souci :
Je me demande pourquoi mes boites définies dans \mycolhead ne sont pas toutes de la même hauteur alors qu'elles sont définies de la même façon et que le texte a priori tient sur une ligne partout.
Y a-t-il une autre commande permettant de régler cela ?
Voici mon code :

Code : Tout sélectionner

\documentclass[10pt, a4paper]{article}
\usepackage[a4paper]{geometry}
\geometry{lmargin=1.5cm,rmargin=1.5cm,tmargin=2cm,bmargin=1.5cm}

\usepackage[T1]{fontenc}
\usepackage{rotating}
\usepackage{eqparbox} 
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{hhline} 
\usepackage[svgnames, table]{xcolor} 
\newcommand{\mycolhead}[1]{\rotatebox[origin=l]{90}{\makebox[4cm][l]{\small#1}}}%

\begin{document}

\begin{center}
\textbf{\Large Année 2020-2021}
\end{center}

\sffamily
\begin{tabularx}{\linewidth}{|*{24}{c|}}
\cline{1-24}
\multicolumn{10}{|c|}{\cellcolor{Coral!60}Première année} &
\multicolumn{14}{c|}{\cellcolor{DeepSkyBlue}Deuxième année} \\

\mycolhead{Total candidats confirmés} &
\mycolhead{Total classés} &
\mycolhead{Rang du dernier admis} &
\mycolhead{Effectif total} &
\mycolhead{Filles} &
\mycolhead{Garçons} &
\mycolhead{Abandon cours d'année} &
\mycolhead{Abandon fin d'année} &
\mycolhead{Passage refusé} &
\mycolhead{Passage en deuxième année} &
\mycolhead{Effectif total} &
\mycolhead{Filles 3/2} &
\mycolhead{Garçons 3/2} &
\mycolhead{Filles 5/2} &
\mycolhead{Garçons 5/2} &
\mycolhead{3/2 Abandon cours d'année} &
\mycolhead{3/2 Intègre une école} &
\mycolhead{3/2 Intègre Université} &
\mycolhead{3/2 Redouble -> 5/2} &
\mycolhead{3/2 Autre cas} &
\mycolhead{5/2 Abandon cours d'année} &
\mycolhead{5/2 Intègre une école} &
\mycolhead{5/2 Intègre Université} &
\mycolhead{5/2 Autre cas} \\
\cline{1-24}
\rowcolor{green!30}  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  &  & & & \\
\cline{1-24}
\end{tabularx}

\end{document}
balf
Modérateur spécialisé
Modérateur spécialisé
Messages : 4053
Inscription : mercredi 02 janvier 2008, 23:18

Re: Hauteur makebox

Message non lu par balf »

Bonsoir,

Je viens de compiler ce code et je ne comprends pas. En quoi ne sont-elles pas toutes de la même hauteur?

B. A.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 990
Inscription : jeudi 25 novembre 2010, 22:10

Re: Hauteur makebox

Message non lu par marco56 »

Mes cases ne font pas la même largeur et comme elles sont créées par des makebox tournées à 90°, c'est leur hauteur qui n'est pas la même.
A moins que je n'ai rien compris, ce qui est également possible.
Merci en tous cas.
MB
Administrateur
Administrateur
Messages : 7535
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Hauteur makebox

Message non lu par MB »

Bonjour, pour que les colonnes soient toutes de même largeur il faut fixer la hauteur des boîtes. Tu peux par exemple essayer d'ajouter une commande \strut dans les \makebox.

\newcommand{\mycolhead}[1]{\rotatebox[origin=l]{90}{\makebox[4cm][l]{\strut\small#1}}}%

Pas le temps de tester le code donc à confirmer.
MB. (rejoignez pCloud afin d'obtenir 10Go de stockage en ligne gratuits)
Pas d'aide en message privé. Merci de consulter ce sujet avant de poster votre premier message.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2644
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Hauteur makebox

Message non lu par gigiair »

Tu as l'oeil ! Le défaut est provoqué par les caractères tels g, ç, / qui s'étendent en dessous de la ligne de base.
Une rustine consiste à ajouter un tel caractère rendu invisible dans ta macro (ça rejoint la solution de MB).

Code : Tout sélectionner

\newcommand{\mycolhead}[1]{\rotatebox[origin=l]{90}{\makebox[4cm][l]{\small#1\phantom{/}}}}%
JJR.
LaTeXien migrateur.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 990
Inscription : jeudi 25 novembre 2010, 22:10

Re: Hauteur makebox

Message non lu par marco56 »

Merci à tous.
A priori, gigiair, ta solution n'apporte pas d'amélioration.
MB, c'est ok mais j'ai été obligé de passer en mode paysage car cela prend plus de place. :)
Merci encore et bon week-end.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2644
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Hauteur makebox

Message non lu par gigiair »

Voici les résultats de mes compilations avec et sans ma solution :
Sans :
sans.png
sans.png (4.87 Kio) Consulté 82 fois
Avec :
avec.png
avec.png (4.28 Kio) Consulté 82 fois
J'ai contrôlé avec screenruler, sur mon (petit) écran, il y a 1mm de différence entre les largeurs des colonnes, c'est peu mais comme tu as une très bonne vue....
La colonne Effectif total qui n'a pas de caractères se prolongeant sous la ligne de base a été élargie par \phantom{/}

Ma solution me paraît équivalente à celle de MB.
JJR.
LaTeXien migrateur.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 990
Inscription : jeudi 25 novembre 2010, 22:10

Re: Hauteur makebox

Message non lu par marco56 »

Bonjour gigiair,
J'ai réessayé les 2 et il y a des différences de largeur dans les 2 cas mais dans la tienne, c'est un peu plus important.
Je travaille avec un 27'', ceci explique peut-être cela.
Voici ce que j'obtiens avec ta proposition, la différence est très nette entre la ligne du bas et celle du haut.
essai-effectifs.png
Merci quand même.