diff options
Diffstat (limited to 'Master/texmf-doc/doc/french/FAQ-fr/part3')
-rw-r--r-- | Master/texmf-doc/doc/french/FAQ-fr/part3 | 2487 |
1 files changed, 0 insertions, 2487 deletions
diff --git a/Master/texmf-doc/doc/french/FAQ-fr/part3 b/Master/texmf-doc/doc/french/FAQ-fr/part3 deleted file mode 100644 index ff8ae0d9136..00000000000 --- a/Master/texmf-doc/doc/french/FAQ-fr/part3 +++ /dev/null @@ -1,2487 +0,0 @@ -Path: tempo.univ-lyon1.fr!univ-lyon1.fr!news.imp.ch!fr.clara.net!heighliner.fr.clara.net!maredsous.noc.fr.clara.net!victor.teaser.fr!teaser.fr!fdn.fr!edgard.fdn.fr!not-for-mail -Date: 08 Jun 2001 13:31:18 +0200 -Newsgroups: fr.comp.text.tex,fr.usenet.reponses -Subject: [FAQ] fr.comp.text.tex - parties 7 a 11 -Message-ID: <faq-fctt-p320010608133118@edgard.fdn.fr> -X-Posted-By: poste.sh version 1.1 -From: bayartb@edgard.fdn.fr (Nono le robot) -Supersedes: <faq-fctt-p320010501143416@edgard.fdn.fr> -Expires: 08 Jul 2001 13:31:17 +0200 -Followup-To: poster -Organization: French Data Network -Approved: bayartb@edgard.fdn.fr -Lines: 2477 -Xref: tempo.univ-lyon1.fr fr.comp.text.tex:23523 fr.usenet.reponses:20389 - -Archive-name: fr/faq-latex-francaise/part3 - -Author: Marie-Paule Kluth -Posting-Frequency: mensuel (monthly) -Version: 2.27 - -================================================================ - Cette FAQ, rédigée initialement par MP Kluth est maintenant - tenue à jour autant que possible par B. Bayart et - plusieurs volontaires (voir question [30]). -================================================================ - -================================================================ -[7] GESTION DES TABLEAUX -================================================================ - -# 7.1 # Comment faire un tableau ? ----------------------------------- -En mode texte, il faut utiliser l'environnement tabular. Chaque -colonne est ensuite décrite par r, l ou c pour obtenir une -colonne de texte justifié à droite, à gauche ou centré. Chaque -déclaration de colonne peut être délimitée par une séparation -verticale : | ou rien. Une ligne horizontale entre deux lignes -s'obtient par la commande \hline. Le contenu de chaque colonne -est séparé de celui de la suivante par le symbole &. Le -changement de ligne est obtenu par la commande \\. - -Lorsque plusieurs colonnes adjacentes ont la même définition, on -peut grouper leurs déclarations avec la commande -*{nb_colonnes}{déclaration} - -Exemple : -\begin{tabular}{|*{2}{c|}l r|} - \hline - une & deux & trois & quatre \\ - case centrée & encore centrée & à gauche & à droite \\ - \hline -\end{tabular} -%%%% fin exemple %%%% - -# 7.2 # Comment gérer les tableaux de plus d'une page ? -------------------------------------------------------- -* Le package 'supertabular' permet de gérer automatiquement (ou -presque) les coupures de tableaux. Il est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/supertabular/. -Il calcule la longueur du tableau à chaque \\ et vérifie si la -fin de page est atteinte. Si oui, il coupe le tableau. Les -commandes à utiliser sont : -+ \tablefirsthead{...} pour définir le contenu de la première -occurrence de la tête du tableau. Cette commande est optionnelle. -+ \tablehead{...} pour définir le contenu de la tête des -tableaux suivants. -+ \tabletail{...} définit le contenu de la ligne qui doit être -ajoutée avant une coupure -+ \tablelasttail{...} définit le contenu de la dernière ligne -du tableau. Cette commande est optionnelle. -+ \topcaption{...}, \bottomcaption{...} et \tablecaption{...} -permettent de nommer un tableau soit au début ou à la fin du -tableau. \tablecaption{...} est l'option par défaut. - -Exemple : -\begin{center} - \tablefirsthead{\hline \multicolumn{1}{|c}{Nombre} - & \multicolumn{1}{c}{Nombre$^2$} - & Nombre$^4$ - & \multicolumn{1}{c|}{Nombre!} \\ \hline} - \tablehead{\hline \multicolumn{4}{|l|}{\small\sl continued - from previous page}\\ - \hline \multicolumn{1}{|c}{ Nombre} - & \multicolumn{1}{c}{Nombre$^2$} - & Nombre$^4$ - & \multicolumn{1}{c|}{Nombre!} \\ \hline} - \tabletail{\hline\multicolumn{4}{|r|}{\small\sl Suite page - suivante~\ldots}\\\hline} \tablelasttail{\hline} - \bottomcaption{Fin.} - \par - \begin{supertabular}{| r@{\hspace{6.5mm}}| - r@{\hspace{5.5mm}}| r | r|} - 1 & 1 & 1 & 1 \\ - 2 & 4 & 16 & 2 \\ - 3 & 9 & 81 & 6 \\ - 4 & 16 & 256 & 24 \\ - 5 & 25 & 625 & 120 \\ - 6 & 36 & 1296 & 720 \\ - 7 & 49 & 2401 & 5040 \\ - 8 & 64 & 4096 & 40320 \\ - 9 & 81 & 6561 & 362880 \\ - 10 & 100 & 10000 & 3628800 \\ - 11 & 121 & 14641 & 39916800 \\ - 12 & 144 & 20736 & 479001600 \\ - 13 & 169 & 28561 & 6.22702080E+9 \\ - 14 & 196 & 38416 & 8.71782912E+10\\ - 15 & 225 & 50625 & 1.30767437E+12\\ - 16 & 256 & 65536 & 2.09227899E+13\\ - 17 & 289 & 83521 & 3.55687428E+14\\ - 18 & 324 & 104976 & 6.40237370E+15\\ - 19 & 361 & 130321 & 1.21645100E+17\\ - 20 & 400 & 160000 & 2.43290200E+18\\ - \hline - 1 & 1 & 1 & 1 \\ - 2 & 4 & 16 & 2 \\ - 3 & 9 & 81 & 6 \\ - 4 & 16 & 256 & 24 \\ - 5 & 25 & 625 & 120 \\ - 6 & 36 & 1296 & 720 \\ - 7 & 49 & 2401 & 5040 \\ - 8 & 64 & 4096 & 40320 \\ - 9 & 81 & 6561 & 362880 \\ - 10 & 100 & 10000 & 3628800 \\ - 11 & 121 & 14641 & 39916800 \\ - 12 & 144 & 20736 & 479001600 \\ - 13 & 169 & 28561 & 6.22702080E+9 \\ - 14 & 196 & 38416 & 8.71782912E+10\\ - 15 & 225 & 50625 & 1.30767437E+12\\ - 16 & 256 & 65536 & 2.09227899E+13\\ - 17 & 289 & 83521 & 3.55687428E+14\\ - 18 & 324 & 104976 & 6.40237370E+15\\ - 19 & 361 & 130321 & 1.21645100E+17\\ - 20 & 400 & 160000 & 2.43290200E+18\\ - \hline - 1 & 1 & 1 & 1 \\ - 2 & 4 & 16 & 2 \\ - 3 & 9 & 81 & 6 \\ - 4 & 16 & 256 & 24 \\ - 5 & 25 & 625 & 120 \\ - \end{supertabular} -\end{center} -%%%% fin exemple %%%% - -* Le package 'longtable', de D. Carlisle, disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, fonctionne de la même -manière mais mieux et permet de définir une taille de tableau -commune sur toutes les pages. Les commandes associées à ce -package sont \endfirsthead, \endhead, \endfoot et \endlastfoot. - -\begin{longtable} - {|p{0.2\linewidth}|p{0.2\linewidth}|p{0.2\linewidth}|} - \hline - Premiere colonne & Deuxieme & Troisieme \endfirsthead - \hline - Premiere & Deuxieme & Troisieme \\ - \multicolumn{3}{|p{0.6666\linewidth}|}{Suite ... } \\ - \endhead - \hline - \multicolumn{3}{|p{0.6666\linewidth}|}{Suite page suivante} - \\ \hline \endfoot \hline - \multicolumn{3}{|p{0.6666\linewidth}|}{C'est fini} \\ - \hline - \endlastfoot \hline - 1 & 1 & 1 \\ - 2 & 4 & 16 \\ - 3 & 9 & 81 \\ - 1 & 1 & 1 \\ - 2 & 4 & 16 \\ - 3 & 9 & 81 \\ - 1 & 1 & 1 \\ - 2 & 4 & 16 \\ - 3 & 9 & 81 \\ - 1 & 1 & 1 \\ - 2 & 4 & 16 \\ - 3 & 9 & 81 \\ -\end{longtable} - -au lieu de faire des calculs de largeurs de colonne, on peut -aussi mettre un \setlongtables dans le préambule et déclarer -ses tableaux comme à l'habitude en \begin{longtable}{|c|c|c|} -et LaTeX se charge du reste. Dans ce cas, l'ajustement des -colonnes peut nécessiter plusieurs (jusqu'à trois) compilations -enchaînées. - -* Le package 'ltxtable' de D. Carlisle, disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/carlisle/ permet de -profiter des fonctionnalités de tabularx et de longtable. - -# 7.3 # Comment modifier l'orientation d'un tableau ? ------------------------------------------------------ -* On peut utiliser la commande \rotatebox du package 'graphics' -de D. Carlisle. Ce package est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/. - -Exemple : -\rotatebox{90}{ -\begin{tabular}{|c|c|} - \hline - salut & coucou \\ - \hline -\end{tabular} -} -%%%% fin exemple %%%% - -* Le style 'lscape' de D. Carlisle marche aussi avec -l'environnement longtable (du même). - -* De même l'environnement sidewaystable du package 'rotating' -permet d'inclure des tableaux en mode landscape. Le sens de -rotation peut être changé par l'option counterclockwise. - -Exemple : -\documentclass{report} -\usepackage[counterclockwise]{rotating} -\usepackage{french} -\pagestyle{empty} -\begin{document} -\rotatebox{90}{ -\begin{tabular}{|c|c|} - \hline - vu & à voir \\ - de Latour & Van Gogh \\ - \hline -\end{tabular} -} -\end{document} -%%%% fin exemple %%%% - -* Le package 'rotfloat' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/rotfloat/ permet de gérer -la rotation des flottants. - -# 7.4 # Comment nommer un tableau ? ------------------------------------ -Pour pouvoir associer une légende (\caption) à un tableau, il -suffit de l'encapsuler dans un environnement table. - -Exemple : -\begin{table}[htbp] - \begin{center} - \begin{tabular}{|c|c|} - \hline - un & deux \\ - \hline - trois & quatre \\ - \hline - \end{tabular} - \caption{Nom du tableau. \label{table-nom}} - \end{center} -\end{table} -%%%% fin exemple %%%% - -# 7.5 # Comment modifier l'épaisseur des lignes d'un tableau ? --------------------------------------------------------------- -* Pour obtenir des lignes horizontales fines ou épaisses dans un -tableau, il faut utiliser les commandes -\setlength{\doublerulesep}{\arrayrulewidth} dans l'entête du -document puis dans le tableau -\\\hline pour une ligne fine -\\\hline\hline pour une ligne épaisse - -* Autre solution : la macro de A. Kessi (alain.kessi@psi.ch) - -%%%% debut macro %%%% -\makeatletter -\def\hlinewd#1{% -\noalign{\ifnum0=`}\fi\hrule \@height #1 % -\futurelet\reserved@a\@xhline} -\makeatother -%%%% fin macro %%%% - -Exemple : -\begin{tabular}{|l|r|} \hline - premier & 1 \\ \hline - second & 2 \\ \hlinewd{5pt} - total & 3 \\ \hline -\end{tabular} -%%%% fin exemple %%%% - -Même chose pour les lignes verticales. -%%%% debut macro %%%% - \begin{tabular}{@{\,\vrule width 5pt\,}c|c|} -%%%% fin macro %%%% - -* Le package 'easytable' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ propose différents -styles de lignes de séparation des cellules d'un tableau. - -# 7.6 # Comment griser des cellules d'un tableau ? --------------------------------------------------- -* Le package 'colortab' disponible par ftp sur -ftp://ftp.princeton.edu/pub/tvz/ ou sur -ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/generic/ (accompagné de sa doc dans -ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/origdoc/) permet de griser ou de mettre en -couleur certaines parties de tableau. - -Remarque : colortab n'est pas actuellement maintenu par Van - Zandt et l'extension longtable, avec laquelle il - était compatible, ne fonctionne plus. -AL: c'est toujours vrai, ça ? - -* Il est possible également d'utiliser le package 'shade' -disponible sur {macros/generic/}. - -* D. Carlisle propose également le package 'colortbl' sur -ftp://ftp.fdn.org/pub/CTAN/macros/contrib/supported/carlisle/. Ce package permet -non seulement de gérer de la couleur mais il est en outre -compatible avec le package 'longtable'. Il nécessite les -packages 'array' et 'color'. - -Exemple : -\begin{tabular}{|>{\columncolor[gray]{.8}}l% -|>{\color{white}\columncolor[gray]{.2}}r|} - \hline - UN & DEUX \\ - TROIS & QUATRE \\ - \hline -\end{tabular} -%%%% fin exemple %%%% - -# 7.7 # Comment changer la fonte d'une colonne ? ------------------------------------------------- -Pour préciser une fonte spécifique dans une colonne d'un -tableau, on peut utiliser le package 'array'. Ce dernier est -disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/. - -Exemple : -\begin{tabular}{>{\bfseries}l >{\slshape}r c} - gras & penché & normal \\ -\end{tabular} -%%%% fin exemple %%%% - -# 7.8 # Comment créer des notes de bas de page dans un tableau ? ----------------------------------------------------------------- -* Il suffit d'encapsuler le tableau dans un environnement -minipage et pour supprimer le trait de séparation des notes de -bas de page de déclarer : \renewcommand{\footnoterule}{}. - -Exemple : -\begin{minipage}[t]{5cm} - \renewcommand{\footnoterule}{} % permet de supprimer le - % trait de séparation - \begin{tabular}{|c|c|} - \hline - Air & Terre\footnote{Feu}\\ - \hline - \end{tabular} -\end{minipage} -%%%% fin exemple %%%% - -Remarque : dans ce cas, la note apparaît juste après le tableau, - dans l'environnement minipage. - -* On peut également utiliser : -\footnote[cptr]{texte.} -toujours dans un environnement minipage, et gérer soi-même ses -compteurs (cptr est un entier alors que les marques qui -apparaissent dans le tableau sont les lettres de l'alphabet). - -Remarque : ici aussi la note apparaît en dessous du tableau. - -* Il existe également deux commandes spécifiques \footnotemark[] -et \footnotetext[]{}. \footnotemark permet de gérer le compteur -de notes et \footnotetext permet d'insérer le texte -correspondant en bas de page. - -Exemple : -\begin{tabular}{|c|c|} - \hline - donnee1\footnotemark[1] & donnee2\footnotemark[2] \\ - \hline -\end{tabular} -\footnotetext[1]{Note associ\'ee \`a la donn\'ee 1.} -\footnotetext[2]{Note associ\'ee \`a la donn\'ee 2.} -%%%% fin exemple %%%% - -Remarque : ici les notes apparaissent bien dans le bas de page. - -# 7.9 # Comment écrire un texte sur plusieurs colonnes ? --------------------------------------------------------- -Il faut utiliser la commande : -\multicolumn{nb_colonnes}{alignement}{Texte} - -Exemple : -\begin{tabular}[b]{|l|c|} - \hline - \multicolumn{2}{|c|}{Texte sur 2 colonnes} \\ - \hline \hline - donnée1 & donnée2 \\ - A & B \\ - \hline -\end{tabular} -%%%% fin exemple %%%% - -Remarque : dans le cas où le nombre de colonnes à couvrir est - égal à 1, cette commande peut être utilisée pour - modifier l'alignement (c, l, r, |, etc) d'une - cellule. - -# 7.10 # Comment passer certaines cellules en reverse vidéo ? -------------------------------------------------------------- -Le package 'color' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/ permet entre autres de le -faire. En fait, il permet de définir des couleurs de texte et de -fond de page. - -Exemples : -\tabcolsep=30pt -\begin{tabular}{|c|c|c|} -\hline -1&&\\ -&\colorbox{black}{\strut{\color{white}Coucou}}&\\ -&&2\\ -\hline -\end{tabular} - -ou (\LaTeXe) - -\newlength\Coucoulength -\settowidth\Coucoulength{Coucou Coucou Coucou} - -\begin{tabular}{|c|c|c|} -\hline -1&Coucou Coucou Coucou &\\ -&\colorbox{black}{\makebox[\Coucoulength][c]{\color{white}Coucou}} -&\\ -&&2\\ -\hline -\end{tabular} -%%%% fin exemple %%%% - -# 7.11 # Comment fixer la largeur d'une colonne ? -------------------------------------------------- -* p{largeur} dans les descripteurs de colonne permet de fixer la -largeur d'une colonne. Dans ce cas par défaut le texte est -justifié à gauche. Les commandes \centering et \raggedright -permettent respectivement de le centrer ou de le justifier à -droite. - -Exemple : -\begin{center} - \begin{tabular}{|c|l|p{4cm}|r|} - \hline - centré & à gauche & largeur fixe & à droite \\ - bla bla bla & bla bla bla & bla bla bla & bla bla bla \\ - \hline - \end{tabular} -\end{center} -%%%% fin exemple %%%% - -* Avec le package 'array', disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, il faut utiliser l'option -m{largeur}. - -* Le package 'easytable' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet facilement d'écrire -des tableaux dont les colonnes ont une largeur fixe. - -# 7.12 # Comment écrire un texte sur plusieurs lignes ? -------------------------------------------------------- -Il existe le package 'multirow' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/. Il permet d'écrire un texte à -cheval sur deux lignes. - -Exemple : -\begin{table}[htbp] - \begin{center} - \begin{tabular}{|c|c||c|c|} - \hline - \multirow{2}{0.5cm}{k} & \multirow{2}{0.5cm}{$p_G$} & - \multicolumn{2}{c|}{test} \\ - \cline{3-4} - & & DADWRD & RARWRD \\ - \hline - 2 & $1$ & 90 n & 228 n \\ - 3 & $p_d$ & 202 n & 449 n \\ - 4 & $p_d^2$ & 424 n & 891 n \\ - 5 & $p_d^3$ & 866 n & 1774 n \\ - \hline - \end{tabular} - \caption{Nombre d'opération par cellule des tests - pseudo-aléatoires de fautes de type k-coupling. - \label{table-compar}} - \end{center} -\end{table} -%%%% fin exemple %%%% - -# 7.13 # Comment diviser une cellule par une diagonale ? --------------------------------------------------------- -Il faut utiliser le package 'slashbox' disponible par ftp sur -ftp://ftp.tohoku.ac.jp/pub/TeX/latex-styles/bear_collections/style-files/. - -Exemple (de la doc) : -\begin{tabular}{|l||*{5}{c|}}\hline -\backslashbox{Room}{Date} -&\makebox[3em]{5/31}&\makebox[3em]{6/1}&\makebox[3em]{6/2} -&\makebox[3em]{6/3}&\makebox[3em]{6/4}\\\hline\hline -Meeting Room &&&&&\\\hline -Auditorium &&&&&\\\hline -Seminar Room &&&&&\\\hline -\end{tabular} -%%%% fin exemple %%%% - -# 7.14 # Comment définir une colonne en mode mathématique dans un tableau ? ---------------------------------------------------------------------------- -Avec le package 'array' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/, il suffit de déclarer -\begin{tabular}{>{$}c<{$}cc} pour avoir une colonne en mode -mathématique et deux colonnes de texte. - -# 7.15 # Comment modifier le nombre de tableaux par page ? ----------------------------------------------------------- -cf. question 8.4. - -# 7.16 # Comment mettre deux tableaux côte à côte ? ---------------------------------------------------- -cf. question 8.3. - -# 7.17 # Comment définir un séparateur de colonne ? ---------------------------------------------------- -@{symbole} entre deux descripteurs de colonnes permet de définir -"symbole" comme séparateur de colonnes. Cela remplace |. - -Exemple : -\begin{tabular}{|l @{\textbf{ est }} l|} - \hline - Le lion & féroce. \\ - Le chien & fidèle. \\ - \hline -\end{tabular} -%%%% fin exemple %%%% - -# 7.18 # Comment obtenir des lignes partielles dans un tableau ? ----------------------------------------------------------------- -La commande \cline{ColonneDebut-ColonneFin} est faite pour ça. - -Exemple : -\begin{center} - \begin{tabular}{|c|c|c||c|c|c|c|c|c|c||c|} - \hline \hline - a & b & c & d & e & f & g & h & i & j & k \\ - \cline{1-4} \cline{6-6} \cline{8-9} - 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \\ - \hline - \end{tabular} -\end{center} -%%%% fin exemple %%%% - -# 7.19 # Comment éviter que du texte de grande taille n'atteigne le cadre des cellules ? ----------------------------------------------------------------------------------------- -* Il faut pour cela utiliser la commande \strut qui simule un -objet vertical invisible, après le changement de fonte. - -Exemple : -\begin{tabular}{|l|} - \hline - {\large HELLO} dfg \\ - \hline -\end{tabular} -\begin{tabular}{|l|} - \hline - {\large\strut HELLO} dfg \\ - \hline -\end{tabular} -%%%% fin exemple %%%% - -* Il existe l'équivalent mathématique : \mathstrut. - -* On peut également agrandir la hauteur des lignes avec la -commande \arraystretch : - \renewcommand{\arraystretch}{1.5} - -# 7.20 # Comment fixer la largeur d'un tableau ? ------------------------------------------------- -* Le package 'tabularx' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/ permet de définir une largeur -de tableau. - -* Le package 'easytable' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/easy/ permet facilement de -fixer des largeur de colonnes ou de lignes. - -# 7.21 # Comment tracer des traits discontinus ? ------------------------------------------------- -Il faut utiliser les packages 'hvdashln' et 'array'. - -Exemple : -dans le préambule du document : -\usepackage{hvdashln,array} -\setlength{\hdashlinewidth}{.5pt} -\setlength{\hdashlinegap}{2pt} - -dans le texte : -\[ -\left[ \begin{array}{ccc@{}>{\vdashline}c} - a_1 & b_1 & c_1 & d_1 \\ - a_2 & b_2 & c_2 & d_2 \\ - a_3 & b_3 & c_3 & d_3 \\ - a_4 & b_4 & c_4 & d_4 -\end{array} \right] -\] -%%%% fin exemple %%%% - -# 7.22 # Comment fixer la taille et justifier une colonne ? ------------------------------------------------------------ -Le problème qui se pose lorsqu'on utilise : -\begin{tabular}{|>{\raggedright}p{0.33\textwidth}<{}| - >{\raggedleft}p{0.66\textwidth}<{}|} - A& \\ - B&C \\ -\end{tabular} -vient du fait que \\ est redéfini par tabular et les commandes -ragged. On ne peut donc plus utiliser \\ dans un texte. - -Il existe différentes solutions pour pallier ce problème : -* on peut corriger ce problème en incluant les lignes suivantes -dans le préambule du document : -\makeatletter -\newtoks\fintableau -\let\fintableau\@arraycr -\makeatother - -* avec le package 'array', il suffit d'utiliser -la commande \tabularnewline[<vertical space>] à la place de la -commande \\. - -Exemple : -\begin{tabular}{|r|r|>{\raggedleft}m{190pt}|} - \hline - col1 & col 2 & col3 \tabularnewline - une & deux & trois \\ quatre \tabularnewline - \hline -\end{tabular} -%%%% fin exemple %%%% - -* on peut également inclure la nouvelle commande suivante dans -le préambule du document : -\newcommand\PreserveBackSlash[1]{\let\temp=\\#1\let\\=\temp} -puis en utilisant : -\begin{tabular}{|r|r|>{\PreserveBackSlash\raggedleft}m{190pt}|} - -# 7.23 # Comment faire une liste de tableaux ? ----------------------------------------------- -Il suffit d'inclure la commande \listoftables à l'endroit où -l'on veut inclure cette liste. Sachant que cette liste fait -référence aux pages où apparaissent les tableaux, il faut -enchaîner au moins deux compilations LaTeX pour que toutes les -références soient exactes. - -================================================================ -[8] GESTION DES FIGURES -================================================================ - -# 8.1 # Comment inclure une figure ? ------------------------------------- -Remarque : A. K. Goel a écrit un long document concernant les - problèmes de gestion de figures et d'images dans - LaTeX. Ce dernier est disponible par ftp anonyme sur - ftp://math.uwaterloo.ca/pub/figsInLatex.ps.Z ou sur - ftp://ftp.fdn.org/pub/CTAN/info/figsinltx.ps - - De même, K. Reckdahl a écrit "Using EPS Graphics in - LaTeX2e Documents". Ce document est disponible sur - ftp://ftp.fdn.org/pub/CTAN/info/epslatex.ps. - -* Sous LaTeX2e, il faut utiliser l'un des packages : -'graphics' ou 'graphicx' et la commande \includegraphics. Cette -commande accepte des options telles que dvips ou oztex (cf. -documentation pour plus de détails). -Le package 'graphicx' a pour majeure différence avec 'graphics' -d'en simplifier les commandes. Ces packages sont disponibles sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/. Pour plus de -détails, consulter http://www.loria.fr/services/tex/packages.html. - -Exemple : -\begin{figure}[htbp] - \begin{center} - \includegraphics{images/fig1.ps} - \end{center} - \caption{\footnotesize blah blah blah} -\end{figure} -%%%% fin exemple %%%% - -La commande \includegraphics du package 'graphicx' peut prendre -comme paramètres angle, width, height, scale, clip et draft. - -Exemple : -\includegraphics[width=\linewidth, draft=true]{figure.eps} -%%%% fin exemple %%%% - -* Sous LaTeX2.09, pour pouvoir appeler un fichier postscript, -il suffit de mettre l'option epsf dans le \documentstyle. -La figure peut ensuite être appelée par la commande -\epsfbox{nom-figure.(e)ps} - -Une jolie façon d'inclure une figure dans un source LaTeX2.09 -est d'utiliser la macro : - -\begin{figure}[htbp] - \centerline{\epsfxsize=10cm \epsfbox{nom-figure.format}} - \caption{. \label{fig-}} -\end{figure} - -* Il y a aussi le package 'epsfig' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/ (LaTeX2.09 mais utilisable -avec LaTeX2e). - -Exemple : -\begin{figure}[p] - \centerline{\epsfig{file=nom_figure.eps, - width=largeur, - height=hauteur}} - \caption{Titre.} - \label{nom_label} -\end{figure} -%%%% fin exemple %%%% - -* Une figure au format tex picture, tex picture + epic, tex -picture + eepic, ... peut être appelée directement par une -commande \input. En outre, si vous utilisez un format epic ou -eepic, il faut penser à rajouter 'epic' ou 'eepic' à la ligne -documentstyle ou d'inclure les packages 'epic' ou 'eepic'. - -# 8.2 # Comment nommer une figure ? ------------------------------------ -C'est la commande \caption qui permet de faire cela. Par défaut -le titre de la figure apparaîtra en dessous. Cf exemples -ci-dessus. Pour que le titre apparaisse au-dessus, il faut -redéfinir les longueurs suivantes. - -Exemple : -\setlength\abovecaptionskip{0pt} -\setlength\belowcaptionskip{10pt} -puis appeler : -\begin{figure} -\caption{... ... ...} -\includegraphics{dessin.eps} -\end{figure} -%%%% fin exemple %%%% - -# 8.3 # Comment placer des figures côte à côte ? ------------------------------------------------- -* Sous LaTeX2e, il faut utiliser le package 'graphics' ou -'graphicx' disponibles sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/. - -Exemples : -\begin{figure} - \begin{minipage}[c]{.46\linewidth} - \includegraphics{figure1.format} - \end{minipage} \hfill - \begin{minipage}[c]{.46\linewidth} - \includegraphics{figure2.format} - \end{minipage} -\end{figure} - -\begin{figure} -\includegraphics[width=5cm]{fig1.eps}\hfill -\includegraphics[width=5cm]{fig2.eps} -\caption{Titre commun}\label{fig:somefiglabel} -\end{figure} -%%%% fin exemple %%%% - -* Une autre solution consiste à mettre chaque figure dans une -case d'un tableau. - -Exemple (avec le package graphics ou graphicx) : -\begin{tabular}{cc} - \includegraphics{figure1.eps} & - \includegraphics{figure2.eps} \\ -\end{tabular} -%%%% fin exemple %%%% - -* LaTeX2.09. Pour mettre des figures côte à côte, il suffit -d'encapsuler leur appel dans des minipages. - -Exemples : -+ avec le package 'epsf' -\begin{minipage}[t]{.46\linewidth} - \center\epsfxsize= 5cm \epsfbox{fig1.eps} -\end{minipage} % ne pas sauter de ligne -\begin{minipage}[t]{.46\linewidth} - \center\epsfxsize= 5cm \epsfbox{fig2.eps} -\end{minipage} - -ou si l'on veut attacher des titres aux figures : - -+ avec le package 'epsfig' -\begin{figure} - \begin{minipage}[b]{.46\linewidth} - \centering\epsfig{figure=fig1.ps,width=\linewidth} - \caption{premiere figure \label{fig1}} - \end{minipage} \hfill - \begin{minipage}[b]{.46\linewidth} - \centering\epsfig{figure=fig2.ps,width=\linewidth} - \caption{deuxieme figure \label{fig2}} - \end{minipage} -\end{figure} -%%%% fin exemple %%%% - -* Si l'on veut un seul titre pour plusieurs figures voir le -package 'subfigure' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/subfigure/. - -Exemple : -\begin{figure}[ht] -\begin{center} - \subfigure[I]{\epsfig{figure=st1.ps,width=6.58cm}}\quad - \subfigure[II]{\epsfig{figure=st2.ps,width=5.0cm}}\\ - \subfigure[III]{\epsfig{figure=st3.ps,width=5.0cm}} -\end{center} -\caption{Impermeable surface treatments} -\label{fig:inf} -\end{figure} -%%%% fin exemple %%%% - -* Une autre possibilité pour obtenir un titre par figure est -d'utiliser le package 'epslatex' disponible sur -ftp://ftp.fdn.org/pub/CTAN/info/. - -# 8.4 # Comment modifier le nombre de figures par page ? --------------------------------------------------------- -En fait, on ne peut agir que globalement sur le nombre de -flottants autorisé par page. Il n'y a pas de sélection -figure/tables/.... - -Il arrive fréquemment que lorsqu'un flottant dépasse 60% d'une -page, LaTeX préfère changer de page plutôt que d'utiliser les -40% de l'espace restant. - -La commande \floatpagefraction permet de redéfinir l'espace -minimum que peuvent occuper des flottants. Cela permet de -limiter le "blanc" sur une page contenant des flottants. - -Exemple : -\renewcommand{\floatpagefraction}{.9} -utilisée avec la commande : -\renewcommand{\textfraction}{.1} -permet de dire que le texte peut n'occuper que 10% d'une -page, et donc que des flottants peuvent occuper les 90% restant. -%%%% fin exemple %%%% - -Il y a d'autres paramètres intéressants : -\setcounter{totalnumber}{4} -qui détermine le nombre de flottants autorisés par page, -\renewcommand{\topfraction}{.8} et -\renewcommand{\bottomfraction}{.8} -qui indiquent la fraction maximum du haut ou du bas de la page -que peuvent occuper des flottants. - -Remarque : Il est recommandé de ne jamais mettre 100% comme - paramètre. - -# 8.5 # Comment superposer du texte sur des figures ? ------------------------------------------------------ -* PSFrag (disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/psfrag/) donne cette possibilité. -La solution consiste en fait à : -1+ faire le graphique .ps AVEC des textes et légendes MAIS -approximatifs -2+ utiliser PSfrag pour qu'il remplace les textes approximatifs -par des textes << LaTeX >> -(3-) l'écriture << par dessus >> (le remplacement en fait) est -fait par PSfrag. -Pour plus de détails, consulter le document "Using EPS Graphics -in LaTeX2e Documents" disponible sur ftp://ftp.fdn.org/pub/CTAN/info/epslatex.ps. - -* On peut également générer une courbe dans un fichier .eps, -qui peux ensuite être inclu dans un environnement "picture", -dans lequel il est ensuite possible d'ajouter du texte avec des -\put. Cela demande pas mal de mises au point. - -Exemple : -\setlength\unitlength{1cm} -\begin{picture}(10,10) -\put(0,0){\includegraphics{mondessin.eps}} -\put(10,10){Mon commentaire \LaTeX{} avec des $maths$} -\end{picture} -%%%% fin exemple %%%% - -Cette technique permet de conserver la puissance de LaTeX et -d'avoir une typographie homogène mais elle a l'inconvenient -d'être assez lourde. - -* PSTricks est un ensemble de macros TeX, disponible sur -ftp://ftp.fdn.org/pub/CTAN/graphics/pstricks/, qui permet également de faire cela. Il -nécessite un gros investissement (il y a une centaine de pages -de documentation). Cependant, si l'on se limite à des commandes -simples (comme par exemple écrire un programme en C qui trace le -dessin, avec simplement des points, des droites, et un peu de -texte), la liste sommaire des commandes suffit (6 pages). - -* Xfig offre une autre solution. Après avoir inclu un fichier -postscript généré par un autre programme, on peut rajouter -du texte ou des commandes LaTeX dessus. -xfig -sp -Sauvegarder comme "combined PS/LaTeX" - -* Metapost est un langage graphique très proche de Metafont, -mais qui génère du postscript. Il permet de produire des figures -avec du texte et est bien interfacé avec TeX (Knuth -l'utilise). Metapost est integré dans web2c 7.0. Metapost a -déjà été porté sous MS-DOS et Mac (CMacTeX). Pour plus -d'informations, vous pouvez consulter la page de D. Roegel : -http://www.loria.fr/~roegel/metapost.html. - -* pstoedit permet également de visualiser des fichiers -postscript (sans bitmaps) et d'ajouter du texte ou des figures -par dessus. - -# 8.6 # Comment réaliser des captures d'écran ? ------------------------------------------------ -* Un outil très utile pour effectuer des captures d'écran sous -Unix est xv. xv est un éditeur d'images écrit par J. Bradley -disponible sous unix. xv est capable de gérer différents -formats d'image (encodage PS, GIF, JPEG, TIFF,...). Il -permet de visualiser des images et aussi de réaliser des -captures d'écran, soit partielles définies à la souris, soit -par fenêtre X Window. Il suffit ensuite de sauvegarder la -saisie d'écran de xv en format postscript et de l'appeler sous -LaTeX. - -xv est accessible par ftp sur ftp://ftp.lip6.fr/. - -* Sur PC il y a pcxdump disponible sur -http://micros.hensa.ac.uk/. Le package 'verbtext', disponible sur -CTAN, permet ensuite d'appeler la saisie réalisée. - -* De même, le package 'scrdumps' et l'utilitaire scr2tex.exe -sous DOS permettent d'inclure des saisies d'écran dans un -document LaTeX. - -# 8.7 # Comment tracer une courbe ? ------------------------------------ -* Xgraphic est un outil de tracé de courbes simple -d'utilisation (les options sont accessibles en interactif) mais -limité aux courbes 2D. Il est disponible avec une doc française -à http://blanche.polytechnique.fr/ et -ftp://barbes.polytechnique.fr/pub/Xgraphic/. - -* xmgr marche également très bien. - -* GNUplot est disponible sous Unix, sous Dos, sous Windows et -sous macOS -(http://www.ee.gatech.edu/users/schooley/gnuplot.html). Il -possède une sortie LaTeX (eepic). Il permet de tracer des -courbes (2D et 3D) à partir de valeurs ou d'une fonction. Les -formats de sortie sont LaTeX ou postscript. - -En outre, sous Unix, il est possible de récupérer des fichiers -GNUplot exportés par - set terminal fig - set output "graph.fig" -puis de les modifier. - -La FAQ GNUplot est disponible à -http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/. - -* Xy-pic compatible plain TeX, LaTeX2.09 et LaTeX2e permet de -tracer des courbes, de réaliser des diagrammes commutatifs, des -automates, et plein d'autres choses. Pour plus de -renseignements, consulter : -ftp://ftp.mpce.mq.edu.au/pub/maths/TeX/ ou -http://www.mpce.mq.edu.au/~ross/Xy-pic.html ou -http://www.brics.dk/~krisrose/Xy-pic.html -Le package 'xypic' est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/generic/diagrams/xypic/. - -* Sur PC grapher et surfer permettent également de tracer des -courbes et des surfaces (ils sont indépendants de LaTeX, mais -une saisie d'écran est toujours possible). - -* Le package 'curves' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/curves/ permet de définir des -courbes dans l'environnement picture. - -* Mathematica est également utilisable pour tracer des courbes -2D et 3D. - -# 8.8 # Comment est géré le positionnement des figures ? --------------------------------------------------------- -Comme mentionné précédemment (8.1), il existe différentes -options de placement des figures. Les plus classiques sont -\begin{figure}[htbp] pour laisser à LaTeX la possibilité de -placer les figures suivant ses critères de beauté. (h) impose -si possible le placement de la figure à l'appel de la macro -ci-dessus. Sinon la figure sera placée en haut de la page -suivante (t) ou en bas (b), voire sur une page seule (p). - -En revanche, pour forcer (dans la mesure du possible) LaTeX à -placer une figure là où elle a été appelée, il faut utiliser le -package 'float', de A. Lingnau, (\usepackage{float}) et l'option -H (\begin{figure}[H]). Ce package permet de définir un tel -placement par défaut via la commande \floatplacement{figure}{H}. -Il est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/float/. Voir la question 6.34 -pour un exemple d'utilisation de ce package. - -De même l'utilisation du caractère ! devant une option de -placement permet de forcer LaTeX2e à effectuer son placement au -plus tôt (suivant l'option choisie). - -Remarque (D.Barbier) : si un flottant ne peut pas être placé - avec les paramètres indiqués , celui-ci et tous les - flottants qui viennent après seront mis à la fin du - chapitre (en fait, ils seront insérés grâce à la - commande \clearpage). - -Le package 'placeins' de D. Arsenau permet de mettre des -garde-fous dans le texte. Par exemple, lorsqu'on place une -figure en dur avec une commande du style : -%%%% debut macro %%%% -\makeatletter -\newenvironment{figureH}{\begin{center} - \newcommand{\@captype}{figure}}{\end{center}} -\makeatother -%%%% fin macro %%%% -l'utilisation de \FloatBarrier juste avant, permet de vider le -buffer de flottants actuellement stockés. - -# 8.9 # Comment placer une légende à côté d'une figure ? --------------------------------------------------------- -* Pour placer une légende à côté d'une figure, il faut utiliser -l'environnement minipage. - -Exemple (extrait du cahier GUTenberg 22 pour l'article sur -esperluette) : -+ mettre dans le préambule : - -%%%% debut macro %%%% -\newlength\jataille -\newcommand{\figgauche}[3]% -{\jataille=\textwidth\advance\jataille by -#1 -\advance\jataille by -.5cm -\begin{minipage}[c]{#1} - \includegraphics[width=#1]{#2} -\end{minipage}\hfill -\begin{minipage}[c]{\jataille} - \footnotesize #3 \normalsize -\end{minipage}} -%%%% fin macro %%%% - -+ puis utiliser : -\figgauche{5cm}{totor.eps}{Titre.} - -* On peut également utiliser des parbox. - -Exemple : -\begin{figure} -\parbox{7cm}{...figure}\parbox{7cm}{\caption{---}} -\end{figure} -%%%% fin exemple %%%% - -# 8.10 # Comment insérer des figures dans multicol ? ----------------------------------------------------- - -On ne peut insérer que des figures de la largeur de la page, -et pas de la lageur d'une colonne, donc des figure* (resp. -table*). Un flottant n'apparaîtra pas sur la page où il -est defini, mais, au mieux, sur la page d'après. Le positionnement -[h] n'a donc pas de sens. - -Exemple (avec le package 'graphicx') : -\begin{figure*} - \includegraphics[width=3cm]{totor.eps} -\end{figure*} -%%%% fin exemple %%%% - -Remarque : dans ce cas la gestion de \caption semble ne pas être - correcte. - -# 8.11 # Comment faire apparaître toutes les figures en fin de document ? -------------------------------------------------------------------------- -Le package 'endfloat', disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/endfloat/, permet de -reporter toutes les figures en fin de document. - -ATTENTION : les classes AMS ne définissent pas les - environnements figure* et table*. En - outre, le package 'endfloat' a le mauvais goût de - supposer qu'ils sont définis. Un remède est de - faire : - \documentclass[a4paper,11pt]{amsart} - \newenvironment{figure*}{\figure}{\endfigure} - \usepackage{endfloat} - -# 8.12 # Comment insérer des images Mathematica ? -------------------------------------------------- -* Sous Unix ou sous DOS, il faut, à partir de Mathematica, -demander : Display["machin",truc] -qui sauve l'image truc dans le fichier machin dans un Postscript -embryonnaire, puis -!psfix -epsf machin > machin.eps -et on a un fichier EPS comme il faut. - -* Sous Windows, après avoir sélectionné l'image désirée, il -faut, dans le menu "Fichier" de Mathematica, "Exporter" vers un -format qui peut être .EPS (PostScript Encapsulé). L'appel de ce -fichier .eps sous LaTeX se fait alors de manière classique (cf. -paragraphe 8.1). - -Il est également possible d'extraire par copier/coller l'image -(.WMF) et de l'envoyer vers Ghostscript pour Windows, et -là-dedans de l'enregistrer dans un fichier PostScript. L'avantage -de cette solution est qu'elle peut permettre de retravailler -l'image (avant collage dans GS au moyen de CorelDraw, par -exemple). - -A noter que Y&Y TeX system supporte les images WMF (Windows -MetaFile) aussi bien que les TIFF ou EPSF. Mathematica est l'un -des seuls logiciels pour Windows qui utilise un format WMF -plutôt que TIFF. - -* Dernière solution (multi-système) : se servir du notebook -intitulé "GnuDisplay.m"(disponible sur MathSource chez Wolfram). -Celui-ci permet d'exporter une image Mathematica en image -GNUplot. Dans GNUplot, on peut alors exporter une image de deux -façons : -+ vers un fichier ".mf" qui contient l'image sous forme de -fonte. Avantage : on utilise MetaFont pour générer la fonte qui -contiendra l'image et l'insérer dans le texte, ce qui permet sa -prévisualisation immédiate par "dviscr", sans passer par "dvips" -puis GhostScript ou GhostView ; -+ vers un fichier au format LaTeX eepic, que l'on insère -facilement par la suite (commande \special). - -# 8.13 # Comment modifier la taille d'une bounding box ? --------------------------------------------------------- -En format eps (encapsulated postscript), la `bounding box` -permet de préciser la taille d'une image. La syntaxe est la -suivante : -%%BoundingBox: 0 0 507 257 -Les coordonnées correspondent dans l'ordre : -- coordonnée horizontale du point en bas à gauche de la figure; -- coordonnée verticale du point en bas à gauche; -- coordonnée horizontale du point en haut à droite; -- coordonnée verticale du point en haut à droite. -Les coordonnées verticales étant prises à partir du bas, et -celles horizontales à partir de la gauche. - -De plus ces coordonnées sont exprimées en points PostScript, -c'est-à-dire en soixante-douzième de pouce, i.e.: -1 pt PS = 1/72 pouce = 2.54/72 cm. - -Malheureusement, il arrive parfois que la taille de la bounding -box soit supérieure à celle de la taille réelle du dessin -qu'elle contient (il n'y a pas de mise à l'échelle). Le package -'boxedepsf', de L. Siebenmann, offre les commandes \Trim qui -permettent de résoudre le probleme. - -A. J. Carr a adapté ce package à LaTeX2e. Son package s'appelle -'boxedeps'. Ce dernier est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/generic/boxed/ ou sur -ftp://matups.math.u-psud.fr/pub/TeX/Graphics.dir/ArtIntegration.dir/boxedeps.dir/. - -Exemple : -\TrimTop{15pct}\BoxedEPSF{toto} -avec pct = pourcentage de la hauteur. -%%%% fin exemple %%%% - -# 8.14 # Comment obtenir une figure avec un titre non numéroté ? ----------------------------------------------------------------- -Il faut utiliser la commande \unnumberedcaption dont voici la -définition : -%%%% debut macro %%%% -\makeatletter % <=== in a .sty file delete this - -\newcommand{\unnumberedcaption}% - {\@dblarg{\@unnumberedcaption\@captype}} - -\newcommand{\@unnumberedcaption}{}% undefined yet -\long\def\@unnumberedcaption#1[#2]#3{\par - \addcontentsline{\csname ext@#1\endcsname}{#1}{% - % orig: \protect\numberline{\csname the#1\endcsname}% - %{\ignorespaces #2} - \protect\numberline{}{\ignorespaces #2}% - }% - \begingroup - \@parboxrestore - \normalsize - % orig: \@makecaption{\csname fnum@#1\endcsname}% - %{\ignorespaces #3}\par - \@makeunnumberedcaption{\ignorespaces #3}\par - \endgroup} - -% redefine \@makeunnumberedcaption (like \@makecaption) -% for your own layout -\newcommand{\@makeunnumberedcaption}[1]{% - \vskip\abovecaptionskip - \sbox\@tempboxa{#1}% - \ifdim \wd\@tempboxa >\hsize - #1\par - \else - \global \@minipagefalse - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip} - -% for LaTeX 2.09 compatibility, define \above/belowcaptionskip: -\@ifundefined{abovecaptionskip}{% - \newlength{\abovecaptionskip}% - \setlength{\abovecaptionskip}{10pt}% -}{} -\@ifundefined{belowcaptionskip}{% - \newlength{\belowcaptionskip}% - \setlength{\belowcaptionskip}{0pt}% -}{} - -\makeatother % <=== in a .sty file delete this -%%%% fin macro %%%% - -Remarque : le package 'french' V3,49 inclut cette macro. - -# 8.15 # Comment redéfinir le style de caption ? ------------------------------------------------- -* Par exemple pour changer la fonte de Figure : en gras, il -faut utiliser : - -%%%% debut macro %%%% -\makeatletter -\renewcommand{\fnum@figure}{\small\textbf{\figurename~\thefigure}} -\makeatother -%%%% fin macro %%%% - -* Pour agir sur les espaces horizontaux de part et d'autre de la -légende d'un flottant, on peut utiliser caption2.sty, et définir -la longueur \captionmargin qui sera insérée à gauche et à droite -de la légende. - -# 8.16 # Comment fondre une image dans du texte ? -------------------------------------------------- -* Le package 'floatfig', de T. Kneser, disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/floatfig/, permet d'entourer -une figure de texte de manière très efficace grâce à -l'environnement floatingfigure. Ce package a été conçu pour -LaTeX2.09, pour des documents sans colonnes. - -Exemple : -\begin{floatingfigure}[l]{4cm} - \includegraphics[width=4cm]{dessin} - \caption{Titre} -\end{floatingfigure} -%%%% fin exemple %%%% - -Remarque : le [l] du \begin{float...} sert à mettre la figure à - gauche. [r] permet de l'avoir à droite, [p] la met - à gauche sur une page de gauche et à droite sur une - page de droite. - -* Le package 'floatflt', de T. Kneser et M. Dahlgren, disponible -sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/floatflt/, a été écrit -pour LaTeX2e. Il étend les possibilités de floatfig par de -nombreuses options et est utilisable pour les figures et les -tableaux. - -Exemple : -\begin{floatingfigure}[options]{width of figure} - figure contents -\end{floatingfigure} -%%%% fin exemple %%%% - -* Le package 'picinpar' pour LaTeX2.09 est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/picinpar/ et sur -ftp://ftp.fdn.org/pub/CTAN/systems/msdos/4alltex/disk04/. Il permet de définir un nombre -de lignes avant lequel la figure pourra être insérée dans le -texte. La taille de la figure dépend de son contenu, sa position -est variable, et peut s'étaler sur plusieurs paragraphes. - -ATTENTION : Ce package n'est pas compatible avec amstex. - -Exemple : -\begin{window}[#lines before, l|r|c, picture contents, caption} - ... paragraph text ... -\end{window} -%%%% fin exemple %%%% - -* Mieux que le précédent, le package 'picins' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/picins/ permet d'inclure des -figures dans des paragraphes. - -Exemple : -\parpic(width,height)(x-off,y-off)[Options][Position]{Picture} - Paragraph text.... -%%%% fin exemple %%%% - -* Le package 'wrapfig' permet de définir la hauteur de la -figure, celle-ci ci peut apparaître à droite ou à gauche dans le -texte ou encore dans une marge. Ce package n'est pas compatible -avec les environnements de liste. - -Exemple : -\begin{wrapfigure}[height in lines]{l|r}[overhang]{width} - {figure, caption etc.} -\end{wrapfigure} -%%%% fin exemple %%%% - -* Le package 'flow' met obligatoirement la figure dans une boîte -avec un cadre et ne permet pas de définir de caption. - -Exemple : -\flow[L|R]{paragraph text}{figure box} -%%%% fin exemple %%%% - -* Le package 'window' de E. Schaluck, permet également -d'intégrer une figure dans un paragraphe mais il n'est plus -maintenu. Il a été écrit pour LaTeX2.09 mais il est compatible -LaTeX2e. - -Exemple : -\windowbox[toplines][inwindow: contents][ratio: l r] -... paragraph text ... \par -%%%% fin exemple %%%% - -Voici les résultats d'un test comparatif effectué par P. van -Oostrum : - A B C D E F G H I J K -picinipar |+|+|+| |+|+| |+| | | | -wrapfig |+|+|+|+| | |+|H|-|+| | -flow |-|-|+| | | | |+| | | | -floatfig |+|-|-|+| | |+| | |-| | -floatflt |+|+|+|+| | |+| |-| |+| -window |-|-|+| |+|+| |+| | | | -picins |+|-|+|+| | | |+|+| | | - -avec : -A: figure captions/counting/list of figures -B: table captions/counting/list of tables -C: Left/right possible (+ = both) -D: Alternating left/right for twosided docs -E: can be placed in the middle of text with twosided flowing -F: possible to start after the beginning of paragraph -G: can (more or less) float in the text -H: auto detection of size of figure (H=height only) -I: works with list environments -J: works with twocolumn -K: works with multicol - -Les meilleurs packages semblent être : -picins, floatflt et wrapfig. - -* Voici également une macro de C. Mercat : - -%%%% debut macro %%%% -\def\textdess#1#2 % #1={blabla} #2=\dessin{monbodessin} -{\hbox{ - -\setbox2=\hbox{#2} %c'est le dessin - -\count2=\wd2 %c'est la largeur du dessin. -%\showthe\count2 -\multiply\count2 by-1 -\advance\count2 by\hsize %count2 vaut le reste de la page -\advance\count2 by-2000000 %c'est pour la marge droite -\count1=\count2 -\advance\count2 by-2000000 %c'est pour la marge du milieu -\setbox1=\hbox to\count1sp{ %c'est le texte -\vbox{\hsize=\count2sp %c'est la largeur -#1 -}\hfill} -\count1=\ht1 %c'est la hauteur -\advance\count1 \dp1 - -\count2=\ht2 -\advance\count0 \dp2 - -\ifnum\count2<\count1 \count2=\count1 \fi -%c'est la + grde des 2 hauteurs -\vtop to \count2sp {\vfill \box1 \vfill} -\vtop to \count2sp {\vfill \box2 \vfill} -}} - -%%%% fin macro %%%% - -# 8.17 # Comment réaliser des diagrammes en bâtons ? ----------------------------------------------------- -Il existe le package 'bar', disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/, qui offre un environnement -barenv. - -# 8.18 # Comment faire un organigramme ? ----------------------------------------- -Il existe plusieurs contributions (toutes assez anciennes), -disponibles sur CTAN, dédiées spécifiquement à la réalisation -de différents types d'organigrammes : -* ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/nassflow/ -* ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/rail/ -* ftp://ftp.fdn.org/pub/CTAN/support/flow/ -A priori, le dernier est le plus évolué et est basé sur un -pré-processeur écrit en langage C, ce qui fait qu'il offre une -interface souple et puissante. - -# 8.19 # Comment centrer une figure très large ? ------------------------------------------------- -Le package 'bigcenter' ci-dessous permet de centrer des figures -très larges sans message d'erreur de type overful. - -%%%% debut macro %%%% -%%% ----------debut de bigcenter.sty-------------- - -%%% nouvel environnement bigcenter -%%% pour centrer sur toute la page (sans overfull) - -\newskip\@bigflushglue \@bigflushglue = -100pt plus 1fil - -\def\bigcenter{\trivlist \bigcentering\item\relax} -\def\bigcentering{\let\\\@centercr\rightskip\@bigflushglue% -\leftskip\@bigflushglue -\parindent\z@\parfillskip\z@skip} -\def\endbigcenter{\endtrivlist} - -%%% ----------fin de bigcenter.sty-------------- -%%%% fin macro %%%% - -# 8.20 # Comment passer de ps à eps ? -------------------------------------- -* S. Heiden : -Pour faire ce travail de transformation il faut interpréter TOUT -le code PostScript d'un fichier PS (être une imprimante PS en -gros), identifier la boîte englobante de ce qui est composé sur -UNE page et insérer vers le début ou la fin du fichier PS -original la fameuse ligne de la forme : - %%BoundingBox: 72 246 522 597 -qui renseigne les macros graphics, donc dvips, donc l'imprimante -sur cette fenêtre de clipping. - -Syntaxe: %%BoundingBox: llx lly urx ury -Qui sont deux points (lower left)(x,y) et (upper right)(x,y) -définissant la fenêtre. Si on n'est pas, soi-meme, une -imprimante PostScript on peut faire interpréter le code PS -original par une imprimante qui produira une page. On peut alors -mesurer la boîte englobante et la position de la figure dans la -page (la portion de toner qui nous intéresse) et composer la -ligne %%BoundingBox en s'exprimant en points d'1/72 de pouces -et sachant que le système de coordonnées est : -- en bas à gauche de la page ; -- vers la droite et vers le haut ; -- légèrement décalé vers le centre. En effet, une imprimante -n'imprime jamais sur le bord réel d'une page. Il y a une fenêtre -de clipping systématique matérielle plus petite que la page A4 -et centrée. L'origine du système correspond au coin de la -feuille ; le décalage du système de coordonnées arrive surtout -sur les coordonnées Y qui dépendent de l'avancement du papier -contrairement aux X, calés par les bords (qui n'a pas connu de -vieille imprimante LaserWriter pouvant louper de 5 cm le bord -inférieur d'une feuille A4 ?-). - -Si on fait calculer et imprimer la bbox par l'imprimante (par le -code de bbfig par ex.), ce problème ne se pose plus. Sans parler -de ps2epsi qui est la meilleure solution mais alors il faut -distinguer l'environnement de chaque système d'exploitation (Unix, -Mac, PC) et les outils correspondants. - -Remarque : Si on a plus d'une figure, que l'on s'intéresse à la - forêt amazonnienne ou que l'on est un peu riche, on - peut acheter Adobe Distiller ou autre pour faire ce - genre de travail. Par ailleurs Ghostview peut jouer - le rôle de l'imprimante si l'écran est correctement - calibré (à vérifier avec xdpyinfo et une règle...). - En gros il faut un outil qui sait composer du - PostScript. Après, tout dépend de ce qu'il propose. - -Suggestions : -- utiliser l'option "draft" pour que TeX visualise les boîtes -englobantes des figures (calculées à partir de %%BoundingBox). -- générer du EPSF natif à partir de l'outil de dessin plutôt que -de passer par PS->EPSF. - -* Le document "Using EPS graphics in LaTeX2e documents" de K. -Reckdahl répond également à cette question cf section 3.1 -Converting PS files to EPS. - -* ps2epsi, qui est livré avec GhostScript permet de convertir -du postscript en postscript encapsulé. - -# 8.21 # Comment changer l'orientation d'une figure ? ------------------------------------------------------ -* Le package 'rotfloat' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/rotfloat/ permet de gérer la -rotation des flottants. - -* On peut utiliser la commande \rotatebox du package 'graphics' -de D. Carlisle. Ce package est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/graphics/. - -Exemple : -\rotatebox{90}{ -\includegraphics{dessin1.eps} -} -%%%% fin exemple %%%% - -* La commande \includegraphics du package 'graphicx' peut prendre -comme paramètre un angle de rotation. - -Exemple : -\begin{figure} - \centering - \includegraphics[angle=90,width=\textwidth]{dessin.eps} -\end{figure} -%%%% fin exemple %%%% - -# 8.22 # Comment gérer des sous-figures sur plusieurs pages ? -------------------------------------------------------------- -Un seul environnement figure ne peut pas s'étendre sur plusieurs -pages, il faut donc gérer le problème à la main en instanciant -les numéros "à la main". - -Exemple : -\documentclass{article} -\usepackage{graphicx,subfigure} -\begin{document} - - \begin{figure} - \centering - \subfigure[First Part]{% - \label{fig:graphics:a}% label for subfigure - \includegraphics[width=\textwidth]{box.eps}}% - \caption{Large Graphics}% - \label{fig:graphics}% label for figure - \end{figure} - - \addtocounter{figure}{-1} - \begin{figure} - \addtocounter{subfigure}{1} - \centering - \subfigure[Second Part]{% - \label{fig:graphics:b}% label for subfigure - \includegraphics[width=\textwidth]{box.eps}}% - \caption{Large Graphics (con't)}% - \end{figure} - -\end{document} -%%%% fin exemple %%%% - -# 8.23 # Comment générer une liste des figures d'un document ? --------------------------------------------------------------- -Il existe pour cela la commande \listoffigures. Elle collecte -tous les numéros de figures ainsi que leur titre et le numéro -de la page où elles apparaissent. - -Remarque : une bonne mise à jour de cette liste nécessite au - moins deux compilations successives. - -# 8.24 # Comment faire une figure sous LaTeX ? ----------------------------------------------- -* On distingue deux techniques majeures : -+ soit on utilise un logiciel de dessin et on inclut une figure -sous un format défini (en général PostScript ou Encapsulated -PostScript). Pour une liste de logiciels, voir la question 25.1. -+ on utilise les commandes LaTeX disponibles. L'environnement -picture permet ainsi de composer des figures comprenant du -texte, des segments de droites, des cercles et des figures -géométriques. - -Les commandes LaTeX les plus courantes pour le dessin sont : -+ \put(x, y){objet} -+ multiput -+ \line(x,y){longueur} -+ \vector -+ \shortstack -+ \circle -+ \circle* - -Exemple : -\begin{picture}(largeur, hauteur) - \put(0,0){\line(1,0){3}} - \put(0,3){\line(1,1){4}} -\end{picture} -%%%% fin exemple %%%% - -* Le package epic définit un ensemble de commandes plus -complet que l'ensemble par défaut de LaTeX. Il s'agit des -commandes : \multiputlist, \matrixput, \grid, \dottedline, -\dashline, \drawline, \jput, \picsquare et \putfile, -ainsi que des environnements : dottedjoin, dashjoin et drawjoin. - -Exemple : -\matrixput(0,0)(10,0){6}(0,10){3}{\circle{4}} -\matrixput(2,0)(10,0){5}(0,10){3}{\line(1,0){6}} -\matrixput(0,2)(10,0){6}(0,10){2}{\line(0,1){6}} -%%%% fin exemple %%%% - -* PSTricks de T. Van Zandt propose un ensemble très complet de -macros TeX qui permettent de jouer avec des dessins -(dessin, couleur, rotation, superposition, ...). L'ensemble -PSTricks est composé de plusieurs packages : pstricks, pst-plot, -multido, pst-node, pst-coil, gradient, colortab, textpath, -charpath et pst2eps. Une documentation d'une centaine de page -est également fournie et nécessaire. - -ATTENTION : PSTricks fait appel à des macros postscript qui ne - sont donc pas toujours visibles dans les previewer - de .dvi. - -Exemple : -\psellipse(.5,0)(1.5,1) - -\parametricplot[plotstyle=dots,plotpoints=13]% - {-6}{6}{1.2 t exp 1.2 t neg exp} - -\psshadowbox{\textbf Grest!!} - -\pszigzag[coilarm=.5,linearc=.1{<->}(4,0) -%%%% fin exemple %%%% - -# 8.25 # Comment mettre un commentaire à côté d'une figure ? ------------------------------------------------------------- -Pour mettre un commentaire à côté d'une figure et pour que le -texte soit centré verticalement par rapport à la figure, il -faut utiliser des \parbox. - -Exemple : -\begin{tabular}{lc} -$M=0{,}01$ & \parbox[c]{12cm}{\includegraphics[width=12cm]{fig6a.eps}} \\ -$M=0{,}1$ & \parbox[c]{12cm}{\includegraphics[width=12cm]{fig6b.eps}} -% etc... -\end{tabular} -%%%% fin exemple %%%% -================================================================ -[9] INCLUSION DE FICHIERS -================================================================ - -# 9.1 # Comment inclure des fichiers en mode verbatim ? -------------------------------------------------------- -* Le package 'verbatim', de R. Schopf, permet via la commande -\verbatiminput, qui prend en argument un nom de fichier, -d'inclure un fichier en mode verbatim. Ce package est disponible -sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/distribs/ ou ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/tools/. - -* L'environnement alltt du package du même nom (package dû à J. -Braams) permet la même prouesse tout en gardant active -l'interprétation des commandes LaTeX dont le nom commence par le -caractère \ (le "backslash" reste actif). Il est disponible dans -sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/misc/ ou sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/base/. - -Exemple : -\begin{alltt} - Notez la différence subtile entre $f(x)$ et \(f(x)\) grâce à - l'utilisation du "backslash". -\end{alltt} -%%%% fin exemple %%%% - -* Les commandes \listinginput et \verbatimtabinput du package -'moreverb' (disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/) permettent d'inclure des -documents en mode verbatim avec ou sans numérotation des lignes -du fichier inclu. - -Exemple : -{ -\small -\listinginput[5]{10}{totor.c} -} -Les paramètres [5] et {10} indiquent que la numérotation des -lignes doit se faire de 5 en 5 en commençant à 10. -%%%% fin exemple %%%% - -* Il existe aussi le package 'verbtext' disponible sur CTAN. - -* Le package 'fancyvrb' est également disponible sur CTAN. - -* Pour insérer du code lisp dans un document LaTeX, il existe le -package 'lispcode' disponible par ftp sur -ftp://ki-server.informatik.uni-wuerzburg.de/pub/tex/. - -* On peut aussi essayer le package 'verbasef' (verbatim -automatic segmentation of external files) disponible sur CTAN. -Il utilise l'environnement figure. - -* Encore un autre, le package 'cprog' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/ permet d'inclure des morceaux de -code dans un document et de les gérer comme des flottants. - -* Le package 'sverb' de M. Wooding propose un environnement -listing. - -# 9.2 # Comment gérer un document par parties ? ------------------------------------------------ -Pour travailler sur un gros document, il est plus agréable de le -découper en plusieurs fichiers. Il y aura quoiqu'il en soit un -fichier principal (celui qui comprend le préambule et les -commandes \begin{document} et \end{document}). - -\input{fichier} permet d'inclure le fichier "fichier" dans le -fichier principal. Cette commande réalise une importation pure -et simple. Elle est plutôt réservée à l'importation de fichiers -de macros. - -\include{chapitre} permet d'intégrer le fichier "chapitre.tex" -dans le document principal en commençant une nouvelle page. -Cette commande réinitialise la numérotation des titres. Utilisée -avec la commande \includeonly{chapitre}, cette commande mise -dans le préambule, permet de ne recompiler le fichier principal -que sur les parties indiquées. - -Remarque : la commande \include ne permet pas d'intégrer un - fichier contenant lui-même une commande \include. - -Exemple : -\documentclass{report} -\includeonly{chap1, chap3} -\begin{document} -\include{chap1} -\include{chap2} -\include{chap3} -\end{document} -%%%% fin exemple %%%% - -Remarque : avec le package 'french', pour que la numérotation - des chapitres ne soit pas réinitialisée lorsqu'on - change de partie, il faut ajouter la commande - \noresetatpart en début de document après le - \begin{document} - -# 9.3 # Comment isoler une partie d'un fichier ps ou dvi ? ----------------------------------------------------------- -Il faut utiliser un outil qui permet de découper en page : -+ un fichier postscript, -* il s'agit des outils PSnup, PStoPS, PSSelect, qui ont été portés -sur Mac, aussi bien pour MPW qu'en "stand-alone" (dans la -distribution CMacTeX) -* on peut également utiliser ghostview (save marked pages) -disponible par ftp sur -ftp://iphthf.physik.uni-mainz.de/pub/gv/ - -+ un fichier dvi ? -DVIDVI pour MPW (utilitaire qui fait bien d'autres choses que -de découper) doit permettre de faire cela. - -# 9.4 # Comment inclure un fichier PICT ? ------------------------------------------ -On peut utiliser la commande \special{pictfile mondessin.pict} -ou \put(0,0){\special{pict=Mondessin}}. - -# 9.5 # Comment spécifier un chemin pour les fichiers à inclure ? ------------------------------------------------------------------ -* Il suffit d'utiliser la commande \import{chemin}{fichier}. -Elle évite de préciser le chemin où se trouvent les fichiers -appelés par la commande \input à chaque appel. - -%%%% debut macro %%%% -% import.sty: allows input of a file from another directory: -% -% \import{path}{file} - -\def\import{\begingroup - \protected@edef\@tempa{\endgroup - \noexpand\@import{\@ifundefined{input@path}{}{\input@path}}% - {\@ifundefined{Ginput@path}{}{\Ginput@path}}}% - \@tempa} -\def\@import#1#2#3#4{% - \def\input@path{{#3}#1}\def\Ginput@path{{#3}#2}% - \input{#4}% - \def\input@path{#1}\ifx\input@path\@empty \let\input@path\@undefined \fi - \def\Ginput@path{#2}\ifx\Ginput@path\@empty \let\Ginput@path\@undefined \fi -} -%%%% fin macro %%%% - -Exemple : -\import{Chapitres/}{chapitre1} -%%%% fin exemple %%%% - -* Pour les figures, la package 'graphicx' propose la commande -\graphicspath à utiliser en tête de document. - -Exemple : -\graphicspath{{Chapitre1/gfx/}{Chapitre2/gfx/}} -%%%% fin exemple %%%% - -* On peut également modifier certaines variables -d'environnement lorsqu'elles existent. - -Exemple (UNIX) : -setenv TEXINPUTS= /home/figures/:"$TEXINPUTS" -%%%% fin exemple %%%% - -================================================================ -[10] HAUTS ET BAS DE PAGES -================================================================ - -# 10.1 # Comment définir les hauts et bas de page ? ---------------------------------------------------- - -Remarque : lorsque le haut ou bas de page défini est trop grand, - on voit apparaître des messages d'erreur du style - "Overfull \vbox". Il faut alors redimensionner la - longueur correspondante. - - Exemple (dans le préambule) : - \addtolength{\headheight}{1.5pt} - %%%% fin exemple %%%% - -* Par défaut, LaTeX offre la numérotation des pages en bas de -page (style plain). Mais, il propose également 3 autres styles -de mise en page. Il s'agit des styles : -+ empty (hauts et bas de pages vides), -+ headings(la numérotation des pages apparaît en haut ainsi que -différentes informations suivant la classe de document), et -+ myheadings (les commandes \markboth et \markright permettent -de définir les informations qui devront apparaître dans le haut -de page. \markboth{entête gauche}{entête droite} s'utilise pour -un document recto-verso alors que \markright{entête} -s'applique à toutes les pages d'un document en simple recto). - -L'appel d'un style pour tout le document se fait via la commande -\pagestyle{style}. La commande \thispagestyle{} permet d'appeler -un style sur une page particulière. - -Remarque : malgré une déclaration globale de style de page, il - se peut que des déclarations locales de style soient - également nécessaires, puisque certaines commandes - LaTeX réinitialisent le style de la page sur laquelle - elles apparaîssent. - -* Le package 'fancyheadings', de P. van Oostrum, est disponible -sur ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/fancyheadings/. Il est -compatible LaTeX2.09 et LaTeX2e. Il permet de définir des entêtes -et des pieds de page relativement facilement. La définition des -pages spéciales se fait par : \thispagestyle{xxx} ou xxx peut -être fancy (utilise les définitions ci-dessous sur une page en -respectant le style plain pour les autres ), plain (style TeX) -ou fancyplain(permet de redéfinir le style plain et donc de -disposer de deux styles : fancy et plain). L'application d'un -style à toutes les pages d'un document s'obtient par -\pagestyle{nom_style}. - -Les macros principales sont : -+ pour les entêtes -\lhead[paire gauche]{impaire gauche} -\rhead[paire droit]{impaire droit} -\chead{centre} -+ pour les pieds de page -\lfoot[paire gauche]{impaire gauche} -\rfoot[paire droit]{impaire droit} -\cfoot{centre} - -On distingue les styles fancy et plain par : -\lhead[\fancyplain{paire gauche plain}{paire gauche fancy}] -{\fancyplain{paire gauche plain}{paire gauche fancy}} -Le style par défaut est alors plain. - -Ce package définit quatre nouvelles longueurs : -+ \headrulewidth -+ \footrulewidth -+ \plainheadrulewidth -+ \plainfootrulewidth - -Exemple : -\documentclass{article} -\usepackage{fancyheadings} -\pagestyle{fancy} -\usepackage{graphicx} -\renewcommand{\sectionmark}[1]{\markboth{#1}{}} -\renewcommand{\subsectionmark}[1]{\markright{#1}} -\rfoot{\leftmark\\\rightmark} -\lhead{\includegraphics[width=0.5cm]{foobar.ps}} - -\begin{document} - - \section{Première section.} - Intro. - \subsection{Sous-section.} - Texte. -\end{document} -%%%% fin exemple %%%% - -Remarque : sur certaines pages où le style de page est - réinitialisé par certaines commandes (telles que - \tableofcontents), il faut repréciser le style voulu - via la commande \thispagestyle. - -Exemple : -\addtocontents{toc}{\protect\thispagestyle{fancyplain}} -%%%% fin exemple %%%% - -* Le package 'fancyhdr' est le successeur du package -'fancyheadings' pour LaTeX2e. Il est disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/fancyhdr/. - -# 10.2 # Comment obtenir une note de bas de page ? --------------------------------------------------- -* La commande \footnote{texte} permet très facilement d'obtenir -des notes de bas de page sans se préoccuper de leur mise en -page. - -* Le package 'ftn' disponible sur CTAN dans -ftp://ftp.fdn.org/pub/CTAN/macros/latex209/contrib/misc/ permet d'étendre la commande -footnote à tous les environnements non flottants. - -# 10.3 # Comment mettre les notes de bas de page en fin de document ? ---------------------------------------------------------------------- -Le package 'endnotes', de J. Lavagnino, disponible sur CTAN -permet de faire cela. - -# 10.4 # Comment réduire les rappels de titres dans un haut ou bas de page ? ----------------------------------------------------------------------------- -Pour éviter que des titres trop longs n'apparaissent dans les -entêtes ou les pieds de pages, il suffit de passer un titre -plus court en option des commandes de structuration de -document. - -Remarque : dans ce cas, ce sont les titres courts qui - apparaîtront dans la table des matières. - -Exemple : -\documentclass{article} -\usepackage{fancyheadings} -\pagestyle{fancy} -\usepackage{graphicx} -\renewcommand{\sectionmark}[1]{\markboth{#1}{}} -\renewcommand{\subsectionmark}[1]{\markright{#1}} -\rfoot{\leftmark\\\rightmark} -\lhead{\includegraphics[width=0.5cm]{foobar.ps}} - -\begin{document} - - \section[Titre résumé.]{Un titre trop long pour les rappels.} - Intro. - \subsection{Sous-section.} - Texte. -\end{document} -%%%% fin exemple %%%% - -# 10.5 # Comment référencer une note de bas de page ? ------------------------------------------------------ -Il suffit simplement de définir un label à l'intérieur de la -commande \footnote et de la référencer par \ref. - -Exemple : -bla bla bla\footnote{Notons que ce bla l\`a est diff\'erent des -pr\'ec\'edents\label{footnote-bla}}... - -[...] - -..., comme l'indique la note~\ref{footnote-bla}, ... -%%%% fin exemple %%%% - -# 10.6 # Comment supprimer la numérotation des pages ? ------------------------------------------------------- -* Pour supprimer la numérotation des pages, il faut utiliser la -commande \pagestyle{empty}. Si elle ne suffit pas, il faut en -plus utiliser \thispagestyle{empty} sur les pages où la -numérotation subsiste. Ce comportement se justifie par le -fait que certaines commandes comme \tableofcontents ou \chapter -réinitialisent le style de page sur laquelle ils apparaissent. - -* On peut également redéfinir le style plain à empty -\let\ps@plain=\ps@empty. - -* Le package 'nopageno' de D. Carlisle, disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/carlisle/, de supprimer la -numérotation de toutes les pages même celles qui réinitialisent -le style de page. - -# 10.7 # Comment numéroter les pages par rapport à la dernière ? ----------------------------------------------------------------- -Pour pouvoir référencer les pages d'un document par rapport à la -dernière page (e.g. page 54/345), il faut utiliser le package -'lastpage' (disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/lastpage/). - -Exemple : -\documentclass{report} -\usepackage{french} -\usepackage{lastpage} - -\makeatletter -\renewcommand{\@evenfoot}% - {\hfil \upshape page {\thepage} de \pageref{LastPage}} -\renewcommand{\@oddfoot}{\@evenfoot} -\makeatother - -\begin{document} -Texte. -\end{document} -%%%% fin exemple %%%% - -Si l'on ne dispose pas du package 'lastpage', on peut définir ce -label "à la main" en ajoutant \label{LastPage} juste avant -\end{document} ou encore en utilisant la commande -\AtEndDocument{\label{LastPage}} dans le préambule du document. - -# 10.8 # Comment supprimer le trait de séparation des notes de bas de page ? ----------------------------------------------------------------------------- -Il suffit de mettre dans le préambule : -\renewcommand{\footnoterule}{} - -# 10.9 # Comment modifier la numérotation des pages ? ------------------------------------------------------ -* Il faut modifier la commande \thepage. - -Exemple (P. van Oostrum) : -\documentclass{report} -\usepackage{french} - -\makeatletter -\renewcommand{\thepage}{\thechapter-\arabic{page}} -% chapter-page numbering -\@addtoreset{page}{chapter} -% reset page number when chapter is stepped -% The next magic makes the page counter be reset to one rather -% than zero -\def\@stpelt#1{\global\csname c@#1\endcsname - \expandafter\ifx \csname#1\endcsname \page - \@ne - \else - \z@ \fi} -\makeatother -\begin{document} -\chapter{Introduction} -Texte. -\end{document} -%%%% fin exemple %%%% - -* Il existe également le package ci-dessous de A. Kielhorn. -%%%% debut macro %%%% -%% -%% This is page-per-chapter-package -%% version 2.0 -%% -%% Don't use it with refrep! -%% Refrep has these commands already implemented -%% -%% This version forces openright!! -%% -%% Index-commands should work in chapters and appedices, -%% they will not work as expected in the preface when the -%% pagenumbering is not arabic. (MakeIndex can't sort roman- -%% numbers) -%% -%% Bugs: -%% The index is sortet according to the pagenumber -%% without looking at the chapternumber. -%% I don't think MakeIndex could handle that. -%% - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{pagepc}[1995/05/13] - -\@ifundefined{chapter} -{\PackageError{pagepc}{% - You can't number your pages per chapter\MessageBreak when you - have no chapters - }{% - Use ``report'' or ``book'' instead. - } -}% -{} - -%% Reset the pagecounter to 1 at the start of a new chapter -%% -\let\ppchapter=\@chapter -\def\@chapter{\if@pageperchapter\setcounter{page}{1}\fi - \ppchapter} - -%% Force a pagebreak at the start of the appendix, otherwise -%% the number of the page right before the appendix comes -%% out wrong -%% -\let\ppappendix=\appendix -\def\appendix{\if@pageperchapter\newpage\fi\ppappendix} - -\newif\if@pageperchapter \@pageperchapterfalse - -%% This command enables Page-per-Chapter, it is *not* on by -%% default to allow roman pagenumbers in the preface -%% (see sample-document) -%% -\newcommand{\pageperchapter} - {\@pageperchaptertrue - \@openrighttrue - % Remember old setting for chapter 0 = preface - \let\ppthepage=\thepage - % The new number needs more space - \renewcommand\@pnumwidth{2.55em} - % Here it comes :-) - \renewcommand\thepage{% - \ifnum \c@chapter = \z@ - \ppthepage - \else - \thechapter\ -- \arabic{page} - \fi - } - } - -%% This is a hack to make MakeIndex happy :-( -%% You can't use the |-form of an indexentry because -%% it is used to store the chapternumber. -%% -\def\@wrindex#1{% - \ifnum \c@chapter = \z@ - \protected@write\@indexfile{}% - {\string\indexentry{#1}{\arabic{page}}}% - % The above is wrong if pagenumbering!=arabic, - % but I think this is better than nothing. - \else - \protected@write\@indexfile{}% - {\string\indexentry{#1|ppc{\thechapter}}{\arabic{page}}}% - \fi - \endgroup - \@esphack -} - -%% This prints the pagenumber in the index -%% -\def\ppc#1#2{#1 -- #2} - -\endinput -%%%% fin macro %%%% - -* Pour changer la valeur du compteur de page, il suffit -d'utiliser : -\setcounter{page}{17}. - -# 10.10 # Comment supprimer les entêtes et bas de page de pages vierges ? -------------------------------------------------------------------------- -Lorsqu'on utilise l'option 'openright' pour faire débuter un -nouveau chapitre sur une page de droite dans un document -recto-verso, pour ne pas afficher les entêtes et bas de page sur -une page de gauche restée vierge, on peut utiliser la commande -suivante (cf. LaTeX Companion) : - -\newcommand{\clearemptydoublepage}{% - \newpage{\pagestyle{empty}\cleardoublepage}} - -Il est alors nécessaire d'utiliser cette commande avant -la commande \chapter. - -# 10.11 # Comment gérer des en-têtes avec des environnements verbatim multi-pages ? ------------------------------------------------------------------------------------ -Le problème consiste à inclure un fichier avec la commande -\input dans un haut ou bas de page alors que le corps du -document comprend des environnements verbatim qui s'étalent sur -plus d'une page. Dans ce cas, LaTeX au lieu d'interpréter la -commande \input fait un copier-coller du contenu du fichier -appelé par la commande \input (c'est comme s'il était en mode -verbatim au moment de traiter le \input). - -La solution consiste à utiliser une boîte via \savebox. - -Remarque : cela ne marche que si les informations à imprimer ne - varient pas au fil des pages. - -Exemple : -\newsavebox{\logo} -\savebox{\logo}[2cm][c]{\input{logo-late.pstex_t}} -%%%% fin exemple %%%% - -# 10.12 # Comment utiliser \footnote dans un titre ? ----------------------------------------------------- -* Il faut utiliser la commande \protect. - -Exemple : - \section{Titre de section\protect\footnote{Commentaire sur - ce titre.}.} -%%%% fin exemple %%%% - -ATTENTION : le problème dans ce cas est que la note apparaîtra - aussi bien dans l'en-tête si l'en-tête rappelle le - titre des sections que dans la table des matières. - Pour supprimer ces apparitions il faut alors - utiliser la même technique que pour les titres - résumés : - \section[foo]{foo\protect\footnote{foooo}} - -* Il existe également le package 'stblftnt' de R. Fairbairns -disponible sur ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/other/misc/ qui -gère le problème énoncé ci-dessus sans avoir à réécrire tout -le titre. - -# 10.13 # Comment placer les notes de bas de page les unes à côté des autres ? ------------------------------------------------------------------------------- -Il faut utiliser le package 'footnote', de R. Fairbairns, -disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnote/ avec l'option para : -\usepackage[para]{footnote}. - -# 10.14 # Comment réinitialiser le compteur de note de bas de page à chaque page ? ----------------------------------------------------------------------------------- -* Il faut utiliser le package 'footnote', de R. Fairbairns, -disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnote/ avec l'option -perpage : \usepackage[perpage]{footnote} - -* Le package 'footnpag' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footnpag/ permet également de -faire cela. - -# 10.15 # Comment modifier le style des notes de bas de page ? --------------------------------------------------------------- -* Le package 'footmisc' disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/contrib/supported/footmisc/ permet de définir son -propre style de note de bas de page. - -* Le package 'ftnright' de F. Mittelbach redéfinit le placement -des notes de bas de page dans un document multi-colonnes. Lors -de l'utilisation de ce package, les notes de bas de page -appelées dans une page seront réunies et placées à la fin de la -dernière colonne de cette page. - -Remarque : Lorsque plusieurs packages sont utilisés - simultanément dans un même document, ftnright doit, - si possible, être appelé en dernier. - -# 10.16 # Comment utiliser le mode verbatim dans une note de bas de page ? --------------------------------------------------------------------------- -Par défaut, le mode verbatim n'est pas accessible dans une note -de bas de page (et de manière générale inutilisable dans un -argument d'une autre commande). -* On peut alors le forcer par : -\DeclareRobustCommand\espacement{{\fontencoding{OT1} -\selectfont \texttt{\char32}}} -* ou utiliser -\tt sous LaTeX2.09 -\texttt sous LaTeX2e - -# 10.17 # Comment éviter qu'une note de bas de page s'étale sur plusieurs pages ? ---------------------------------------------------------------------------------- -* La commande \samepage peut permettre de forcer LaTeX à ne -pas couper le contenu d'une note de bas de page. - -Exemple sans la commande : -Texte texte texte (1). Texte texte texte (2). Texte texte texte -(3). Texte texte texte (4). Texte texte texte (5). Un autre -texte\footnote{Un long long long long long long long long long -long long long long long long long long long long long long long -long long long long long long long long long long long long long -long long long long long commentaire sur cet autre texte.}. -Texte texte texte (6). Texte texte texte (7). Texte texte texte -(8). Texte texte texte (9). Texte texte texte (10). Texte texte -texte (11). Texte texte texte (12). Texte texte texte (13). -Texte texte texte (14). Texte texte texte (15). Texte texte -texte (16). Texte texte texte (17). Texte texte texte (18). -Texte texte texte (19). Texte texte texte (20). Texte texte -texte (21). Texte texte texte (22). -%%%% fin exemple %%%% - -Exemple avec : -Texte texte texte (1). Texte texte texte (2). Texte texte texte -(3). Texte texte texte (4). Texte texte texte (5). Un autre -texte\samepage\footnote{Un long long long long long long long -long long long long long long long long long long long long long -long long long long long long long long long long long long long -long long long long long long long commentaire sur cet autre -texte.}. Texte texte texte (6). Texte texte texte (7). Texte -texte texte (8). Texte texte texte (9). Texte texte texte (10). -Texte texte texte (11). Texte texte texte (12). Texte texte -texte (13). Texte texte texte (14). Texte texte texte (15). -Texte texte texte (16). Texte texte texte (17). Texte texte -texte (18). Texte texte texte (19). Texte texte texte (20). -Texte texte texte (21). Texte texte texte (22). -%%%% fin exemple %%%% - -* On peut également utiliser une \parbox mais cela peut modifier -la structure de la page (empiètement du bas de page). - -Exemple : -\footnote{\parbox[t]{0.94\linewidth}{This is a footnote ...} -%%%% fin exemple %%%% - -* L'emploi de la commande \enlargethispage peut également -suffire. - -* Une solution plus globale (et non pas au cas par cas comme les -solutions précédentes) consiste à redéfinir la pénalité associée -à \interfootnotelinepenalty. Cela permet de relâcher le critère -de beauté associé au placement des bas de page. - -Exemple : -Mettre dans le préambule \interfootnotelinepenalty=10000. -%%%% fin exemple %%%% - -Remarque : \raggedbottom permet en plus à LaTeX de ne pas - s'inquiéter si le corps de la note n'apparaît pas - sur la même page que son appel. - -================================================================ -[11] LATEX, LE FRANÇAIS ET LES AUTRES LANGUES -================================================================ - -# 11.1 # Comment franciser un document LaTeX ? ----------------------------------------------- -* 'babel' version 3.6 disponible sur -ftp://ftp.fdn.org/pub/CTAN/macros/latex/packages/babel/, est un package de J. Braams. -babel permet de composer des documents multilingues. Son appel -sous LaTeX2e se fait par \usepackage[langue_1, langue_2, ..., -langue_n]{babel}. - -Parmi les langues actuellement disponibles, on peut citer -english, german, italian, french, français. Le changement de -langue se fait via la commande \selectlanguage. - -Exemple : -\selectlanguage{spanish} -%%%% fin exemple %%%% - -La langue par défaut est la dernière de la liste passée en -paramètre à babel (langue_n dans l'exemple précédent). - -Ce package est le plus courant sur le plan international mais il -est souvent contesté en France. On lui préfère alors le package -'french'. - -* Le package 'french' de B. Gaulle est disponible par ftp sur -ftp://ftp.gutenberg.eu.org/pub/gut/french/ ou sur -ftp://ftp.loria.fr/pub/ctan/language/french/. - -Lors de l'installation, respectez les instructions d'installation -accompagnant french.sty (une FAQ est également disponible). Le -fichier des motifs de césure est désormais unique (frhyph.tex), -que l'on travaille avec le codage de fontes T1 ou OT1 (avec -option MlTeX). - -Vous pouvez également utiliser la série de commandes -suivantes, gentiment envoyées par Denis Barbier: - ----------- citation ---------- - make -f Makefile.unx ALLTEXPATH=/usr/share/texmf \ - install-hyphen install-config install-base install-index - texhash - -Puis modifier le fichier /usr/share/texmf/web2c/fmtutil.cnf et -ajouter -la ligne ci-dessous: -frlatex tex language.dat -mltex frlatex.ini - -Taper ensuite - fmtutil --byfmt frlatex - texlinks - -La commande pour compiler du LaTeX avec french est alors -frlatex. -------------- fin ------------- - -Remarque : Dans un fichier source (.tex), il est conseillé de - charger french après tous les autres packages. - -french prend notamment en charge la mise en page, la traduction -des balises LaTeX visibles dans le document final (Chapitre, -Table des matières, ...), .... - -ATTENTION : ces deux options (french et babel) ne sont pas - toujours parfaitement compatibles (les dernières - versions le sont french3,49 et babel 3.6). -AL: A vérifier... - - + \usepackage[francais]{babel} et - \usepackage[frenchb]{babel} font appel à l'option - frenchb maintenue par D. Flipo. - + \usepackage[french]{babel} fait appel au package - french de B. Gaulle à condition que french ait été - installé (et plus particulièrement french.ldf) - + les versions de tous ces packages sont très - importantes (babel, frenchb, french) pour une bonne - coexistence. Une version 3.6 beta de Babel est sur - CTAN mais il paraît qu'il y avait un problème avec - french. Babel 3.5e et french V3.46 collaborent assez - bien dans tous les sens. - + les fichiers de césure sont les mêmes pour babel - et pour french. - -ATTENTION : les dernières distributions de french (V4 et - post) ne sont plus compatibles LaTeX 2.09 ! - -# 11.2 # Comment corriger les coupures de mots accentués ? ----------------------------------------------------------- -* Une solution consiste à utiliser MlTeX (multilingual TeX). -C'est le moteur TeX de M. Ferguson. Il permet en particulier de -gérer les coupures de mots accentués. Certaines des idées -utilisées dans ce moteur ont d'ailleurs été reprises par la -suite dans TeX V3. - -* Suivant la fonte avec laquelle on travaille (i.e. suivant -qu'elle dispose des caractères accentués ou non), il peut -exister des problèmes d'interaction entre les lettres accentuées -et les règles de coupure des mots. En effet, l'utilisation d'une -fonte 7 bits impose que les caractères accentués soient -fabriqués par la macro \accent de TeX qui inhibe toute coupure -pour la suite du mot. - -En LaTeX2e l'utilisation de fontes respectant la norme T1 -(codage de Cork + 8 bits) permet d'éviter ces problèmes. Il faut -alors faire appel au package 'fontenc' : -\usepackage[T1]{fontenc} -Ce package nécessite que des fontes encodées T1 (suffisamment -récentes) aient été installées (fontes dc par exemple). - -Il faut en outre utiliser des modèles de coupure de mot encodées -T1. Il existe pour cela deux fichiers disponibles sur CTAN. Il -s'agit des fichiers fr8hyph.dc (ou mieux f8hyph, beaucoup plus -récent) pour un codage 8 bits (fonte avec caractères accentués -telle que dc) et fr7hyph (respectivement f7hyph) pour un codage -7 bits (accents TeX). L'association GUTenberg propose également -de tels fichiers (cf. french paragraphe 11.1). - -* Il peut y avoir également un problème de versions, -l'algorithme de coupure des mots a changé entre les versions -2.9 et 3.0. Ainsi si vous utilisez Tex V.3.0 ou plus, il faut -veiller à ce que les fichiers plain.tex et lplain.tex soient -également en version 3.0 ou plus. - -# 11.3 # Comment utiliser les lettres accentuées ? --------------------------------------------------- -* Les accents disponibles sous LaTeX sont présentés à la -question 29.57. - -* Pour éviter ces commandes barbares d'accentuation des -caractères, on peut utiliser une fonte contenant toutes les -lettres accentuées nécessaires (code 8 bits). Si besoin, il faut -préciser un codage d'entrée via l'instruction : -\usepackage[codage d'entrée]{inputenc} - -L'option est rendue nécessaire par le fait que les codes de -caractères au-delà de 127 sont différents sous Dos, MacOS et -Unix... Ainsi, le codage à preciser est latin1 pour un système -Unix ou un PC sous Windows, applemac sous Mac adapté au français -ou encore cp850 pour le code-page 850 sur PC (sous MS-DOS). Il -existe également ansinew, cp438, latin2 selon les systèmes. - -Exemple : -\usepackage[applemac]{inputenc} -%%%% fin exemple %%%% - -ATTENTION : inputenc.sty « casse » les efforts faits par mlTeX - lorsqu'on utilise les fontes codées OT1 (fontes CMR - ou PostScript). - -* mapcodes de M. Piotrowski autorise également un grand nombre -de codages de caractères (iso8859-1 (latin1), iso8859-2 -(latin2), ibm850 ou 852, hproman8, etc). - -# 11.4 # Comment composer du texte en grec moderne ou classique ? ------------------------------------------------------------------ -Il suffit d'utiliser l'option greek du package babel disponible sur CTAN. Son -site primaire est ftp://obelix.ee.duth.gr/pub/TeX/. La version 1.0 fournie -avec babel ne supporte pas les accents ni les marques de respirations par -contre la toute nouvelle version 1.1 les supporte. - -On trouvera un fichier de césure de mots dans -ftp://obelix.ee.duth.gr/pub/TeX/hyphen.greek. - -# 11.5 # Comment composer du texte en hébreu moderne ou classique ? -------------------------------------------------------------------- -Il suffit d'utiliser le package ArabTeX 3.05 disponible sur CTAN. Son site -primaire est ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/. -Ce package permet la vocalisation mais pas les marques de -cantillation. - -Exemple: -\documentclass{article} -\usepackage{arabtex,hebtex} -\setcode{standard} -\sethebrew - -\begin{document} -Voici du texte en hébreu -\begin{arabtext} -yOm tOb -\end{arabtex} -Fin du texte en hébreu -\end{document} -%%%% fin exemple %%%% - -# 11.6 # Comment composer du texte en arabe ? ---------------------------------------------- -Il suffit d'utiliser le package ArabTeX 3.05 disponible sur CTAN. Son site -primaire est ftp://ftp.informatik.uni-stuttgart.de/pub/arabtex/. - -# 11.7 # Comment définir les césures de groupes de mots conjugués avec un trait d'union ? ------------------------------------------------------------------------------------------ -(B. Gaulle) Par défaut, TeX coupe tout mot composé à l'endroit -exact du trait d'union et uniquement à cet endroit. Mais cela -peut se modifier. Dans ce but, j'ai ajouté à french (V4,02) une -commande \allowhyphens qui permet de laisser à TeX le choix des -autres coupures dans le mot. - -Remarque : la commande \hypenation ne permet pas d'intégrer un - trait d'union car ce caractère sert à indiquer un - point de coupure et uniquement cela. - -Voici donc la solution : -\showhyphens{{définissez\allowhyphens-le} -donne alors comme points de coupure : dé-fi-nis-sez-le - --- -Benjamin Bayart -bayartb@edgard.fdn.fr |