Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
composition:tableaux:filets:epaisseur_des_lignes [2016/10/16 07:58] jejust3_composition:tableaux:filets:epaisseur_des_lignes [2021/05/13 19:25] (Version actuelle) – Intégration du contenu de la page "3_composition/tableaux/filets/epaisseur_des_lignes2". Restructuration de la réponse de la FAQ francophone. jejust
Ligne 1: Ligne 1:
-\question{Comment modifier l'épaisseur des filets d'un tableau~?} %7.5+====== Comment modifier l'épaisseur des traits dans les tableaux======
  
-\reponse La longueur \cmd{arrayrulewidth} définit la largeur des filets de 
-séparation horizontale \emph{et} verticale. Cela permet donc de changer 
-\emph{globalement} l'épaisseur d'un filet. 
  
-\reponse Si, dans un tableau, on met deux filets de séparation horizontaux +Les filets d'un tableau LaTeX ont par défaut une épaisseur de ''0.4pt''; 
-successifs, ceux-ci sont séparées par la longueur \cmd{doublerulesep}.+il s'agit d'une valeur prédéfinie au niveau le plus bas, qui s'applique à tous les traits 
 +(y compris ceux qui séparent les blocs de texte, notamment). 
 + 
 +Parfois, cependant, en regardant un tableau, on voudrait faire ressortir certains filets, 
 +par exemple pour mieux séparer le contenu du tableau du corps du texte, 
 +ou pour délimiter les différentes parties du tableau. 
 +Cependant, un examen rapide de n'importe quel livre sur LaTeX ne révèle 
 +aucune technique permettant d'épaissir un filet en particulier, 
 +et une petite expérimentation montre qu'il est en effet assez difficile 
 +d'éviter qu'une modification ne « déborde » et affecte tous les filets du tableau. 
 + 
 + 
 +Si vous lisez nos critiques sur la [[3_composition:tableaux:mes_tableaux_sont_moches|mise en forme des tableaux en LaTeX]], 
 +ailleurs dans cette FAQ, vous avez dû sentir que lors de sa conception, LaTeX a tout simplement 
 +ignoré la plupart des questions esthétiques liées aux tableaux: c'est probablement la raison pour laquelle 
 +il ne fournit rien pour modifier ponctuellement l'épaisseur des filets. 
 + 
 +Plus précisément, si la longueur ''\arrayrulewidth'' affecte l'épaisseur des traits (à la fois horizontaux et verticaux) 
 +dans les environnements ''tabular'' et ''array'', elle la modifie de façon //globale//. Par exemple: 
 + 
 +<WRAP column 45ex> 
 +**Épaisseur par défaut** 
 + 
 +<code latex> 
 +
 + 
 +\begin{tabular}{|lc|} 
 +\hline 
 +  Peintre & Années \\ 
 +\hline 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\hline 
 +\end{tabular} 
 +</code> 
 +<latex> 
 +\begin{tabular}{|lc|} 
 +\hline 
 +  Peintre & Années \\ 
 +\hline 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\hline 
 +\end{tabular} 
 +</latex> 
 +</WRAP> 
 +<WRAP column 45 ex> 
 +**Épaisseur: ''1pt''** 
 + 
 +<code latex> 
 +\setlength{\arrayrulewidth}{1pt} 
 + 
 +\begin{tabular}{|lc|} 
 +\hline 
 +  Peintre & Années \\ 
 +\hline 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\hline 
 +\end{tabular} 
 +</code> 
 +<latex> 
 +\setlength{\arrayrulewidth}{1pt} 
 + 
 +\begin{tabular}{|lc|} 
 +\hline 
 +  Peintre & Années \\ 
 +\hline 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\hline 
 +\end{tabular} 
 +</latex> 
 +</WRAP> 
 +<WRAP clear /> 
 + 
 +Le changement est bien visible, mais remarquez que la jonction entre les trais verticaux et horizontaux 
 +se fait mal quand leur épaisseur est modifiée, tellement l'épaisseur par défaut est ancrée dans le code. 
 +La programmation au niveau utilisateur, même pointue, s'avère incapable de modifier un seul trait: 
 +il est nécessaire de se plonger dans le code (plutôt délicat) de ''\hline'' et ''\cline'' pour y arriver. 
 + 
 +Heureusement, ce travail a déjà été fait pour la communauté: le paquet [[ctanpkg>booktabs|booktabs]] définit 
 +trois catégories de filets distinctes: ''\toprule'', ''\midrule'' et ''\bottomrule'', et la [[texdoc>booktabs-fr|documentation du paquet (en français)]] 
 +offre des conseils sur la façon de les utiliser. Nous vous conseillons vivement de lire attentivement cette documentation. 
 + 
 +<WRAP column 45ex> 
 +<code latex> 
 +\usepackage{booktabs} 
 +... 
 + 
 +\begin{tabular}{lc} 
 +\toprule 
 +  Peintre & Années \\ 
 +\midrule 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\bottomrule 
 +\end{tabular} 
 +</code> 
 +</WRAP> 
 +<WRAP column 45ex> 
 +<latexdoc> 
 +\documentclass{article} 
 +  \usepackage{booktabs} 
 +  \usepackage[french]{babel} 
 +  \pagestyle{empty} 
 + 
 +\begin{document} 
 +\begin{tabular}{lc} 
 +\toprule 
 +  Peintre & Années \\ 
 +\midrule 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\bottomrule 
 +\end{tabular} 
 +\end{document} 
 +</latexdoc> 
 +</WRAP> 
 +<WRAP clear /> 
 + 
 +<note tip> 
 +Pour un résultat encore plus soigné, vous pouvez utiliser la commande ''\cmidrule'', qui raccourcit légèrement 
 +les filets internes par rapport aux autres: 
 +<WRAP clear /> 
 +<WRAP column 45ex> 
 +<code latex> 
 +\usepackage{booktabs} 
 +... 
 + 
 +\begin{tabular}{lc} 
 +\toprule 
 +  Peintre & Années \\ 
 +\cmidrule(lr){1–2} 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\bottomrule 
 +\end{tabular} 
 +</code> 
 +</WRAP> 
 +<WRAP column 45ex> 
 +<latexdoc> 
 +\documentclass{article} 
 +  \usepackage{booktabs} 
 +  \usepackage[french]{babel} 
 +  \pagestyle{empty} 
 + 
 +\begin{document} 
 +\begin{tabular}{lc} 
 +\toprule 
 +  Peintre & Années \\ 
 +\cmidrule(lr){1-2} 
 +  Manet  & 1832--1883 \\ 
 +  Ingres & 1780--1867 \\ 
 +  Goya   & 1746--1828 \\ 
 +\bottomrule 
 +\end{tabular} 
 +\end{document} 
 +</latexdoc> 
 +</WRAP> 
 +<WRAP clear /> 
 +</note> 
 + 
 +La classe [[ctanpkg>memoir|memoir]] inclut le paquet [[ctanpkg>booktabs|booktabs]] et reprend la teneur 
 +de sa documentation dans son [[texdoc>memoir|manuel très détaillé]] 
 +(en anglais((Un [[https://github.com/jejust/memoir-fr|projet de traduction existe]], vous pouvez y contribuer))). 
 + 
 + 
 +Notez qu'on a retiré les traits verticaux dans les derniers exemples de tableaux. Pour en connaître 
 +les raisons, consultez la [[texdoc>booktabs-fr|documentation du paquetage “booktabs”]] (encore une fois); 
 +en résumé, les traits verticaux sont à éviter, pour des raisons à la fois historiques et esthétiques. 
 +On peut toujours s'en passer, en jouant sur l'alignement du contenu des colonnes. 
 + 
 +<note> 
 +Les traits verticaux des tableaux sont de toute façon codés dans LaTeX de façon encore plus déroutante 
 +que les traits horizontaux, et leur manque de configurabilité les rend encore moins attrayants... 
 +C'est, somme toute, tant mieux pour la mise en forme de votre document. 
 +</note> 
 + 
 + 
 +===== Pour les bricoleurs ===== 
 + 
 +==== Épaissir des traits horizontaux à la demande ==== 
 + 
 +On a vu que la longueur ''\arrayrulewidth'' définit l'épaisseur des filets de 
 +séparation horizontale //et// verticale. Cela ne permet donc de changer que 
 +//globalement// l'épaisseur des filets. 
 + 
 +Maintenant, si, dans un tableau, on met deux filets de séparation horizontaux 
 +successifs, ceux-ci sont séparées par la longueur ''\doublerulesep''.
 Il suffit donc de donner la bonne valeur à cette valeur pour que les deux Il suffit donc de donner la bonne valeur à cette valeur pour que les deux
-filets soient collés, et ne fassent donc qu'un filet, plus épais. On +filets soient collés, et semblent former un unique filet, plus épais. On 
-écrira donc +écrira donc
-\begin{noexemple}+ 
 +<code latex>
 \setlength{\doublerulesep}{\arrayrulewidth} \setlength{\doublerulesep}{\arrayrulewidth}
-\end{noexemple} +</code>
-\noindent Ensuite, il suffit d'exécuter plusieurs fois consécutivement la +
-commande \cmd{hline} pour épaissir le filet.+
  
-\reponse On peut aussien se fondant sur la définition de \cmd{hline}, +Ensuiteil suffit d'exécuter plusieurs fois consécutivement la 
-créer une commande \cmd{hlinewd} dont l'épaisseur sera passée en +commande ''\hline'' pour épaissir le filet autant que désiré.
-argument. Voir l'exemple~\vref{ex=hlinewd}.+
  
-\begin{exemple}{Épaissir le filet de séparation horizontal\label{ex=hlinewd}}+On peut aussi, en se fondant sur la définition de ''\hline'', 
 +créer une commande ''\hlinewd'' dont l'épaisseur sera passée en 
 +argument. Voici un exemple: 
 + 
 +<code latex>
 \makeatletter \makeatletter
 \newcommand\hlinewd[1]{% \newcommand\hlinewd[1]{%
Ligne 26: Ligne 221:
     \futurelet\reserved@a\@xhline}     \futurelet\reserved@a\@xhline}
 \makeatother \makeatother
 +
 \begin{tabular}{|l|r|} \begin{tabular}{|l|r|}
 \hline \hline
Ligne 35: Ligne 231:
 total    & 39 \\ \hline total    & 39 \\ \hline
 \end{tabular} \end{tabular}
-\end{exemple}+</code>
  
-\reponse Pour augmenter l'épaisseur d'un filet de séparation vertical,+==== Épaissir des traits verticaux à la demande ==== 
 + 
 +Pour augmenter l'épaisseur d'un filet de séparation vertical,
 nous allons supprimer le filet vertical par défaut, et en insérer un nous allons supprimer le filet vertical par défaut, et en insérer un
-«~\`a la main~», avec la commande \cmd{vrule}. Voir +« à la main », avec la commande ''\vrule''Voici comment faire:
-l'exemple~\vref{ex=grostrait}.+
  
-\begin{exemple}{Épaissir le filet de séparation vertical\label{ex=grostrait}}+<code latex>
 \begin{tabular}{| \begin{tabular}{|
   c<{\global\addtolength{\arrayrulewidth}{1pt}}|   c<{\global\addtolength{\arrayrulewidth}{1pt}}|
Ligne 53: Ligne 250:
 \hline \hline
 \end{tabular} \end{tabular}
-\end{exemple}+</code> 
 + 
 + 
 +<note> 
 +Les packages [[ctanpkg>array]] et [[ctanpkg>mdwtab]] définissent un nouveau type de séparateur 
 +de colonnes, semblable à ''@'', mais qui ne supprime pas l'espace inter-colonnes.  
 +Le package [[ctanpkg>mdwtab]] fournit en outre une commande, ''\vline'', qui prend en argument optionnel 
 +l'épaisseur du filet.  
 +</note> 
 + 
 +----- 
 +//Source:// [[faquk>FAQ-rulethk|The thickness of rules in LaTeX tables]]
  
-\reponse Les packages \pack{array} et \pack{mdwtab} définissent un nouveau +{{htmlmetatags>metatag-keywords=(LaTeX,tableaux,flottants,modifier l'apparence des tableaux,mise en forme des tableaux,épaisseur des lignes) 
-type de séparateur de colonnessemblable à \texttt{\string@}mais qui ne +metatag-og:title=(Comment modifier l'épaisseur des traits dans les tableaux) 
-supprime pas l'espace inter-colonnes.  +metatag-og:site_name=(FAQ LaTeX francophone) 
-Le package \pack{mdwtab} fournit en outre une commande\cmd{vline}, qui +}}
-prend en argument optionnel l'épaisseur du filet. +
  
-\endinput 
3_composition/tableaux/filets/epaisseur_des_lignes.1476604711.txt.gz · Dernière modification : 2016/10/16 07:58 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0