diff options
author | Karl Berry <karl@freefriends.org> | 2009-05-19 00:50:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-05-19 00:50:47 +0000 |
commit | 57e2bc6866ae84cbb5c539506ea229d28e5e1eb4 (patch) | |
tree | 88fb85bf0bf23e704768f91e87b9dbda81d08c84 /Master/texmf-dist/doc/latex/epslatex-fr/fepslatex.tex | |
parent | c2cdbdd285ee5c7a88c8a9459685b2f0a291d1be (diff) |
move epslatex-fr out of texmf-doc
git-svn-id: svn://tug.org/texlive/trunk@13223 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/epslatex-fr/fepslatex.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/epslatex-fr/fepslatex.tex | 6133 |
1 files changed, 6133 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/epslatex-fr/fepslatex.tex b/Master/texmf-dist/doc/latex/epslatex-fr/fepslatex.tex new file mode 100644 index 00000000000..4ff98f0bfc5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/epslatex-fr/fepslatex.tex @@ -0,0 +1,6133 @@ +\RequirePackage{snapshot} +\newif\ifguide +\IfFileExists{noguide.key}{\guidefalse}{\guidetrue} +\ifguide +\documentclass[12pt,a4paper,dvips]{book} +\else +\documentclass[12pt,a4paper,dvips,notitlepage,twoside,onecolumn]{article} +\makeatletter +\@titlepagefalse +\renewenvironment{titlepage}{\relax}{\relax} +\makeatother +\fi +\hyphenation{Post-Script} +%NO%\usepackage{sober} % ?????ESSAI +\usepackage{ifthen} +\ifguide\else +\usepackage{tocbibind} +\fi +\usepackage{nicefrac} +\usepackage{makeidx} +\let\SVindex\index +\input{header} +\def\NL{\null\hfill\null\newline} +\def\bs{\texttt{\char'134}} +\def\bspv{\froff\bs;\fron} +\def\bsdp{\froff\bs:\fron} +\def\bspx{\froff\bs!\fron} +\def\bspi{\froff\bs?\fron} +\parskip=12pt plus1pt minus0.5pt +\newlength\wlength +%\usepackage[outercaption]{fsidecap} +\usepackage[outercaption]{sidecap} +\usepackage{subfigure} +\usepackage{color,psfrag} +\usepackage{g_toc_entry} +\usepackage{sgte} +\usepackage{caption2} +\usepackage{sverb} +\usepackage{whitecdp} +\usepackage{textcomp} +\usepackage{topfig,topcapt,divers,multicol,widecenter,tabularx,calc,afterpage,block,wdesc} +\let\toptopcaption\topcaption +\usepackage[myfrench]{myvarioref} +%\setcounter{vrcnt}{10000} +\usepackage[dvips]{graphicx} +\ifguide +\usepackage[tight,french]{minitoc} +\usepackage{g_toc_entry}\adjustbook +\fi +\usepackage[section]{placeins} +\usepackage{url} +\usepackage{enumerate} +\usepackage{warn} +\usepackage{ebnf,hands,export} +\usepackage{indentondemand} +\usepackage{floatflt} +\ifguide +\usepackage{xb}\externalbibdocument{biblio} +\usepackage{xr} +\externaldocument{op-v1} +\externaldocument{op-t1} +\externaldocument{op-s1} +\externaldocument{op-p4} +\externaldocument{op-p2} +\usepackage{fmparhack} +\externaldocument{op-m1} +\externaldocument{op-l2} +\externaldocument{op-i} +\externaldocument{op-g2} +\externaldocument{op-f1} +\externaldocument{op-e2} +\externaldocument{op-c1} +\externaldocument{op-a} +\externaldocument{drotating1} +\externaldocument{dlongtable} +\externaldocument{misc} +\externaldocument{tm3} +\externaldocument{tm3a} +\externaldocument{tm3b} +\externaldocument{advanced} +\externaldocument{adv2} +\externaldocument{dseminar} +\externaldocument{dfancyhdr} +\usepackage{auteurs}\externaldocument{auteurs} +\else +\def\autref#1{\relax} +\fi +\usepackage{nrfoot,foot} +\usepackage[bottom,splitrule,stable,multiple]{footmisc} +\usepackage{fancyhdr} +\usepackage{fancybox,multirow} +%\usepackage{graphpap} +\usepackage{Franc-chap,CHAP2,smaller,fill} +\let\PRF\pageref +\let\LAB\label +\usepackage[english,francais]{babel} +\usepackage{babel} % Incompatible with rotating +\usepackage{franc,fr} +\usepackage{textcomp} +\usepackage[TS1,T1]{fontenc} +\usepackage{mypatches} +\usepackage{franc,frnew} +\let\pageref\PRF +\let\label\LAB +%\usepackage[TS1,T1]{fontenc} +\usepackage[isolatin]{inputenc} +%\usepackage{mypatches} +\froff +\usepackage{rotating} +\fron +\setcounter{totalnumber}{10} +\setcounter{topnumber}{10} +\setcounter{bottomnumber}{10} +\setcounter{secnumdepth}{6} +\setcounter{tocdepth}{6} +\renewcommand{\textfraction}{.15} +\renewcommand{\topfraction}{.85} +\renewcommand{\bottomfraction}{.85} +\renewcommand{\floatpagefraction}{.9999} +\Import{x62} +% MODS to have larger margins +\newlength{\hdelta} \setlength{\hdelta}{-15mm} +\addtolength{\textwidth}{\hdelta} +\addtolength{\linewidth}{\hdelta} +\addtolength{\evensidemargin}{-\hdelta} +\addtolength{\oddsidemargin}{-\hdelta} +\interfootnotelinepenalty=10000 % JPFD + +\def\STRUT{\vphantom{pl}} +\def\MARTIT#1#2{% +\noindent\mbox{\llap{\mbox{\raggedleft\scriptsize\textbf{#1~~}}}\hspace*{\parindent}#2}} +\providecommand{\pfg}{\textsf{PSfrag}} +\adjustbook %gte +\def\CS#1{\texttt{\bs #1}} + +\newenvironment{narrow}[2]{% + \begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\leftmargin}{#1}% + \setlength{\rightmargin}{#2}% + \setlength{\listparindent}{\parindent}% + \setlength{\itemindent}{\parindent}% + \setlength{\parsep}{\parskip}}% + \item[]}{\end{list}} +%%JPFD: pb labels multiples RFnnn +\makeatletter +\setcounter{r@tfl@t}{20000} +\makeatother +\clubpenalty=10000 +\widowpenalty=10000 +\def\index#1{\froff\SVindex{#1}\fron{}} +\froff +\makeindex +\fron +\def\AT{@} +\makeatletter +\def\smc{\sc} +\def\ninepoint{\small} +\DeclareRobustCommand\SMC{% + \ifx\@currsize\normalsize\small\else + \ifx\@currsize\small\footnotesize\else + \ifx\@currsize\footnotesize\scriptsize\else + \ifx\@currsize\large\normalsize\else + \ifx\@currsize\Large\large\else + \ifx\@currsize\LARGE\Large\else + \ifx\@currsize\scriptsize\tiny\else + \ifx\@currsize\tiny\tiny\else + \ifx\@currsize\huge\LARGE\else + \ifx\@currsize\Huge\huge\else + \small\SMC@unknown@warning + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +} +\newcommand\SMC@unknown@warning{\TBWarning{\string\SMC: unrecognised + text font size command -- using \string\small}} +\newcommand\textSMC[1]{{\SMC #1}} +\newcommand\acro[1]{\textSMC{#1}\@} +\DeclareRobustCommand\NTS{$\mathcal{N}$\lower.5ex\hbox + {$\mathcal{T}$}$\mathcal{S}$\@} +\def\CTAN{\acro{CTAN}} +\def\HTML{\acro{HTML}} +\def\SGML{\acro{SGML}} +\def\PDF{\acro{PDF}} +\makeatother +\providecommand{\pfg}{\textsf{PSfrag}} +\ifguide\else +\title{Utilisation de Graphiques Importés dans \LaTeXe} +\author{Keith Reckdahl\\\url{reckdahl@am-sun2.stanford.edu}\\traduit par Jean-Pierre +F.~Drucbert\\\url{drucbert@onecert.fr}} +\fi +\begin{document} +\ifguide\else +%\begingroup +%\let\newpage\relax +%\let\clearpage\relax +%\renewenvironment{titlepage}{\relax}{\relax} +\maketitle +%\endgroup +%\begin{center} +%\null +%\vspace*{3cm} +%{\Large Utilisation de Graphiques Importés dans \LaTeXe}\\*[2\baselineskip] +% +%Keith Reckdahl\\\url{reckdahl@am-sun2.stanford.edu}\\traduit par Jean-Pierre +%F.~Drucbert\\\url{drucbert@onecert.fr} +% +%\vspace*{2\baselineskip} +% +%\end{center} +\fi +%\psfrag{Graphic}[][][2]{Graphique} +%\psfrag{Graphic}[][]{Graphique} +%\setcounter{chapter}{31} +\ifguide +\setcounter{minitocdepth}{6} +\dominitoc +\dominilof +\dominilot +\faketableofcontents +\fakelistoffigures +\fakelistoftables +\fi +\raggedbottom +\indenting +\ifguide +\Import{x205} +\fi +\ifguide +\clearpage +%\ifx\chapcita\undefined\else +%\def\hcitaoffset{120} +%\def\vcitaoffset{40} +%\def\citawidth{300pt} +%\def\citawidthnum{300} +%\chapcita{% +%\selectlanguage{english}\froff +%\textsl{A float is like a ship in harbor. There is +%a place in the text which is the anchor location. The figure or ``ship'' +%can float around to various places relative to the anchor, but always +%downstream or downwind. A float with bad placement parameters is like +%a ship that slips its anchor and eventually crashes on the rocks at the +%end of a chapter.} +%\hfill\null\linebreak[2]\null% +%\begingroup +%\unitlength=1mm +%\begin{picture}(0,0) +%\put(-40,0){\includegraphics[height=50mm,keepaspectratio,clip]{felouque2.eps}}% +%\end{picture} +%\endgroup +%\hfill{Donald \textsc{Arseneau}\,\autref{arseneau}}}% +%\fi +\ifx\chapcita\undefined\else +\selectlanguage{english}\froff +\def\hcitaoffset{0} +\def\vcitaoffset{75} +\chapcita{% +\begin{tabularx}{\textwidth}{@{}p{210pt}@{}X@{}c@{}} +\begin{minipage}[b]{210pt} +\textsl{A float is like a ship in harbor. There is +a place in the text which is the anchor location. The figure or ``ship'' +can float around to various places relative to the anchor, but always +downstream or downwind. A float with bad placement parameters is like +a ship that slips its anchor and eventually crashes on the rocks at the +end of a chapter.} +\hfill\null\linebreak[2]\null +\hfill{Donald \textsc{Arseneau}\,\autref{arseneau}} +\end{minipage} %end of text +&&\scalebox{-1}[1]{\includegraphics[height=50mm,width=66.66667mm,keepaspectratio,clip]{balt.eps}}% +\end{tabularx}}\fron\selectlanguage{francais}% +\fi +\chapter{Importation de graphiques en \LaTeXe}\label{c+epsl} +\else +\fi + +\begin{quote} +\ifguide +Ce chapitre +\else +Cet article +\fi +est une traduction adaptée du document~\cite{reckdahl} \emph{Using Imported Graphics in \LaTeXe} +(\texttt{epslatex}) de +\ifguide +Keith Reckdahl\,\autref{reckdahl}~\copyright. +\else +Keith Reckdahl~\copyright. +\fi +Voir page~\pageref{orig+epsl} pour savoir où trouver la version originale en anglais. +\end{quote} + +\begin{small} +\begin{center} +\textbf{Résumé} +\end{center} + +Ce document explique comment utiliser les graphiques importés dans des documents \LaTeXe. Bien +que lire ce chapitre en entier en vaille la peine, la plupart des utilisateurs devraient +pouvoir localiser les informations nécessaires en allant voir la table des matières sur les +pages~\pageref{toc-0} à~\pageref{toc-1}, +et l'index sur les pages~\pageref{ind-epsl-0} à~\pageref{ind-epsl-1}. + +Alors que \LaTeX\ peut importer virtuellement n'importe quel format graphique, le format dit +«~Encapsulated PostScript~» (EPS) est le format graphique le plus facile à importer en \LaTeX. +Par exemple, les fichiers EPS sont insérés en spécifiant +\begin{quote} +\verb|\usepackage{graphicx}|\index{graphicx@\texttt{graphicx}, paquetage} +\end{quote} +dans le préambule du document puis en utilisant la commande +\begin{quote} +\label{EP+includegraphics}% +\verb|\includegraphics{fichier.eps}|\index{includegraphics@\CS{includegraphics}, commande} +\end{quote} + +\lneed{3} +Sur option, le graphique peut être agrandi ou réduit à une hauteur ou largeur spécifiée +\begin{quote} +\verb|\includegraphics[height=4cm]{fichier.eps}|\index{height!option de \CS{includegraphics}}\\ +\verb|\includegraphics[width=3in]{fichier.eps}|\index{includegraphics@\CS{includegraphics}, commande!options} +\end{quote} + +De plus, l'option \texttt{angle} fait pivoter le graphique inclus +\begin{quote} +\verb|\includegraphics[angle=45]{fichier.eps}| +\end{quote} + +La commande \verb|\includegraphics| et le reste de l'ensemble +graphique\index{ensemble graphique} de \LaTeXe\ sont +décrits dans la deuxième partie de ce chapitre. + +Ce chapitre est divisé en quatre parties: + +\section*{\normalsize Partie~I: Informations de base} +\begin{quote} +Cette partie offre des informations historiques et décrit la terminologie basique \LaTeX. +Elle décrit aussi le format «~Encapsulated PostScript~» (EPS), les différences entre fichiers +EPS et fichiers PS, et les méthodes pour convertir des graphiques non-EPS en EPS. +\end{quote} + +\section*{\normalsize Partie~II: L'ensemble graphique de \LaTeX}\index{ensemble graphique} +\begin{quote} +Cette partie décrit les commandes dans l'ensemble graphique pour importer, agrandir ou réduire +et faire pivoter les graphiques. Cette partie couvre la plupart des informations de la +documentation de l'ensemble graphique (référence~\cite{grfguide}). +\end{quote} + +\section*{\normalsize Partie~III: Utilisation des commandes \mbox{d'inclusion} de graphiques} +\begin{quote} +Cette partie décrit comment les commandes de l'ensemble graphique\index{ensemble graphique} +sont utilisées pour +importer, faite pivoter et agrandir ou réduire les graphiques. Trois situations où l'inclusion +graphique est modifiée sont aussi décrites: +\begin{itemize} +\item Les fichiers EPS compressés et les formats graphiques non-EPS +(TIFF\index{TIFF@TIFF (graphiques)!conversion en EPS}, +GIF\index{GIF@GIF (graphiques)!conversion en EPS}, +JPEG\index{JPEG@JPEG (graphiques)!conversion en EPS}, PICT, +etc.) peuvent aussi être insérés au vol lorsque \textbf{dvips} est utilisé avec un système +d'exploitation qui supporte les \emph{pipes} (comme \textsc{Unix}). Lors de l'utilisation +d'autres systèmes d'exploitation, les graphiques non-EPS doivent être convertis au préalable +en EPS. + +Puisque ni \LaTeX\ ni \textbf{dvips} n'ont de possibilités intrinsèques de décompression ou de +conversion de format graphique, ce logiciel doit être fourni par l'utilisateur. +\item Puisque de nombreuses applications graphiques ne supportent que du texte ASCII, le +système \textsf{PSfrag} permet que du texte dans les fichiers EPS soit remplacé par des symboles ou des +expressions mathématiques \LaTeX. +\item Lorsqu'un graphique EPS est inséré plusieurs fois (comme par exemple un logo derrière le +texte ou dans l'en-tête\index{entete@en-tête, graphique dans un} de page), le code PostScript final inclut de multiples copies du +graphique. Lorsque les graphiques ne sont pas des bitmaps, un fichier PostScript final plus +petit peut être obtenu en définissant une commande PostScript pour les graphiques. +\end{itemize} +\end{quote} + +\section*{\normalsize Partie~IV: L'environnement \texttt{figure}}% +\index{figures!environnement \texttt{figure}} +\begin{quote} +Il y a plusieurs avantages à placer les graphiques dans des environnements \texttt{figure}. +Les environnements \texttt{figure} numérotent automatiquement les graphiques, ce qui permet +d'y faire référence ou de les inclure dans une table des matières (en fait, dans une liste des +figures). Puisque les figures peuvent \emph{flotter} pour éviter des coupures de page +inesthétiques, il est plus facile d'obtenir un document d'aspect professionnel. + +En plus d'informations générales sur l'environnement \texttt{figure}, cette partie aborde les +sujets suivants concernant les figures: +\begin{itemize} +\item Comment adapter l'environnement \texttt{figure}, comme ajuster le placement de la +figure, son espacement, l'espacement de la légende\,\footnote{NdT: j'utilise parfois le terme «~caption~» +au lieu de «~légende~» car toutes les commandes \LaTeX\ concernant la légende des éléments +flottants utilisent ce terme, qui fait donc partie du jargon \LaTeX.} et l'ajout des filets +horizontaux entre la figure et le texte. La mise en forme de la légende peut aussi être adaptée, +en permettant aux utilisateurs de modifier le style, la largeur et la fonte des légendes. +\item Comment créer des figures marginales et des figures larges qui s'étendent dans les +marges. +\item Comment produire des figures en orientation paysage dans un document en orientation +portrait. +\item Comment placer les légendes sur le côté des figures au lieu d'en dessous ou d'au dessus +des figures. +\item Pour les documents en recto-verso, comment forcer une figure à apparaître sur une page +impaire ou une page paire. De plus, comment forcer deux figures à apparaître sur deux pages +face à face. +\item Comment créer des figures encadrées. +\item Comment fabriquer des dessins, des figures et des sous-figures côte à côte. +\item Comment construire des figures avec suite qui s'étendent sur plusieurs pages. +\end{itemize} +\end{quote} + +\end{small} + +\section*{Où trouver \texttt{epslatex}}\index{CTAN@CTAN (Comprehensive \TeX\ Archive Network)}\label{orig+epsl} +La version originale de ce document (en anglais) est disponible en PostScript dans \path{CTAN/info/epslatex.ps} ou sous forme \textsc{pdf} dans \path{CTAN/info/epslatex.pdf}, où \path{CTAN} peut être +remplacé par l'un des sites ou sites miroirs de CTAN (Comprehensive TeX Archive Network): +\begin{center} +\begin{tabular}{lcl} +Angleterre&\qquad&\url{ftp://ftp.tex.ac.uk/tex-archive/}\\ +Allemagne&\qquad&\url{ftp://ftp.dante.de/tex-archive/}\\ +Australie&\qquad&\url{ftp://unsw.edu.au/tex-archive/}\\ +États Unis (Est)&\qquad&\url{ftp://tug2.cs.umb.edu/tex-archive/}\\ +États Unis (Ouest)&\qquad&\url{ftp://ftp.freesoftware.com/pub/tex/ctan/}\\ +France&\qquad&\url{ftp://ftp.loria.fr/pub/ctan/}\\ +France&\qquad&\url{ftp://ftp.jussieu.fr/pub4/TeX/CTAN/}\\ +Japon&\qquad&\url{ftp://ftp.riken.go.jp/pub/tex-archive/}\\ +\end{tabular} +\end{center} + +Une liste complète des sites et sites miroirs de CTAN peut être obtenue dans le fichier +\texttt{CTAN.sites} sur n'importe quel site CTAN +(\ifguide voir aussi page~\pageref{CTAN}, ou \fi +en faisant \textbf{finger} sur \url{ctan@ftp.dante.de}). + +\clearpage +\ifguide +%\nomtcrule\label{toc-0}\minitoc\label{toc-1} +\nomtcrule\label{toc-0}\minitoc + +\minilof + +\minilot\label{toc-1} +\else +%tight tables +\begingroup +\parsep=0pt +\parskip=0pt +\def\baselinestretch{1} +\label{toc-0}\tableofcontents +\lneed{6} +\listoffigures +\lneed{6} +\listoftables\label{toc-1} +\endgroup +\fi + +\section*{Remerciements} +\ifguide +Keith Reckdahl remercie David Carlisle\,\autref{carlisle} de lui avoir apporté une grande +assistance. Il remercie également Donald Arseneau\,\autref{arseneau}, Robin +Fairbairns\,\autref{fairbairns}, Jim Hafner\,\autref{hafner}, Piet van +Oostrum\,\autref{oostrum} et d'autres interlocuteurs intervenant dans le forum \texttt{comp.text.tex}, personnes +dont les interventions ont fourni la plus grande partie des informations pour ce document. Il +remercie également les nombreuses personnes qui lui ont apporté des suggestions profitables et +signalé des problèmes pour ce document. + +Jean-Pierre F.~Drucbert remercie Denis Girou\,\autref{girou} pour ses corrections et ses utiles remarques. +\else +Keith Reckdahl remercie David Carlisle de lui avoir apporté une grande +assistance. Il remercie également Donald Arseneau, Robin +Fairbairns, Jim Hafner, Piet van +Oostrum et d'autres interlocuteurs intervenant dans le forum \texttt{comp.text.tex}, personnes +dont les interventions ont fourni la plus grande partie des informations pour ce document. Il +remercie également les nombreuses personnes qui lui ont apporté des suggestions profitables et +signalé des problèmes pour ce document. + +Jean-Pierre F.~Drucbert remercie Denis Girou pour ses corrections et ses utiles remarques. +\fi + +\clearpage +\section*{\LARGE Partie~I: Informations de base} +\addcontentsline{toc}{section}{\null\hspace*{-1cm}\large I: Informations de base} + +\section{Introduction} +%\noindent\mbox{\llap{\mbox{\raggedleft\scriptsize\textbf{Historique~~}}}\hspace*{\parindent}Lorsque} +\MARTIT{Historique}{Lorsque} +\TeX\ a été écrit, PostScript/EPS, JPG, GIF, et les autres +formats graphiques n'existaient pas. Il en résulte que de format DVI de Donald Knuth n'offre +aucun support direct pour les graphiques importés. Cependant, \TeX\ permet que les fichiers +DVI contien\-nent des commandes \label{EP+special}\verb|\special|\index{special@\CS{special}, commande} +qui transmettent des commandes aux programmes +qui utilisent les fichiers DVI. Ceci permet à \TeX\ et \LaTeX\ d'importer tout format graphique +qui est supporté par le programme DVI utilisé. + +Puisque les fichiers DVI sont souvent convertis en PostScript, le format graphique importé le +mieux supporté est le «~Encapsulated PostScript~» (EPS) qui est un sous-ensemble du langage +PostScript. L'insertion de graphiques EPS exigeait à l'origine la commande de bas niveau +\verb|\special|\index{special@\CS{special}, commande}. +Pour rendre plus facile et plus portable l'insertion de graphiques, deux +paquetages de haut niveau \texttt{epsf}\index{epsf@\texttt{epsf}, paquetage} et \texttt{psfig} +\ifguide(voir page~\pageref{o+psfig}) \fi +furent +écrits pour \LaTeX2.09. Dans \texttt{epsf}, l'insertion du dessin était faite par la commande +\label{EP+epsfbox}% +\verb|\epsfbox|\index{epsfbox@\CS{epsfbox}, commande}, alors que trois autres +commandes géraient la mise à l'échelle du dessin. +Dans \texttt{psfig}, la commande +\label{EP+psfig}\verb|\psfig|\index{psfig@\CS{psfig}, commande} +non seulement insérait les dessins, elle +pouvait aussi les agrandir ou les réduire et les faire tourner. Alors que \texttt{psfig} était +populaire, son code n'était pas aussi robuste que celui de \texttt{epsf}. Il en résulta que le +paquetage \texttt{epsfig}\index{epsfig@\texttt{epsfig}, paquetage} +\ifguide(voir page~\pageref{o+epsfig}) \fi +fut créé comme un hybride de ces deux +paquetages graphiques, avec la commande +\label{EP+epsfig}\verb|\epsfig|\index{epsfig@\CS{epsfig}, commande} utilisant la syntaxe de \verb|\psfig| +et la plus grande partie du code plus robuste de \verb|\epsfbox|. Malheureusement, +\verb|\epsfig| utilisait encore une partie du code moins robuste de \verb|\psfig|. + +%\noindent\mbox{\llap{\raggedleft\scriptsize\textbf{\botsmash{\tshortstack[r]{Ensemble\\Graphique\\\LaTeX}}~~}}\hspace*{\parindent}Avec} +\MARTIT{\botsmash{\tshortstack[r]{Ensemble\STRUT\\Graphique\STRUT\\\LaTeX\STRUT}}}{Avec} +la sortie de \LaTeXe\ en 1994, l'équipe \LaTeX3 s'attaqua au problème +général de l'insertion de graphiques en \LaTeXe. Ses efforts produisirent l'«~ensemble +graphique \LaTeX\,\footnote{Notez qu'il existe une version \PlainTeX{} de l'ensemble graphique +\LaTeX. Voyez les fichiers dans le répertoire +\path{CTAN/macros/generic/graphics/}.}~»,\index{ensemble graphique} +qui contient des commandes complètement réécrites qui sont plus efficaces, plus robustes et plus +portables que les autres commandes d'insertion de graphiques. + +L'ensemble graphique contient le paquetage «~standard~» \texttt{graphics}% +\index{graphics@\texttt{graphics}, paquetage} +\ifguide(décrit page~\pageref{o+graphics}) \fi +et le paquetage «~étendu~» \texttt{graphicx}% +\index{graphicx@\texttt{graphicx}, paquetage}% +\ifguide\ (décrit page~\pageref{o+graphicx})\fi. +Bien que ces paquetages contiennent tous deux une commande +\index{includegraphics@\CS{includegraphics}, commande}\verb|\includegraphics|, ils contiennent des versions \emph{différentes} de +\verb|\includegraphics|. La version \texttt{graphicx} utilise des +«~arguments nommés~»\index{arguments nommes@arguments nommés}\index{nommes (arguments)@nommés (arguments)} +(similaires à la syntaxe de \verb|\psfig|) qui, bien que pratiques, violent les principes de +syntaxe de \LaTeX\ qui exigent que les arguments optionnels soient positionnels. Par +compromis, deux versions de \verb|\includegraphics| ont été écrites, avec le paquetage +\texttt{graphics} suivant les principes syntaxiques de \LaTeX\ et le paquetage +\texttt{graphicx} utilisant des arguments nommés, plus pratiques. La version \texttt{graphicx} +de \verb|\includegraphics| supporte la mise à l'échelle et la rotation, mais la version +\texttt{graphics} de \verb|\includegraphics| doit être imbriquée dans des commandes +\verb|\scalebox| ou \verb|\rotatebox| pour produire la mise à l'échelle ou la rotation. + +Ce chapitre utilise le paquetage \texttt{graphicx} car sa syntaxe est plus pratique que celle +de \texttt{graphics}. Puisque les deux paquetages ont les mêmes capacités, les exemples de ce +chapitre peuvent aussi être réalisés avec le paquetage \texttt{graphics}, bien que la syntaxe +résultante soit plus pénible et un peu moins efficace. Pour une description détaillée des +paquetages, voir la documentation de l'ensemble graphique~\cite{grfguide}% +\ifguide\ ou les pages~\pageref{o+graphics} et~\pageref{o+graphicx}\fi. + +Dans un souci de compatibilité avec l'existant, l'ensemble graphique inclut aussi le paquetage +\texttt{epsfig}\index{epsfig@\texttt{epsfig}, paquetage} +\ifguide(décrit page~\pageref{o+epsfig}) \fi +qui remplace le paquetage \LaTeXe\ +\texttt{epsfig} original. Le nouveau paquetage \texttt{epsfig} définit les commandes +\verb|\epsfbox|\index{epsfbox@\CS{epsfbox}, commande}, \verb|\psfig| et +\verb|\epsfig|\index{epsfig@\CS{epsfig}, commande} comme des emballages (\emph{wrappers}) qui se +contentent +\ifguide\else simplement \fi +d'appeler la commande \verb|\includegraphics|. Comme des emballages sont moins +efficaces, ce paquetage ne devrait être utilisé que pour des documents anciens, et il faudrait +utiliser \verb|\includegraphics| pour tous les nouveaux documents. + +%\noindent\mbox{\llap{\raggedleft\scriptsize\textbf{\botsmash{\tshortstack[r]{Graphiques\\Non-EPS}}~~}}\hspace*{\parindent}En} +\MARTIT{\botsmash{\tshortstack[r]{Graphiques\STRUT\\Non-EPS\STRUT}}~~}{En} +plus de l'amélioration de l'inclusion des graphiques EPS, l'ensemble graphique\index{ensemble graphique} +\LaTeX\ s'est occupé du problème de l'inclusion de formats graphiques non-EPS comme +JPEG\index{JPEG@JPEG (graphiques)!utilisation dans \LaTeX} et +\index{GIF@GIF (fichiers graphiques)!utilisation dans \LaTeX}GIF. Puisque les convertisseurs de DVI ne supportent en général pas l'inclusion directe de la +plupart des formats non-EPS, ces graphiques doivent être convertis en EPS pour leur inclusion +dans des documents \LaTeX. Dans de nombreux cas, cette conversion graphique peut être +effectuée au vol par le convertisseur de DVI vers PostScript. La Section~\vref{s+epsl+CG} +décrit les programmes de conversion graphique tandis que la Section~\vref{s+epsl+FGCNE} décrit +comment utiliser des graphiques non-EPS dans un document \LaTeX. + +\section{Terminologie \LaTeX}\label{s+epsl+TLX} +Une \emph{boîte} (\emph{box}) est tout objet \LaTeX\ (caractère, graphique, etc.) qui est +traité comme un tout (voir~\cite[page~103]{latex-manual}). Chaque boîte a un \emph{point de +référence}\index{point de reference@point de référence}% +\index{reference (point de)@référence (point de)} +(\emph{reference point}) sur son côté gauche. La \emph{ligne de base} +(\emph{baseline})\index{baseline} est une ligne horizontale qui passe par le point de référence (voir la +Figure~\vref{f1+epsl}). Lorsque \LaTeX\ forme les lignes de texte, les caractères sont placés de +gauche à droite avec leurs points de référence alignés sur une ligne horizontale appelée +\emph{ligne de base courante}\index{ligne de base courante} \index{current baseline}(\emph{current baseline}), en alignant les lignes de base des +caractères avec la ligne de base courante. \LaTeX\ suit le même processus pour placer les +graphiques et autres objets; le point de référence de chaque objet est placé sur la ligne de +base courante. +\begin{figure}[ht] \centering +\psfrag{width}[c][c][1]{\colorbox{white}{\small largeur}} +%\psfrag{totalheight}[][][1]{\small hauteur totale} +\psfrag{totalheight}[][][1]{\null\hspace*{-10mm}\small \colorbox{white}{\shortstack{hauteur\\totale}}} +\psfrag{height}[][][1]{\null\hspace*{-10mm}\small hauteur} +\psfrag{depth}[][][1]{\null\hspace*{-10mm}\small profondeur} +\psfrag{Point}[][]{\small \ \ \ référence} +\psfrag{Reference}[][]{\small Point de} +\psfrag{Baseline}[][]{\small Ligne de base} +\includegraphics{box1.eps} +\index{includegraphics@\CS{includegraphics}, commande}% +\index{depth}% +\index{totalheight}% +\index{height}% +\index{width}% +\index{ligne de base}% +\index{point de reference@point de référence}% +\caption{Une boîte \LaTeX}\label{f1+epsl} +\end{figure} + +La taille de chaque boîte est décrite par trois longueurs: \emph{hauteur} (\emph{height}), +\emph{profondeur} (\emph{depth}), \emph{largeur} (\emph{width}). La \emph{hauteur} est la +distance du point de référence au sommet de la boîte. La \emph{profondeur} et la distance du +point de référence au bas de la boîte. La \emph{largeur} est la largeur de la boîte. La +\emph{hauteur totale} (\emph{totalheight}) est définie comme la distance entre le bas de la +boîte et le sommet de la boîte, ou $\mbox{totalheight}=\mbox{height}+\mbox{depth}$. + +Le point de référence d'un graphique EPS sans rotation est le coin inférieur gauche (voir la +boîte de gauche de la Figure~\vref{f1+epsl}), ce qui lui donne une profondeur nulle et% +\begin{figure}[ht] \centering +\psfrag{height}[][]{\null\hspace*{-5mm}\small hauteur} +\psfrag{depth}[][]{\null\hspace*{-10mm}\small profondeur} +\psfrag{width}[][]{\small \colorbox{white}{largeur}} +\psfrag{Reference}[][]{\small Point de} +\psfrag{Point}[][]{\small référence} +\psfrag{EPS Graphics}[][]{Graphique EPS} +\includegraphics[width=\textwidth]{box2.eps} +\caption{Boîtes \LaTeX\ ayant pivoté}\label{f2+epsl} +\end{figure} +rend sa hauteur totale égale à sa hauteur. La boîte du milieu de la Figure~\vref{f2+epsl} +montre une boîte qui a tourné et dont la hauteur n'est pas égale à la hauteur totale. La boîte +%de droite dans la Figure~\vref{f2+epsl} montre un graphique tourné dont la hauteur est nulle. +de droite de la même figure montre un graphique tourné dont la hauteur est nulle. + +\section{PostScript encapsulé} +Le langage PostScript peut décrire du dessin graphique et du texte. Le langage PostScript est +utilisé dans les fichiers PostScript conventionnels (PS) pour décrire des documents de +plusieurs pages et aussi dans des fichiers en Encapsulated PostScript (EPS) pour décrire des +dessins graphiques en vue de leur insertion dans des documents. Il y a deux différences +principales entre les fichiers PS et les fichiers EPS: +\begin{itemize} +\item Les fichiers EPS ne peuvent contenir que certains opérateurs PostScript. +\item Les fichiers EPS doivent contenir une ligne BoundingBox qui spécifie la taille du dessin +EPS. +\end{itemize} + +\subsection{Opérateurs PostScript interdits} +Puisque\Virage{} les graphiques EPS doivent partager la page avec d'autres objets, les commandes dans +un fichier EPS ne peuvent pas effectuer des opérations sur page comme sélectionner une taille +de page (comme \texttt{letter} ou \texttt{a4}) ou effacer la page entière avec +\texttt{erasepage}. Les opérateurs PostScript suivants ne sont pas permis dans les fichiers~EPS: + +%\begin{quote} +\noindent +\begin{minipage}{\textwidth-\hdelta} +\begin{multicols}{5}\small\ttfamily\noindent +a3\NL +cleardictstack\NL +grestoreall\NL +legal\NL +setdevice\NL +setshared\NL +a4\NL +copypage\NL +initclip\NL +note\NL +setglobal\NL +startjob\NL +a5\NL +erasepage\NL +initgraphics\NL +prenderbands\NL +setpagedevice\NL +stop\NL +bandevice\NL +exitserver\NL +initmatrix\NL +quit\NL +setpageparams\NL +\null\NL +clear\NL +framedevice\NL +letter\NL +renderbands\NL +setsccbatch\NL +\end{multicols} +\end{minipage} +%\end{quote} + +Bien que les opérateurs PostScript suivants puissent être utilisés dans les fichiers EPS, +ils peuvent poser des problèmes s'ils ne sont pas utilisés correctement: + +\begin{quote} +\begin{minipage}{\textwidth} +\begin{multicols}{4}\small\ttfamily\noindent +nulldevice\NL +setmatrix\NL +setcolortransfer\NL +setscreen\NL +setgstate\NL +settransfer\NL +sethalftone\NL +undefinedfont +\end{multicols} +\end{minipage} +\end{quote} + +Certaines des opérations ci-dessus peuvent faire échouer le processus de conversion de DVI en +PS, tandis que d'autres peuvent provoquer des problèmes étranges comme des graphiques mal +placés ou invisibles. Comme beaucoup de ces opérateurs n'affectent pas la pile PostScript, ces +problèmes peuvent souvent être éliminés en détruisant simplement l'opérateur gênant. D'autres +cas peuvent nécessiter une opération plus compliquée sur le code PostScript. + +\subsection{La «~BoundingBox~» EPS}\label{ss+epsl+BBE}\index{BoundingBox}% +\index{BoundingBox@BoundingBox de fichier EPS} +Par convention, la première ligne d'un fichier PostScript spécifie le type de PostScript et +elle est suivie d'une série de commentaires appelés \emph{en-tête} (\emph{header}) ou +\emph{préambule} (\emph{preamble}). (Comme en \LaTeX, le caractère commentaire en PostScript +est le~\verb|%|). L'un de ces commentaires spécifie la «~BoundingBox~» («~boîte des +limites~»). La ligne BoundingBox contient quatre entiers\,\footnote{NdT: on voit parfois des +BoundingBoxes avec des nombres ayant des décimales. Cela marche en général avec un +interpréteur PostScript moderne donc tolérant.}: + +\begin{enumerate}[1.] +\item La coordonnée en~$x$ du coin inférieur gauche de la BoundingBox. +\item La coordonnée en~$y$ du coin inférieur gauche de la BoundingBox. +\item La coordonnée en~$x$ du coin supérieur droit de la BoundingBox. +\item La coordonnée en~$y$ du coin supérieur droit de la BoundingBox. +\end{enumerate} + +\lneed{6} +Par exemple, les 5~premières lignes d'un fichier EPS créé par \textbf{gnuplot} sont: +\begin{verbatim} + %!PS-Adobe-2.0 EPSF-2.0 + %%Creator: gnuplot + %%DocumentFonts: Times-Roman + %%BoundingBox: 50 50 410 302 + %%EndComments +\end{verbatim} + +Donc le graphique EPS produit par \textbf{gnuplot} a un coin inférieur gauche aux coordonnées +$(50,50)$ et un coin supérieur droit aux coordonnées $(410,302)$. Les paramètres de la +BoundingBox sont exprimés en points PostScript comme unité, points qui font +\nicefrac{1}{{72}} de pouce\,\footnote{Un pouce fait 25,4~mm.}, ce qui donne à ce graphique +une largeur naturelle de 5~pouces et une hauteur naturelle de 3,5~pouces. Notez qu'un point +PostScript est un peu plus grand qu'un point \TeX, qui vaut \nicefrac{1}{{72.27}} de pouce. +En \TeX\ et \LaTeX, les points PostScript sont appelés «~big points~» et abrégés en \texttt{bp}, +alors que les points \TeX\ sont appelés «~points~» et abrégés en~\texttt{pt}. + +\subsection{Conversion de fichiers PS vers EPS}\index{conversion de fichiers PS en EPS} +Les fichiers PostScript d'une seule page sans aucune des commandes interdites peuvent être +convertis en EPS en utilisant l'une des méthodes suivantes pour ajouter une ligne BoundingBox. +\textbf{Puisque ces méthodes ne vérifient pas l'absence d'opérateurs PostScript illégaux, +elles ne produisent pas des fichiers EPS utilisables à moins que les fichiers PS soient libres +de tout opérateur interdit.} + +\begin{enumerate}[1.] +\item L'option la plus pratique est d'employer l'utilitaire \textbf{ps2epsi} distribué avec +\textbf{Ghostscript}\index{ghostscript} (voir la Section~\vref{s+epsl+GH}), qui lit le fichier PostScript, +calcule les paramètres de la BoundingBox, et crée un fichier EPS (complet avec sa +BoundingBox) qui contient le graphique PostScript. + +Le fichier EPS résultant est en format EPSI, ce qui signifie qu'il contient une +prévisualisation bit-map à faible résolution au début du fichier. Comme cette image est codée +en ASCII, elle ne provoquera pas les erreurs \texttt{bufsize} de la +Section~\vref{ss+epsl+bufsize}. Cependant cette image EPSI augmente la taille du fichier. + +\item Ou alors, les paramètres de la BoundingBox peuvent être calculés et insérés dans la +ligne BoundingBox du fichier PostScript ou spécifiés dans la commande d'insertion de graphique +(par exemple, par l'option \texttt{bb}\index{bb@bb, option de \CS{includegraphics}} +de la commande \verb|\includegraphics|). Il y a +plusieurs moyens de calculer les paramètres de BoundingBox. + +\begin{enumerate}[(a)] +\item Utiliser \textbf{Ghostview/GSview}\index{ghostview}\index{GSview} pour afficher le dessin PostScript. Lorsque vous +déplacez le pointeur autour du dessin, les coordonnées du pointeur (par rapport au coin +inférieur gauche de la page) sont affichées. Pour déterminer les paramètres de la BoundingBox, +notez les coordonnées du pointeur au coin inférieur gauche et au coin supérieur droit du +dessin. + +\item Imprimez une copie du dessin PostScript et mesurez les distances horizontales et +verticales (en pouces) du coin inférieur gauche du papier au coin inférieur gauche du dessin. +Multipliez ces valeurs par 72 pour obtenir les coordonnées du coin inférieur gauche de la +BoundingBox. De même, mesurez les distances du coin inférieur gauche du papier au coin +supérieur droit du dessin pour obtenir les coordonnées du coin supérieur droit de la +BoundingBox. + +\item Le script \textbf{bbfig} +\ifguide(voir page~\pageref{u+bbfig}) \fi +utilise une imprimante PostScript +pour calculer la BoundingBox. \textbf{bbfig} ajoute quelques commandes PostScript au début du +fichier PostScript et l'envoie à l'imprimante. Dans l'imprimante, les commandes PostScript +ajoutées calculent la BoundingBox du fichier PostScript d'origine et impriment les coordonnées +de la BoundingBox en surimpression du dessin PostScript. +\end{enumerate} +\end{enumerate} + +\subsection{Correction de fichiers EPS non standard} +Certaines applications produisent des fichiers EPS non standard qui ne peuvent pas être +utilisés dans d'autres programmes comme \LaTeX. Certaines applications ont développé leur +nuance «~améliorée~» de PostScript avec des dispositifs supplémentaires, alors que d'autres +applications utilisent une programmation PostScript médiocre. Heureusement, il existe des +utilitaires qui corrigent les fichiers EPS non standard créés par les applications suivantes. + +\begin{description} +\item[Mathematica]\index{Mathematica, fichiers EPS non standard créés par} Les fichiers EPS créés par Mathematica~2.x sont écrits en PostScript étendu +de Mathematica. Pour utiliser le fichier EPS dans des programmes non Mathematica, le fichier +doit être corrigé pour retirer les extensions non standard. Les versions DOS de Mathematica~2.x +comprennent un utilitaire nommé \textbf{printps.exe} ou \textbf{rasterps} qui retire les +extensions non standard. Sur les versions \textsc{Unix} de Mathematica~2.x, ceci peut être +fait avec l'utilitaire \textbf{psfix}. Voyez votre documentation Mathematica ou contactez +Wolfram Research pour plus d'informations. + +\item[FrameMaker]% +\index{FrameMaker@FrameMaker, fichiers EPS non standard} +Le PostScript produit par FrameMaker ne suit pas la spécification d'Adobe +pour l'indépendance de page. Les fichiers PostScript qui sont produits par FrameMaker Version~4 et~5 +peuvent être corrigés en utilisant respectivement les scripts +\begin{quote}\small +\url{ftp://ftp.irisa.fr/pub/FrameMaker/Filters/fixfm4-1.3.tar.gz}\\ +\url{ftp://ftp.irisa.fr/pub/FrameMaker/Filters/fixfm5-2.0.tar.gz} +\end{quote} + +Les scripts de correction pour FrameMaker Version~3 et~4 sont disponibles~à: +\begin{quote}\small +%\url{ftp://ftp.frame.com/pub/techsup/framers/platform.ind/filters/fixfm3ps.sh}\\ +%\url{ftp://ftp.frame.com/pub/techsup/framers/platform.ind/filters/fixfm4ps.sh} +\null\hspace*{.5\hdelta}\verb|ftp://ftp.frame.com/pub/techsup/framers/platform.ind/filters/fixfm3ps.sh|\\ +\null\hspace*{.5\hdelta}\verb|ftp://ftp.frame.com/pub/techsup/framers/platform.ind/filters/fixfm4ps.sh| +\end{quote} +\end{description} + +\section{Comment les fichiers EPS sont utilisés par \LaTeX} +Les fichiers EPS sont utilisés par \LaTeX\ et par le convertisseur de DVI en PostScript. +\begin{enumerate}[1.] +\item \LaTeX\ recherche la ligne BoundingBox dans le fichier EPS, ligne qui dit à \LaTeX\ +combien d'espace il faut réserver pour le graphique. +\item Le convertisseur de DVI en PS lit alors le fichier EPS et insère le graphique dans le +fichier PS. +\end{enumerate} +Ceci a les ramifications suivantes: +\begin{itemize} +\item \LaTeX\ ne lit jamais le fichier EPS si les paramètres de la BoundingBox sont spécifiés +dans la commande d'insertion de graphique (par exemple, si l'option \texttt{bb} de +\verb|\includegraphics| est utilisée). +\item Puisque \TeX\ ne sait pas lire les fichiers non-ASCII et ne peut pas lancer d'autres +programmes, \LaTeX\ ne peut lire les informations de BoundingBox dans les fichiers graphiques +compressés ou non-EPS. Dans de tels cas, les paramètres de BoundingBox doivent être spécifiés +dans la commande d'insertion de graphique (par exemple, dans l'option \texttt{bb} de la +commande \verb|\includegraphics|) ou rangée dans un fichier de texte non compressé (voir la +Section~\vref{s+epsl+FGCNE}). +\item Les fichiers graphiques EPS ne sont pas inclus dans le fichier DVI. Puisque les fichiers +EPS doivent être présents lorsque le fichier DVI est converti en PS, les fichiers EPS doivent +accompagner les fichiers DVI chaque fois qu'ils sont déplacés ou copiés. +\item Les graphiques EPS ne sont pas affichés par la plupart des outils de visualisation de +DVI. Pour aider l'utilisateur avec le placement des graphiques, ces outils affichent en +général la BoundingBox dans laquelle le dessin sera inséré. (Certains prévisualisateurs, comme +\textbf{xdvi}, utilisent ghostscript pour interpréter les graphiques EPS et les afficher avec +le document). +\end{itemize} + +\subsection{Débordement du tampon de ligne}\label{ss+epsl+bufsize}\index{bufsize@\texttt{bufsize}} +\LaTeX\ lit les fichiers ASCII ligne par ligne, une à la fois, en mettant chaque ligne dans +son tampon de ligne, qui est habituellement long de 3000 caractères environ. Si l'une des +lignes du fichier EPS est plus longue que ce tampon de ligne, l'erreur suivante est signalée +\begin{quote} +\index{Unable to read an entire line}% +\texttt{Unable to read an entire line--bufsize=3000}\\ +\texttt{Please a wizard to enlarge me.}\index{Please ask a wizard}\index{wizard, Please ask a wizard} +\end{quote} +Puisque les fichiers EPS ont rarement des lignes longues de plus de 3000 caractères, il y a +deux causes possibles pour une telle erreur +\begin{enumerate}[1.] +\item \textbf{Le fichier EPS contient une longue image binaire.}\NL +Certaines applications placent une prévisualisation binaire du graphique au début du fichier +EPS. Ceci permet aux applications (comme les prévisualisateurs de DVI) d'afficher le dessin +même si l'application ne sait pas interpréter le PostScript. À l'heure actuelle, relativement +peu d'applications liées à \TeX\ utilisent de telles prévisualisations. + +Si l'image binaire est plus petite que le tampon de ligne, alors la commande \verb|\includegraphics| +saute cette image (ce n'est pas le cas avec \verb|\psfig| et d'autres commandes graphiques +obsolètes). Cependant l'erreur de dépassement de la taille de tampon \texttt{bufsize} se produit +si l'image binaire est plus grande que le tampon de lecture. Il y a quelques méthodes pour +contourner ce problème: +\begin{enumerate}[(a)] +\item Si l'image ne sera pas utilisée, le problème peut être évité soit en la détruisant avec +un éditeur de texte soit en empêchant l'application graphique d'origine de créer cette image +de prévisualisation. +\item Puisque \LaTeX\ ne lit le fichier EPS que pour obtenir les paramètres de BoundingBox, +\LaTeX\ ne lira pas le fichier EPS si les paramètres de BoundingBox sont fournis par la +commande d'insertion de graphique (par exemple, l'option \texttt{bb} de +\verb|\includegraphics|). +\end{enumerate} +\item \textbf{Les caractères de fin de ligne sont corrompus par un mauvais transfert.}\NL +(Le problème décrit dans cette section ne se produit pas avec la distribution web2c~7.2 et +certaines distributions commerciales dont le \TeX\ est assez malin pour identifier tous les +caractères de fin de ligne.) + +Des plates-formes différentes utilisent des caractères de fin de ligne différents: +\textsc{Unix} utilise un caractère saut de ligne (\emph{line feed}, \verb|^J|), Macintosh +utilise un retour-chariot (\emph{carriage return}, \verb|^M|), alors que DOS/Windows utilise +une paire retour-chariot et saut de ligne (\verb|^M^J|). Par exemple, si un fichier EPS est +transféré en mode binaire d'un Macintosh vers une machine \textsc{Unix}, le \TeX\ sous +\textsc{Unix} ne verra aucun des caractères fin de ligne \verb|^J| et donc pensera que le +fichier entier fait une seule ligne très longue, qui déborde du tampon de ligne. + +\enlargethispage*{1\baselineskip} +Si le fichier EPS n'a pas de section binaire (c'est-à-dire pas d'image binaire de prévisualisation +ni graphique inclus), ce problème peut être évité en transférant le fichier en mode texte. +Cependant, les fichiers EPS avec des sections binaires doivent être transférés en mode +binaire, puis que le transfert en mode texte pourrait endommager la section binaire. Mais de +tels transferts binaires provoquent des caractères de fin de ligne incorrects, ce qui oblige à +fournir les informations de la BoundingBox par la commande d'insertion graphique (par exemple, +l'option \texttt{bb} de \verb|\includegraphics|). +\end{enumerate} + +\section{Obtenir GhostScript}\label{s+epsl+GH}\index{ghostscript} +Ghostscript est un interpréteur PostScript qui fonctionne sur la plupart des plates-formes et +est distribué gratuitement\,\footnote{Bien que le Ghostscript d'Aladdin soit distribué +gratuitement, il n'est pas dans le domaine public. Il est sous copyright et est soumis à +certaines limitations telles que pas de distribution commerciale. Lorsque les versions de +Aladdin Ghostscript atteignent environ un an d'âge, Aladdin les distribue en tant que «~GNU +Ghostscript~» dont l'utilisation est gouvernée par la GNU Public License, qui est moins +restrictive.} par Aladdin Enterprises. Il permet d'afficher à l'écran des fichiers PostScript +et EPS et de les imprimer sur des imprimantes non PostScript. Aladdin Ghostscript est +disponible depuis la page d'accueil Ghostscript +\begin{quote} +\url{http://www.cs.wisc.edu/~ghost/index.html} +\end{quote} +dont l'interface HTML offre de meilleures instructions que ne le font les sites FTP CTAN.\pagebreak[1] + +\begin{sloppypar} +Ces sites contiennent les exécutables pré-compilés pour Windows/DOS/OS2 et Macintosh, ainsi +que le code source prêt à compiler pour \textsc{Unix}/VMS. Sont aussi disponibles des +interfaces graphiques (GSview pour Windows3.1/95/NT/OS2, Ghostview pour \textsc{Unix}/VMS) +pour Ghostscript, ce qui rend la visualisation de PostScript bien plus facile. + +\end{sloppypar} + +\section{Programmes de conversion de graphiques}\label{s+epsl+CG}\index{conversion de graphiques en PS}% +\index{conversion graphique, programmes de}\index{graphiques non-EPS!conversion en EPS} +Les programmes \emph{freeware} et \emph{shareware} suivants convertissent des graphiques +non-EPS en EPS. Certains de ces programmes permettent la conversion depuis la ligne de +commande, ce qui rend possible de convertir les graphiques au vol pendant la conversion par +\textbf{dvips} (voir la Section~\vref{ss+epsl+FGNE}). +\begin{itemize} +\item ImageMagick\index{ImageMagick} est un très bon utilitaire de conversion graphique qui est distribué +gratuitement sur \url{ftp.wizards.dupont.com} et autres sites. Voir +\begin{quote} +\url{http://www.wizards.dupont.com/cristy/ImageMagick.html} +\end{quote} +En plus de \textsc{Unix} et \textsc{Linux}, il fonctionne maintenant aussi sous Windows~NT, +Macintosh et VMS. +\item \textbf{xv}\index{xv@\texttt{xv}} est un \emph{shareware} de \$25 qui offre des programmes de visualisation et +de conversion de graphiques pour les systèmes X-Windows. Notez que \textbf{xv} n'offre pas de +possibilités de conversion depuis la ligne de commande pour la conversion au vol de +graphiques. Pour des informations sur \textbf{xv}, voir +\begin{quote} +\url{http://www.sun.com/sunsoft/catlink/xv/note.html} +\end{quote} +et un manuel en ligne de \textbf{xv} est disponible depuis: +\begin{quote} +\url{http://is.rice.deu/~shel/xv-3.10a/} +\end{quote} +\item \textbf{DISPLAY}\index{DISPLAY@\textbf{DISPLAY}} +est un \emph{freeware} DOS qui permet les conversions entre un grand +nombre de types de formats. Il est disponible en tant que \texttt{disp189a.zip} et +\texttt{disp189b.zip} depuis les archives SimTel: +\begin{quote} +\url{www.simtel.net/simtel.net/msdos/graphics-pre.html}\\ +\url{oak.oakland.edu/simtel.net/msdos/graphics-pre.html} +\end{quote} +Les futures versions incrémenteront le numéro de version~\texttt{189}. +\item \textbf{WMF2EPS}\index{WMF2EPS@\texttt{WMF2EPS}} est un programme \emph{freeware} de conversion de WMF vers EPS qui +fonctionne sous Windows~95 et NT. Il est disponible depuis +\begin{quote} +\path{CTAN/support/wmf2eps/readme.txt} +\end{quote} +Il a besoin d'un pilote d'imprimante compatible Adobe sur votre système.\pagebreak[1] + +\item \textbf{KVEC}\index{KVEC@\texttt{KVEC}} est un \emph{shareware} de \$25 qui convertit les graphiques bitmap (BMP, +\index{GIF@GIF (fichiers graphiques)!conversion en EPS}GIF, +TIFF\index{TIFF@TIFF (fichiers graphiques)!conversion en EPS}) +en PostScript et autres formats vectoriels. \textbf{KVEC} est disponible pour +Windows, OS/2, NEXT et \textsc{Unix}. +\begin{quote} +\url{http://ourworld.compuserve.com/homepages/kkuhl} +\end{quote} +\item \textbf{NetPBM}\index{NetPBM@\texttt{NetPBM}} est une version maintenue et améliorée de +l'ensemble non supporté \textbf{PBMPLUS}\index{PBMPLUS@\texttt{PBMPLUS}}. +Il fonctionne sous \textsc{Unix}, VMS, et paraît-il même sous DOS. +\begin{quote} +\url{http://wuarchive.wustl.edu/graphics/graphics/packages/NetPBM/} +\end{quote} +\item ImageCommander\index{ImageCommander} (\emph{shareware} de \$30) est un programme de conversion graphique pour +Window~3.1/95/NT qui lit de nombreux types de formats graphiques +(GIF, JPEG, PICT\index{PICT!conversion en EPS}, WMF, etc.) +et écrit en EPS et autres formats. Pour plus d'informations, voir +\begin{quote} +\url{http://www.jasc.com/} +\end{quote} +Le programme Paint Shop Pro\index{Paint Shop Pro} du JASC (\emph{shareware} de \$60) a les mêmes possibilités de +conversion graphique. +\end{itemize} + +\subsection{«~Wrappers~» EPS niveau~2}% +\index{PostScript!wrapper@«~Wrappers~» niveau~2}% +\index{niveau 2 PostScript}\index{graphiques non-EPS!conversion en EPS niveau~2} +Contrairement au PostScript conventionnel, le PostScript Niveau~2 supporte les graphiques +compressés binaires. Ceci produit une meilleure qualité et des fichiers plus petits que de convertir +les graphiques en EPS conventionnel. Si vous avez une imprimante PostScript Niveau~2, il est +préférable d'utiliser les programmes \emph{wrappers} suivants que les programmes de conversion +listés ci-dessus. Puisque les fichiers PostScript résultants ne pourront être imprimés que sur +des imprimantes Niveau~2, les documents sont moins portables. +\begin{itemize} +\item Un graphique JPEG\index{JPEG@JPEG (graphiques)!conversion en EPS niveau~2} peut être converti en PostScript Niveau~2 par le programme~C +\textbf{jpeg2ps}\index{jpeg2ps@\texttt{jpeg2ps}} qui est disponible depuis +\begin{quote} +\url{http://www.muc.de/~tm/free/free.html} +\end{quote} +\textbf{jpeg2ps} peut être compilé sous \textsc{Unix}, DOS et d'autres systèmes. +\item Un graphique TIF peut être converti en PostScript Niveau~2 codé LZW en utilisant +\textbf{tiff2ps}\index{tiff2ps@\texttt{tiff2ps}}, dont le code source est disponible depuis +\begin{quote} +\url{ftp://ftp.sgi.com/graphics/tiff/tiff-v3.4-tar.gz} +\end{quote} +Un fichier \texttt{tar.Z} est également disponible. \textbf{tiff2ps} peut être compilé sur les +plates-formes \textsc{Unix}, DOS, Macintosh et VMS. Bien que les fichiers PostScript LZW +soient petits, ils ont besoin d'une imprimante PostScript Niveau~2. +\end{itemize} + +\subsection{Éditer du PostScript} +Bien que le dessin graphique contenu dans un fichier EPS puisse être modifié en éditant les +commandes PostScript du fichier, ceci est difficile pour la majorité des utilisateurs. Par +contre, il est plus facile d'utiliser les programmes suivants pour éditer les graphiques EPS: +\begin{itemize} +\item \textbf{pstoedit} est un programme gratuit pour \textsc{Unix}, DOS, Windows et OS/2 dont +le code source C$++$ est disponible depuis +\begin{quote} +\mbox{\url{ftp://ftp.x.org/contrib/applications/pstoedit/pstoedit.html}}\\ +\url{http://www.freesoftware.com/pub/X11/contrib/applications/pstoedit/} +\end{quote} +Lorsqu'il est utilisé avec Ghostscript, \textbf{pstoedit} traduit les graphiques PostScript et +EPS en d'autres formats vectoriels (comme le format \texttt{.fig} de \textbf{xfig}). +\item Mayura Draw (autrefois connu sous le nom de PageDraw) est un programme de dessin pour +Windows 3.1/95/NT qui est disponible depuis +\begin{quote} +\url{http://www.wix.com/PageDraw} +\end{quote} +Lorsqu'il est utilisé avec Ghostscript, Mayura Draw peut éditer les fichiers PostScript. + +Les anciennes versions de Mayura Draw sont distribuées gratuitement, alors que les versions +plus récentes sont un \emph{shareware} de \$15. Notez que Mayura Draw requiert Adobe Type +Manager (ATM) pour placer du texte sur les dessins. Bien que ST soit maintenant un logiciel +commercial, Adobe le distribuait autrefois gratuitement avec Acrobat Reader~2.0, qui est +disponible depuis Winsite: +\begin{quote} +\url{ftp://ftp.winsite.com/pub/pc/win3/util/acroread.zip} +\end{quote} +\item \textbf{xfig}\index{xfig@\texttt{xfig}} +est un programme gratuit de dessin pour \textsc{Unix}/X-Windows et est +disponible depuis +\begin{quote}\small +\url{ftp://ftp.x.org/contrib/applications/drawing_tools/}\\ +\url{http://www.freesoftware.com/pub/X11/contrib/applications/drawing_tools/} + +\end{quote}\nopagebreak +\textbf{xfig} peut importer des dessins EPS et ajouter des annotations, mais à l'heure +actuelle ne peut pas modifier les dessins EPS originaux. +\end{itemize} + +\clearpage +\section*{\LARGE Partie~II: L'ensemble graphique de \LaTeX}\index{ensemble graphique} +\addcontentsline{toc}{section}{\null\hspace*{-1cm}\large II: L'ensemble graphique de \LaTeX} +\section{Inclusion de graphique EPS} +La meilleure référence pour les paquetages \texttt{graphics}\index{graphics@\texttt{graphics}, paquetage} +\ifguide(voir page~\pageref{o+graphics}) \fi +et \texttt{graphicx}\index{graphicx@\texttt{graphicx}, paquetage} +\ifguide(voir page~\pageref{o+graphicx}) \fi +est le guide graphique~\cite{grfguide} ou +\emph{The \LaTeX\ Graphics Companion}~\cite{latex-g-comp}. La description du paquetage +\texttt{graphicx} dans les autres références \LaTeX\ est sporadique: \cite{latexguide} décrit +les deux paquetages \texttt{graphics} et \texttt{graphicx}, \cite{latex-manual} ne parle que +du paquetage \texttt{graphics} et \cite{latex-comp} n'en décrit aucun des deux. + +\subsection{La commande \texttt{\bs includegraphics}}\index{includegraphics@\CS{includegraphics}, commande}\label{EP+includegraphics+1} +%%%%%%%%%%%%%% +\begin{table}[hbp] +\topcaption{Options de \texttt{\bs includegraphics}}\label{t+epsl+1}\index{includegraphics@\CS{includegraphics}, commande!options} +\centering\small +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.80\textwidth}|@{}} +\cline{1-3} +\texttt{height}&\hfill&La hauteur du dessin (dans l'une des unités acceptées par \TeX).\\\cline{1-3} +\texttt{totalheight}&&La hauteur totale du dessin (dans l'une des unités acceptées par \TeX). +\emph{(Ajouté 6/95)}.\\\cline{1-3} +\texttt{width}&&La largeur du dessin (dans l'une des unités acceptées par \TeX).\\\cline{1-3} +\texttt{scale}&&Facteur d'échelle pour le dessin. Spécifier \texttt{scale=2} fera que le dessin +sera deux fois plus grand que sa taille naturelle.\\\cline{1-3} +\texttt{angle}&&Spécifie l'angle de rotation, en degrés, le sens anti-horaire +(trigonométrique) étant positif.\\\cline{1-3} +\texttt{origin}&&L'option \texttt{origin} spécifie quel point utiliser comme centre de +rotation. Par défaut, l'objet tourne autour de son point de référence. \emph{(Ajouté 12/95)}\NL +Les points d'origine possibles sont les mêmes que ceux pour la commande \texttt{\bs rotatebox} +décrite dans la Section~\vref{ss+epsl+RB}. Par exemple, \texttt{origin=c} fait tourner le +dessin autour de son centre.\\\cline{1-3} +\texttt{bb}&&Spécifie les paramètres de la BoundingBox. Par exemple \texttt{bb=10 20 100 200} +spécifie que la BoundingBox a son coin inférieur gauche en $(10,20)$ et son coin supérieur +droit en $(100,200)$.\NL +Puisque \texttt{\bs includegraphics} lit automatiquement les paramètres de BoundingBox depuis +le fichier EPS, l'option \texttt{bb} n'est habituellement pas spécifiée. Elle est utile si les +paramètres de BoundingBox dans le fichier EPS sont absents ou incorrects.\\\cline{1-3} +\end{tabular*}% +\index{height!option de \CS{includegraphics}}% +\index{totalheight!option de \CS{includegraphics}}% +\index{width!option de \CS{includegraphics}}% +\index{scale@scale, option de \CS{includegraphics}}% +\index{angle@angle, option de \CS{includegraphics}}% +\index{origin@origin, option de \CS{includegraphics}}% +\index{bb@bb, option de \CS{includegraphics}} +\end{table} +%%%%%%%%%%%%%% + +\begin{flushleft}\large +\noindent\textbf{Syntaxe:}\qquad\verb|\includegraphics[|\<options>\verb|][|\<fichier>\verb|]| +\end{flushleft} +où les \<options> sont listées dans les Tables~\vref{t+epsl+1}, \ref{t+epsl+2} +et~\vref{t+epsl+3}. Puisque \verb|\includegraphics| ne termine pas le paragraphe courant, il +peut placer des graphiques tels que \includegraphics[height=6mm]{pretzel.eps} ou +\includegraphics[height=2ex]{cm.eps} à l'intérieur du texte. Les commandes +\begin{verbatim} + \documentclass{article} + \usepackage{graphicx} + \begin{document} + \includegraphics{file.eps} + \end{document} +\end{verbatim} +insèrent le dessin depuis \texttt{file.eps} avec sa taille naturelle. + + +Lorsque le nom de fichier spécifié n'a pas de suffixe, \verb|\includegraphics| ajoute +les extensions de la liste d'extensions \verb|\DeclareGraphicsExtensions|% +\index{DeclareGraphicsExtensions@\CS{DeclareGraphicsExtensions}, commande}% +\label{EP+DeclareGraphicsExtensions} +(voir la +Section~\vref{ss+epsl+DGE}). Puisque la liste par défaut des suffixes n'inclut pas le suffixe +vide, la commande \verb|\includegraphics{file}| \emph{ne lira pas} \texttt{file} à moins que le suffixe +vide soit ajouté à la liste des suffixes. + +\afterpage{\typeout{FLUSH FLOATS}\clearpage} +\begin{table}[p] +\topcaption{Options de limitations de \texttt{\bs includegraphics}}\label{t+epsl+2}% +\index{includegraphics@\CS{includegraphics}, commande!options de limitation} +\centering\small +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.88\textwidth}|@{}} +\cline{1-3} +\texttt{viewport}&\hfill&Spécifie quelle portion du graphique doit être visible. Comme une +BoundingBox, la zone est spécifiée par quatre nombres qui sont les coordonnées du coin +inférieur gauche et du coin supérieur droit. Les coordonnées sont relatives au coin inférieur +gauche de la BoundingBox. \emph{(Ajouté 6/95)}\NL +Par exemple, si les paramètres de BoundingBox du dessin sont \texttt{50 50 410 302}, +\texttt{viewport=50 50 122 122} affiche le carré d'un pouce de côté dans le coin inférieur +gauche du dessin, et \texttt{viewport=338 230 410 302} affiche le carré d'un pouce de côté +dans le coin supérieur droit du dessin.\NL +L'option \texttt{clip}\index{clip@clip, option de \CS{includegraphics}} (voir la Table~\vref{t+epsl+3}) doit être utilisée pour empêcher la +partie du dessin hors du «~viewport~» d'être affichée.\\\cline{1-3} +\texttt{trim}&&Une autre méthode pour spécifier quelle portion du dessin doit être visible. +Les quatre nombres spécifient la quantité à retirer sur les bords gauche, bas, droit et haut, +respectivement. Les nombres positifs retirent à un bord, les nombres négatifs ajoutent. +\emph{(Ajouté 6/95)}\NL +Par exemple, \texttt{trim=1 2 3 4} retire au dessin \texttt{1~bp} sur le bord gauche, +\texttt{2~bp} sur le bord bas, \texttt{3~bp} sur le bord droit et \texttt{4~bp} sur le bord +haut.\NL +L'option \texttt{clip} (voir la Table~\vref{t+epsl+3}) doit être utilisée pour empêcher la +partie enlevée au dessin d'être affichée.\\\cline{1-3} +\end{tabular*} +%\end{table} +% % POUR LES LIER + +\vspace*{4mm} + +%\begin{table}[p] +\index{clip@clip, option de \CS{includegraphics}}% +\index{noclip@noclip, option de \CS{includegraphics}}% +\index{trim@trim, option de \CS{includegraphics}}% +\index{viewport@viewport, option de \CS{includegraphics}}% +\index{draft@draft, option de \CS{includegraphics}}% +\index{final@final, option de \CS{includegraphics}}% +\index{keepaspectratio@keepaspectratio, option de \CS{includegraphics}}% +\topcaption{Options booléennes de \texttt{\bs includegraphics}}\label{t+epsl+3}% +\index{includegraphics@\CS{includegraphics}, commande!options booleenes@options booléennes} +\centering\small +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.80\textwidth}|@{}} +\cline{1-3} +\texttt{noclip}&\hfill&(défaut) Le dessin apparaît en entier, même si des portions +apparaissent en dehors de la zone de vision (\emph{viewport}).\\\cline{1-3} +\texttt{clip}&&Lorsque \texttt{clip} est spécifié, tout dessin en dehors de la zone de vision +(\emph{viewport}) est occulté et n'apparaît pas.\\\cline{1-3} +\texttt{draft}&&Lorsque \texttt{draft} est spécifié, la BoundingBox et le nom du fichier +graphique sont affichés à la place du dessin, ce qui donne un affichage et une impression +du document plus rapides. L'option de paquetage \texttt{draft} \texttt{\bs +usepackage[draft]\{graphicx\}} fait que tous les dessins dans un document seront insérés en +mode brouillon.\\\cline{1-3} +\texttt{final}&&(Défaut, à moins que \texttt{\bs usepackage[draft]\{graphicx\}} soit +spécifié.) \texttt{final} fait que le dessin sera affiché, cette option est utilisée pour +passer outre \texttt{\bs usepackage[draft]\{graphicx\}}.\\\cline{1-3} +\texttt{keepaspectratio}&&Lorsque \texttt{keepaspectratio} n'est pas spécifié, le fait de spécifier à la fois la +largeur \texttt{width} et la hauteur \texttt{height} ou la hauteur totale \texttt{totalheight} +fait que le graphique sera agrandi de manière anamorphique pour avoir la hauteur et la largeur +spécifiées.\NL +Lorsque \texttt{keepaspectratio} est spécifié, le fait de spécifier à la fois la largeur \texttt{width} et +la hauteur \texttt{height} ou la hauteur totale \texttt{totalheight} rendra le dessin aussi +grand que possible mais en conservant ses proportions initiales sans dépasser ni la hauteur ni +la largeur spécifiées. \emph{(Ajouté 9/95)}\\\cline{1-3} +\end{tabular*} +\end{table} + +%\noindent\mbox{\llap{\raggedleft\scriptsize\textbf{\botsmash{\tshortstack[r]{Spécifier\\la Largeur}}~~}}\hspace*{\parindent}La} +\MARTIT{\botsmash{\tshortstack[r]{Spécifier\STRUT\\la Largeur\STRUT}}~~}{La} +commande +\begin{quote} +\verb|\includegraphics[width=3in]{file.eps}| +\end{quote} +insère le dessin du fichier \texttt{file.eps} agrandi de manière que sa largeur soit de +3~pouces. Au lieu de donner à la largeur une dimension fixe telle que 3~pouces, rendre la +largeur fonction de \verb|\textwidth| ou \verb|\em| rendra un document davantage portable. Par +exemple, la commande +\begin{quote} +\verb|\includegraphics[width=\textwidth]{graphic.eps}| +\end{quote} +agrandit (ou réduit) le dessin inséré pour qu'il soit aussi large que le texte. La commande +\begin{quote} +\verb|\includegraphics[width=0.80\textwidth]{graphic.eps}| +\end{quote} +agrandit (ou réduit) le dessin inséré pour qu'il soit large de 80\% de la largeur du texte. Si +le paquetage \texttt{calc}\index{calc@\texttt{calc}, paquetage} +\ifguide(voir page~\pageref{o+calc}) \fi +est utilisé, la commande ci-dessous +fera que le dessin sera large de 2~pouces de moins que le texte: +\begin{quote} +\verb|\includegraphics[width=\textwidth-2.0in]{graphic.eps}| +\end{quote} +(Ceci requiert une version de \texttt{graphicx} de \emph{12/95} ou ultérieure). + +\section{Rotation et agrandissement d'objets graphiques} +En plus de la commande \verb|\includegraphics|, le paquetage \texttt{graphicx} offre 4 autres +commandes pour faire tourner et agrandir \emph{n'importe quel} objet \LaTeX: texte, graphique +EPS, etc. +\begin{quote} +\label{EP+scalebox}\index{scalebox@\CS{scalebox}, commande}% +\verb|\scalebox{|\<échelle-h>\verb|}[|\<échelle-v>\verb|]{|\<argument>\verb|}|\\ +\label{EP+resizebox}\index{resizebox@\CS{resizebox}, commande}% +\verb|\resizebox{|\<largeur>\verb|}{|\<hauteur>\verb|}{|\<argument>\verb|}|\\ +\label{EP+resizebox*}\verb|\resizebox*{|\<largeur>\verb|}{|\<hauteur totale>\verb|}{|\<argument>\verb|}|\\ +\label{EP+rotatebox}\index{rotatebox@\CS{rotatebox}, commande}% +\verb|\rotatebox[|\<options>\verb|]{|\<angle>\verb|}{|\<argument>\verb|}| +\end{quote} + +Puisque la commande \verb|\includegraphics| de \texttt{graphicx} supporte les options de +rotation et d'agrandissement ou réduction telles que \texttt{angle} et \texttt{width}, les +commandes de cette section ont rarement besoin d'être utilisées avec les dessins EPS. Par +exemple, +\begin{quote} +\verb|\includegraphics[scale=2]{file.eps}|\\ +\verb|\includegraphics[width=2in]{file.eps}|\\ +\verb|\includegraphics[angle=45]{file.eps}| +\end{quote} +produisent les mêmes trois dessins que +\begin{quote} +\verb|\scalebox{2}{\includegraphixs{file.eps}}|\\ +\verb|\resizebox{4in}{!}{\includegraphixs{file.eps}}|\\ +\verb|\rotatebox{45}{!}{\includegraphixs{file.eps}}| +\end{quote} +Cependant la première syntaxe est préférable car elle est plus rapide et produit un code +PostScript plus efficace. + +\subsection{La commande \texttt{\bs scalebox}} +\begin{flushleft}\large +\noindent\textbf{Syntaxe:}\qquad\verb|\scalebox{|\<échelle-h>\verb|}[|\<échelle-v>\verb|]{|\<argument>\verb|}| +\end{flushleft} +La commande \verb|\scalebox| agrandit ou réduit un objet, donnant à sa largeur \<échelle-h> fois +sa largeur d'origine et à sa hauteur \<échelle-v> fois sa hauteur d'origine. Si \<échelle-v> +est omise, elle vaut \<échelle-h> par défaut, ce qui conserve les proportions (\emph{aspect +ratio}) de l'objet. Des valeurs négatives provoquent une réflexion de l'objet. + +\subsection{La commande \texttt{\bs resizebox}} +\begin{flushleft}\large +\noindent\textbf{Syntaxe:}\qquad\verb|\resizebox{|\<largeur>\verb|}{|\<hauteur>\verb|}{|\<argument>\verb|}|\NL +\null\hphantom{\textbf{Syntaxe:}}\qquad\verb|\resizebox*{|\<largeur>\verb|}{|\<hauteur totale>\verb|}{|\<argument>\verb|}|\\ +\end{flushleft} +La commande \verb|\resizebox| donne à un objet la taille spécifiée. Le fait de spécifier~\verb|!| +comme hauteur ou comme largeur fera que cette dimension sera telle que les proportions seront +conservées. Par exemple, \verb|\resizebox{2in}{!}{|\<argument>\verb|}| agrandit l'argument jusqu'à ce +qu'il fasse 2~pouces de large. + +Les arguments standard en \LaTeXe\ \verb|\height|, \verb|\width|, \verb|\totalheight| et +\verb|\depth| peuvent être utilisés pour faire référence à la taille d'origine de +l'\<argument>. Ainsi +\begin{quote} +\verb|\resizebox{2in}{\height}{|\<argument>\verb|}| +\end{quote} +fera que l'\<argument> gardera la même hauteur mais aura une largeur de 2~pouces. + +La commande \verb|\resizebox*| est identique à \verb|\resizebox|, sauf que le deuxième +argument spécifie la hauteur totale de l'objet. + +\subsection{La commande \texttt{\bs rotatebox}}\label{ss+epsl+RB} +\begin{flushleft}\large +\noindent\textbf{Syntaxe:}\qquad\verb|\rotatebox[|\<options>\verb|]{|\<angle>\verb|}{|\<argument>\verb|}| +\end{flushleft} +La commande \verb|\rotatebox| fait tourner un objet d'un angle donné en degrés, la rotation +dans le sens anti-horaire (trigonométrique) étant positive. Par défaut, l'objet tourne autour +de son point de référence. Les options de \verb|\rotatebox| permettent de spécifier le centre +de rotation. +\begin{enumerate}[1.] +\item En spécifiant \verb|[x=|\<xdim>\verb|,y=|\<ydim>\verb|]|, l'objet tournera autour du +point dont les coordonnées sont (\<xdim>,\<ydim>) par rapport au point de référence de +l'objet. +\item L'option \texttt{origin} spécifie l'un des douze points spéciaux indiqués dans la +Figure~\vref{f3+epsl}. +\definecolor{GRAY}{gray}{.95} +\begin{figure}[htb] \centering +%\psfrag{Centerlines}[][]{\footnotesize Lignes centrales} +\psfrag{Centerlines}[][]{\footnotesize\colorbox{GRAY}{\shortstack{Lignes\\centrales}}} +\psfrag{Reference}[][]{\footnotesize \colorbox{white}{Point de}} +\psfrag{Point}[][]{\footnotesize \colorbox{white}{référence}} +%\psfrag{Baseline}[][]{\footnotesize Ligne de base} +%\psfrag{Baseline}[][]{\footnotesize\colorbox{GRAY}{Ligne de base}} +\psfrag{Baseline}[][]{\scriptsize\colorbox{GRAY}{\shortstack{Ligne\\de base}}} +\includegraphics{origin.eps} +\caption{Points utilisables comme origine}\label{f3+epsl} +\end{figure} + +La position horizontale des points \texttt{origin} est spécifiée par l'une des trois lettres +\texttt{lcr} (qui signifient \emph{left}, \emph{center} et \emph{right}, soit gauche, centre et +droit respectivement), tandis que la position verticale est spécifie par l'une des quatre +lettres \texttt{t}, \texttt{c}, \texttt{B} et \texttt{b} (qui signifie \emph{top}, +\emph{center}, \emph{Baseline} et \emph{bottom}, soit sommet, centre, ligne de base et bas +respectivement). Par exemple, +\begin{quote} +\verb|[rb]| signifie \emph{right bottom}, le coin inférieur droit;\\ +\verb|[lt]| signifie \emph{left top}, le coin supérieur gauche;\\ +\verb|[cB]| signifie \emph{center Baseline}, le centre de la ligne de base du dessin. +\end{quote} +Notez que +\begin{itemize} +\item L'ordre des lettres est sans importance, donc \verb|[br]|et \verb|[rb]| sont +équivalents. +\item \texttt{c} représente le centre horizontal ou le centre vertical selon la lettre qui est +utilisée avec elle. +\item Si une seule lettre est spécifiée, l'autre est supposée être un~\texttt{c}, ce qui fait +que \verb|[c]| équivaut à \verb|[cc]|, \verb|[l]| équivaut à \verb|[lc]|, \verb|[t]| équivaut +à \verb|[tc]|, etc. +\end{itemize} +\end{enumerate} + +\section{Commandes avancées} +Cette section décrit les commandes avancées qui sont nécessaires dans les situations +suivantes: +\begin{enumerate}[1.] +\item Lorsque le nom de fichier spécifié n'a pas de suffixe. Par exemple: +\begin{quote} +\verb|\includegraphics{file}| +\end{quote} +\item Lorsque des graphiques EPS compressés sont utilisés (voir la Section~\vref{ss+epsl+FGC}). +\item Lorsque des graphiques non-EPS sont utilisés (voir la Section~\vref{ss+epsl+FGNE}). +\end{enumerate} +Dans ces situations, les deux commandes +sont nécessaires pour contrôler la manière dont \LaTeX\ traite les fichiers spécifiés dans +les commandes \verb|\includegraphics|: +\verb|\DeclareGraphicsRule|% +\label{EP+DeclareGraphicsRule}% +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande} +et \verb|\DeclareGraphicsExtensions|% +\index{DeclareGraphicsExtensions@\CS{DeclareGraphicsExtensions}, commande}. +\begin{itemize} +\item La commande \verb|\DeclareGraphicsExtensions| spécifie les suffixes (\emph{extensions}) à +essayer (par exemple, \texttt{.eps}. \texttt{.ps}, \texttt{.eps.gz}, etc.) lorsque le nom de +fichier spécifié n'a pas de suffixe. +\item La commande \verb|\DeclareGraphicsRule| spécifie une commande qui agit sur un fichier. +L'exécution de cette commande requiert un système d'exploitation qui supporte des +\emph{pipes} ou \emph{tuyaux}. Par exemple, \textsc{Unix} supporte les pipes alors que DOS ne les supporte pas. + +Si cette commande est une commande de décompression, alors les graphiques EPS compressés +pourront être utilisés. Si cette commande est une commande de conversion graphique alors les +graphiques non-EPS pourront être utilisés. +\end{itemize} + +\subsection{La commande \texttt{\bs DeclareGraphicsExtensions}}\label{ss+epsl+DGE}% +\label{EP+DeclareGraphicsExtensions+1}% +\index{DeclareGraphicsExtensions@\CS{DeclareGraphicsExtensions}, commande} +La commande \verb|\DeclareGraphicsExtensions| indique à \LaTeX\ quels suffixes essayer si un +fichier sans suffixe est spécifié dans la commande \verb|\includegraphics|. + +Par confort, un ensemble par défaut de suffixes est prédéfini selon quel pilote graphique est +choisi\,\footnote{Le fait de spécifier par une option le pilote graphique pour le paquetage comme +dans la commande \texttt{\bs usepackage[dvips]\{graphicx\}} passe outre le pilote graphique par défaut +spécifié dans le fichier \index{graphics.cfg@\texttt{graphics.cfg}, fichier}\texttt{graphics.cfg}.}. Par exemple si \texttt{dvips} est utilisé, +les suffixes graphiques suivants (définies dans \texttt{dvips.def}) sont utilisées par défaut +\begin{quote} +\verb|\DeclareGraphicsExtensions{.eps,.ps,.eps.gz,.ps.gz,.eps.Z}| +\end{quote} +Avec les suffixes graphiques spécifiés ci-dessus, \verb|\includegraphics{file}| recherchera +d'abord \texttt{file.eps}, puis \texttt{file.ps}, puis \texttt{file.eps.gz}, etc. jusqu'à ce +qu'un fichier soit trouvé. Ceci permet de spécifier le graphique par +\begin{quote} +\verb|\includegraphics{file}| +\end{quote} +au lieu de +\begin{quote} +\verb|\includegraphics{file.eps}| +\end{quote} +La première syntaxe a pour avantage que si vous décidez plus tard de compresser le +fichier \texttt{file.eps}, vous n'aurez pas a modifier le fichier \LaTeX. + +\lneed{4} +\MARTIT{\botsmash{\tshortstack[r]{Fichiers\STRUT\\sans\STRUT\\Suffixes\STRUT}}~~}{Notez} +que +\begin{quote} +\verb|\includegraphics{file}| +\end{quote} +\emph{n'essaye pas} d'ouvrir le fichier \texttt{file} à moins que le suffixe vide \verb|{}| +soit cité dans la liste des suffixes. Par exemple, +\begin{quote} +\verb|\DeclareGraphicsExtensions{.eps,.eps.gz,{}}| +\end{quote} +fera que \texttt{file} sera recherché si \texttt{file.eps} et \texttt{file.eps.gz} ne sont pas +trouvés. + +\MARTIT{\botsmash{\tshortstack[r]{Problèmes\STRUT\\d'Espace\STRUT\\Pool\STRUT}}~~}{Le} fait de ne spécifier +aucun suffixe et de se fier à \LaTeX\ pour choisir le suffixe correct dans la liste des +suffixes de \verb|\DeclareGraphicsExtensions| peut aggraver les problèmes d'espace pool (voir +la Section~\vref{ss+epsl+POOL}). Si l'espace pool est un souci, la commande +\verb|\includegraphics{file}| ne devrait raisonnablement être utilisée qu'avec une commande +\verb|\DeclareGraphicsExtensions| contenant un nombre minimum de suffixes, comme +\begin{quote} +\verb|\DeclareGraphicsExtensions{.eps,.eps.gz}| +\end{quote} + +\subsection{La commande \texttt{\bs DeclareGraphicsRule}}\label{ss+epsl+DGR}% +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande} +La commande \verb|\DeclareGraphicsRule| spécifie comment \verb|\includegraphics| devrait +traiter les fichiers, selon leurs suffixes. Il est possible d'utiliser plusieurs commandes +\verb|\DeclareGraphicsRule|. +\begin{table}[thb] +\topcaption{Arguments de \texttt{\bs DeclareGraphicsRule}}\label{t+epsl+4} +\centering\small +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.80\textwidth}|@{}} +\cline{1-3} +\<suffixe>&\hfill&Le suffixe du fichier.\\\cline{1-3} +\<type>&\hfill&Le type graphique pour ce suffixe.\\\cline{1-3} +\<taille fichier>&&Le suffixe du fichier qui contient les informations de BoundingBox pour le +dessin. Si cette option est en blanc, alors les informations sur la taille doivent être +spécifiées par l'option \texttt{bb} de la commande \verb|\includegraphics|.\\\cline{1-3} +\<commande>&&La commande à appliquer au fichier (souvent laissée en blanc). La commande doit +être précédée d'un simple accent grave (quote arrière; à ne pas confondre avec la quote simple +bien plus courante). Actuellement, seul \textbf{dvips} permet l'exécution d'une telle +commande. Voir la Section~\vref{s+epsl+FGCNE} pour des exemples d'utilisation de cette +commande avec des graphiques compressés ou non-EPS.\\\cline{1-3} +\end{tabular*} +\end{table} + +\begin{flushleft}%\large +\noindent\textbf{Syntaxe:}\qquad\verb|\DeclareGraphicsRule{|\<suffixe>\verb|}{|% +\<type>\verb|}{|\<fichier taille>\verb|}{|\<commande>\verb|}| +\end{flushleft} +Par exemple, la commande +\begin{quote} +\verb|\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip -c #1}| +\end{quote} +spécifie que tout fichier ayant le suffixe \texttt{.eps.gz} est traité comme un fichier EPS +compressé, avec les informations de BoundingBox rangées dans le fichier portant le suffixe +\texttt{.eps.bb} et la commande \texttt{gunzip -c} décompresse le fichier. (Puisque \LaTeX\ ne +peut pas lire les informations de BoundingBox depuis un fichier compressé, la ligne +BoundingBox doit être rangée dans un fichier non compressé.) + +La commande \verb|\DeclareGraphicsRule| permet une~\verb|*| pour tout suffixe inconnu. Par +exemple, +\begin{quote} +\verb|\DeclareGraphicsRule{*}{eps}{*}{}| +\end{quote} +fait que tout fichier ayant un suffixe inconnu sera traité comme un fichier EPS. + +\MARTIT{\botsmash{\tshortstack[r]{Points\STRUT\\dans les\STRUT\\Noms de\STRUT\\Fichiers\STRUT}}~~}{Le} +suffixe (\emph{extension}) est défini comme étant la partie du nom de fichier après le +premier point, ce qui offre la possibilité pour les fichiers dont le nom se termine par +\texttt{eps.gz} d'être identifiés comme des fichiers EPS compressés. Pour éviter les +confusions, la portion de base du nom de fichier ne doit pas contenir de point. Par exemple, +Le fait de spécifier \texttt{file.name.eps.gz} fait que \verb|\includegraphics| recherchera +une règle graphique associée au suffixe \texttt{name.ps.gz}. Puisqu'une telle règle graphique +n'existe probablement pas, la règle pour le suffixe inconnu est utilisé (Les noms de fichiers +contenant plusieurs points fonctionnent s'il se trouve que leur type est le type par défaut. Par +exemple, lorsque des fichiers portant des extensions inconnues sont traités comme des fichiers +EPS, le nom de fichier \texttt{file.name.eps} est par coïncidence traité correctement.) + +\MARTIT{\botsmash{\tshortstack[r]{Commandes\STRUT\\Pré-définies\STRUT}}~~}{Par} souci de +confort, un jeu par défaut de règles graphiques est prédéfini selon le pilote graphique +choisi\,\footnote{Le fait de spécifier une option pilote graphique pour le paquetage comme +dans \texttt{\bs usepackage[dvips]\{graphicx\}} passe outre l'option pilote graphique par défaut +spécifiée dans le fichier \index{graphics.cfg@\texttt{graphics.cfg}, fichier}\texttt{graphicx.cfg}.}. Par exemple si le pilote \textbf{dvips} est +utilisé, les règles graphiques suivantes (définies dans \texttt{dvips.def}) sont utilisées par défaut: +\begin{quote} +\verb|\DeclareGraphicsRule{.eps}{eps}{.eps}{}|\\% +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande}% +\verb|\DeclareGraphicsRule{.ps}{eps}{.ps}{}|\\ +\verb|\DeclareGraphicsRule{.pz}{eps}{.bb}{`gunzip -c #1}|\\ +\verb|\DeclareGraphicsRule{.eps.Z}{eps}{.eps.bb}{`gunzip -c #1}|\\ +\verb|\DeclareGraphicsRule{.ps.Z}{eps}{.ps.bb}{`gunzip -c #1}|\\ +\verb|\DeclareGraphicsRule{.eps.gz}{.eps}{.eps.bb}{1gunzip -c #1}|\\ +\verb|\DeclareGraphicsRule{.ps.gz}{eps}{.ps.bb}{`gunzio -c #1}|\\ +\verb|\DeclareGraphicsRule{.pcx}{bmp}{}{}|\\ +\verb|\DeclareGraphicsRule{.bmp}{bmp}{}{}|\\ +\verb|\DeclareGraphicsRule{.msp}{bmp}{.eps}{}|\\ +\verb|\DeclareGraphicsRule{*}{eps}{*}{}| +\end{quote} + +Les deux premières commandes définissent les suffixes \texttt{.eps} et \texttt{.ps} comme +désignant des fichiers EPS. Les cinq commandes suivantes définissent les suffixes pour les +fichiers EPS compressés. Les trois commandes suivantes définissent des suffixes pour la fichier +bitmaps (voir la Section~\vref{sss+epsl+SD}). La dernière commande fait que les fichiers ayant des +suffixes inconnus seront traités comme des fichiers EPS. + +\clearpage +\section*{\raggedright\LARGE Partie~III: Utilisation des commandes\linebreak[2] \mbox{d'inclusion} de graphiques} +\addcontentsline{toc}{section}{\null\hspace*{-1cm}\large III: Utilisation des commandes d'inclusion de graphiques} +\section{Espacement horizontal et centrage} +\subsection{Centrage horizontal} +Le placement du dessin est contrôlé par la justification courante du texte. Pour centrer le +dessin, placez-le dans un environnement \texttt{center}: +\begin{quote} +\begin{verbatim} +\begin{center} + \includegraphics[width=2in]{graphic.eps} +\end{center} +\end{verbatim} +\end{quote} +Si la commande \verb|\includegraphics| est à l'intérieur d'un environnement (tel que +\texttt{minipage} ou \texttt{figure}), la déclaration \verb|\centering|% +\label{EP+centering}\index{centering@\CS{centering}, commande} +centre le reste de +l'environnement. Par exemple, +\begin{quote} +\begin{verbatim} +\begin{figure} +\psfrag{Graphic}[][][1.6]{Graphique} + \begin{center} + \includegraphics[width=2in]{graphic.eps} + \end{center} +\end{figure} +\end{verbatim} +\end{quote} +est similaire à: +\begin{quote} +\begin{verbatim} +\begin{figure} +\psfrag{Graphic}[][][1.6]{Graphique} +\centering + \includegraphics[width=2in]{graphic.eps} +\end{figure} +\end{verbatim} +\end{quote} +La syntaxe avec \verb|\centering|% +\index{centering@\CS{centering}, commande!différence avec l'environnement \texttt{center}} +est préférable car la syntaxe avec \verb|\begin{center}| +provoque un espace vertical double dû à l'espacement produit par l'environnement +\texttt{figure} et par l'environnement \texttt{center}. Si un espacement vertical +supplémentaire est souhaité, les commandes de la Section~\vref{ss+epsl+EF} devraient être utilisées. + + +\MARTIT{\botsmash{\tshortstack[r]{Syntaxe\STRUT\\Obsolète\STRUT}}~~}{Des} problèmes dans les +commandes \verb|\psfig|\index{psfig@\CS{psfig}, commande}\label{EP+psfig+1} +et \verb|\epsfbox|\index{epsfbox@\CS{epsfbox}, commande}\label{EP+epsfbox+1} +rendaient difficile la production de dessins +centrés horizontalement. Les commandes \TeX\ +\label{EP+centerline}\verb|\centerline|\index{centerline@\CS{centerline}, commande \TeX} +et \label{EP+leavevmode}\verb|\leavevmode|\index{leavevmode@\CS{leavevmode}, commande \TeX} +étaient +utilisées comme astuces corrigeant les problèmes dans \verb|\psfig| et \verb|\epsfbox|. +Puisque la commande \verb|\includegraphics| est écrite correctement, les commandes +\verb|\centerline| et \verb|\leavevmode| ne sont plus nécessaires, ce qui permet de centrer +les dessins avec la commande \verb|\centering| ou l'environnement \texttt{center}. + +\subsection{Espacement horizontal}\label{ss+epsl+EH} +Il est important de se rendre compte que \LaTeX\ arrange les dessins de la même manière +qu'il met en page les autres objets tels que les lettres. Par exemple, un espacement inter-mots +est introduit entre des lignes d'entrée \LaTeX\ à moins que la ligne se termine par un \verb|%| +(sans blanc devant!). Par exemple, tout comme +\begin{verbatim} + Hello + World +\end{verbatim} +met un espacement inter-mots entre «~Hello~» et «~World~» +\begin{verbatim} + \includegraphics{file.eps} + \includegraphics{file.eps} +\end{verbatim} +mettra un espace inter-mots entre les dessins. En terminant la première ligne par un caractère +commentaire +\begin{verbatim} + \includegraphics{file.eps}% + \includegraphics{file.eps} +\end{verbatim} +il n'y aura plus d'espacement entre les dessins. Lorsque vous voulez un espacement horizontal +entre les dessins, la commande \label{EP+hspace}\verb|\hspace|\index{hspace@\CS{hspace}, commande} insère une quantité spécifiée +d'espace\,\footnote{Au lieu de donner à \texttt{\bs hspace} une longueur fixée telle que +1~pouce, en faire une fonction de \texttt{\bs textwidth} ou de \texttt{em} accroît la +portabilité du document.} tandis que \label{EP+hfill}\verb|\hfill|\index{hfill@\CS{hfill}, commande} insère une +longueur élastique\index{longueur élastique}\index{elastique (longueur)@élastique (longueur)} +qui s'étend pour remplir l'espace disponible. Par exemple, +\begin{quote} +\verb|\includegraphics{file.eps}\hfill\includegraphics{file.eps}| +\end{quote} +pousse les dessins sur les marges gauche et droite, tandis que +\begin{quote} +\verb|\hfill\includegraphics{file.eps}%|\\ +\verb|\hfill\includegraphics{file.eps}\hspace*{\fill}| +\end{quote} +met des espacements identiques avant, entre et après les dessins. Puisque les commandes +\verb|\hfill| qui se trouvent juste derrière une coupure de ligne sont\virage{} ignorés, la commande +\verb|\hspace*{\fill}|\index{fill@\CS{fill}, longueur} a été nécessaire pour donner l'espacement final. + +\section{Rotation, agrandissement et alignement} +Puisque les options de \verb|\includegraphics| sont interprétées de gauche à droite, l'ordre +selon lequel l'angle et la taille sont spécifiés fait une différence. Par exemple + +\begingroup +\psfrag{Graphic}[][][1]{Graphique} +\begin{demo}[w]{\hspace*{-1cm}} +\begin{center} + \includegraphics[angle=90,totalheight=1cm]{graphic.eps} + \includegraphics[totalheight=1cm,angle=90]{graphic.eps} +\end{center} +\end{demo} +\endgroup + +La première boîte est tournée de 90~degrés puis agrandie pour être haute d'un +centimètre. La seconde est agrandie pour être haute d'un centimètre puis tournée de +90~degrés. + +\subsection{Différence entre \texttt{height} et \texttt{totalheight}}% +\index{height!option de \CS{includegraphics}}% +\index{totalheight!option de \CS{includegraphics}} +Les utilisateurs doivent prendre soin lors de l'utilisation de l'option \texttt{height}, car +ils pensent souvent à la hauteur totale qui est établie par l'option \texttt{totalheight} +(voir la Figure~\vref{f1+epsl}). Lorsque l'objet a une profondeur nulle, la +\texttt{totalheight} est la même que la \texttt{height} et spécifier \texttt{height} marche +bien. Lorsque l'objet a une profondeur non nulle, le fait de spécifier \texttt{height} au lieu +de \texttt{totalheight} provoque soit un dessin de taille incorrecte soit une erreur de +division par zéro. Pour l'importation de fichiers EPS, la distinction entre \texttt{height} et +\texttt{totalheight} est encore plus importante si vous faites tourner puis agrandissez (ou +réduisez) un dessin. Par exemple, +\begin{quote} +\verb|\includegraphics[angle=-45,totalheight=1in]{file.eps}|\\ +\verb|\includegraphics[angle=-45,height=1in]{file.eps}| +\end{quote} +La première de ces commandes agrandit le dessin tourné pour que sa hauteur totale soit de +1~pouce. La seconde commande agrandit le dessin tourné pour que la portion au dessus du point +de référence soit haute d'un pouce. + +\subsection{Agrandissement de graphiques tournés} +Lorsque la hauteur ou la largeur d'un dessin est spécifiée, la taille spécifiée n'est pas +celle du dessin mais plutôt celle des sa BoundingBox. Cette distinction est particulièrement +importante dans l'agrandissement des dessins tournés. Par exemple + +\begin{demo}[w]{\hspace*{-1cm}} +\begin{center} + \includegraphics[totalheight=1in]{rosette.eps} + \includegraphics[angle=45,totalheight=1in]{rosette.eps} + \includegraphics[angle=90,totalheight=1in]{rosette.eps} +\end{center} +\end{demo} + +Bien qu'il puisse sembler étrange que les dessins aient des tailles différentes, cela semble +plus logique en regardant les BoundingBoxes: + +%\begin{demo}[w]{\hspace*{-1cm}} +\begin{center} +\includegraphics[totalheight=1in]{square.eps} +\includegraphics[angle=45,totalheight=1in]{square.eps} +\includegraphics[angle=90,totalheight=1in]{square.eps} +\end{center} +%\end{demo} + +Chaque dessin a été agrandi de manière que sa BoundingBox soit haute d'un pouce. + +\subsection{Alignement de graphiques tournés} +Lorsque l'on fait tourner les dessins, les objets peuvent ne plus s'aligner correctement. Par +exemple, + +\begin{demo}[w]{\hspace*{-1cm}} +\begin{center} + \includegraphics[totalheight=1in]{rosette.eps} + \includegraphics[totalheight=1in,angle=-45]{rosette.eps} + \includegraphics[totalheight=1in,angle=-90]{rosette.eps} +\end{center} +\end{demo} + +Ici encore, ceci est bien illustré par les BoundingBoxes: + +\begin{center} + \includegraphics[totalheight=1in]{square.eps} + \includegraphics[totalheight=1in,angle=-45]{square.eps} + \includegraphics[totalheight=1in,angle=-90]{square.eps} +\end{center} + +Dans ce cas les points de référence des objets (les coins inférieurs gauches à l'origine) sont +alignés sur une ligne horizontale. Si l'on préfère que les centres soient alignés, l'option +\texttt{origin} de \verb|\includegraphics| peut être utilisée, ce qui aligne les centres des +dessins: + +\begin{demo}[w]{\hspace*{-1cm}} +\begin{center} + \includegraphics[totalheight=1in]{rosette.eps} + \includegraphics[totalheight=1in,origin=c,angle=-45]{rosette.eps} + \includegraphics[totalheight=1in,origin=c,angle=-90]{rosette.eps} +\end{center} +\end{demo} + +De manière similaire, les commandes suivantes font tourner le dessin de droite autour de son +coin inférieur gauche: + +\begingroup +\psfrag{Graphic}[][][1]{Graphique} +\begin{demo}[w]{\hspace*{-1cm}} +\begin{center} + \includegraphics[width=1in]{graphic.eps} + \hspace{1in} + \includegraphics[width=1in,angle=-90]{graphic.eps} +\end{center} +\end{demo} +\endgroup + +Pour aligner les bords inférieurs des dessins, utilisez les commandes suivantes, qui font +tourner le dessin de droite autour de son coin inférieur droit: + +\begingroup +\psfrag{Graphic}[][][1]{Graphique} +\begin{demo}[w]{\hspace*{-1cm}} +\begin{center} + \includegraphics[width=1in]{graphic.eps} + \hspace{1in} + \includegraphics[width=1in,origin=br,angle=-90]{graphic.eps} +\end{center} +\end{demo} +\endgroup + +\subsection{Alignement vertical des minipages}\label{ss+epsl+AVM}\index{minipage!alignement vertical}% +\label{env+EP+minipage+1} +Il est souvent utile de placer des dessins à l'intérieur d'environnements \texttt{minipage} +(par exemple, voir la Section~\vref{s+epsl+DCC}). Lorsque les minipages sont placées côte à +côte, LaTeX\ les place de manière que leurs points de référence soient alignés verticalement. +Par défaut, le point de référence de la minipage est centré verticalement sur son bord gauche. +Un argument optionnel modifie la position du point de référence de la minipage.% +\begin{wdesc}{xxxx} +\item[\texttt{[b]}] fait que le point de référence de la minipage sera aligné verticalement +avec le point de référence de la ligne du bas dans la minipage. +\item[\texttt{[t]}] fait que le point de référence de la minipage sera aligné verticalement +avec le point de référence de la ligne du haut dans la minipage. +\end{wdesc}% +Notez que \texttt{[b]} \emph{ne met pas} le point de référence en bas de la minipage (à moins +que le point de référence de la ligne du bas de la minipage se trouve être en bas de la minipage). +De même, \texttt{[t]} \emph{ne met pas} le point de référence en haut de la minipage (à moins +que le point de référence de la ligne du haut de la minipage se trouve être en haut de la minipage). + +Lorsque la minipage ne contient qu'une seule ligne, les options \texttt{[b]} et \texttt{[t]} +produisent le même résultat. Par exemple, les deux séquences de code suivantes% +% +{\parskip=.5\parskip +\begin{verbatim} + \begin{center} + \begin{minipage}[b]{.25\textwidth} + \centering + \includegraphics[width=1in]{graphic.eps} + \end{minipage}% + \begin{minipage}[b]{.25\textwidth} + \centering + \includegraphics[width=1in,angle=-90]{graphic.eps} + \end{minipage} + \end{center} +\end{verbatim} +% +%\noindent +et% +% +\begin{verbatim} + \begin{center} + \begin{minipage}[t]{.25\textwidth} + \centering + \includegraphics[width=1in]{graphic.eps} + \end{minipage}% + \begin{minipage}[t]{.25\textwidth} + \centering + \includegraphics[width=1in,angle=-90]{graphic.eps} + \end{minipage} + \end{center} +\end{verbatim} +} %\parskip +\noindent +produisent la Figure~\vref{f4+epsl}. Dans les deux cas, le point de référence de la minipage +est le point de référence (coin inférieur gauche original) du dessin EPS. + +\begingroup +\psfrag{Graphic}[][][1]{Graphique} +\begin{figure}[htb] + \begin{center} + \begin{minipage}[t]{.25\textwidth} + \centering + \includegraphics[width=1in]{graphic.eps} + \end{minipage}% + \begin{minipage}[t]{.25\textwidth} + \centering + \includegraphics[width=1in,angle=-90]{graphic.eps} + \end{minipage} + \end{center} +\caption{Minipages avec les options \texttt{[b]} et \texttt{[t]}.}\label{f4+epsl} +\end{figure} +\endgroup + +\subsubsection{Alignement des bas des minipages}\index{minipage!alignement des bas}% +\label{env+EP+minipage+2} +Une méthode pour aligner les bas de minipages est de faire en sorte que la ligne de base de la +minipage soit le bord inférieur de celle-ci. Si une ligne de hauteur nulle et de profondeur +nulle est ajoutée à l'intérieur de la minipage après le dessin, alors l'option \texttt{[b]} +fera que le bas de la minipage sera la ligne de base de la minipage. La commande +\verb|\par\vspace{0pt}| crée une telle ligne de hauteur et profondeur nulles. Puisque la ligne +de base de cette ligne de profondeur nulle est le bas de la minipage, l'option \texttt{[b]} +aligne maintenant le bas de la minipage. Par exemple, le code ci-dessous produira la +Figure~\vref{f5+epsl}: + +\begin{verbatim} + \begin{center} + \begin{minipage}[b]{.25\textwidth} + \centering + \includegraphics[width=1in]{graphic.eps} + \par\vspace{0pt} + \end{minipage}% + \begin{minipage}[b]{.25\textwidth} + \centering + \includegraphics[width=1in,angle=-90]{graphic.eps} + \par\vspace{0pt} + \end{minipage} + \end{center} +\end{verbatim} + +\begingroup +\psfrag{Graphic}[][][1]{Graphique} +\begin{figure}[htb] + \begin{center} + \begin{minipage}[b]{.25\textwidth} + \centering + \includegraphics[width=1in]{graphic.eps} + \par\vspace{0pt} + \end{minipage}% + \begin{minipage}[b]{.25\textwidth} + \centering + \includegraphics[width=1in,angle=-90]{graphic.eps} + \par\vspace{0pt} + \end{minipage} + \end{center} + \caption{Minipages avec leurs bas alignés}\label{f5+epsl} +\end{figure} +\endgroup + +\subsubsection{Alignement des sommets des minipages}\index{minipage!alignement des sommets}% +\label{env+EP+minipage+3} +Pour aligner les sommets de minipages, on doit ajouter une ligne de hauteur nulle et de profondeur +nulle au sommet de la minipage. Alors l'option \texttt{[t]} fera que la ligne de base de la minipage +sera le sommet de la minipage. En faisant précéder la commande \verb|\includegraphics| de +\verb|\vspace{0pt}|, on insère une ligne de hauteur et profondeur nulles au dessus du dessin. +Puisque la ligne de base de cette ligne de profondeur nulle est le sommet de la minipage, +l'option \texttt{[t]} aligne maintenant le haut de la minipage. Par exemple, le code ci-dessous +produira la Figure~\vref{f6+epsl}: + +\begin{verbatim} + \begin{center} + \begin{minipage}[t]{.25\textwidth} + \vspace{0pt} \centering + \includegraphics[width=1in]{graphic.eps} + \end{minipage}% + \begin{minipage}[t]{.25\textwidth} + \vspace{0pt} \centering + \includegraphics[width=1in,angle=-90]{graphic.eps} + \end{minipage} + \end{center} +\end{verbatim} + +\begingroup +\psfrag{Graphic}[][][1]{Graphique} +\begin{figure}[htb] + \begin{center} + \begin{minipage}[t]{.25\textwidth} + \vspace{0pt} + \centering + \includegraphics[width=1in]{graphic.eps} + \end{minipage}% + \begin{minipage}[t]{.25\textwidth} + \vspace{0pt} + \centering + \includegraphics[width=1in,angle=-90]{graphic.eps} + \end{minipage} + \end{center} + \caption{Minipages avec leurs hauts alignés}\label{f6+epsl} +\end{figure} +\endgroup + +Ceci aligne les sommets des minipages avec la ligne de base courante. Si par contre vous +souhaitez aligner les sommets des minipages avec le sommet de la ligne de texte courante, +remplacez \verb|\vspace{0pt}| par \verb|\vspace{-\baselineskip}|. Ce sujet est mentionné +dans~\cite[pages 456--457]{latex-comp}. + +\section{Utilisation de sous-répertoires} +Lorsque l'on importe un grand nombre de fichiers graphiques, il peut être souhaitable de +ranger les fichiers graphiques dans un sous-répertoire. Par exemple, si le sous-répertoire +s'appelle \texttt{sub}, on peut être tenté alors d'inclure le fichier \texttt{file.eps} avec la +commande suivante: +\begin{quote} +\verb|\includegraphics{sub/file.eps}| +\end{quote} +Bien que cette syntaxe fonctionne pour la plupart des distributions \textsc{Unix} et DOS de +\TeX, il y a des problèmes avec une telle utilisation: + +\begin{description} +\item[Inefficacité]\NL +Chaque fois que \TeX\ ouvre un fichier, le nom du fichier est sauvegardé dans la mémoire de +\TeX. Lorsque l'on ouvre un grand nombre de fichiers, cette mémoire perdue peut provoquer une +erreur de débordement de la taille du pool (voir la Section~\vref{ss+epsl+POOL}). Puisque le +fait de spécifier des sous-répertoires augmente la longueur du nom de fichier, il aggrave ce +problème d'espace dans le pool. +\item[Non Portabilité]\NL +L'un des avantages de \LaTeX\ est que ses fichiers peuvent être utilisés sur n'importe quelle +plate-forme. Cependant, inclure le sous-répertoire dans le nom de fichier fait que le fichier +devient dépendant du système d'exploitation. Le fichier ne peut plus être utilisé sur des +machines VMS ou Macintosh sans modification significative. +\end{description} + +Au lieu d'ajouter le sous-répertoire dans le nom de fichier, il y a deux autres options: +\begin{enumerate}[1.] +\item La meilleure méthode est de modifier le chemin de recherche \TeX\ (voir la +Section~\vref{ss+epsl+CRT}). +\item Une autre méthode est de spécifier \verb|sub/| dans une commande \verb|\graphicspath| +(voir la Section~\vref{ss+epsl+CRG}). Cependant ceci est bien moins efficace que modifier le chemin +de recherche \TeX. +\end{enumerate} +Ces deux solutions font que \verb|\includegraphics| recherchera automatiquement le +sous-répertoire graphique, ce qui permet de remplacer +\begin{quote} +\verb|\includegraphics{sub/file.eps}| +\end{quote} +par +\begin{quote} +\verb|\includegraphics{file.eps}| +\end{quote} + +\subsection{Le chemin de recherche \TeX}\label{ss+epsl+CRT}\index{chemin de recherche \TeX} +Puisque la méthode pour changer les répertoires dans lequels \TeX\ regarde dépend de la +distribution \TeX, il devient très compliqué de donner une description générale. Comme exemple, +la présente section décrit la stratégie utilisée par les distributions \textsc{Unix} +telles que web2c/te\TeX, la plupart employant des stratégies similaires. + +Pour les distributions \textsc{Unix} web2c/te\TeX, le chemin de recherche \TeX\ peut être +modifié en établissant la variable d'environnement +\index{TEXINPUTS@\texttt{TEXINPUTS} (chemin de recherche \TeX)}\texttt{TEXINPUTS}. Si vous utilisez les +shells \texttt{csh}: +\begin{quote} +\verb|setenv TEXINPUTS /dir1:/dir2:| +\end{quote} +fait que \texttt{/dir1} et \texttt{/dir2} seront examinés \emph{avant} les répertoires par +défaut. Sans le deux-points final, les répertoires par défaut ne seraient plus +examinés\,\footnote{NdT: ce qui est la plupart du temps catastrophique, car vous ne trouvez +plus les classes et paquetages standard ou fournis dans la distribution.}. En définissant +\texttt{TEXINPUTS} par +\begin{quote} +\verb|setenv TEXINPUTS :/dir1:/dir2| +\end{quote} +\texttt{/dir1} et \texttt{/dir2} seront examinés \emph{après} les répertoires standard, tandis +que +\begin{quote} +\verb|setenv TEXINPUTS /dir1::/dir2| +\end{quote} +fera que \texttt{/dir1} sera examiné \emph{avant} les répertoires standard et \texttt{/dir2} +examiné \emph{après} les répertoires standard. + +Mettre \texttt{//} après un répertoire fait que tous ses sous-répertoires seront examinés. Par +exemple +\begin{quote} +\verb|setenv TEXINPUTS /dir1//:/dir2:| +\end{quote} +fera que tous les sous-répertoires de \texttt{/dir1} (et leurs sous-répertoires) seront +examinés. Faites attention en utilisant \texttt{//} car cela peut ralentir la recherche si le +répertoire contient beaucoup de fichiers. + +Ces exemples fonctionnent aussi en Bourne-shell et en Korn-shell, mais la syntaxe doit être changée +respectivement en +\begin{quote} +\verb|TEXINPUTS="/dir1:/dir2:"; export TEXINPUTS|\\ +\verb|export TEXINPUTS="/dir1:/dir2:"| +\end{quote} + +Lorsque \LaTeX\ trouve des fichiers sur le chemin de recherche \TeX, il ne range pas le nom du +fichier en entier dans le fichier DVI. En conséquence, les vieilles versions de \textbf{dvips} +ou \textbf{xdvi} qui n'utilisaient pas le chemin de recherche \TeX\ ne peuvent pas trouver le +fichier (voir la Section~\vref{ss+epsl+CRTD}). + +\subsection{Le chemin de recherche graphique}\label{ss+epsl+CRG} +Par défaut, \LaTeX\ recherche les fichiers graphiques dans tout répertoire du chemin de +recherche \TeX. En plus de ces répertoires, \LaTeX\ recherche aussi dans tout répertoire +spécifié dans la commande \verb|\graphicspath|. Par exemple, +\begin{quote} +\verb|\graphicspath{{dir1/}{dir2/}}| +\end{quote} +dit à \LaTeX\ de rechercher les fichiers graphiques aussi dans \texttt{dir1/} et \texttt{dir2/}. +Sur Macintosh, cela devient +\begin{quote} +\verb|\graphicspath{{dir1:}{dir2:}}| +\end{quote} +Il est important de noter que la recherche de fichier associée aux répertoires donnés par +\verb|\graphicspath| est bien plus lente que celle associée aux répertoires de +\texttt{TEXINPUTS}. De plus, chaque recherche de fichier faite dans un répertoire de la +liste \verb|\graphicspath| consomme un peu plus d'espace dans le pool (voir la +Section~\vref{ss+epsl+POOL}). + +À cause de ces inefficacités, il est recommandé de ne pas utiliser \verb|\graphicspath|. Il est +préférable de spécifier les sous-répertoires en modifiant le chemin de recherche (voir la +Section~\vref{ss+epsl+CRG}). + +\subsection{Économiser l'espace «~pool~»}\label{ss+epsl+POOL} +\TeX\ réserve une portion de sa mémoire, appelée \emph{espace pool} (\emph{pool space}).pour +sa transmission interne de chaînes. Chaque fois que \TeX\ ouvre (ou essaye d'ouvrir) un fichier, +un peu d'espace pool est utilisé de manière permanente. Lors de l'ouverture d'un grand nombre +de fichiers, cette consommation de mémoire peut faire que \TeX\ se trouve à court d'espace +pool, ce qui provoque une erreur telle que +\begin{quote} +\verb|! TeX capacity exceeded, sorry [poolsize=73388]| +\end{quote} +Comme la quantité d'espace pool perdu est fonction de la longueur du nom de fichier, le +fait de spécifier des sous-répertoires aggrave ce problème d'espace pool. + +À l'exception de la dernière version web2c et de quelques distributions commerciales, le seul +moyen d'augmenter la taille du pool est de recompiler \TeX. Heureusement, les règles suivantes +d'économie de l'espace pool résolvent habituellement le problème. + +\begin{itemize} +\item Éviter les noms de fichiers excessivement longs. +\item Ne pas inclure les noms des sous-répertoires +\begin{quote} +\verb|\includegraphics{sub/file.eps}| +\end{quote} +Au lieu de cela, changez le chemin de recherche \TeX\ ou sortez les fichiers du +sous-répertoire. +\item Ne pas utiliser la commande \verb|graphicspath|. +\begin{quote} +\verb|\graphicspath{{dir1/}{dir2/}}|\\ +\null\quad\ldots\\ +\verb|\includegraphics{file.eps}| +\end{quote} +fait essayer d'ouvrir les fichiers suivants: +\begin{verbatim} + file.eps + dir1/file.eps + dir2/file.eps +\end{verbatim} +Chacune de ces tentatives consomme de l'espace du pool. Au lieu d'utiliser la commande +\verb|\graphicspath|, modifiez le chemin de recherche de \TeX. +\item Spécifier le nom complet du fichier, ne pas omettre les suffixes (extension) des +fichiers (par exemple, \texttt{.eps}). Avec +%la commande +\verb|\DeclareGraphicsExtensions|% +\index{DeclareGraphicsExtensions@\CS{DeclareGraphicsExtensions}, commande}% +\label{EP+DeclareGraphicsExtensions+3} +(voir la Section~\vref{ss+epsl+DGE}), la commande +\begin{quote} +\verb|\includegraphics{file}| +\end{quote} +fera que \verb|\includegraphics| essaiera d'ouvrir les fichiers suivants +\begin{verbatim} + file.eps + file.ps + file.eps.gz + file.ps.gz + file.eps.Z +\end{verbatim} +ce qui est particulièrement inefficace lorsque c'est utilisé en conjonction avec +la commande \verb|\graphicspath|. + +Donner une commande \verb|\DeclareGraphicsExtensions| avec un nombre minimum de suffixes +minimise l'inefficacité de l'omission du suffixe. +\end{itemize} + +\section{Fichiers graphiques compressés ou non-EPS}% +\label{s+epsl+FGCNE}\index{compresses@compressés (graphiques)}% +\index{graphiques non-EPS!utilisation dans \LaTeX}% +\index{TIFF@TIFF (fichiers graphiques)!utilisation dans \LaTeX} +Lorsqu'ils emploient \textbf{dvips}, les utilisateurs peuvent spécifier une opération à +effectuer sur le fichier avant qu'il soit inséré. Si cette opération est une commande de +décompression, cela permet d'utiliser des fichiers graphiques compressés. Puisque +\textbf{dvips} est actuellement (probablement) le seul convertisseur de DVI en PS offrant +cette possibilité, tout ce qui est dit dans cette section requiert \textbf{dvips}. Les +utilisateurs doivent passer l'option \texttt{dvips} au paquetage \texttt{graphicx}. Ceci peut +être fait soit en spécifiant l'option globale de classe \texttt{dvips} dans la commande +\verb|\documentclass|: +\begin{quote} +\verb|\documentclass[dvips,11pt]{article}| +\end{quote} +soit en spécifiant l'option \texttt{dvips} dans la commande \verb|\usepackage|: +\begin{quote} +\verb|\usepackage[dvips]{graphicx}| +\end{quote} +Il est préférable de spécifier l'option \texttt{dvips} dans \verb|\documentclass| car cela +passe l'option à tous les paquetages. + +Lorsque vous utilisez un système d'exploitation qui supporte les \emph{pipes}\,\footnote{Par +exemple, \textsc{Unix} supporte les pipes, mais pas DOS.}, la commande +\verb|\DeclareGraphicsRule|% +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande}% +\label{EP+DeclareGraphicsRule+3} +(voir la Section~\vref{ss+epsl+DGR}) spécifie une commande qui +agit sur le fichier. Si c'est une commande de décompression, cela permet d'utiliser des +fichiers EPS compressés. Si c'est une commande de conversion, cela permet d'utiliser des +fichiers graphiques non-EPS. Si le système d'exploitation ne supporte pas les pipes, une telle +conversion au vol n'est pas possible et tous les graphiques doivent êtres stockés sous forme +de fichiers non compressés. + +\subsection{Exemple d'EPS compressé}\label{ss+epsl+FGC} +Les étapes pour utiliser des fichiers EPS compressés sont les suivantes: +\begin{enumerate}[1.] +\item Créer un fichier EPS (\texttt{file1.eps} par exemple). +\item Ranger sa ligne BoundindBox dans un autre fichier (\texttt{file1.eps.bb}). +\item Compresser le fichier EPS. Par exemple, la commande \textsc{Unix} +\begin{center} +\verb|gzip -9 file1.eps| +\end{center} +crée le fichier compressé \texttt{file1.eps.gz}. L'option \texttt{-9} (ou \texttt{-best}) +spécifie la compression maximum. +\item Inclure la commande \verb|\DeclareGraphicsRule| adéquate avant +la commande +\verb|\includegraphics| dans le fichier \LaTeX. La commande \verb|\DeclareGraphicsRule|% +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande}% +\label{EP+DeclareGraphicsRule+4} +informe \LaTeX\ de comment traiter le suffixe particulier (voir la Section~\vref{ss+epsl+DGR}). +Par exemple +\begin{verbatim} + \documentclass[dvips]{article} + \usepackage{graphics} + \begin{document} + \DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip-c #1} + \begin{figure} \centering + \includegraphics[width=3in]{file1.eps.gz} + \caption{Fichier graphique EPS Compressé}% + \label{fig+compressed+eps} + \end{figure} + \end{document} +\end{verbatim} +Dans ce cas particulier, la commande \verb|\DeclareGraphicsRule| n'est en fait pas nécessaire +car il se trouve que c'est une des règles graphiques pré-définies dans \texttt{dvips.def}. Si +un autre programme de compression ou un autre suffixe avaient été utilisés, la commande +\verb|\DeclareGraphicsRule| aurait été obligatoire. Par exemple, si le fichier BoundingBox +avait été nomme \texttt{file1.bb}, la \verb|\DeclareGraphicsRule| correspondante aurait été +\begin{quote} +\verb|\DeclareGraphicsRule{.eps.gz}{eps}{.bb}{`gunzip-c #1}| +\end{quote} +\end{enumerate} + +\subsection{Le chemin de recherche \TeX\ et \textsf{dvips}}\label{ss+epsl+CRTD} +Lorsque \LaTeX\ rencontre une commande \verb|\includegraphics|, il recherche le fichier dans +le répertoire courant. S'il ne trouve pas le fichier dans le répertoire courant, il le +recherche dans les répertoires du chemin de recherche \TeX. Lorsque le fichier DVI est +converti en PostScript, \textbf{dvips} effectue le même routine de recherche et tout +fonctionne bien. Cependant, lorsqu'une commande de conversion ou de décompression au vol est +spécifiée dans la commande +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande}% +\label{EP+DeclareGraphicsRule+5} +\verb|\DeclareGraphicsRule|, la commande au vol empêche +\textbf{dvips} de rechercher correctement dans les répertoires du chemin de recherche \TeX. + +Par exemple, la règle +\begin{quote} +\verb|\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip -c #1}| +\end{quote} +spécifie que la commande \verb|gunzip -c| doit être utilisée sur les fichiers ayant le suffixe +\texttt{.eps.gz}. Supposons que la commande suivante soit utilisée: +\begin{quote} +\verb|\includegraphics{file.eps.gz}| +\end{quote} +Si \texttt{file.eps.gz} et \texttt{file.eps.bb} sont dans le répertoire courant, la recherche +par chemin n'est pas nécessaire et tout fonctionne bien. \LaTeX\ utilise \texttt{file.eps.bb} +et \textbf{dvips} exécute \texttt{gunzip -c file.eps.gz} pour décompresser le fichier. + +Par contre cela ne marche plus si \texttt{file.eps.gz} et \texttt{file.eps.bb} ne sont pas dans +le répertoire courant. Mais s'ils sont dans le répertoire \texttt{a/b/c/} (qui est dans le +chemin de recherche de \TeX), \LaTeX\ parcourt le chemin pour trouver +\texttt{/a/b/c/file.eps.bb}. Mais des problèmes surviennent dès que \textbf{dvips} exécute +\texttt{`gunzip -c file.eps.gz} car \textbf{gunzip} ne peut pas trouver \texttt{file.eps.gz}. +Si la distribution \TeX\ utilise une librairie \texttt{kpathsea} récente (comme le fait la +distribution \texttt{teTeX}), ce problème peut être résolu par la règle graphique suivante +\begin{quote} +\verb|\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}%|\\ +\verb| {`gunzip -c `kpsewhich -n latex tex #1`}| +\end{quote} +qui utilise +\textbf{kpsewhich}\index{kpsewhich@\texttt{kpsewhich}, programme de recherche dans un chemin pour \TeX} +pour trouver le fichier pour le compte de \textbf{gunzip}. La +commande \texttt{`kpsewhich -n latex tex \#1`} fait que \textbf{dvips} cherchera le fichier +compressé sur le chemin de recherche \TeX. Le nom de fichier complet (y compris les +répertoires) est alors ajouté à la commande \textbf{gunzip -c}, ce qui permet à +\textbf{gunzip} de trouver le fichier même s'il n'est pas dans le répertoire courant. + +Bien que cette nouvelle commande \verb|\DeclareGraphicsRule| puisse être placée au début de +chaque document, il peut être plus pratique d'ajouter ceci au fichier +\index{graphics.cfg@\texttt{graphics.cfg}, fichier}\texttt{graphics.cfg}: + +\begin{verbatim} + \AtEndOfPackage{% + \DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}% + {`gunzip -c `kpsewhich -n latex tex #1`}} +\end{verbatim} +et laisser la ligne \verb|\ExecuteOptions{dvips}| existante. + +\MARTIT{\botsmash{\tshortstack[r]{Anciennes\STRUT\\versions\STRUT\\de dvips\STRUT}}~~}{Puisque} +les anciennes versions de \textbf{dvips} ne parcourrent pas le chemin de recherche \TeX, +\textbf{dvips} ne peut pas trouvez de fichiers dans le chemin de recherche \TeX. La commande +suivante utilise \textbf{kpsewhich} pour parcourir le chemin de recherche \TeX\ pour trouver +les fichiers EPS non compressés pour \textbf{dvips} +\begin{quote} +\verb|\DeclareGraphicsRule%|\\ +\verb| {.eps}{eps}{.eps}{`cat `kpsewhich -n latex tex #1`}| +\end{quote} +bien que mettre à jour votre distribution de \TeX\ soit une meilleure solution. + +\subsection{Fichiers graphiques non-EPS}\label{ss+epsl+FGNE}% +\index{graphiques non-EPS!utilisation dans \LaTeX} +Alors qu'il est facile d'insérer des graphiques EPS dans des documents \LaTeX, il n'est pas +aussi évident d'insérer des graphiques non-EPS +(\index{GIF@GIF (fichiers graphiques)!utilisation dans \LaTeX}GIF, +\index{TIFF@TIFF (fichiers graphiques)!utilisation dans \LaTeX}TIFF, +JPEG\index{JPEG@JPEG (graphiques)!utilisation dans \LaTeX}, PICT\index{PICT!utilisation dans +\LaTeX}, etc.). Une solution +simple est de déterminer si l'application qui a engendré le graphique non-EPS peut aussi +engendrer une sortie EPS. Si ce n'est pas possible, un programme de conversion graphique (voir +la Section~\vref{s+epsl+CG}) doit être utilisé pour convertir le graphique en PostScript. + +Puisqu'un fichier graphique non-EPS peut être plus petit que le fichier EPS correspondant, il +peut être souhaitable de garder les graphiques en format non-EPS et de les convertir en +PostScript lorsque le DVI est converti en PostScript. Si \textbf{dvips} est utilisé, cette +conversion au vol peut être spécifiée par l'option commande dans +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande}% +\label{EP+DeclareGraphicsRule+6}% +\verb|\DeclareGraphicsRule|. +Par exemple, utiliser la conversion au vol pour insérer \texttt{file2.gif} dans un +document \LaTeX\ demande les étapes suivantes +\begin{enumerate}[1.] +\item Trouver un programme de conversion de GIF vers EPS (supposons qu'il s'appelle +\textbf{gif2eps}). +\item Il faut créer un fichier BoundingBox qui spécifie la taille naturelle du graphique +\texttt{file2.gif}. Pour ce faire, convertissez \texttt{file2.gif} en PostScript et +\begin{enumerate}[(a)] +\item Si le fichier PostScript contient une ligne BoundingBox, sauvez cette ligne dans +\texttt{file2.gif.bb}. +\item Si le fichier PostScript ne contient pas de ligne BoundingBox, déterminez la +BoundingBox adéquate (voir la Section~\vref{ss+epsl+BBE}) et placez ces nombres sur une ligne +\verb|%%BoundingBox:| dans \texttt{file2.gif.bb}. +\end{enumerate} +\item Conservez \texttt{file2.gif} et \texttt{file2.gif.bb} et détruisez le fichier +PostScript. +\item Mettez \verb|\DeclareGraphicsRule{.gif}{eps}{.gif.bb}{`gif2eps #1}|% +\index{DeclareGraphicsRule@\CS{DeclareGraphicsRule}, commande}% +\label{EP+DeclareGraphicsRule+7} +avant la commande +\verb|\includegraphics| dans le fichier \LaTeX. +\end{enumerate} +Lorsque \verb|\includegraphics{file2.gif}| est rencontrée, \LaTeX\ lit la BoundingBox dans +\texttt{file2.gif.bb} et dit à \textbf{dvips} d'utiliser \textbf{gif2eps} pour convertir +\texttt{file2.gif} en EPS. + +\subsubsection{Exemple GIF}\index{GIF@GIF (fichiers graphiques)!utilisation dans \LaTeX} +Alors que les commandes nécessaires pour inclure des graphiques non-EPS dépendent du système +d'exploitation et du programme de conversion graphique, cette section donne des exemples pour +deux programmes de conversion communs sous \textsc{Unix}. Les commandes +\begin{verbatim} + \DeclareGraphicsRule{.gif}{eps}{.gif.bb}{`convert #` 'eps:-' } + \begin{figure} \centering + \includegraphics[width=3in]{file2.gif} + \caption{Graphique GIF} + \end{figure} +\end{verbatim} +utilise le programme \textbf{convert} (il fait partie de l'ensemble \index{ImageMagick}ImageMagick) pour traduire +le fichier GIF en EPS. La commande +\begin{quote} +\verb|convert file2.gif 'eps:-'| +\end{quote} +traduit \texttt{file2.gif} en format EPS (spécifié par l'option «~\verb|eps:|~» et envoie le +résultat sur la sortie standard (spécifiée par le «~\texttt{-}~»). + +Vous pouvez aussi utiliser les utilitaires \textbf{ppm} parmi lesquels \textbf{giftoppm}, +\textbf{ppmtopgm} et \textbf{pgmtops} convertissent le fichier GIF en EPS via les formats +\texttt{ppm} et \texttt{pgm} (à niveaux de gris). Sous \textsc{Unix}, l'utilisation de pipes +entre ces programmes est spécifié par la commande \verb|\DeclareGraphicsRule| suivante +\begin{quote} +\verb"\DeclareGraphicsRule{.gif}{eps}{.gif.bb}%"\\ +\null\qquad\verb"{`giftoppm #1 | ppmtopgm | pgmtops}" +\end{quote} + +\subsubsection{Support direct pour les fichiers graphiques non-EPS}\label{sss+epsl+SD} +Il est souvent demandé que \LaTeX\ et \textbf{dvips} supportent l'inclusion directe de +formats graphiques non-EPS, pour que ce soit aussi facile que l'inclusion de fichiers EPS. +Bien que ceci serait pratique, il y a malheureusement quelques problèmes pour le faire. +\begin{itemize} +\item Pour déterminer la taille du graphique EPS, \LaTeX\ examine le fichier EPS et y +recherche les paramètres de la BoundingBox. Puisque \TeX\ ne sait lire que les fichiers ASCII, +le format binaire de la plupart des fichiers graphiques non-EPS empêche \LaTeX\ d'en tirer la +taille du graphique. +\item De plus, le support de graphiques non-EPS obligerait \textbf{dvips} à incorporer des +capacités de conversion graphique (GIF vers EPS, TIFF vers EPS, etc.). Ceci exigerait beaucoup +de programmation initiale et encore plus de maintenance future. +\end{itemize} +Plutôt que d'incorporer directement les routines de conversion de graphiques, \textbf{dvips} +offre un mécanisme pour appeler des programmes externes de conversion. Ce mécanisme peut être +utilisé depuis \LaTeX\ en utilisant l'argument \<commande> de \verb|\DeclareGraphicsRule|. +Ceci est plus souple qu'un support direct car cela laisse la conversion graphique découplée de +la conversion DVI vers PS, ce qui permet aux utilisateurs d'employer le programme de +conversion graphique de leur choix. + +Alors que \LaTeX\ et \textbf{dvips} en général ne supportent pas l'inclusion directe de +graphiques non-EPS, il y a quelques exceptions. +\begin{enumerate}[1.] +\item Si \textbf{dvips} est compilé avec \verb|-Demtex|, il supporte certaines commandes +\verb|\special|\index{special@\CS{special}, commande} de Em\TeX, ce qui lui permet +d'inclure des bitmaps PCX, BMP ou MSP. +\item Oztex~2.1,\index{Oztex} une distribution \emph{shareware} pour Macintosh de \TeX/\LaTeX, +inclut le convertisseur de DVI vers PS OzDVIPS, qui permet d'inclure des fichiers MacPaint +et PICT via des commandes \verb|\special|. Voir +\begin{quote} +\url{http://www.kagi.com/authors/akt/oztex.html} +\end{quote} +\item Certaines versions commerciales de \LaTeX\ supportent des graphiques non-EPS. +\begin{enumerate}[(a)] +\item Textures pour le Macintosh supporte les graphiques PICT. Voir +\begin{quote} +\url{http://www.bluesky.com} +\end{quote} +\item \TeX\ pour Windows de Y\&Y inclut un convertisseur DVI vers PS \textbf{dvipsone} qui +supporte les fichiers TIFF. Voir +\begin{quote} +\url{http://www.YandY.com} +\end{quote} +\end{enumerate} +\end{enumerate} +Même avec le support direct donné ci-dessus pour des graphiques non-EPS, \TeX\ ne peut +toujours pas déterminer la taille du graphique avec les fichiers en format binaire. Afin que +\LaTeX\ connaisse quel espace réserver pour le dessin, l'utilisateur doit encore utiliser un +fichier \texttt{.bb} pour spécifier les paramètres \texttt{bb} explicitement dans les arguments +de la commande \verb|\includegraphics|. + +\section{Le paquetage \textsf{PSfrag}}\index{PSfrag} +Alors qu'il y a de nombreux logiciels de dessin et d'analyse qui produisent des fichiers EPS, +la plupart d'entre eux ne permettent pas les symboles et les équations aussi bien que \LaTeX. +\ifguide +Le paquetage \textsf{PSfrag}, dû à Michael C. Grant\,\autref{grant} et David Carlisle\,\autref{carlisle}, +et décrit page~\pageref{o+psfrag}, +\else +Le paquetage \textsf{PSfrag}, dû à Michael C. Grant et David Carlisle, +\fi +permet aux utilisateurs de \LaTeX\ de remplacer des chaînes +de texte dans des fichiers EPS par du texte ou des équations \LaTeX. Une application a été ici +de remplacer les textes en anglais des fichiers EPS originaux de cette documentation par leurs +traductions en français, sans devoir éditer le code PostScript. + +\pfg~3.0, qui a été distribuée en novembre~1996, a été complètement ré-écrite. Les versions +antérieures de \pfg\ avaient besoin d'un pré-processeur (tel que \textbf{ps2frag} ou +\textbf{ps2psfrag}) pour identifier et marquer tout le texte dans le fichier EPS. Depuis +\pfg~3.0, il n'y a plus besoin de pré-processeur ni de programme externe tel que \textbf{perl} +ou \textbf{ghostscript}. \pfg~3.0 n'a besoin que d'un \LaTeX\ récent (décembre 1995 ou +postérieur) et de l'ensemble graphique distribué avec \LaTeX. \cite{psfgguide} donne une +documentation complète de \pfg~3.0. + +Un bénéfice supplémentaire de la réécriture de \pfg\ est qu'il supporte enfin les +graphiques EPS compressés. Mais la commande \verb|\tex| (décrite dans la +Section~\vref{ss+epsl+TLFE}) ne peut pas être utilisée pour inséser du texte \LaTeX\ dans des +graphiques compressés. + +\begin{table}[htb] \centering +\topcaption{Options de \texttt{\bs psfrag}}\label{t+epsl+5} +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.80\textwidth}|@{}} +\cline{1-3} +\<texte PS>&\hfill&Texte à remplacer dans le fichier EPS.\\\cline{1-3} +\<position>&&\emph{(Optionnel, \texttt{[Bl]} par défaut.)} Position du point de placement +relatif au nouveau texte \LaTeX.\\\cline{1-3} +\<position PS>&&\emph{(Optionnel, \texttt{[Bl]} par défaut.)} Position du point de placement +relatif au texte EPS existant.\\\cline{1-3} +\<échelle>&&\emph{(Optionnel, 1 par défaut.)} Facteur d'échelle pour le texte. Pour avoir de +meilleurs résultats, évitez d'utiliser le facteur d'échelle et utilisez plutôt les commandes +de taille de fonte telles que \texttt{\bs small} et \texttt{\bs large}.\\\cline{1-3} +\<rotation>&&\emph{(Optionnel, zéro par défaut.)} Lorsqu'un angle est spécifié, c'est l'angle +de rotation du nouveau texte par rapport au texte existant. L'angle est exprimé en degrés et +le sens positif est le sens anti-horaire (sens trigonométrique).\NL +Cette option est particulièrement utile lorsque l'on a affaire avec des applications qui ne +permettent que du texte horizontal dans leurs fichiers EPS.\\\cline{1-3} +\<texte>&&Le texte \LaTeX\ à insérer dans le graphique EPS.\NL +Comme dans du texte \LaTeX\ normal, les formules mathématiques doivent être mises entre signes +dollar (par exemple, {\froff\selectlanguage{english} \texttt{\$\bs frac\{1\}\{2\}\$} ou \texttt{\$x\^{}2\$}}).\\\cline{1-3} +\end{tabular*} +\end{table} +Pour utiliser \pfg, créez un fichier EPS puis effectuez les étapes suivantes:% +\begin{enumerate}[1.] +\item Inclure \verb|\usepackage{psfrag}| dans le préambule du document \LaTeX. +\item Dans le document, utilisez la commande \verb|\psfrag| pour spécifier le texte EPS à +remplacer et la chaîne \LaTeX\ qui le remplacera. Ceci fait que la substitution spécifiée sera +effectuée pour toute commande \verb|\includegraphics| invoquée dans le même environnement. +\item Utilisez la commande \verb|\includegraphics| comme d'habitude. +\end{enumerate}% +La commande \LaTeX\ \verb|\psfrag| a la syntaxe suivante% +\NL\null\qquad% +%\begin{quote}% +\verb|\psfrag{|\<texte PS>\verb|}[|\<position>\verb|][|\<position PS>\verb|][|\<échelle>\verb|][|\<rotation>\verb|]{|\<texte>\verb|}|% +%\end{quote} +\NL +dont les arguments sont décrits dans la Table~\vref{t+epsl+5}. + +Les options \<position> et \<position PS> sont chacun l'un des douze points (tels que +\texttt{[tl]}. \texttt{[br]}, \texttt{[cc]}) montrés sur la Figure~\vref{f3+epsl}. Si des +arguments optionnels ne sont pas donnés, le point est par défaut \texttt{[Bl]}. Toute lettre +manquante est \texttt{c} par défaut (donc \texttt{[]} ou \texttt{[c]} équivalent à \texttt{[cc]}, +\texttt{[l]} équivaut à \texttt{[lc]}). Voir~\cite{psfgguide} pour des exemples de combinaisons +de points de placement. + +Notez que \verb|\psfrag| compare les chaînes textuelles \emph{entières}. Donc la commande +\begin{quote} +\verb|\psfrag{pi}{$\pi$}| +\end{quote} +remplace la chaîne \texttt{pi} par $\pi$, mais n'affecte pas les chaînes \texttt{pi/2} ou +\texttt{2pi}. D'autres commandes \verb|\psfrag| doivent être donnés pour ces chaînes. + +\pfg\ ne peut effectuer le remplacement que si la chaîne EPS entière est construite avec une +seule commande PS. Certains programmes découpent la chaîne en sous-chaînes ou en lettre +individuelles afin d'effectuer ls crênage. Par exemple, Corel~Draw a produit le code suivant +pour placer la chaîne «~Hello World~» +\begin{verbatim} + 0 0 (Hello W) @t + 1080 0 (orld) @t +\end{verbatim} +Puisque \pfg\ voit ceci comme les deux chaînes sans relation «~Hello W~» et «~orld~», il ne +peut effectuer aucun remplacement d «~Hello World~». Si le crénage ne peut pas être inhibé +manuellement, l'utilisation de Courier ou d'une autre fonte à chasse constante empêche souvent +le crénage. Si le crénage ne peut pas être évité, seules des chaînes à remplacer d'un seul +caractère peuvent être utilisées. + +\lneed{6} +\FloatBarrier +\subsection{Exemple \textsf{PSfrag} \#1} +La commande +\begin{quote} +\verb|\includegraphics{pend.eps}| +\end{quote} +inclut le graphique sans qu'aucune substitution soit effectuée par \pfg, ce qui donne la +Figure~\vref{f7+epsl}. Les commandes +\begin{quote} +\verb|\psfrag{q1}{$\theta_1$}|\\ +\verb|\psfrag{q2}{$\theta_2$}|\\ +\verb|\psfrag{L1}{$L_1$}|\\ +\verb|\psfrag{L2}{$L_2$}|\\ +\verb|\psfrag{P1}[][]{$P_1$}|\\ +\verb|\psfrag{P2}[][]{\large $P_2$}|\\ +\verb|\includegraphics{pend.eps}| +\end{quote} +incluent le graphique en effectuant les remplacements par \pfg, en donnant la +Figure~\vref{f8+epsl}. Les quatre premières commandes \verb|\psfrag| placent le nouveau texte +\LaTeX\ de manière que le point gauche de sa ligne de base corresponde au point gauche de la +ligne de bas du texte EPS. Les deux dernières commandes utilisent les options \verb|[][]| pour +placer le texte \LaTeX\ de manière que son centre corresponde au centre du texte EPS. Notez que +tout le texte EPS n'a pas à être remplacé. Par exemple, la marque \texttt{N} est laissée +inchangée dans la Figure~\vref{f8+epsl}. + +\begin{figure}[htb] %\footnotesize +\setlength{\wlength}{\textwidth} +\addtolength{\wlength}{-6mm} +\centering +\null\hspace*{3mm}\begin{minipage}{.45\textwidth} +\includegraphics[width=.45\wlength,keepaspectratio]{pend.eps} +\caption{Sans remplacement \textsf{PSfrag}}\label{f7+epsl} +\end{minipage}% +\hfill% +\begin{minipage}{.45\textwidth} +\psfrag{q1}{$\theta_1$} +\psfrag{q2}{$\theta_2$} +\psfrag{L1}{$L_1$} +\psfrag{L2}{$L_2$} +\psfrag{P1}[][]{$P_1$} +\psfrag{P2}[][]{\large $P_2$} +\includegraphics[width=.45\wlength,keepaspectratio]{pend.eps} +\caption{Avec remplacement \textsf{PSfrag}}\label{f8+epsl} +\end{minipage}\hspace*{3mm}\null +\end{figure} + +\FloatBarrier +\subsection{Exemple \textsf{PSfrag} \#2} +Cet exemple montre comment les trois commandes \verb|\shorstack|, +\label{EP+colorbox}\verb|\colorbox|\index{colorbox@\CS{colorbox}, commande} et +\label{EP+fcolorbox}\verb|\fcolorbox|\index{fcolorbox@\CS{fcolorbox}, commande} peuvent être utilisées avec \verb|\psfrag|. +\begin{wdesc}{xxxxxxxxxx} +\item[\texttt{\bs shortstack}] La commande +\label{EP+shortstack}\verb|\shortstack|\index{shortstack@\CS{shortstack}, commande} permet d'empiler verticalement +du texte, ce qui permet de substituer plusieurs lignes de texte à une seule ligne de texte. +Les lignes de texte sont remplacées par la commande \verb|\\|. +\item[\texttt{\bs colorbox}] La commande \verb|\colorbox| (qui fait partie du paquetage +\texttt{color}\index{color@\texttt{color}, paquetage}, +\ifguide décrit page~\pageref{o+color} et \fi +distribué avec \LaTeX) place un arrière-plan +rectangulaire coloré derrière un objet. La distance dont cet arrière-plan s'étend autour de +l'objet est la longueur \verb|\fboxsep|\index{fboxsep@\CS{fboxsep}, longueur}. Par exemple, +\begin{quote} +\verb|\colorbox{white}{texte}| +\end{quote} +place un fond rectangulaire blanc derrière \texttt{texte}. Voir~\cite{grfguide} pour plus de +détails sur \verb|\colorbox|. + +Avec \pfg, \verb|\colorbox| est utile pour placer du texte à un endroit où des lignes ou un +ombrage rendrait difficile la lecture du texte. Placer un fond blanc derrière le texte empêche +le dessin de perturber la vision du texte. +\item[\texttt{\bs fcolorbox}] La commande \verb|\fcolorbox| (qui fait aussi partie du +paquetage \texttt{color}) est similaire à la commande \verb|\colorbox|, mais un cadre est +tracé autour du fond. La commande +\begin{quote} +\verb|\fcolorbox{black}{white}{texte}| +\end{quote} +met un fond blanc avec un cadre rectangulaire noir derrière \texttt{texte}. + +L'épaisseur du cadre est contrôlée par la longueur +\label{EP+fboxrule}\verb|\fboxrule|\index{fboxrule@\CS{fboxrule}, longueur} et l'espacement entre le +cadre et le texte ou l'objet est contrôlé par la longueur +\label{EP+fboxsep}\verb|\fboxsep|\index{fboxsep@\CS{fboxsep}, longueur}. +\end{wdesc} + +\enlargethispage*{\baselineskip} +Les Figures~\vref{f9+epsl} et~\vref{f10+epsl} montrent l'utilisation de ces commandes avec +\pfg. La Figure~\vref{f9+epsl} montre le dessin sans substitution par \pfg. Les commandes +\begin{verbatim} + \psfrag{q1}[][]{\colorbox{white}{$q_1$} + \psfrag{base}{\fcolorbox{black}{white}{Base}} + \psfrag{Actuator}[l][l]{\shortstack{Actuateur\\hydraulique}} + \includegraphics{mass.eps} +\end{verbatim} +utilisent \pfg\ pour produire la Figure~\vref{f10+epsl}. +\begin{figure}[htb] %\footnotesize +\setlength{\wlength}{\textwidth} +\addtolength{\wlength}{-6mm} +\centering +\null\hspace*{3mm}\begin{minipage}{.45\textwidth} +\includegraphics[width=.45\wlength,keepaspectratio]{mass.eps} +\caption{Sans remplacement \textsf{PSfrag}}\label{f9+epsl} +\end{minipage}% +\hfill% +\begin{minipage}{.45\textwidth} +\psfrag{q1}[][]{\colorbox{white}{$q_1$}} +\psfrag{base}{\fcolorbox{black}{white}{Base}} +\psfrag{Actuator}[l][l]{\shortstack{Actuateur\\hydraulique}} +\includegraphics[width=.45\wlength,keepaspectratio]{mass.eps} +\caption{Avec remplacement \textsf{PSfrag}}\label{f10+epsl} +\end{minipage}\hspace*{3mm}\null +\end{figure} + +\FloatBarrier +\subsection{Texte \LaTeX\ dans un fichier EPS}\label{ss+epsl+TLFE} +La méthode recommandée et la plus populaire pour utiliser \pfg\ est la commande \verb|\psfrag| +décrite dans la section précédente. Une alternative, moins efficace, est la commande +\verb|\tex|, qui insère directement le texte \LaTeX\ dans le fichier EPS. +Voir~\cite{psfgguide} +\ifguide ou page~\pageref{sec+pfg+texcomm} \fi +pour plus de détails. + +\subsection[Agrandissement de la figure et du texte avec \textsf{PSfrag}]% +{Agrandissement de la Figure et du Texte avec \mbox{\textsf{PSfrag}}} +Si un graphique utilisant \pfg\ est agrandi (ou réduit), le texte \pfg\ est agrandi ou réduit +en même temps que le graphique. Il en résulte qu'une subtilité du paquetage \texttt{graphicx} +affecte la taille du texte. +\begin{itemize} +\item Lorsque les options \texttt{width}, \texttt{height} ou \texttt{totalheight} sont +utilisées pour agrandir la taille du graphique, +\begin{quote} +\verb|\includegraphics[width=3in]{file.eps}| +\end{quote} +le texte \pfg\ est inséré \emph{après} l'agrandissement. De même, +\begin{quote} +\verb|\resizebox{2in}{!}{\includegraphics{file.eps}}| +\end{quote} +inclut le graphique dans sa taille naturelle, insère les textes \pfg, et ensuite agrandit à la +fois le graphique et le texte. +\item De même, lorsque les options d'agrandissement ou réduction sont spécifiées \emph{avant} +la rotation: +\begin{quote} +\verb|\includegraphics[width=3in,angle=30]{file.eps}| +\end{quote} +l'agrandissement est implicitement traité par la fonction d'inclusion de graphique. Cependant, +lorsque les options d'agrandissement sont spécifiées \emph{après} la rotation: +\begin{quote} +\verb|\includegraphics[angle=30,width=3in]{file.eps}| +\end{quote} +le graphique est d'abord inclus avec sa taille naturelle, puis tourné et enfin agrandi. Puisque +\pfg\ remplace le nouveau texte pendant l'inclusion du graphique, la seconde commande agrandit +le nouveau texte \textsf{PSfrag} alors que la première \emph{ne le fait pas}. Lorsque la taille du +graphique EPS une fois inclus diffère beaucoup de sa taille naturelle, les deux commandes +produisent des résultats très différents. +\end{itemize} +Voir~\cite{psfgguide} +\ifguide ou page~\pageref{o+psfrag} \fi +pour plus de détails sur l'agrandissement du texte \pfg. + +\subsection{Incompatibilités de \textsf{PSfrag}} +Bien que \pfg~3.0 ait de nombreux avantages par rapport à la version~2, il y a actuellement +une incompatibilité avec les fichiers EPS produits par +\textbf{xfig}\index{xfig@\texttt{xfig}!incompatibilité avec \textsf{PSfrag}} +contenant des objets remplis par un pattern. La distribution de \pfg\ inclut le fichier \texttt{readme.xfg} qui +décrit cette incompatibilité. Un moyen de contourner ce problème est décrit dans la +Section~\vref{sss+epsl+xfig}. + +La distribution de \pfg\ inclut aussi le fichier \texttt{readme.sem} qui décrit une +incompatibilité entre \pfg\ et la classe +\texttt{seminar}\index{PSfrag!incompatibilité avec le paquetage \texttt{seminar}}% +\index{seminar@\texttt{seminar}, paquetage!incompatibilité avec \textsf{PSfrag}}% +\ifguide\ (voir page~\pageref{o+seminar})\fi. +Heureusement, la dernière version de \texttt{seminar.cls} n'a plus cette incompatibilité. + +\subsubsection{Fichiers EPS produits par xfig}% +\label{sss+epsl+xfig}\index{PSfrag!incompatibilité avec \texttt{xfig}} +Des problèmes surviennent lorsque \pfg\ est utilisé avec des fichiers EPS qui ont été créés +par le programme de dessin \textbf{xfig} et utilisent la fonction «~pattern fill~» de +\textbf{xfig}. Le problème provient du fait que \pfg\ et \textbf{xfig} redéfinissent tous deux +l'opérateur PostScript \texttt{show}. Ces redéfinitions ne devraient pas entrer en +conflit, mais apparemment elles le font. + +Les personnes assurant la maintenance de \pfg\ n'ont pas déterminé de solution sur le long +terme mais l'astuce suivante semble marcher: +\begin{enumerate}[1.] +\item Dans le fichier EPS, cherchez la commande \verb|/PATfil|. +\item À l'intérieur de la définition de \verb|/PATfill|, cherchez la commande \texttt{show} +(il n'y a qu'une seule occurrence). +\item Remplacez \texttt{show} par \texttt{oldshow} (\texttt{oldshow} est l'endroit où +\textbf{xfig} range l'«~ancienne~» définition de la routine \texttt{show}, avant de redéfinir +\texttt{show} pour ses propres besoins). +\end{enumerate} +Si vous pouvez déterminer ce que \textbf{xfig} et/ou \pfg\ peuvent faire de mieux pour éviter +ce problème, contactez l'équipe de maintenance de \pfg\ à \url{psfrag@rascals.stanford.edu}. + +\section{Inclure plusieurs fois un fichier EPS} +Lorsque le même graphique EPS est inséré de nombreuses fois, son code EPS apparaît autant de +fois dans le fichier PS final. En particulier, ceci se produit souvent lorsqu'un logo ou autre +dessin est inséré dans l'en-tête\index{entete@en-tête, graphique dans un} ou le pied de page d'un document. Cette section décrit des +méthodes améliorées pour insérer de nombreuses fois un graphique. + +Il y a quatre méthodes habituelles pour inclure de nombreuses fois le même graphique EPS. +\begin{enumerate}[1.] +\item Utiliser \verb|\includegraphics{file.eps}| chaque fois que vous voulez le graphique. +Ceci pose deux problèmes: +\begin{enumerate}[(a)] +\item \LaTeX\ doit trouver et lire le fichier chaque fois que \verb|\includegraphics| est +utilisée. +\item Les commandes du graphique EPS sont répétées dans le fichier PS final, ce qui donne un +gros fichier. +\end{enumerate} +\item Sauver le graphique dans une boîte \LaTeX\ et utiliser la boîte chaque fois que vous +voulez le graphique. Ceci fait gagner du temps à \LaTeX\ puisqu'il ne doit trouver et lire le +fichier qu'une seule fois. Mais cela ne réduit pas la taille du fichier PostScript final. + +Au début du fichier, inclure les commandes suivantes +\begin{verbatim} + \newsavebox{\mygraphic} + \sbox{\mygraphic}{\includegraphics{file.eps}} +\end{verbatim} +puis utiliser la commande \verb|\usebox{mygraphics}| chaque fois que vous souhaitez insérer le +graphique. (Le graphique peut être agrandi ou réduit en plaçant la commande \verb|\usebox| à +l'intérieur d'une commande \verb|\scalebox| ou \verb|\resizebox|). +\item Lorsque le fichier EPS contient du graphique en mode vectoriel (par opposition au +graphique en bitmap), il est possible d'écrire une commande PostScript qui dessine le +graphique. Le graphique peut alors être inclus en appelant la commande PostScript chaque fois +dont on a besoin du dessin. La Section~\vref{ss+epsl+dcp} décrit cette procédure. + +Puisque le fichier PostScript final n'inclut les commandes graphiques qu'une seule fois, il +sera beaucoup plus petit. Notez que puisque les commandes graphiques sont rangées dans la +mémoire de l'imprimante pendant l'impression du fichier PostScript final, cette méthode +\virage\emph{peut} faire que l'imprimante soit à court de mémoire et n'imprime pas le +document. + +Bien que cette méthode donne un fichier PostScript final petit, elle exige encore que \LaTeX\ +trouve et lise le fichier contenant les commandes PostScript. +\item Comme la méthode précédente, définir une commande PostScript qui dessine le graphique, +mais inclure cette commande dans une boîte \LaTeX. Ceci donne un fichier PostScript final +petit et ne demande à \LaTeX\ que de trouver et lire le fichier une seule fois. +\end{enumerate} + +\subsection{Définir une commande PostScript}\label{ss+epsl+dcp} +Cette section décrit comment créer une commande PostScript qui dessine le graphique d'un +fichier EPS contenant du dessin vectoriel. Cette procédure ne marche pas si le fichier EPS +contient des dessins \emph{bitmap}. + +Pour convertir le graphique EPS en une commande PostScript, le fichier EPS doit être coupé en +deux fichiers, l'un qui définit le dictionnaire PostScript et les commandes graphiques, +l'autre qui contient les informations d'en-tête et utilise la commande PostScript pré-définie. +Par exemple, un fichier EPS créé par \textbf{xfig} est de la forme +\begin{verbatim} + %!PS-Adobe-2.0 EPSF-2.0 + %%Title: /tmp/xfig-fig017255 + %%Creator: fig2dev Vrsion 2.1.8 Patchlevel 0 + %%CreationDate: Fri Sep 1 15:36:01 1995 + %%Orientation: Portrait + %%BoundingBox: 0 0 369 255 + %%Pages: 0 + %%EndComments + /$F2psDict 200 dict def + $F2psDict begin + ... + %%EndProlog + + $F2psBegin + ... + $F2psEnd +\end{verbatim} +où les «~\verb|...|~» indiquent des commandes non listées. Le fichier EPS contient en général +trois parties: +\begin{enumerate}[1.] +\item Les commandes d'en-tête qui commencent par~\verb|%| +\item La section \texttt{Prolog} qui commence par +\begin{quote} +\verb|/$F2psDict 200 dict def| +\end{quote} +et se termine par +\begin{quote} +\verb|%%EndProlog| +\end{quote} +Le \texttt{Prolog} définit les commandes dans le dictionnaire PostScript utilisé par le +fichier EPS. Dans ct exemple, le dictionnaire s'appelle \verb|$F2psDict| bien que d'autres +noms puissent être utilisés. +\item La dernière partie contient les commandes utilisées pour dessiner le graphique. +\end{enumerate} +Supposons que le fichier ci-dessus s'appelle \texttt{file.eps}. Créez les fichiers +\texttt{file.h} et \texttt{file.ps} où \texttt{file.h} contient: +\begin{verbatim} + /$F2psDict 200 dict def + $F2psDict begin + ... + %%EndProlog + + /MyFigure { + $F2psBegin + ... + $F2psEnd + } def +\end{verbatim} +et \texttt{file.ps} contient +\begin{verbatim} + %!PS-Adobe-2.0 EPSF-2.0 + %%Title: /tmp/xfig-fig017255 + %%Creator: fig2dev Vrsion 2.1.8 Patchlevel 0 + %%CreationDate: Fri Sep 1 15:36:01 1995 + %%Orientation: Portrait + %%BoundingBox: 0 0 369 255 + %%Pages: 0 + %%EndComments + $F2psDict begin MyFigure end +\end{verbatim} +\texttt{file.h} définit le dictionnaire et définit la commande \texttt{MyFigure}, tandis que +\texttt{file.ps} contient les informations d'en-tête et utilise la commande PostScript définie +dans \texttt{file.h}. En particulier, il est important que l'en-tête du fichier +\texttt{file.ps} inclue la ligne \verb|%!PS...| et la ligne BoundingBox. Le dessin peut alors +être utilisé dans le document \LaTeX\ ainsi +\begin{verbatim} + \documentclass{article} + \usepackage{graphicx} + \special{header=file.h} + \begin{document} + ... + \includegraphics[width=2in]{file.ps} + + \includegraphics[totalheight=1in]{file.ps} + ... + \end{document} +\end{verbatim} +Notez que le fichier original \texttt{file.eps} n'est pas utilisé. Puisque les commandes +graphiques dans \texttt{file.h} ne sont incluses qu'une seule fois, le fichier PostScript +final reste petit. Cependant, il faut encore que \LaTeX\ trouve et lise \texttt{file.ps} +chaque fois que le graphique est utilisé. Les commandes suivantes sauvegardent le dessin dans +une boîte \LaTeX\ pour produire un fichier PostScript final petit en ne lisant +\texttt{file.ps} qu'une seule fois. +\begin{verbatim} + \documentclass{article} + \usepackage{graphicx} + \special{header=file.h} + + \newsavebox{\mygraphic} + \sbox{\mygraphic}{\includegraphicd[width=2in]{file.ps}} + + \begin{document} + ... + \usebox{\mygraphic} + ... + \resizebox*{1in}{!}{\usebox{\mygraphic}} + ... + \end{document} +\end{verbatim} +Comme dans l'exemple précédent, ces commandes produisent un dessin large de 2~pouces et un +autre dont la hauteur totale est de 1~pouce. + +\subsection{Graphique dans l'en-tête ou le pied de page}\index{entete@en-tête, graphique dans un} +Une méthode facile pour inclure un graphique dans l'en-tête est d'utiliser le paquetage +\texttt{fancyhdr}\index{fancyhdr@\texttt{fancyhdr}, paquetage} +\ifguide(voir page~\pageref{o+fancyhdr})\fi, +qui est +\ifguide\else essentiellement \fi +une version améliorée de l'ancien +paquetage \texttt{fancyheadings}\index{fancyheadings@\texttt{fancyheadings}, paquetage}, documenté par~\cite{fancyhdr}. L'en-tête de page consiste en trois +parties: son champ gauche, son champ central et son champ droit. La commande +\verb|\fancyhead|\index{fancyhead@\CS{fancyhead}, commande} +spécifie le contenu des champs de l'en-tête, avec les options \texttt{L}, \texttt{C}, +\texttt{R} spécifiant quel(s) champ(s) la commande modifie. Par exemple, +\begin{verbatim} + \pagestyle{fancy} + \fancyhead[C]{Mon Papier} +\end{verbatim} +fera que le champ central de l'en-tête sera «~Mon Papier~», tandis que +\begin{verbatim} + \pagestyle{fancy} + \fancyhead[L,R]{\textbf{Confidentiel}} +\end{verbatim} +fera que les champs de gauche et de droite de l'en-tête seront «~\textbf{Confidentiel}~». Si +aucune option \texttt{L}, \texttt{C} ou \texttt{R} n'est spécifiée, la commande s'applique aux +trois champs de l'en-tête. Donc \verb|\fancyhead{}| sera utilisée pour mettre à blanc tous les +champs de l'en-tête. La commande +\label{EP+fancyfoot}\verb|\fancyfoot|\index{fancyfoot@\CS{fancyfoot}, commande} +spécifie de la même manière les champs de +gauche, central et de droite du pied de page. + +\MARTIT{\botsmash{\tshortstack[r]{Dessins\STRUT\\dans\STRUT\\l'En-tête\STRUT\\ou le +Pied\STRUT\\de Page\STRUT}}~~}{Les} commandes du paquetage \texttt{fancyhdr} peuvent insérer +des graphiques dans les en-têtes et pieds de page. Par exemple, après avoir éclaté le fichier +EPS \texttt{file.eps} en deux fichiers \texttt{file.h} et \texttt{file.ps} comme cela est +expliqué dans la Section~\vref{ss+epsl+dcp}, les commandes + +\begin{small} +\begin{verbatim} + \documentclass{article} + \usepackage{fancyhdr,graphicx} + + \renewcommand{\headheight}{0.6in} %% doit être assez grande + \renewcommand{\textheight}{7.5in} %% pour le dessin + + % Définir une commande de dessin PostScript + \special{header=file.h} + + % Conserver le dessin dans une boîte LaTeX + \newsavebox{\mygraphic} + \sbox{\mygraphic}{\includegraphics[totalheight=0.5in]{file.ps}} + + \pagestyle{fancy} + \fancyhead{} % tous les champs de l'en-tête remis à blanc + \fancyhead[L]{\usebox{\mygraphic}} + \fancyfoot{} % tous les champs du pied de page remis à blanc + \fancyfoot[C]{\thepage} + \renewcommand{\headrulewidth}{0.5pt} + \renewcommand{\footrulewidth}{0pt} + + \begin{document} + ... + \end{document} +\end{verbatim} + +\end{small} +\noindent +place le dessin en haut et à gauche de chaque page «~fancy~» avec un filet horizontal épais de +0.5pt sous l'en-tête. De plus, le numéro de page est placé en bas et au centre de chaque page, +sans filet au dessus du pied de page. Notez que tout ceci n'affecte pas les pages «~plain~». + +\MARTIT{\botsmash{\tshortstack[r]{En-têtes\STRUT\\Impairs\STRUT\\et Pairs\STRUT}}~~}{Lorsque} l'option +\verb|[twoside]| de classe de document est utilisée, il est possible de spécifier séparément +les en-têtes et pieds de page pour les pages impaires et paires. Les options \texttt{E} et +\verb|O| de \verb|\fancyhead| spécifient les en-têtes de pages paires et impaires, +respectivement. Si les options \texttt{E} et \texttt{O} ne sont pas spécifiées, la commande +s'applique à la fois aux pages paires et aux pages impaires. De même, les options \texttt{E} +et \texttt{O} spécifient les pieds de page pour les pages paires et impaires, respectivement. +Par exemple, +\begin{verbatim} + \pagestyle{fancy} + \fancyhead[LE]{Mon Papier} + \fancyhead[RO]{Mon Nom} + \fancyfoot[C]{\thepage} +\end{verbatim} +place «~Mon Papier~» le haut et à gauche des pages paires de style fancy, «~Mon Nom~» en haut +et à droite de toutes les pages impaires de style fancy, et le numéro de page en bas et au +centre de toutes le pages «~fancy~». En remplaçant +\begin{verbatim} + \fancyhead[L]{\usebox{\mygraphics}} +\end{verbatim} +de l'exemple ci-dessus par +\begin{verbatim} + \fancyhead[LE,RO]{\usebox{\mygraphics}} +\end{verbatim} +vous placerez le dessin dans le coin supérieur externe (à gauche sur les pages paires, à droite +sur les pages impaires) de chaque page «~fancy~». + +\MARTIT{\botsmash{\tshortstack[r]{Modifier\STRUT\\les Pages\STRUT\\Plain\STRUT}}~~}{Les} +commandes \verb|\fancyhead| ne s'appliquent qu'aux pages de type «~fancy~». Même si +\verb|\pagestyle{fancy}| force le document à avoir un style de page «~fancy~», certaines pages +(les pages de titre, les pages de la table des matières, la première page des chapitre, etc.) +reçoivent encore par défaut un style de page «~plain~». + +La commande \label{EP+fancypagestyle}\verb|\fancypagestyle|\index{fancypagestyle@\CS{fancypagestyle}, commande} +peut être utilisée pour modifier le style de page +«~plain~». Par exemple, en ajoutant le code suivant à l'exemple ci-dessus, le dessin sera +aussi placé dans le coin supérieur gauche des pages «~plain~». +\begin{verbatim} + \fancyplacestyle{plain}{% + \fancyhead{} % efface tous les champs d'en-tête + \fancyhead[L]{\usebox{\myhraphivs} + \fancyfoot{} % efface tous les champs de pieds de page + \renewcommand{\headrulewidth}{0.5pt} + \renewcommand{\footrulewidth}{0.5pt} +\end{verbatim} +Lorsque l'option de classe \texttt{twoside} est choisie, si l'on remplace les +deux commandes +\begin{verbatim} + \begin{\verbatim} + \fancyhead[L]{\usebox{\mygraphic} + \end{\verbatim} +\end{verbatim} +par +\begin{verbatim} + \begin{\verbatim} + \fancyhead[LE,RO]{\usebox{\mygraphic} + \end{\verbatim} +\end{verbatim} +le dessin sera placé sur le côté externe du haut de chaque page (qu'elle soit «~plain~» ou +«~fancy~»). + +\subsection{Graphique en filigrane} +\thispagestyle{fancy} +\newsavebox{\mygraphic} +\sbox{\mygraphic}{\includegraphics[keepaspectratio,height=\textheight,width=\textwidth]% +{pale.eps}} +\fancyhead{} +\fancyfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +%\fancyhead[LE]{\rmfamily\upshape\thepage} +\fancyhead{} +%\fancyhead[RE]{\rmfamily\slshape CHAPITRE~\thechapter. \leftmark} +\fancyhead[RE]{\rmfamily\slshape \leftmark} +\fancyhead[RO]{\rmfamily\upshape\thepage} +\fancyhead[LO]{\rmfamily\slshape\rightmark} +%\fancyfoot[L]{\begin{picture}(0,0)\put(3,3){\usebox{\mygraphic}}\end{picture}} +\ifguide +\typeout{FANCY PAGE 1} +\fancyfoot{} +\else +\typeout{FANCY PAGE 2} +\fancyfoot[C]{\rmfamily\upshape\thepage} +\fi +\fancyhead[C]{\setlength{\unitlength}{1in}{\begin{picture}(0,0) +%\graphpaper[1](-3,-3)(6,6) +%\put(-3,-9){\mbox{\Huge X}} +\put(-3,-9){\usebox{\mygraphic}}\end{picture}}} + +En plus de pouvoir ajouter un dessin dans les en-têtes\index{entete@en-tête, graphique dans +un} et pieds de page, le paquetage +\texttt{fancyhdr} peut placer un dessin en arrière-plan du texte, ce qui est pratique pour +créer un filigrane avec un logo ou un sceau. + +L'exemple suivant place le dessin de \texttt{file.eps} sur chaque page\,\footnote{{}Dans ce +document, on ne l'a fait que pour une seule page. Le dessin utilisé (\textbf{pale.eps}) est dérivé +du fichier \texttt{tiger.eps} livré avec \textbf{ghostview}, en utilisant des couleurs plus pales pour le +rendre utilisable en filigrane. Les modifications sont remarquablement mineures.} («~fancy~» ou +«~plain~»). +\begin{verbatim} + \documentclass{article} + \usepackage{graphicx,fancyhdr} + + %% garder le dessin dans une boîte + \newsavebox{\mygraphic} + \sbox{\mygraphic}{\includegraphics[keepaspectratio, + height=0.8\textheight, + width=0.8\textwidth]{file.eps}} + + \pagestyle{fancy} + \fancyhead{} + \fancyhead[C]{\setlength{\unitlength}{1in} + \begin{picture}(0,0) + \put(-2.2,-6){\usebox{\mygraphic}} + \end{picture}} + + \fancypagestyle{plain}{% + \fancyhead{}% + \fancyhead[C]{\setlength{\unitlength}{1in} + \begin{picture}(0,0) + \put(-2.2,-6){\usebox{\mygraphic}} + \end{picture} + + \begin{document} + ... + \end{document} +\end{verbatim} + +L'exemple ci-dessus place le dessin de manière que son coin inférieur gauche (celui de sa +BoundingBox) soit 2.2~pouces à gauche et 6~pouces en dessous du centre de l'en-tête. La +position du dessin peut être ajustée en changeant ces deux nombres. + +Puisque l'en-tête est composé \emph{avant} le texte, cet exemple fait que le texte apparaîtra +\emph{au dessus} du dessin. Puisque le pied de page est composé \emph{après} le texte, placer +le dessin dans le pied de page fera que le dessin apparaîtra \emph{au dessus} du texte (en le +masquant). + +Si le contenu de \texttt{file.eps} contient du dessin vectoriel (sans bitmap), un fichier +PostScript final bien plus petit peut être obtenu en utilisant la procédure décrite dans la +Section~\vref{ss+epsl+dcp}. + +\clearpage +%\section*{\normalsize Partie~IV: L'environnement \texttt{figure}} +\section*{\LARGE Partie~IV: L'environnement \texttt{figure}} +\addcontentsline{toc}{section}{\null\hspace*{-1cm}\large IV: L'environnement \texttt{figure}} + +\section{L'environnement \texttt{figure}}\label{s+epsl+EF} +Lorsque vous utilisez un traitement de texte classique, les figures apparaissent exactement là +où l'utilisateur les a placées. Puisque ces figures ne peuvent pas être coupées, elles +provoquent souvent des coupures de pages peu esthétiques qui laissent de grands espaces blancs +en bas des pages. Pour obtenir un document d'allure professionnelle, l'auteur doit +ré-arranger manuellement les figures pour éviter ces horribles coupures de page. Cette +manipulation des figures devient assez lassante, notamment parce qu'il faut la refaire +chaque fois que le document est modifié. + +Pour produire des documents de qualité professionnelle sans la corvée des déplacements des +figures, \LaTeX\ offre des figures flottantes qui se déplacent automatiquement vers des +emplacements esthétiquement agréables. Bien que ces figures flottantes facilitent beaucoup la +production de documents de qualité professionnelle, elles ennuient souvent les nouveaux +utilisateurs qui ont l'habitude du positionnement manuel des figures. Pour tirer parti des +figures flottantes, il faut respecter les règles suivantes: +\begin{itemize} +\item \textbf{Ne pas composer de texte qui dépend de la position de la figure.} Utiliser la +phrase «~Cette figure\ldots~» ou «~La figure suivante\ldots~» requiert que la figure soit à un +certain endroit. Utiliser la phrase «~La Figure~14\ldots~» permet que la figure soit placée +n'importe où. En fait, vous pouvez retrouver quelque chose de plus agréable si vous utilisez +le paquetage \texttt{varioref}\ifguide, décrit page~\pageref{o+varioref}\fi; il donne des libellés comme +«~page suivante~», «~ci-contre~», etc., au prix d'une deuxième passe de \LaTeX. +\item \textbf{Garder son calme.} Certains utilisateurs sont préoccupés lorsqu'une figure n'est +pas placée exactement là où il la veulent. Le placement des figures est l'affaire de \LaTeX; +les utilisateurs ne devraient en général pas s'en occuper. +\end{itemize} + +\MARTIT{\botsmash{\tshortstack[r]{Quelques\STRUT\\Conseils\STRUT}}~~}{Les} +pages suivantes décrivent comment \LaTeX\ détermine les emplacements des éléments flottants +qui suivent les règles typographiques pour un document d'aspect professionnel. Pour +simplifier, les solutions des problèmes les plus courants de placement d'éléments flottants +sont listées ci-dessous. +\begin{enumerate}[1.] +\item Ne ligotez pas \LaTeX. Plus vous donnez de possibilités de placement des éléments +flottants à \LaTeX, mieux il traite le placement des éléments flottants. En particulier, les +options \verb|[htbp]| et \verb|[tbp]| fonctionnent bien. Voir la Section~\vref{ss+epsl+PF}. +\item Beaucoup d'utilisateurs trouvent que les paramètres par défaut pour les éléments +flottants sont trop restrictifs. Les commandes suivantes +\begin{verbatim} +\renewcommand{\textfraction}{0.15} +\renewcommand{\topfraction}{0.85} +\renewcommand{\bottomfraction}{0.65} +\renewcommand{\floatpagefraction}{0.60} +\end{verbatim} +\label{EP+bottomfraction}\index{bottomfraction@\CS{bottomfraction}, commande}% +\label{EP+topfraction}\index{topfraction@\CS{topfraction}, commande}% +\label{EP+floatpagefraction}\index{floatpagefraction@\CS{floatpagefraction}, commande}% +\label{EP+textfraction}\index{textfraction@\CS{textfraction}, commande}% +donnent à ces paramètres les valeurs les plus permissives. Voir la Section~\vref{ss+epsl+FRF}. +\item \LaTeX\ permet que les figures flottent jusqu'au sommet de la page courante, et donc +peuvent apparaître avant la référence dans le texte. Les utilisateurs qui n'aiment pas ce +comportement devraient utiliser le paquetage +\texttt{flafter}\index{flafter@\texttt{flafter}, paquetage}\ifguide, décrit page~\pageref{o+flafter}\fi. +Aucune commande n'est nécessaire, il suffit de mettre +\ifguide une commande \fi +\verb|\usepackage{flafter}| dans le préambule. +\item Pour être sûr qu'une figure ne dérive pas au delà d'un certain point, utilisez le +paquetage \texttt{placeins}\index{placeins@\texttt{placeins}, paquetage}% +\ifguide, décrit page~\pageref{o+placeins},\fi\ +et mettez une commande \label{EP+FloatBarrier}\index{FloatBarrier@\CS{FloatBarrier}, commande}\verb|\FloatBarrier|. +Voir la Section~\vref{ss+epsl+PEFNT}. + +Attention, une utilisation exagérée de \verb|\FloatBarrier| indique soit que le placement des +éléments flottants est géré à une trop petite échelle, soit que les paramètres de placement +ont des valeurs incorrectes, ce qui est mauvais dans les deux cas. +\end{enumerate} + +\subsection{Créer des figures flottantes} +Les figures flottantes sont créées en mettant des commandes dans un environnement +\texttt{figure}. Le contenu de l'environnement \texttt{figure} reste toujours en un seul +morceau, flottant pour produire de bonnes coupures de page. Les figures flottantes peuvent +être numérotées automatiquement en utilisant la commande \label{EP+caption}\index{caption@\CS{caption}, +commande}\verb|\caption|. Par exemple, les +commandes suivantes mettent le dessin de \texttt{graph.eps} dans une figure flottante +\begin{verbatim} + \begin{figure} \centering + \includegraphics[totalheight=2in]{graph.eps} + \caption{Voici un graphique EPS inséré}\label{fig+graph} + \end{figure} + +Le dessin de la Figure~\ref{fig+graph}, page~\pageref{fig+graph}... +\end{verbatim} + +\lneed{6} +\noindent%\enlargethispage*{3\baselineskip} +Notes à propos des figures: +\begin{itemize} +\item La commande optionnelle \verb|\label|\index{label@\CS{label}, commande}\label{EP+label} peut être utilisée en combinaison avec +les commandes \verb|\ref|\index{ref@\CS{ref}, commande}\label{EP+ref} et +\label{EP+pageref}\verb|\pageref|\index{pageref@\CS{pageref}, commande} (et des commandes analogues offertes par divers +paquetages) pour faire référence à la légende. La commande \virage\verb|\label| doit être placée +\emph{immédiatement après} la commande \verb|\caption|\,\footnote{NdT: mais \emph{jamais} +avant: la référence serait fausse. Il est parfois dit qu'il faut la mettre \emph{dans} +l'argument de la commande \texttt{\bs caption}. Cela marche en général, mais il vaut mieux +éviter de mettre à cet endroit autre chose que le texte de légende, car c'est un argument +mobile.}.\pagebreak[1] + +\lneed{2} +\item Si l'environnement \texttt{figure} ne contient aucune commande \verb|\caption|, il +produit une figure flottante sans numéro. + +\item Si l'environnement \texttt{figure} contient plusieurs commandes \verb|\caption|, il +produit plusieurs figures qui flottent en un groupe indissoluble. C'est utile pour construire +des dessins côte à côte (voir la Section~\vref{s+epsl+DCC}) ou des arrangements complexes tels +que les Figures~\ref{f14+epsl}--\ref{f20+epsl}, page~\pageref{f14+epsl}. + +\item Une liste des figures est créée par la commande +\label{EP+listoffigures}\verb|\listoffigures|\index{listoffigures@\CS{listoffigures}, commande}. + +\item par défaut, le texte de la légende est utilisé à la fois comme légende et dans la liste des +figures. La commande \verb|\caption| a un argument optionnel qui donne le texte de l'entrée +dans la liste des figures. Par exemple, +\begin{quote} +\label{EP+caption+1}\verb|\caption[Texte pour la liste]{Texte pour la légende}|\index{caption@\CS{caption}, +commande} +\end{quote} +fait que «~Texte pour la légende~» apparaîtra dans le caption, mais «~Texte pour la liste~» +apparaîtra dans la liste des figures. Ceci est très utile lorsque vous utilisez des légendes +longues, descriptive. + +\item L'environnement \texttt{figure} ne peut être utilisé qu'en \emph{mode paragraphe +externe}, ce qui interdit de l'utiliser à l'intérieur de n'importe quel type de boîte (comme +une \texttt{parbox} ou une \texttt{minipage}). + +\item Les environnements \texttt{figure} à l'intérieur de paragraphes +\begin{verbatim} + ...texte texte texte texte texte texte + \begin{figure} + ... + \end{figure} + ...texte texte texte texte texte texte +\end{verbatim} +ne sont pas traités avant la fin du paragraphe. +\end{itemize} + +\subsection{Placement de la figure}\label{ss+epsl+PF} +L'environnement \texttt{figure} a un argument optionnel qui permet aux utilisateurs de +spécifier les emplacements possibles pour la figure. L'argument optionnel peut contenir toute +combinaison des lettres suivantes: +\begin{wdesc}{x} +\item{\texttt{h}} \emph{Here:} (ici) Place la figure dans le texte là où se trouve +l'environnement \texttt{figure}. Cette option ne peut être exécutée s'il ne reste plus assez +de place sur la page. +\item{\texttt{t}} \emph{Top:} (sommet) Place la figure au sommet de la page. +\item{\texttt{b}} \emph{Bottom:} (bas) Place la figure en bas de la page\,\footnote{Lorsqu'une +figure est placée en bas d'une page, elle est mise en dessous des notes de bas de page éventuelles. +Bien que ceci soit contestable, il n'y a à l'heure actuelle aucune méthode pour modifier ce +comportement.}. +\item{\texttt{p}} \emph{Float Page:} (page d'éléments flottants)% +\index{page d'elements flottants@page d'éléments flottants}\index{float page} +Place la figure sur une page +ne contenant que des éléments flottants. +\end{wdesc} + +\noindent +Notes sur le placement des figures: +\begin{itemize} +\item Si aucun argument optionnel n'est donné, les options de placement par défaut sont +\texttt{[tbp]}. +\item L'orde dans lequel les options de placement sont données \emph{n'a aucune importance}, +car elles sont toujours essayées dans l'ordre \texttt{h--t--b--p}. Donc \verb|[hb]| et +\verb|[bh]| sont toutes deux essayées comme \texttt{h--b}. +\item Plus vous donnez d'options de placement à \LaTeX, mieux il traite le placement des +éléments flottants. En particulier, les options \verb|[htbp]|, \verb|[tbp]|, \verb|[htp]| et +\verb|[tp]| fonctionnent en général bien. +\item Les options avec un seul type d'emplacement \verb|[t]|, \verb|[b]|, \verb|[p]| et +\verb|[h]| sont sujettes à problèmes\,\footnote{En fait, l'option \texttt{[h]} ne devrait +\emph{jamais} être utilisée. Elle est si mauvaise que les versions récentes de \LaTeX\ la +changent automatiquement en \texttt{[ht]}.}. Si la figure n'entre pas dans l'emplacement +spécifié, la figure est coincée, ce qui bloque les figures suivantes. Une erreur «~\texttt{Too many +unprocessed floats}~»\index{Too many unprocessed floats} +survient si cet embouteillage de figures dépasse la limite \LaTeX\ de +18~éléments flottants en attente de traitement (voir la Section~\vref{ss+epsl+TMUF}). +\end{itemize} + +Lorsque \LaTeX\ «~essaye~» de placer une figure, il obéit aux règles suivantes (voir +aussi~\cite[page~198]{latex-manual}): +\begin{enumerate}[1.] +\item Une figure ne peut être placée que dans les endroits spécifiés par ses options de +placement. +\item La figure ne peut pas rendre la page trop pleine (\emph{overfull}). +\item L'élément flottant doit être placé sur la page où il apparaît dans le texte, ou sur une +page postérieure\,\footnote{Puisqu'un élément flottant peut apparaître en haut de la page où +il se trouve dans le texte, il peut apparaître avant son occurrence dans le texte. Si ceci est +contestable, le paquetage \texttt{flafter}\index{flafter@\texttt{flafter}, paquetage}% +\ifguide, décrit page~\pageref{o+flafter},\fi\ peut être +utilisé pour l'empêcher. Aucune commande n'est nécessaire pour activer \texttt{flafter}; il +suffit de l'inclure par une commande \texttt{\bs usepackage}).}. Donc les figures peuvent +«~dériver après~» mais ne peuvent pas «~dériver vers l'avant~». +\item Les figures doivent apparaître dans l'ordre. Donc une figure ne peut pas être placée +avant que \emph{toutes} les figures précédentes le soient. Deux corollaires de cette règle +sont +\begin{itemize} +\item Une figure ne peut jamais être placée «~ici~» s'il y a des figures non encore traitées. +\item Une figure «~impossible à placer~» empêche de placer toute figure ultérieure jusqu'à la +fin du document ou jusqu'à ce que la limite \LaTeX\ du nombre d'éléments flottants en attente soit +atteinte. Voir la Section~\vref{ss+epsl+TMUF}. +\end{itemize} +De même, une table ne peut pas être placée avant que \emph{toutes} les tables précédentes +soient placées. Cependant une table peut passer devant une figure et vice-versa. +\item Les règles esthétiques de la Section~\vref{s+epsl+APEF} doivent être respectées. Par +exemple, le nombre d'éléments flottants sur une page ne peut dépasser +la valeur de +\texttt{totalnumber}. +Spécifier un point d'exclamation dans les options de placement (par exemple, comme dans +\verb|\begin{figure}[!ht]|) fait que \LaTeX\ fera de gros efforts en ignorant les règles +esthétiques qui s'appliquent aux pages de texte (le point d'exclamation~\verb|!| n'a pas +d'effet sur les règles esthétiques qui s'appliquent aux pages d'éléments flottants). +\end{enumerate} + +\subsection{Purger les éléments flottants non traités}\label{ss+epsl+PEFNT} +Un grand avantage d'utiliser des éléments flottants est que \LaTeX\ n'est pas obligé de les +placer immédiatement dans le texte. Au lieu de cela, \LaTeX\ peut garder en réserve l'élément +flottant jusqu'à ce qu'il puisse le placer en un meilleur endroit. Lorsqu'un élément flottant +a été lu par \LaTeX\ mais n'a pas encore été placé sur une page, il est appelé «~élément flottant non +traité~» (\emph{unprocessed float}). Bien que l'algorithme de placement des éléments flottants +fonctionne bien, il est parfois nécessaire de forcer \LaTeX\ à traiter les éléments flottants +non traités. + +Nous donnons ci-dessous trois méthodes pour forcer le traitement des éléments flottants non +traités. Ces commandes doivent être utilisées avec parcimonie; une utilisation trop fréquente +est soit un signe que vous gérez à petite échelle le placement des éléments flottants, soit +que vos paramètres de placement des éléments flottants ont de mauvaises valeurs (voir la +Section~\vref{s+epsl+APEF}). +\begin{description}\enlargethispage*{2\baselineskip} +\item[\bs clearpage]\label{EP+clearpage}\index{clearpage@\CS{clearpage}, commande}\NL +La méthode la plus triviale pour forcer le traitement des éléments flottants non encore traités +est d'exécuter une commande \verb|\clearpage|, qui place tous les éléments flottants non +traités et commence une nouvelle page. Bien que ce soit efficace, cette méthode n'est pas +souhaitable car elle provoque en général une page qui n'est que partiellement +remplie\,\footnote{NdT: certaines commandes \LaTeX, comme \texttt{\bs chapter}, provoquent un +tel saut de page et donc le traitement des éléments flottants en attente. Donc les figures d'un +chapitre n'iront pas se placer dans le chapitre suivant, mais, au pire, à la fin de leur +chapitre.}. +\item[\texttt{\bs FloatBarrier}]\label{EP+FloatBarrier+1}\index{FloatBarrier@\CS{FloatBarrier}, commande}\NL +Dans la plupart des situations, la meilleure méthode pour forcer le placement des éléments +flottants est la commande \verb|\FloatBarrier| fournie par le paquetage \texttt{placeins}% +\ifguide\ (décrit page~\pageref{o+placeins})\fi. +Il y a trois manières d'utiliser le paquetage \texttt{placeins}: +\begin{itemize} +\item La commande \verb|\FloatBarrier|\index{FloatBarrier@\CS{FloatBarrier}, commande} fait que tous les éléments flottants non traités sont +traités immédiatement. Contrairement à \verb|\clearpage|, elle ne commence pas une nouvelle +page. +\item Comme il est souvent souhaitable que les éléments flottants restent dans la section qui +les a créés, l'option \texttt{section} +\begin{quote} +\verb|\usepackage[section]{placeins}| +\end{quote} +redéfinit la commande \verb|\section|, en insérant +%une commande +\verb|\FloatBarrier| avant chaque section. + +Notez que cette option est très stricte. Par exemple, si une nouvelle section commence au +milieu d'une page, l'option \texttt{section} ne permet pas qu'un élément flottant de l'ancienne +section apparaisse en bas de la page, car cela se trouve après le début de la nouvelle +section. +\item L'option \texttt{below} +\begin{quote} +\verb|\usepackage[below]{placeins}| +\end{quote} +est une version moins restrictive de l'option \texttt{section}. Elle permet que les éléments +flottants soient placés après le début d'une nouvelle section, pourvu qu'un morceau de +l'ancienne section apparaisse sur la page. +\end{itemize} +\item[\bs afterpage\{\bs clearpage\}]\NL +Le paquetage \index{afterpage@\texttt{afterpage}, paquetage}\texttt{afterpage}% +\ifguide, décrit page~\pageref{o+afterpage},\fi\ +offre la commande +\label{EP+afterpage}\verb|\afterpage|\index{afterpage@\CS{afterpage}, commande} qui exécute une commande lors de la prochaine coupure de page survenant +naturellement. Donc, en utilisant +\begin{quote} +\verb|\afterpage{\clearpage}|\index{clearpage@\CS{clearpage}, commande}\label{EP+clearpage+1} +\end{quote} +tous les éléments flottants non traités seront traités lors de la prochaine coupure de page. + +Utiliser la commande \verb|\afterpage{\clearpage}| ne peut pas toujours résoudre des problèmes +de limite de nombre d'éléments flottants (voir la Section~\vref{ss+epsl+TMUF}). Puisque son +argument \verb|\clearpage| ne sera pas exécuté avant la fin de la page, d'autres éléments +flottants non traités peuvent s'accumuler avant la coupure de page. + +\verb|\afterpage{\clearpage}| est particulièrement utile lors de la production de petites +figures dans des pages d'éléments flottants. Le paramètre +nommé +\verb|\floatpagefraction|\index{floatpagefraction@\CS{floatpagefraction}, commande}% +\label{EP+floatpagefraction+1} +(voir la +Section~\vref{ss+epsl+FRF}) empêche les éléments flottants sur page d'éléments flottants et «~trop +petits~» d'être placés sur une page d'éléments flottants. De plus, comme le +modificateur~\verb|!| de placement des flottants ne s'applique pas aux pages d'éléments +flottants, \verb|[!p]| ne passe pas outre la restriction imposée par +\verb|\floatpagefraction|. Utiliser \verb|\afterpage{\clearpage}| est une méthode aisée pour +passez outre la restriction \verb|\floatpagefraction| sans provoquer de page de texte remplie +partiellement. +\end{description} + +\subsection{«~Too many unprocessed floats~»}\label{ss+epsl+TMUF}\index{Too many unprocessed floats}% +\index{Unprocessed floats, too many} +Si un élément flottant ne peut pas être traité immédiatement, il est placé dans une file +d'attente d'éléments flottants non traités jusqu'à ce qu'il puisse être traité. Mais, \LaTeX\ +n'ayant de place que pour 18 éléments flottants dans cette file, dès que plus de 18 éléments +flottants sont non traités une erreur «~\texttt{Too many unprocessed floats}~» se produit. Il y a +quatre causes possibles pour cette erreur: +\begin{enumerate}[1.] +\item Le problème le plus courant est que les options de placement des éléments flottants sont +incompatibles avec les paramètres de placement. Par exemple, une figure~\verb|[t]| dont la +hauteur est plus grande que \verb|\topfraction|\label{EP+topfraction+1}\index{topfraction@\CS{topfraction}, commande}% +(de la hauteur de la page) est coincée. Comme +les autres options avec une seule position ont des problèmes similaires, spécifiez autant +d'options de placement que possible pour l'élément flottant. +\item Des valeurs incompatibles pour les paramètres fractions de placement des éléments +flottants rendent impossible le placement de certains éléments. Pour éviter cela, vérifiez que +les paramètres fractions de placement des éléments flottants satisfont aux indications de la +Section~\vref{ss+epsl+FRF}. +\item Dans certaines rares situations, des utilisateurs avec beaucoup d'éléments flottants et +de notes marginales \verb|\marginpar| (qui utilisent la même file d'attente) peuvent avoir +besoin d'une file d'attente acceptant davantage d'éléments. En utilisant le paquetage +\texttt{morefloats}\index{morefloats@\texttt{morefloats}, paquetage} +\ifguide(décrit page~\pageref{MFL}) +ou \texttt{mfl}\index{mfl@\texttt{mfl}, paquetage} +(page~\pageref{MFL}), \fi +la taille de la +file d'attente des éléments flottants non traités passe de 18 à 36\ifguide et même 52 avec +\texttt{mfl}\fi. +\item La file d'attente \LaTeX\ des éléments flottants en attente déborde si plus de 18 +figures sont spécifiées sans aucun texte entre elles. Des solutions possibles sont notamment: + \begin{enumerate}[(a)] + \item Disperser les figures dans le texte. Ceci permet une accumulation de texte suffisante + pour provoquer des coupures de page naturelles, ce qui facilite le traitement par \LaTeX\ + des éléments flottants. + \item Mettre \verb|\clearpage| entre certaines d'entre elles. Ce n'est pas pratique car cela + requiert plusieurs itérations pour éviter d'avoir des pages partiellement pleines. (Bien que + \begin{quote} + \verb|\afterpage{\clearpage}| + \end{quote} + provoque un \verb|\clearpage| lors de la prochaine coupure naturelle de page, cela n'aide + pas dans cette situation, car la limite de la file d'attente est atteinte avant la coupure + de page.) + \item Puisqu'il n'y a pas de texte, les figures n'ont pas besoin d'être flottantes. En + conséquence, la meilleure solution est d'utiliser la procédure décrite dans la + Section~\vref{s+epsl+FNF} pour construire des figures non flottantes, séparées par + des commandes \verb|\vspace| ou \verb|\vfill| pour donner l'espacement vertical. + \end{enumerate} +\end{enumerate} + +\section[Ajustement du placement des éléments flottants]% +{Ajustement du placement des éléments \mbox{flottants}}\label{s+epsl+APEF} +Les paramètres de style suivants sont utilisés par \LaTeX\ pour empêcher des pages laides qui +contiennent trop d'éléments flottants ou des éléments flottants mal placés. Si ces paramètres +de stye sont changés quelque part dans le document, ils ne sont pas pris en compte avant la +page suivante. Cependant, si les paramètres sont changés dans le préambule du document, ils +s'appliquent dès le début du document. + +\subsection{Compteurs relatifs au placement des éléments flottants} +\begin{table}[htb] +\centering +\topcaption{Compteurs relatifs au placement des éléments flottants}\label{t6+epsl} +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.75\textwidth}|@{}} +\cline{1-3} +\texttt{topnumber}&\hfill&Le nombre d'éléments flottants autorisés en haut d'une page de texte +(2~par défaut).\\\cline{1-3} +\texttt{bottomnumber}&\hfill&Le nombre d'éléments flottants autorisés en bas d'une page de texte +(1~par défaut).\\\cline{1-3} +\texttt{totalnumber}&\hfill&Le nombre d'éléments flottants autorisés en tout dans une même page de texte +(3~par défaut).\\\cline{1-3} +\end{tabular*} +\label{EP+bottomnumber}\index{bottomnumber@\texttt{bottomnumber}, compteur de placement d'éléments flottants}% +\label{EP+topnumber}\index{topnumber@\texttt{topnumber}, compteur de placement d'éléments flottants}% +\label{EP+totalnumber}\index{totalnumber@\texttt{totalnumber}, compteur de placement d'éléments flottants}% +\end{table} +Les trois compteurs de la Table~\vref{t6+epsl} empêchent \LaTeX\ de placer trop d'éléments +flottants sur une page de texte. Ces compteurs ne concernent pas les pages d'éléments +flottants. Le fait de spécifier un point d'exclamation~\verb|!| dans les options de placement +d'un élément flottant fait que \LaTeX\ ignorera ces paramètres. Les valeurs de ces compteurs +sont établies avec la commande \verb|\setcounter|. Par exemple, +\begin{quote} +\verb|\setcounter{totalnumber}{2}| +\end{quote} +empêchera qu'il y ait plus de deux éléments flottants placés sur la même page de texte. + +\FloatBarrier +\subsection{Fractions relatives aux figures}\label{ss+epsl+FRF} +Les commandes de la Table~\vref{t7+epsl} contrôlent la fraction de page qui peut être occupée +par des éléments flottants (le terme «~fraction~» représentant la hauteur des éléments +flottants divisée par \verb|\textheight|). Les trois premières commandes ne concernent que les +pages de texte, tandis que les dernières commandes ne concernent que les pages d'éléments +flottants. Le fait de spécifier un point d'exclamation~\verb|!| dans les options de placement +d'un élément flottant fait que \LaTeX\ ignorera les trois premiers paramètres, mais +\verb|\floatpagefraction|\index{floatpagefraction@\CS{floatpagefraction}, commande}% +\label{EP+floatpagefraction+6} +est toujours utilisé. La valeur de ces paramètres est établie par +\verb|\renewcommand|. Par exemple,\looseness=-1 +\begin{quote} +\verb|\renewcommand{\textfraction}{0.3}|% +\label{EP+textfraction+1}\index{textfraction@\CS{textfraction}, commande}% +\end{quote} +\begin{table}[htb] +\topcaption{Fractions relatives au placement des éléments flottants}\label{t7+epsl} +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.70\textwidth}|@{}} +\cline{1-3} +\texttt{\bs textfraction}&\hfill&La fraction minimum d'une page de texte qui doit être occupée +par du texte. La valeur par défaut est 0.2, ce qui empêche les éléments flottants d'occuper +plus de 80\% d'une page de texte.\\\cline{1-3} +\texttt{\bs topfraction}&&La fraction maximum d'une page de texte qui peut être occupée par +des éléments flottants en haut de la page. La valeur par défaut est 0.7, ce qui empêche tout +élément flottant dont la hauteur dépasse 70\% de \texttt{\bs textheight} d'être placé en haut +d'une page. De même, si la hauteur combinée de plusieurs éléments flottants \texttt{t} dépasse +70\% de \texttt{\bs textheight}, ils ne peuvent pas tous être placés en haut d'une page, même +si leur nombre est inférieur à \texttt{topnumber}.\\\cline{1-3} +\texttt{\bs bottomfraction}&&La fraction maximum d'une page de texte qui peut être occupée par +des éléments flottants en bas de la page. La valeur par défaut est 0.3, ce qui empêche tout +élément flottant dont la hauteur est supérieure à 30\% de \texttt{\bs textheight} d'être placé +en bas d'une page de texte.\\\cline{1-3} +\texttt{\bs floatpagefraction}&&La fraction minimum sur une page d'éléments flottants qui doit être +occupée par des éléments flottants. Donc la fraction d'espace blanc sur une page d'éléments +flottants ne peut excéder $1-\mbox{\texttt{\bs floatpagefraction}}$. La valeur par défaut est +0.5.\\\cline{1-3} +\end{tabular*}% +\label{EP+bottomfraction+4}\index{bottomfraction@\CS{bottomfraction}, commande}% +\label{EP+topfraction+4}\index{topfraction@\CS{topfraction}, commande}% +\label{EP+floatpagefraction+4}\index{floatpagefraction@\CS{floatpagefraction}, commande}% +\label{EP+textfraction+4}\index{textfraction@\CS{textfraction}, commande}% +\end{table} +ne laisse pas les éléments flottants envahir plus de 70\% d'une page de texte. + +\MARTIT{\botsmash{\tshortstack[r]{Conseils\STRUT\\pour les\STRUT\\Fractions +de\STRUT\\Placement\STRUT}}~~}{Les} +valeurs par défaut des fractions de placement empêchent que des éléments flottants +nombreux et/ou grands dominent les pages de texte et aussi que les petites figures soient +placées dans une mer d'espace blanc sur une page d'éléments flottants. Bien que les valeurs +par défaut donnent en général de bons résultats, elles peuvent parfois être un peu trop +restrictives, ce qui fait que des figures flottent\,\footnote{NdT: ou dérivent? +\ifguide\else +Comme le dit Donald Arseneau: +\textsl{\froff\selectlanguage{english}A float is like a ship in harbor. There is +a place in the text which is the anchor location. The figure or ``ship'' +can float around to various places relative to the anchor, but always +downstream or downwind. A float with bad placement parameters is like +a ship that slips its anchor and eventually crashes on the rocks at the +end of a chapter.}% +\fi} trop loin de +l'endroit où elles ont été codées. Dans de tels cas il peut être souhaitable de donner aux +fractions de placement des valeurs plus tolérantes telles que +\begin{verbatim} + \renewcommand{\textfraction}{0.15} + \renewcommand{\topfraction}{0.85} + \renewcommand{\bottomfraction}{0.65} + \renewcommand{\floatpagefraction}{0.60} +\end{verbatim} +\index{bottomfraction@\CS{bottomfraction}, commande}% +\index{topfraction@\CS{topfraction}, commande}% +\index{floatpagefraction@\CS{floatpagefraction}, commande}% +\index{textfraction@\CS{textfraction}, commande}% +Il faut prendre soin lors de l'ajustement des valeurs des fractions de placement, car des +valeurs non raisonnables peuvent conduire à une piètre mise en page et/ou à des éléments +flottants «~coincés~». Pour éviter de tels problèmes, les règles générales suivantes devraient +être respectées: +\begin{description} +\item[\texttt{\bs textfraction}]% +\index{textfraction@\CS{textfraction}, commande}\NL +Donner à \verb|\textfraction| une valeur inférieure à .15 est déconseillé car cela donne des +pages difficiles à lire. Si la hauteur d'une figure dépasse 85\% de \verb|\textheight|, il est +à peu près certain qu'elle serait mieux (esthétiquement) seule sur une page d'éléments +flottants que forcée sur une page de texte avec quelques lignes de texte en dessous d'elle. + +De plus, \virage\emph{ne mettez jamais} \verb|\textfraction| à zéro car cela permettrait à +une page de texte de ne contenir aucun texte, ce qui perturbe \LaTeX\ et conduit à des pages +mal composées. +\item[\texttt{\bs topfraction}]\index{topfraction@\CS{topfraction}, commande}\NL +Ne donnez jamais à \verb|\topfraction| une valeur supérieure à $1-\mbox{\texttt{\bs +textfraction}}$, car cela provoquerait des contradictions +dans l'algorithme de placement des éléments flottants. +\item[\texttt{\bs bottomfraction}]% +\index{bottomfraction@\CS{bottomfraction}, commande}\NL +Puisque la «~bonne mise en page~» déconseille les grandes figures en bas de page, +\verb|\bottomfraction| est en général inférieure à \verb|\topfraction|. +Ne donnez jamais à \verb|\bottomfraction| une valeur supérieure à $1-\mbox{\texttt{\bs +textfraction}}$, car cela provoquerait des contradictions dans l'algorithme de placement des +éléments flottants. +\item[\texttt{\bs floatpagefraction}]% +\label{EP+floatpagefraction+2}\index{floatpagefraction@\CS{floatpagefraction}, commande}\NL +Si \verb|\floatpagefraction| a une valeur très petite, chaque page d'éléments flottants +contiendra exactement un élément flottant, ce qui donne un excès d'espace blanc autour des +petites figures dont le placement est~\texttt{p}. + +Si \verb|\floatpagefraction| est supérieure à \verb|\topfraction|, les figures \verb|[tp]| +peuvent être «~coincées~». Par exemple, supposons que la hauteur d'une figure \verb|[tp]| soit +(en valeur relative) plus grande que \verb|\topfraction| mais +cependant +inférieure à \verb|\floatpagefraction|, elle se +«~coince~» car elle est trop grande pour être placée sur une page de texte mais trop petite +pour être placée sur une page d'éléments flottants. Pour éviter les figures coincées, +\verb|\floatpagefraction| et \verb|\topfraction| devraient satisfaire à l'inégalité suivante: +\[ +\mbox{\texttt{\bs floatpagefraction}} \le \mbox{\texttt{\bs topfraction}} - 0.05 +\] +Le terme $0.05$ est dû à la différence dans le comptage de l'espace vertical pour les pages de +texte et les pages d'éléments flottants\,\footnote{Spécifiquement, +\CS{textfloatsep}\label{EP+textfloatsep}\index{textfloatsep@\CS{textfloatsep}, longueur} +et les autres espacements d'éléments flottants sur une page de texte \emph{sont pris en compte} +lorsqu'une figure est comparée à \CS{topfraction}, mais les espacements les espacements sur +une page d'éléments flottants \emph{ne sont pas pris en compte} lors de la vérification de la +hauteur d'une figure par rapport à \CS{floatpagefraction}. Il en résulte que \CS{textfloatsep} +divisé par \CS{textheight} (ce qui vaut $\approx 0.05$) doit être retranché de +\CS{topfraction}. Voir la Section~\vref{s+epsl+AEF} pour plus d'informations sur l'espacement des +figures.}. De même, si des figures \verb|[bp]| ou +\verb|[hbp]| sont utilisées, +\verb|\floatpagefraction| et \verb|\bottomfraction| devraient aussi satisfaire à: +\[ +\mbox{\texttt{\bs floatpagefraction}} \le \mbox{\texttt{\bs bottomfraction}} - 0.05 +\] +Notez que les valeurs par défaut ne satisfont pas à cette seconde inégalité, ce qui peut à +l'occasion poser des problèmes avec les figures \verb|[bp]| et \verb|[hbp]|. + +\end{description} + +\FloatBarrier +\subsection{Interdiction d'éléments flottants} +\begin{table}[htb] +\topcaption{Options de \texttt{\bs suppressfloats}}\label{t8+epsl} +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.70\textwidth}|@{}} +\cline{1-3} +\CS{suppressfloats[t]}&\hfill&Empêche des figures supplémentaires d'apparaître en haut de la +page courante.\\\cline{1-3} +\CS{suppressfloats[b]}&\hfill&Empêche des figures supplémentaires d'apparaître en bas de la +page courante.\\\cline{1-3} +\CS{suppressfloats}&\hfill&Empêche des figures supplémentaires d'apparaître en haut ou en bas de la +page courante.\\\cline{1-3} +\end{tabular*} +\end{table} +La commande \verb|\suppressfloats|\label{EP+suppressfloats}\index{suppressfloats@\CS{suppressfloats}, commande} +empêche que des éléments flottants supplémentaires +apparaissent en haut ou en bas de la page courante. Elles n'affectent pas les figures avec le +placement \verb|[h]| ni celles avec un point d'exclamation~\verb|!| dans les options de +placement. + +Le fait de mettre \verb|\suppressfloats[t]| immédiatement devant une figure empêche cet +élément flottant d'apparaître au dessus de l'endroit où il apparaît dans le texte. Le paquetage +\texttt{flafter}\index{flafter@\texttt{flafter}, paquetage}% +\ifguide, décrit page~\pageref{o+flafter},\else{} \fi +redéfinit l'algorithme de placement des +éléments flottants de \LaTeX\ pour empêcher cela dans l'ensemble du document. +\FloatBarrier + +\section{Adaptation de l'environnement \texttt{figure}}\label{s+epsl+AEF} +\subsection{Espacement de la figure}\label{ss+epsl+EF} +Les longueurs décrites dans la Table~\vref{t9+epsl} contrôlent la quantité d'espacement +vertical qui est ajoutée entre deux figures ou entre une figure et le texte. Contrairement à +la plupart des autres longueurs \LaTeX, ces trois-ci sont des longueurs +élastiques\index{longueur élastique}\index{elastique (longueur)@élastique (longueur)}, +qui donnent un espacement qui peut se contracter ou s'étirer pour offrir une meilleure mise en +page. Ces longueurs sont établies avec la commande \verb|\setlength|. Par exemple, +\begin{quote} +\verb|\setlength{\floatsep}{10pt plus 3pt minus 2pt}|% +\label{EP+floatsep}\index{floatsep@\CS{floatsep}, longueur} +\end{quote} +établit la valeur «~nominale~» de \verb|\floatsep| à 10~points. Pour améliorer la mise en +page, la séparation des éléments flottants peut descendre à 8~points ou monter à 13~points. + +Les longueurs listées dans la Table~\vref{t9+epsl} n'affectent pas l'espacement des éléments +flottants sur les pages d'éléments flottants. Leur espacement est contrôlé par les longueurs de la +Table~\vref{t10+epsl}. L'unité \texttt{fil}\index{fil@\texttt{fil}, unité de longueur} permet une extensibilité infinie, similaire à +l'espace vertical produit par \verb|\vfill|. Lorsque plusieurs espaces \texttt{fil} +apparaissent au même endroit, ils s'expansent proportionellement pour remplir l'espace. +\begin{table}[htb] +\topcaption{Espacement des figures pour les pages de texte}\label{t9+epsl} +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.70\textwidth}|@{}} +\cline{1-3} +\CS{floatsep}&\hfill&Pour les éléments flottants en haut ou en bas d'une page, c'est l'espacement +vertical entre éléments flottants. La valeur par défaut est \texttt{12pt plus 2pt minus +2pt}.\\\cline{1-3} +\CS{textfloatsep}&\hfill&Pour les éléments flottants en haut ou en bas d'une page, c'est l'espacement +vertical entre l'élément flottant et le texte. La valeur par défaut est \texttt{20pt plus 2pt minus +4pt}.\\\cline{1-3} +\CS{intextsep}&\hfill&Pour les éléments flottants au milieu d'une page de texte (c'est-à-dire +avec l'option de placement~\texttt{h}), c'est l'espacement vertical au dessus et au dessous de +l'élément flottant. La valeur par défaut est \texttt{12pt plus 2pt minus 2pt}.\\\cline{1-3} +\end{tabular*}% +\label{EP+floatsep+1}\index{floatsep@\CS{floatsep}, longueur}% +\label{EP+textfloatsep+1}\index{textfloatsep@\CS{textfloatsep}, longueur}% +\label{EP+intextsep+1}\index{intextsep@\CS{intextsep}, longueur} +\end{table} + +%\enlargethispage*{3\baselineskip} +Le \verb|@| dans les noms de la Table~\vref{t10+epsl} signifie que ce sont des commandes +\index{internes@internes, commandes}internes\,\footnote{Pour implémenter ses commandes, \LaTeX\ utilise de nombreuses commandes +internes auxquelles les utilisateurs n'ont en général pas besoin d'avoir accès. Pour empêcher +que les noms de ces commandes internes entrent accidentellement en conflit avec des noms +définis par l'utilisateur, \LaTeX\ inclut un \texttt{@} dans les noms de ces commandes +internes. Puisque les noms des commandes \LaTeX\ ne peuvent contenir que des lettres, définir +une commande dont le nom contient un \texttt{@} n'est normalement pas possible. Cependant, la +commande \CS{makeatletter}\label{EP+makeatletter}\index{makeatletter@\CS{makeatletter}, commande} +fait que \LaTeX\ traitera \texttt{@} comme une lettre, ce qui +permet de mettre \texttt{@} dans des noms de commande. La commande +\CS{makeatother}\label{EP+makeatother}\index{makeatother@\CS{makeatother}, commande} fait que +\LaTeX\ recommence à traiter le \texttt{@} normalement, comme une non-lettre. Tout code +utilisateur qui accède à ou redéfinit des commandes internes doit être entouré de +\CS{makeattletter} et \CS{makeatother}.\hfill\null\\%[\medskipamount] +NdT: utiliser et/ou redéfinir des commandes internes +sont des actions qui demandent le plus grand soin et une connaissance du fonctionnement interne +de \LaTeX.}. Il faut donc que toute commande \verb|\setlength| qui modifie l'une de ces +longueurs doit être placée entre \verb|\makeatletter| et \verb|\makeatother|\,\footnote{NdT: +ou effectuée par un paquetage.}. Par exemple, +\begin{verbatim} + \makeatletter \addtolength{\@fpsep}{4pt} \makeatother +\end{verbatim} +augmente de 4~points l'espacement entre les éléments flottants sur une page d'éléments flottants. +\begin{table}[ht] +\topcaption{Espacement des figures pour les pages d'éléments flottants}\label{t10+epsl} +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.70\textwidth}|@{}} +\cline{1-3} +\CS{@fptop}&\hfill&C'est l'espacement vertical au dessus de l'élément flottant en haut de la +page d'éléments flottants. La valeur par défaut est \texttt{0pt plus 1.0fil}\\\cline{1-3} +\CS{@fpsep}&\hfill&C'est l'espacement vertical entre deux éléments flottants sur une +page d'éléments flottants. La valeur par défaut est \texttt{0pt plus 2.0fil}\\\cline{1-3} +\CS{@fpbot}&\hfill&C'est l'espacement vertical en dessous de l'élément flottant en bas de la +page d'éléments flottants. La valeur par défaut est \texttt{0pt plus 1.0fil}\\\cline{1-3} +\end{tabular*}% +\label{EP+@fpbot}\index{fpbot@\CS{{\AT}fpbot}, longueur}% +\label{EP+@fptop}\index{fptop@\CS{{\AT}fptop}, longueur}% +\label{EP+@fpsep}\index{fpsep@\CS{{\AT}fpsep}, longueur} +\end{table} + +\FloatBarrier +\lneed{5} +\subsection{Filets horizontaux au dessus et/ou en dessous de la figure} +\begin{table}[ht] +\topcaption{Commandes pour filets de figures}\label{t11+epsl} +\begin{tabular*}{\textwidth}{|l@{\extracolsep{\fill}}l|p{.70\textwidth}|@{}} +\cline{1-3} +\CS{topfigrule}&\hfill&Cette commande est exécutée après le dernier élément flottant en haut +d'une page, mais avant l'espacement \CS{textfloatsep} (voir la Section~\vref{ss+epsl+EF}).\\\cline{1-3} +\CS{botfigrule}&\hfill&Cette commande est exécutée avant le premier élément flottant en bas +d'une page, mais après l'espacement \CS{textfloatsep} (voir la Section~\vref{ss+epsl+EF}).\\\cline{1-3} +\end{tabular*}% +\label{EP+botfigrule}\index{botfigrule@\CS{botfigrule}, commande}% +\label{EP+topfigrule}\index{topfigrule@\CS{topfigrule}, commande} +\end{table} +Des filets horizontaux peuvent être tracés automatiquement entre le texte et les figures qui +apparaissent en haut ou en bas de la page en redéfinissant les commandes \verb|\topfigrule| +et \verb|\botfigrule|. Bien que \verb|\topfigrule| et \verb|\botfigrule| soient déjà +définies en tant que commandes \LaTeX, la manière étrange\virage{} dont elles le sont oblige à +les redéfinir exceptionnellement avec \verb|\newcommand| et non, comme il serait normal, avec +\verb|\renewcommand|. + +Pour éviter de ruiner la mise en page, ces commandes doivent avoir une hauteur nulle. Donc +tracer un filet épais de 0.4~point doit être compensé par un espacement vertical négatif de +0.4~point. Par exemple +\begin{quote} +\verb|\newcommand{\topfigrule}{\hrule\vspace{-0.4pt}}| +\end{quote} +Puisque \verb|\topfigrule| est exécutée avant l'espacement \verb|\textfloatsep|, la commande +ci-dessus ne donne aucun espacement entre la figure et le filet. Les commandes suivantes +offrent 5~points d'espacement entre la figure et le filet: +\begin{quote} +\verb|\newcommand{\topfigrule}{%|\\ +\verb| \vspace*{5pt}\hrule\vspace*{-5.4pt}}|\\ +\verb|\newcommand{\botfigrule}{%|\\ +\verb| \vspace*{-5.4pt}\hrule\vspace*{5pt}}| +\end{quote} +La définition de \verb|\topfigrule| descend d'abord de 5~points (dans l'espacement défini par +\CS{textfloatsep}) pour donner de l'espace entre la figure et le filet. Puis elle trace un +filet horizontal de 0.4~point et remonte de 5.4~points pour compenser le déplacement vers les +bas antérieur. De manière analogue, la commande \verb|\botfigrule| trace un filet de 0.4~point +avec un espacement de 5~points entre la figure et le filet. + +Puisque ces commandes placent 5~points d'espacement entre le filet et la figure, l'espacement +entre le filet et le texte est \texttt{\CS{textfloatsep}~-~5pt} (voir la Section~\vref{ss+epsl+EF}). + +L'épaisseur du filet peut être modifiée (sa valeur par défaut est de 0.4~point) en utilisant +l'option \texttt{height} de la commande \verb|\hrule|: +\begin{quote} +\verb|\newcommand{\topfigrule}{%|\\ +\verb| \vspace*{5pt}\hrule height0.8pt\vspace*{-5.8pt}}|\\ +\verb|\newcommand{\botfigrule}{%|\\ +\verb| \vspace*{-5.8pt}\hrule height0.8pt\vspace*{5pt}}| +\end{quote} +Notes sur les filets des figures: +\begin{itemize} +\item Les commandes \verb|\topfigrule| et \verb|\botfigrule| n'affectent ni les figures sur +les pages d'éléments flottants, ni les figures «~here~» (utilisant l'option \texttt{h}). Si +une figure «~here~» se trouve placée en haut ou en bas d'une page, aucun filet n'est tracé. +\item Les filets horizontaux sont aussi larges que le texte, même si des figures larges (voir +la Section~\vref{s+epsl+FL}) sont utilisées. +\item La commande \PlainTeX\ \verb|\hrule| a été utilisée au lieu de la commande \LaTeX\ +\verb|\rule| car \verb|\rule| engendrerait un espacement supplémentaire lorsque +\verb|\parskip| n'est pas nul. +\end{itemize} + +\FloatBarrier +\subsection{Espacement vertical de la légende}\label{ss+epsl+EVC}\label{EP+caption+2}\index{caption!espacement vertical} +\LaTeX\ suppose que les légendes sont placées en dessous des graphique, en mettant plus +d'espacement vertical au dessus de la légende qu'en dessous de celle-ci. Il en résulte que les +commandes +\begin{quote} +\begin{verbatim} +\begin{figure}[ht] \centering + \caption{Légende au dessus du dessin}\label{f11+epsl} + \includegraphics[width=1in]{graphic.eps} +\end{figure} +\end{verbatim} +\end{quote} +produisent la Figure~\vref{f11+epsl}, dont le caption est placé un peu trop près du +graphique. +\begingroup +\psfrag{Graphic}[][][0.8]{Graphique} +\begin{figure}[htp] \centering{% +\caption{Légende au dessus du dessin}\label{f11+epsl} +\includegraphics[width=1in]{graphic.eps}} +\end{figure} +\endgroup + +L'espacement de la légende est contrôlé par les longueurs \label{EP+abovecaptionskip}\verb|\abovecaptionskip|\index{abovecaptionskip@\CS{abovecaptionskip}, longueur} (qui vaut 10pt +par défaut) et \label{EP+belowcaptionskip}\verb|\belowcaptionskip|\index{belowcaptionskip@\CS{belowcaptionskip}, longueur} (qui est nulle par défaut). Les commandes standard de +\LaTeX\ \verb|\setlength| et \verb|\addtolength| sont utilisées pour modifier ces longueurs. +Par exemple, les commandes +\begin{quote} +\begin{verbatim} +\begin{figure}[htp] + \setlength{\abovecaptionskip}{0pt} + \setlength{\belowcaptionskip}{10pt} + \centering + \caption{Légende au dessus du dessin}\label{f12+epsl} + \includegraphics[width=1in]{graphic.eps} +\end{figure} +\end{verbatim} +\end{quote} +donnent la Figure~\vref{f12+epsl}, qui n'a pas d'espace supplémentaire au dessus de la légende +et 10~points d'espace entre la légende et le dessin. +\begingroup +\psfrag{Graphic}[][][0.8]{Graphique} +\begin{figure}[htp] +\centering{% +\setlength{\abovecaptionskip}{0pt} +\setlength{\belowcaptionskip}{10pt} +\caption{Légende au dessus du dessin}\label{f12+epsl} +\includegraphics[width=1in]{graphic.eps}} +\end{figure} +\endgroup + +Si un document a toutes ses légendes en haut de ses éléments flottants, les commandes +\begin{quote} +\verb|\setlength{\abovecaptionskip}{0pt}|\\ +\verb|\setlength{\belowcaptionskip}{10pt}| +\end{quote} +peuvent être invoquées dans le préambule du document afin d'affecter l'espacement pour +\emph{tous} les légendes du document. Si un document contient des légendes en haut de certains +éléments flottants\,\footnote{NdT: par exemple, les tables.} et en bas des autres éléments +flottants, il peut être souhaitable de définir la commande suivante\,\footnote{NdT: voir le +paquetage \texttt{topcapt}\ifguide, décrit page~\pageref{o+topcapt}\fi.}: +\begin{quote} +\begin{verbatim} +\newcommand{\topcaption}{% + \setlength{\abovecaptionskip}{0pt}% + \setlength{\belowcaptionskip}{10pt}% + \caption} +\end{verbatim} +\end{quote} +Alors \verb|\topcaption{texte de la légende}| produit une légende qui est correctement placé pour +le haut d'un élément flottant. + +\FloatBarrier +\subsection{Étiquette de légende}\label{ss+epsl+EC}\index{caption!etiquette@étiquette} +Par défaut, \LaTeX\ insère une étiquette de légende telle que «~Figure~\ref{f13+epsl}~» au début +de la légende. La portion «~Figure~» peut être changée en redéfinissant la commande +\verb|\figurename|\label{EP+figurename}\index{figurename@\CS{figurename}, commande}. Par exemple, les commandes +\begin{quote} +\begin{verbatim} +\begin{figure}[htp] \centering +\includegraphics[width=1in]{graphic.eps} +\caption{Ceci est la légende}\label{f13+epsl} +\end{figure} +\end{verbatim} +\end{quote} +produisent la Figure~\vref{f13+epsl}. La fonte de la légende, le délimiteur~«~{\froff:}~» et +d'autres caractéristiques de la légende peuvent être adaptés avec le package \texttt{caption2} +(voir la Section~\vref{s+epsl+C2})\ifguide, décrit page~\pageref{o+caption2}\fi. +\begingroup +\psfrag{Graphic}[][][0.8]{Graphique} +\begin{figure}[htp] \centering{% +\includegraphics[width=1in]{graphic.eps} +\caption{Ceci est la légende}}\label{f13+epsl} +\end{figure} +\endgroup + +\FloatBarrier +\subsection{Reporter les figures en fin de document}\label{ss+epsl+RFFD} +Certains journaux demandent que les tables et figures soient séparées du texte. Le paquetage +\texttt{endfloat}\index{endfloat@\texttt{endfloat}, paquetage} +\ifguide(décrit page~\pageref{o+endfloat}) \fi +reporte toutes les figures et tables en +fin de document. Il suffit d'inclure ce paquetage +\begin{quote} +\verb|\usepackage{endfloat}| +\end{quote} +pour l'activer. Ce paquetage offre de nombreuses options qui peuvent être spécifiées dans la +commande \verb|\usepackage|; parmi ces options: +\begin{itemize} +\item Des notes telles que «~[Figure~4 about here]~» sont placées approximativement là où les +éléments flottants seraient apparus dans le texte. De telles notes peuvent être supprimées par +l'option de paquetage \texttt{nomarkers} +\begin{quote} +\verb|\usepackage[nomarkers]{endfloat}| +\end{quote} +Le texte de ces notes peut être modifié en redéfinissant les commandes \verb|\figureplace| et +\verb|\tableplace|. Par exemple, +\begin{quote} +\begin{verbatim} + \renewcommand{\figureplace}{% + \begin{center}% + [\figurename~\thepostfig\ would appear here.]% + \end{center} +\end{verbatim} +\end{quote} +modifie le texte \verb|\figureplace|. +\item Une liste des figures est incluse avant les figures et une liste des tables est incluse +avant les tables. Les options de paquetage \texttt{nofiglist} et \texttt{notablist} suppriment +ces listes. +\item Les options de paquetage \texttt{fighead} et \texttt{tabhead} créent des en-têtes de +section pour les figures et les tables, respectivement. +\item Les figures apparaissent \emph{avant} les tables. L'option de paquetage +\texttt{tablesfirst} inverse cet ordre. +\item Une commande \verb|\clearpage|\label{EP+clearpage+2}\index{clearpage@\CS{clearpage}, commande} est exécutée après chaque figure et table, ce qui fait que +chaque élément flottant sera seul sur sa page. Ceci peut être changé en modifiant la commande +\verb|\efloatseperator|. Par exemple, +\begin{quote} +\index{efloatseparator@\CS{efloatseparator}, commande}\label{EP+efloatseparator}\verb|\renewcommand{\efloatseparator}{\mbox{}}| +\end{quote} +place une boîte vide entre chaque élément flottant. +\end{itemize} + +\enlargethispage*{2\baselineskip} +\section{Adaptation des légendes avec \texttt{caption2}}\label{s+epsl+C2}\index{caption2@\texttt{caption2}, paquetage} +Les Sections~\vref{ss+epsl+EVC} et~\vref{ss+epsl+EC} décrivent comment adapter l'étiquette le +la légende et l'espacement vertical de la légende. Les autres caractéristiques de la légende peuvent +être adaptées grâce au paquetage \texttt{caption2}\,\footnote{Puisque le paquetage original +\texttt{caption}% +\ifguide, décrit page~\pageref{o+caption},\fi\ +a quelques effets de bord indésirables +(comme de devoir être chargé \emph{après} les autres paquetages), il a été complètement +ré-écrit et renommé \texttt{caption2}. Bien que le paquetage \texttt{caption2} soit +techniquement dans une version bêta, il est assez stable et fonctionne bien.\looseness=-5}% +\ifguide, décrit page~\pageref{o+caption2}\fi. + +Le paquetage \texttt{caption2} peut être utilisé avec de nombreux types d'éléments flottants +car il supporte les paquetages \texttt{float}\index{float@\texttt{float}, paquetage}, \texttt{longtable} et \texttt{subfigure} et +fonctionne aussi avec les paquetages \texttt{floatfig}, \texttt{floatflt}, \texttt{rotating}, +\texttt{supertabular} et \texttt{wrapfig}. +% +\begin{flushleft}%\large +\noindent\textbf{Syntaxe:}\qquad\verb|\usepackage[|\<options>\verb|]{caption2}| +\end{flushleft}\nopagebreak[4] +où les \<options> sont décrites dans la Table~\vref{t12+epsl}. + +\subsection{Styles de légendes}\label{ss+epsl+SC}\index{caption!style} +Le paquetage \texttt{caption2} définit les styles de légende suivants, qui sont illustrés dans +les Figures~\ref{f14+epsl} à~\vref{f20+epsl}. + +\begin{table}[tb] +\topcaption{Options du paquetage \texttt{caption2}}\label{t12+epsl}% +\index{caption2@\texttt{caption2}, paquetage!options} +%\begin{tabular*}{\textwidth}{|p{1.5in}@{\extracolsep{\fill}}|p{1.1in}|p{.50\textwidth}|@{}} +\begin{tabular*}{\textwidth}{|p{1.2in}@{\extracolsep{\fill}}|p{1.30in}|p{.51\textwidth}|@{}} +\cline{1-3} +\raggedright Style de légende&\raggedright\texttt{normal, center, flushleft, flushright, centerlast, hang, +indent}&Sélectionne le style de légende (voir la Section~\vref{ss+epsl+SC}).\\\cline{1-3} +\raggedright Taille de fonte de la légende&\raggedright\texttt{scriptsize, footnotesize, small, normalsize, +large. Large}&Sélectionne la taille de la fonte pour l'étiquette de la légende (par exemple +«~Figure~12:~») et le texte de la légende.\\\cline{1-3} +\raggedright Forme de fonte pour l'étiquette de la légende&\raggedright\texttt{up, it, sl, +sc}&Fait que l'étiquette de la légende (par exemple «~Figure~12:~») aura une forme droite, +italique, inclinée ou petites capitales, respectivement. \textbf{N'affecte pas le texte de la +légende.}\\\cline{1-3} +\raggedright Graisse de fonte pour l'étiquette de la légende&\raggedright\texttt{md, bf}&Fait que +l'étiquette de la légende (par exemple «~Figure~12:~») aura une graisse moyenne ou forte, respectivement. +\textbf{N'affecte pas le texte de la légende.}\\\cline{1-3} +\raggedright Famille de fonte pour l'étiquette de la légende&\raggedright\texttt{rm, sf, tt}&Fait que +l'étiquette de la légende (par exemple «~Figure~12:~») aura une fonte romaine, sans serif ou +machine à écrire, respectivement. \textbf{N'affecte pas le texte de la légende.}\\\cline{1-3} +\raggedright Mise en page d'une légende d'une seule ligne&\raggedright\texttt{oneline, +nooneline}&Contrôle la mise en page des légendes d'une seule ligne (voir la +Section~\vref{ss+epsl+C1L}).\\\cline{1-3} +\end{tabular*} +\end{table} +\begin{description} +\item[normal]\NL +Les lignes pleines sont justifiées (alignées sur les marges gauche et droite) et la dernière +ligne est cadrée sur la gauche. +\item[center]\NL +Toutes les lignes de la légende sont centrées. +\item[flushleft]\NL +Toutes les lignes de la légende sont cadrées sur la gauche, le bord droit est en déchiqueté. +\item[flushright]\NL +Toutes les lignes de la légende sont cadrées sur la droite, le bord gauche est en déchiqueté. +\item[centerlast]\NL +Toutes les lignes sont justifiées, la dernière est centrée. +\item[indent]\NL +Comme le style «~\textbf{normal}~», mais la deuxième ligne et les suivantes sont indentées de +la longueur \verb|\captionindent|\label{EP+captionindent}\index{captionindent@\CS{captionindent}, longueur}. Comme +%cette longueur +celle-ci +%\verb|\captionindent| +est nulle par défaut, il faut +utiliser une commande telle que \verb|\setlength{\captionindent}{1cm}| pour établir +l'indentation. +\item[hang]\NL +Comme le style «~\textbf{normal}~», mais la deuxième ligne et les suivantes sont indentées de +la largeur de l'étiquette de la légende (par exemple, «~Figure~12:~»). +\end{description} +Habituellement, ces styles sont spécifiés comme options du paquetage: +\begin{quote} +\verb|\usepackage[centerlast]{caption2}| +\end{quote} +qui fait que toutes les options dans le document seront dans le style \texttt{centerlast}. + +\subsection{Changer le style de légende}\index{caption!style} +La commande \verb|\captionstyle|\label{EP+captionstyle}\index{captionstyle@\CS{captionstyle}, commande} change le style de légende. En plaçant la commande à +l'intérieur d'un environnement vous ne changerez que les légendes qui sont dans cet environnement. +Par exemple, les commandes +\begin{verbatim} + \begin{figure} + \captionstyle{centerlast} + \centering \includegraphics[width=3in]{graphic.eps} + \caption{Style de légende centerlast. Style de légende centerlast} + \end{figure} +\end{verbatim} +donnera un style \texttt{centerlast} seulement à la figure courante car \verb|\captionstyle| +est à l'intérieur de l'environnement \texttt{figure}. Les commandes +\begin{verbatim} + \captionstyle{centerlast} + \begin{figure} + \centering \includegraphics[width=3in]{graphic.eps} + \caption{Style de légende centerlast. Style de légende centerlast} + \end{figure} +\end{verbatim} +donnent à toutes les figures qui suivent un style \texttt{centerlast} car \verb|\captionstyle| +est en dehors de l'environnement \texttt{figure}. + +\begingroup +\psfrag{Graphic}[][][1.36]{Graphique} +\begin{figure}[htb] +\setlength{\wlength}{\textwidth} +\centering +\begin{minipage}[t]{1.7in} +\captionstyle{normal} +\centering{% +%\psfrag{Graphic}[][]{Graphique} +\includegraphics[width=1.7in]{graphic.eps} +\caption{Style de légende normal. Style de légende normal. Style de légende normal}\label{f14+epsl}} +\end{minipage}% +\hspace*{.5in}% +\begin{minipage}[t]{1.7in} +\captionstyle{center} +\centering{% +%\psfrag{Graphic}[][]{Graphique} +\includegraphics[width=1.7in]{graphic.eps} +\caption{Style de légende center. Style de légende center. Style de légende center}\label{f15+epsl}} +\end{minipage}% +\hspace*{.5in}% +\begin{minipage}[t]{1.7in} +\captionstyle{centerlast} +\centering{% +%\psfrag{Graphic}[][]{Graphique} +\includegraphics[width=1.7in]{graphic.eps} +\caption{Style de légende centerlast. Style de légende centerlast. Style de légende centerlast}\label{f16+epsl}} +\end{minipage}% +\\%*[\baselineskip] +\null\strut\\%*[\baselineskip] +\begin{minipage}[t]{1.7in} +\captionstyle{flushleft} +\centering{% +%\psfrag{Graphic}[][]{Graphique} +\includegraphics[width=1.7in]{graphic.eps} +\caption{Style de légende flushleft. Style de légende flushleft. Style de légende flushleft}\label{f17+epsl}} +\end{minipage}% +\hspace*{.5in}% +\begin{minipage}[t]{1.7in} +\captionstyle{flushright} +\centering{% +%\psfrag{Graphic}[][]{Graphique} +\includegraphics[width=1.7in]{graphic.eps} +\caption{Style de légende flushright. Style de légende flushright. Style de légende flushright}\label{f18+epsl}} +\end{minipage}% +\\*[\baselineskip]% +\null\strut\\*[\baselineskip]% +\begin{minipage}[t]{1.7in} +\captionstyle{indent} +\centering{% +%\psfrag{Graphic}[][]{Graphique} +\includegraphics[width=1.7in]{graphic.eps} +\caption{Style de légende indent. Style de légende indent. Style de légende indent}\label{f19+epsl}} +\end{minipage}% +\hspace*{.5in}% +\begin{minipage}[t]{1.7in} +\captionstyle{hang} +\centering{% +%\psfrag{Graphic}[][]{Graphique} +\includegraphics[width=1.7in]{graphic.eps} +\caption{Style de légende hang. Style de légende hang. Style de légende hang}\label{f20+epsl}} +\end{minipage}% +\end{figure} +\endgroup + +\FloatBarrier +\subsection{Légendes sur une ligne}\label{ss+epsl+C1L}\index{caption!sur une ligne} +Si la légende ne fait qu'une seule ligne, tous les styles ci-dessus centrent la légende. Pour +forcer les styles à agir aussi sur les légendes d'une seule ligne, il faut ajouter l'option +\texttt{nooneline}: +\begin{quote} +\verb|\usepackage[nooneline,flushleft]{caption2}| +\end{quote} +Ceci met en page \emph{toutes} les légendes (y compris celles d'une seule ligne) avec le style +\texttt{flushleft}. Pour changer l'option \texttt{nooneline} à l'intérieur du document, +\verb|\onelinecaptionstrue|\label{EP+onelinecaptiontrue}\index{onelinecaptiontrue@\CS{onelinecaptiontrue}, commande} +centre les légendes d'une seule ligne alors que son contraire +\verb|\onelinecaptionsfalse|\label{EP+onelinecaptionfalse}\index{onelinecaptionfalse@\CS{onelinecaptionfalse}, commande} +met en page les légendes d'une seule ligne. Par exemple, les +commandes +\begin{verbatim} + \begin{figure} + \captionstyle{flushleft} + \onelinecaptionstrue + \centering + \includegraphics[width=2.5in]{graphic.eps} + \caption{Première légende} + \end{figure} +\end{verbatim} +centre les légendes d'une seule ligne comme le montre la Figure~\vref{f21+epsl}. + \begin{figure}[htb] + \captionstyle{flushleft} + \onelinecaptionstrue + \psfrag{Graphic}[][][2]{Graphique} + \centering{% + \includegraphics[width=2.5in]{graphic.eps} + \caption{Première légende}\label{f21+epsl}} + \end{figure} + +\noindent +Les commandes +\begin{verbatim} + \begin{figure} + \captionstyle{flushleft} + \onelinecaptionsfalse + \centering + \includegraphics[width=2.5in]{graphic.eps} + \caption{Seconde légende} + \end{figure} +\end{verbatim} +font que les légendes d'une seule ligne seront justifiées à gauche comme le montre la +Figure~\vref{f22+epsl}. + \begin{figure} + \captionstyle{flushleft} + \onelinecaptionsfalse + \centering + \psfrag{Graphic}[][][2]{Graphique} + \includegraphics[width=2.5in]{graphic.eps} + \caption{Deuxième caption}\label{f22+epsl} + \end{figure} + +\FloatBarrier +\subsection{Largeurs de légendes}\index{caption!largeur} +Le paquetage \texttt{caption2}\index{caption2@\texttt{caption2}, paquetage} offre des fonctions qui spécifient directement la largeur et +les marges des légendes. +\begin{itemize} +\item +\verb|\setcaptionwidth{|\<largeur>\verb|}|\label{EP+setcaptionwidth}\index{setcaptionwidth@\CS{setcaptionwidth}, commande} +établit la largeur de légende\item{caption!largeur} à la \<largeur> +donnée, où \<largeur> est une longueur exprimée dans l'une des unités valides pour \TeX. +\item +\verb|\setcaptionmargin{|\<marge>\verb|}|\label{EP+setcaptionmargin}\index{setcaptionmargin@\CS{setcaptionmargin}, commande} +établit la largeur des marges de la légende à la +dimension \<marge>, où \<marge> est une longueur exprimée dans l'une des unités valides pour \TeX. +La légende sera alors large de la largeur standard moins deux fois \<marge>. + +Si \<marge> est négative, la légende sera rendu plus large que la normale, ce qui peut être +utile dans des sous-figures et des environnements \texttt{minipage}. +\end{itemize} +Par exemple, les commandes +\begin{verbatim} + \begin{figure} + \setcaptionwidth{2in} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Légende de figure limitée à 2~pouces.} + \end{figure} +\end{verbatim} +donne une légende large de 2~pouces, comme le montre la Figure~\vref{f23+epsl}. + \begin{figure}[htb] + \setcaptionwidth{2in} + \psfrag{Graphic}[][][1.6]{Graphique} + \centering{% + \includegraphics[width=2in]{graphic.eps} + \caption{Légende de figure limité à 2~pouces.}}\label{f23+epsl} + \end{figure} + +Alors que l'exemple précédent établit directement la largeur de la légende, la largeur peut être +établie indirectement en spécifiant l'espacement entre la légende et chaque marge. Par +exemple, les commandes +\begin{verbatim} + \begin{figure} + \setcaptionmargin{1in} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Légende de figure dans laquelle + il y a un pouce d'espacement + entre la légende et chaque marge.} + \end{figure} +\end{verbatim} +indente les deux côtés de la légende d'un pouce par rapport aux marges de page, comme le montre la +Figure~\vref{f24+epsl}. + \begin{figure} + \setcaptionmargin{1in} + \psfrag{Graphic}[][][1.6]{Graphique} + \centering% + \includegraphics[width=2in]{graphic.eps} + \caption{Légende de figure dans laquelle + il y a un pouce d'espacement + entre la légende et chaque marge.}\label{f24+epsl} + \end{figure} + +\FloatBarrier +\subsubsection{Forcer la largeur de la légende à celle du dessin} +La section précédente décrivait comment la commande \verb|\setcaptionwidth| donnait une +largeur spécifiée à la légende. + +Cette section décrit comment forcer la largeur de la légende à être la même que celle du dessin +de la figure. C'est très facile si vous connaissez la largeur du dessin: +\begin{verbatim} + \includegraphics[width=3in]{file.eps} + \setcaptionwidth{3in} + \caption{...} +\end{verbatim} +Lorsque la largeur de la légende est inconnue, la largeur peut être déterminée en mettant le +graphique dans une boîte et en mesurant la largeur de la boîte. + +\lneed{8} +\begin{verbatim} + \newsavebox{\mybox} + \newlength{\mylength} + ... + \begin{figure} \centering + \sbox{\mybox}{\includegraphics[height=3in]{file.eps}} + \settowidth{\mylength}{\usebox{\mybox}} + \setcaptionwidth{\mylength} + \usebox{\mybox} + \caption{Ceci est une légende de figure très longue, + longue, longue, longue, longue, longue, longue, longue} + \end{figure} +\end{verbatim} +Ceci peut aussi être utilisé de manière analogue avec les tables. \verb|\mybox| et +\verb|\mulength| peuvent être utilisées plusieurs fois dans un document, mais +par contre +les commandes \verb|\newsavebox| et \verb|\newlength| ne peuvent être utilisées qu'une seule fois +avec le même argument\,\footnote{NdT: on ne peut pas créer deux «~nouveaux~» objets avec le +même nom.}. + +\subsection{Délimiteur de légende}\index{caption!delimiteur@délimiteur} +Le délimiteur de caption, qui est par défaut un deux-points, peut être changé en redéfinissant +la commande \verb|\captionlabeldelim|\label{EP+captionlabeldelim}\index{captionlabeldelim@\CS{captionlabeldelim}, commande}. +Par exemple, les commandes +\begin{verbatim} + \begin{figure} + \renewcommand{\captionlabeldelim}{.} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Légende avec un nouveau délimiteur} + \end{figure} +\end{verbatim} +changent le délimiteur dans la Figure~\vref{f25+epsl} en remplaçant le deux-points (valeur par +défaut) par un point. Si un espacement supplémentaire est souhaité après le point, +\begin{verbatim} + \renewcommand{\captionlabeldelim}{.~} +\end{verbatim} +\begin{figure}[ht] + \psfrag{Graphic}[][][1.6]{Graphique} + \renewcommand{\captionlabeldelim}{.} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Légende avec un nouveau délimiteur}\label{f25+epsl} +\end{figure} + +\FloatBarrier +\subsection{Fonte de la légende}\index{caption!fonte} +Alors que les options de taille \texttt{scriptsize},\ldots,\texttt{Large} du paquetage +\texttt{caption2} changent la taille à la fois de l'étiquette de légende (par exemple, +«~Figure~12:~») et du texte de la légende, les options de forme, de graisse et de famille +\texttt{up}, \texttt{it}, \texttt{sl}, \texttt{sc}, \texttt{md}, \texttt{bf}, \texttt{rm}, \texttt{sf} +et \texttt{tt} n'affectent que l'étiquette de légende. + +Le paquetage \texttt{caption2} permet aussi aux utilisateurs d'établir la fonte pour des +légendes individuelles. La commande +\verb|\captionfont|\label{EP+captionfont}\index{captionfont@\CS{captionfont}, commande} établit la fonte pour l'étiquette de +légende \emph{et} le texte de la légende, alors que \verb|\captionlabelfont|\label{EP+captionlabelfont}\index{captionlabelfont@\CS{captionlabelfont}, commande} n'établit la fonte +\emph{que pour} l'étiquette de légende. Donc, pour établir la fonte seulement pour le texte du +caption, il faut utiliser \verb|\captionfont| pour établir la fonte du texte du caption alors +que \verb|\captionlabelfont| doit être utilisée pour établir la fonte de l'étiquette de +légende, en particulier en enlevant les propriétés de fonte établies par \verb|\captionfont|. +La légende est effectivement créée par les commandes suivantes: +\begin{verbatim} + {\captionfont% + {\captionlabelfont \captionlabel \captionlabeldelim}% + \captiontext} +\end{verbatim} +où la commande \verb|\captionlabel| produit «~Figure~12~», le \verb|\captionlabeldelim| +produit \froff«~:~»\fron\ et \verb|\captiontext| produit le texte de la légende. + +Les fontes \LaTeX\ sont décrites par taille et par trois composantes de style de caractère: la +forme, la graisse et la famille (\cite[pages~37,115]{latex-manual} et +\cite[pages~170-171]{latex-comp}). Ces quatre caractéristiques peuvent toutes être spécifiées +dans les commandes \verb|\captionfont| et \verb|\captionlabelfont|. Par exemple, les +commandes +\begin{verbatim} + \begin{figure}[ht] + \renewcommand{\captionfont}{\Large \bfseries \sffamily} + \renewcommand{\captionlabelfont}{} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Test de légende} + \end{figure} +\end{verbatim} +produisent la Figure~\vref{f26+epsl}. Dans cet exemple, \verb|\captionlabelfont| ne fait rien. +Ceci signifie qu'elle n'écrase aucune caractéristique de fonte et toutes les options de +\verb|\captionfont| sont transmises à l'étiquette de légende. Puisqu'aucune déclaration de +forme n'a été spécifiée, la légende en entier a la forme droite par défaut. +\begin{figure}[ht] + \psfrag{Graphic}[][][1.6]{Graphique} + \renewcommand{\captionfont}{\Large \bfseries \sffamily} + \renewcommand{\captionlabelfont}{} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Test de légende}\label{f26+epsl} +\end{figure} + +\noindent +Les~commandes +\begin{verbatim} + \begin{figure}[ht] + \renewcommand{\captionfont}{\Large \bfseries \sffamily} + \renewcommand{\captionlabelfont}{\small} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Test de légende} + \end{figure} +\end{verbatim} +produisent la Figure~\vref{f27+epsl}. Dans cet exemple, la taille de fonte \verb|\small| dans +la déclaration de +\verb|\captionlabelfont| prend le pas sur la taille de fonte \verb|\Large| venant de +la déclaration +\verb|\captionfont|. Cependant, comme \verb|\captionlabelfont| ne contient aucune déclaration +de graisse ou de famille, les déclarations \verb|\bfseries| et \verb|\sffamily| sont reportées +dans l'étiquette de légende. +\begin{figure}[ht] + \psfrag{Graphic}[][][1.6]{Graphique} + \renewcommand{\captionfont}{\Large \bfseries \sffamily}\label{EP+captionfont+1}\index{captionfont@\CS{captionfont}, commande} + \renewcommand{\captionlabelfont}{\small} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Test de légende}\label{f27+epsl} +\end{figure} + +\FloatBarrier +\lneed{10} +\subsection{Styles de légendes adaptés}\index{caption!adaptation de style} +Le paquetage \texttt{caption2} permet aussi aux utilisateurs de créer leurs propres styles de +légendes. Par exemple, les commandes suivantes +\begin{verbatim} + \newcaptionstyle{one}{% + \usecaptionmargin\captionfont% + \onelinecaption% + {{\bfseries\captionlabelfont\captionlabel\captionlabeldelim} + \captiontext}% + {{\centering\bfseries\captionlabelfont\captionlabel\par}% + \captiontext}} + + \newcaptionstyle{two}{% + \usecaptionmargin\captionfont% + {\centering\bfseries\captionlabelfont\captionlabel\par} + \onelinecaption{\captiontext}{\captiontext}} +\end{verbatim} +définissent les styles de légendes \texttt{one} et \texttt{two}. Pour les légendes de plus +d'une ligne, ces deux styles donnent une étiquette de légende en gras (par exemple, +«~\textbf{Figure~12}~») placée sur une ligne séparée du texte de la légende. Cependant, pour les +légendes courtes, le style \texttt{two} met l'étiquette de la légende en gras sur une ligne +séparée du texte de la légende, tandis que le style \texttt{one} les met sur la même ligne, +séparés par le délimiteur. Par exemple, après avoir définit les styles de légendes ci-dessus, +le code suivant: +\begin{verbatim} + \begin{figure} + \captionstyle{one} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Premier style de légende adapté} + \end{figure} + + \begin{figure} + \captionstyle{two} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Second style de légende adapté} + \end{figure} +\end{verbatim} +produit les Figures~\ref{f28+epsl} et~\vref{f29+epsl}. + \newcaptionstyle{one}{% + \usecaptionmargin\captionfont% + \onelinecaption% + {{\bfseries\captionlabelfont\captionlabel\captionlabeldelim} \captiontext}% + {{\centering\bfseries\captionlabelfont\captionlabel\par}\captiontext}} + + \newcaptionstyle{two}{% + \usecaptionmargin\captionfont% + {\centering\bfseries\captionlabelfont\captionlabel\par} + \onelinecaption{\captiontext}{\captiontext}} + \begin{figure}[ht] + \psfrag{Graphic}[][][1.6]{Graphique} + \captionstyle{one} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Premier style de légende adapté}\label{f28+epsl} + \end{figure} + + \begin{figure}[ht] + \psfrag{Graphic}[][][1.6]{Graphique} + \captionstyle{two} + \centering + \includegraphics[width=2in]{graphic.eps} + \caption{Second style de légende adapté}\label{f29+epsl} + \end{figure} + +\lneed{6} +\noindent +Notes sur les styles de légende adaptés: +\begin{itemize} +\item La commande \verb|\onelinecaption| prend deux arguments: le premier est effectué si la +légende est longue d'une ligne, alors que le second l'est si la légende fait plusieurs lignes. +\item Lors de l'écriture des styles adaptés, il n'est pas obligatoire d'utiliser des commandes comme +\verb|\captionfont| et \verb|\captionlabelfont|. Par contre, leur +utilisation est encouragée car elle rend les styles plus flexibles. + +Par exemple, la commande par défaut \verb|\bfseries| dans les exemples ci-dessus de styles +adaptés de légende peut être changée en définissant la commande \verb|\captionlabelfont|. Si une telle +flexibilité n'est pas nécessaire, les définitions ci-dessus de styles adaptés peuvent être +raccourcies de manière significative. +\end{itemize} + +\FloatBarrier +\subsection{Coupures de ligne dans les légendes}\index{caption!coupures de lignes dans un} +Si une légende est plus long qu'une ligne, des coupures de lignes peuvent être spécifiées par +\label{EP+protect}\index{protect@\CS{protect}, commande}% +\verb|\protect\\|. Lorsque la légende tient sur une seule ligne, elle est traitée dans une +\verb|\hbox|, qui ignore tout \verb|\\| ou \verb|\par|. + +Le paquetage \texttt{caption2} permet de spécifier des coupures de ligne pour des légendes de +longueur quelconque. Par exemple, les commandes +\begin{verbatim} + \begin{figure} \centering + \includegraphics[width=3in]{graphic.eps} + \captionstyle{center} + \onelinecaptionsfalse + \caption{Première ligne de la légende \protect\\ + Seconde ligne de la légende}% + \label{fig+caption+linebreak} + \end{figure} +\end{verbatim} +produisent la légende de la Figure~\vref{f30+epsl}. Comme la commande \verb|\\| est +fragile\,\footnote{Certaines commandes, comme \texttt{\bs textbf}, ne mettent aucune donnée +dans des fichiers auxiliaires. Les commandes qui sauvent des données en vue d'une utilisation +ultérieure (par exemple, \texttt{\bs caption} sauve le texte de la légende pour la liste des +figures) sont dites avoir des \emph{arguments flottants}\index{arguments flottants}% +\index{flottants@flottants (arguments)} \index{moving arguments}(\emph{moving arguments}). Les +commandes qui ne fonctionnent plus lorsqu'elles sont utilisées à l'intérieur d'un argument +mobile sont appelées \index{fragiles@fragiles (commandes)}\emph{fragiles}, alors que celles qui continuent à fonctionner +lorsqu'elles sont utilisées à l'intérieur d'un argument mobile sont appelées +\index{robustes@robustes (commandes)}\emph{robustes}.}, elle +doit être protégée par +\index{protect@\CS{protect}, commande}% +\verb|\protect|\,\footnote{NdT: une légende sur plusieurs lignes +explicites donne un résultat curieux dans la Liste des Figures. Rappelez-vous que la commande +\texttt{\bs caption} a aussi un argument optionnel. +Et que \texttt{\bs hfill} existe.}\index{hfill@\CS{hfill}, commande}. + \begin{figure}[htb] + \psfrag{Graphic}[][][2.4]{Graphique} + \centering + \includegraphics[width=3in]{graphic.eps} + \captionstyle{center} + \onelinecaptionsfalse + \caption{Première ligne de la légende \protect\\ Seconde ligne de la légende }% + \label{f30+epsl} + \end{figure} + +La commande \verb|\onelinecaptionsfalse|% +\label{EP+onelinecaptionfalse+1}\index{onelinecaptionfalse@\CS{onelinecaptionfalse}, commande} +(ou l'option de paquetage \texttt{nooneline} empêche +\LaTeX\ de traiter la légende dans une \verb|\hbox| qui ignorerait la coupure de ligne. + +\FloatBarrier +\subsection{Ajuster l'interlignage de la légende}\index{caption!interlignage} +Pour avoir un document en interligne double, il suffit d'inclure soit +\begin{quote} +\verb|\linespread{1.6}|\index{linespread@\CS{linespread}, commande}\label{EP+linespread} +\end{quote} +soit (ce qui est équivalent) +\begin{quote} +\verb|\renewcommand{\baselinestretch}{1.6}|\index{baselinestretch@\CS{baselinestretch}, commande}% +\label{EP+baselinestretch} +\end{quote} +dans le préambule\,\footnote{Bien que ce soit en général considéré comme d'un style pauvre, +ces commandes peuvent aussi être utilisées à l'intérieur d'un document pour changer +l'espacement entre les lignes. Lorsque ces commandes sont utilisées à l'intérieur d'un +document, une commande de changement de taille de fonte, comme \texttt{\bs normalsize}, doit +être appelée après la commande de changement d'interligne pour que celui-ci prenne effet.} du document. +En plus d'un texte en interligne double, ceci produit aussi des légendes et des notes de bas +de page en interligne double. Pour produire du texte en interligne double avec des légendes et +notes en interligne simple, utilisez le paquetage \texttt{setspace}\,\footnote{Bien que le +paquetage \texttt{doublespace} altère lui-aussi l'espacement entre les lignes, il n'a pas été +correctement mis à jour pour \LaTeXe, ce qui fait qu'il interagit avec de nombreux paquetages. +Il en résulte qu'il faudrait plutôt utiliser \texttt{setspace} à sa place.}% +\ifguide, décrit page~\pageref{s+setspace}\fi. +\begin{verbatim} + \usepackage{setspace} + \linestretch{1.5} +\end{verbatim} +Un paramère 1.0 pour \verb|\linestretch| donne un texte en interligne simple, 1.25 donne un +interligne de un et demi, et 1.6 donne un interlignage double. + +Que \texttt{setspace} soit utilisé ou non, la commande \verb|\captionfont|\label{EP+captionfont+2}\index{captionfont@\CS{captionfont}, commande} du paquetage +\texttt{caption2} peut être utilisée pour ajuster l'espacement de la légende. Par exemple, +\begin{verbatim} + \renewcommand{\captionfont}{\linespread{1.6}\normalsize} +\end{verbatim} +produit des légendes en interligne double, quelque soit l'interlignage du document. + +\section{Figures non flottantes}\label{s+epsl+FNF}% +\index{figures!non flottantes}\index{non flottantes (figures)} +Comme cela a été décrit dans la Section~\vref{s+epsl+EF}, \LaTeX\ laisse les figures et tables +«~flotter~» pour améliorer la mise en page du document. Occasionnellement, il est souhaitable +d'avoir d'avoir une figure qui apparaisse \emph{exactement} là où elle apparaît dans le source +\LaTeX\,\footnote{Puisque ceci peut produire de grandes zones verticales d'espace blanc, +empêcher les figures de flotter est en général considéré comme un style pauvre de mise en +page. Par contre, de meilleurs résultats sont en général obtenus en utilisant l'argument +optionnel \froff\texttt{[!ht]}\fron{} de l'environnement \texttt{figure}.}. La commande +\verb|\caption| peut être utilisée dans les environnements \texttt{figure} et \texttt{table} +parce que ces environnements définissent la commande interne\index{internes@internes, commandes} +\label{EP+captype}\verb|\@captype|\index{captype@\CS{{\AT}captype}, commande} par «~figure~» et +«~table~» respectivement. En définissant \verb|\@captype|, la commande \verb|\caption| peut +être utilisée en dehors des environnements \texttt{figure} et \texttt{table}. Une paire +\index{makeatletter@\CS{makeatletter}, commande}\verb|\makeatletter|--\verb|\makeatother|% +\index{makeatother@\CS{makeatother}, commande} \emph{doit} entourer \verb|\@captype| pour que le +\verb|@| soit utilisable dans un nom de commande. Bien que ceci puisse être fait manuellement +chaque fois par +\begin{verbatim} + \includegraphics{file.eps} + \makeatletter\def\@captype{figure}\makeatother + \caption{Voici la légende} +\end{verbatim} +il est plus facile de définir une commande pour faire cela. En insérant les commandes +suivantes dans le préambule du document +\begin{verbatim} + \makeatletter + \newcommand{\figcaption}{\def\@captype{figure}\caption} + \newcommand{\tabcaption}{\def\@captype{table}\caption} + \makeatother +\end{verbatim} +vous définissez les commandes \verb|\figcaption|\label{EP+figcaption}\index{figcaption@\CS{figcaption}, commande} +et \label{EP+tabcaption}\verb|\tabcaption|\index{tabcaption@\CS{tabcaption}, commande}. Le fait d'utiliser +\verb|\figcaption| crée des légendes de figures, que la commande apparaisse ou non à +l'intérieur d'un environnement \texttt{figure}. De même, \verb|\tabcaption| crée un caption de +table, quelque soit son emplacement. Les commandes suivantes +\begin{verbatim} + <texte avant la figure> + \\[\intextsep] + \begin{minipage}{\textwidth} + \centering + \includegraphics[width=2in]{graphic.eps}% + \figcaption{Ceci est une figure non flottante}% + \label{fig+non+float} + \end{minipage} + \\[\intextsep] + <texte après la figure> +\end{verbatim} + \makeatletter + \newcommand{\figcaption}{\def\@captype{figure}\caption} + \newcommand{\tabcaption}{\def\@captype{table}\caption} + \makeatother +\null\hfill\null \\[\intextsep] + \begin{minipage}{\textwidth} + \psfrag{Graphic}[][][1.6]{Graphique} + \centering + \includegraphics[width=2in]{graphic.eps}% + \figcaption{Ceci est une figure non flottante}% + \label{fig+non+float} + \end{minipage} + \\[\intextsep] +créent une figure non flottante (la Figure~\vref{fig+non+float}). Notes sur les figures non +flottantes: +\begin{itemize} +\item l'environnement \texttt{minipage} est nécessaire pour éviter toute coupure de page à +l'intérieur de la figure. +\item Les commandes \verb|\\[\intextsep]| commencent des nouvelles lignes et ajoutent un +espacement vertical avant et après la figure. Une quantité quelconque d'espace peut être +utilisée, \verb|\intextsep|\index{intextsep@\CS{intextsep}, longueur} (voir la Section~\vref{ss+epsl+EF}) a été utilisé pour que +l'espacement autour de la figure non flottante soit cohérent avec celui autour des figures +flottantes. +\item Normalement, les figures sont placées sur la page dans le même ordre que leur soumission +à la file d'attente des figures. Cependant, les figures non flottantes sont placées +immédiatement, passant devant toute figure non encore traitée en attente dans la file. Si ceci +se produit, les figures n'apparaissent pas par ordre numérique\,\footnote{Dans de telles +situations, la table des figures liste les figures dans leur ordre d'apparition dans le +document, mais pas par ordre numérique.}. Pour éviter ces figures hors séquence, forcez toutes +les figures flottantes à être traitées en donnant une commande +\verb|\clearpage|\index{clearpage@\CS{clearpage}, commande} ou +\verb|\FloatBarrier|\index{FloatBarrier@\CS{FloatBarrier}, commande} avant la figure non flottante (voir la Section~\vref{ss+epsl+PEFNT}). +\item Les commandes \verb|\figcaption| et \verb|\tabcaption| sont également utiles pour créer +des figures marginales (section~\vref{s+epsl+FM}) et pour créer une table à côté d'une figure +(section~\vref{s+epsl+PTCF}). +\end{itemize} + +\subsection{L'option de placement \texttt{[H]} du paquetage \texttt{float}}% +\index{float@\texttt{float}, paquetage} +Le paquetage \texttt{float}\,\footnote{Le paquetage \texttt{float} permet à ses utilisateurs +de définir de nouveaux types d'éléments flottants, tels que «~Programme~», «~Algorithme~». Il +définit aussi des styles d'éléments flottants encadrés ou avec filets horizontaux.}% +\ifguide, décrit page~\pageref{o+float}\fi, ajoute une option de placement \verb|[H]| à l'environnement +\texttt{figure}, option +qui produit une figure non flottante. Pour utiliser l'option \verb|[H]|, ajoutez une commande +\verb|\usepackage{float}| dans le préambule et mettez une commande \verb|\restylefloat| +\emph{avant} d'utiliser \ifguide\else la commande \fi\verb|\begin{figure}[H]| +(voir\ifguide\ page~\pageref{fl+restylefloat} et\fi~\cite[page~149]{latex-comp}). +Mais le paquetage \texttt{float} a les effets de bord suivants: +\begin{enumerate}[1.] +\item Lorsque la figure \verb|[H]| ne rentre pas sur une page, la figure est déplacée vers le +sommet de la page suivante. Cependant, s'il y a des notes de bas de page sur la première page, +elles apparaissent immédiatement en dessous du texte au lieu du bas de la page. L'utilisateur +doit alors insérer manuellement un espacement devant la figure afin de repousser les notes en +bas de la page. +\item L'environnement \texttt{figure} défini par le paquetage \texttt{float} place toujours la +légende de la figure en bas de l'environnement \texttt{figure}. Bien que ceci n'affecte pas +les figures simples, ceci empêche d'avoir des légendes au dessus des graphiques comme dans la +Figure~\vref{f11+epsl} ou la construction de légendes latérales (comme dans la +Figure~\vref{f35+epsl}) et autres arrangements complexes de figures (comme les +Figures~\ref{f14+epsl}--\vref{f20+epsl}). +\end{enumerate} +Il en résulte que la commande \verb|\figcaption| définie dans la Section~\vref{s+epsl+FNF} est +en général une meilleure méthode pour construire des figures non flottantes que ne l'est +l'option de placement \verb|[H]| du paquetage \texttt{float}. + +\section{Figures marginales}\label{s+epsl+FM}\index{figures!marginales}\index{marginales (figures)} +La commande \label{EP+marginpar}\verb|\marginpar|\index{marginpar@\CS{marginpar}, commande} place des notes dans la marge du document. Les notes marginales +sont placées dans la marge de droite (documents en recto seul) ou dans la marge extérieure +(documents en recto-verso, option de classe de document \texttt{twoside}). La largeur de la +colonne marginale est contrôlée par la longueur \verb|\marginparwidth|, alors que l'espacement +entre le corps du texte et les notes marginales est contrôlé par la longueur +\verb|\marginparsep|. + +Les notes marginales sont placées de manière que leur première ligne soit alignée +verticalement avec la ligne de texte qui contient la commande \verb|\marginpar| +(spécifiquement, le point de référence de la première ligne de la note marginale est aligné +avec la ligne de base courante). + +Les notes marginales ne sont jamais coupées entre deux pages; si une note marginale commence +près du bas de la page, elle continue dans la marge du bas. Si la note marginale précédente va +interférer avec une note marginale, \LaTeX\ repousse la seconde note marginale vers la bas. +Les notes marginales ne peuvent pas être repoussées sur la page suivante; elles sont plutôt +poussées dans la marge de bas de page. Il en résulte qu'il faut parfois ajuster la position +des notes marginales avant l'impression finale pour éviter des notes marginales près des +coupures de page. + +\begingroup +\marginparwidth=0.6\marginparwidth +Puisque l'environnement \texttt{figure} ne peut hélas% +\marginpar{\centering + \renewcommand{\captionfont}{\tiny} + \captionstyle{center} + \psfrag{Graphic}[][][0.216]{Graphique} + \includegraphics[width=.6\marginparwidth]{graphic.eps}% + \figcaption{Une figure marginale}% + \label{f31+epsl} } + %\label{fig+marginal+fig} } +pas être utilisé dans une note marginale, il +n'est pas possible d'avoir des notes marginales flottantes. Cependant, il est +heureusement +possible d'utiliser la commande \verb|\figcaption|, définie +plus haut +dans la Section~\vref{s+epsl+FNF}, pour +construire une figure marginale +qui sera donc +non flottante. +Par exemple, la Figure~\vref{f31+epsl} a été produite par le code suivant +\lneed{8} +\begin{verbatim} +Puisque l'environnement \texttt{figure} ne peut hélas% +\marginpar{\centering + \renewcommand{\captionfont}{\tiny} + \captionstyle{center} + \includegraphics[width=.6\marginparwidth]{graphic.eps}% + \figcaption{Une figure marginale}% + \label{fig+marginal+fig} } +pas être utilisé dans une note marginale, il +\end{verbatim} +\endgroup +\lneed{5} +Le bas du graphique dans la Figure~\vref{f31+epsl} est aligné avec la ligne de base du texte +là où se trouve la commande \verb|\marginpar|. Qielques remarques sur les notes marginales: +\begin{itemize} +\item Puisque les légendes des figures marginales sont en général assez étroites, vous pouvez +améliorer leur mise en page en utilisant des commandes +telles +que \verb|\captionstyle{flushleft}|\index{flushleft@\texttt{flushleft}, style de caption} +ou \verb|\captionstyle{flushright}|\index{flushright@\texttt{flushright}, style de caption} +du paquetage \texttt{caption2}. +De plus, +la commande de \texttt{caption2}% +\begin{quote} +\verb|\renewcommand{\captionfont}{\small}| +\end{quote}% +peut être utilisée pour diminuer la taille de la fonte de la légende. Voir la Section~\vref{s+epsl+C2} +pour des informations sur le paquetage \texttt{caption2}\ifguide\ (et page~\pageref{o+caption2})\fi. +\item Comme les figures non flottantes de la Section~\vref{s+epsl+FNF}, les notes marginales +sont placées avant tout élément flottant non encore traité. Donc une commande +\verb|\clearpage|\verb|\clearpage|\index{clearpage@\CS{clearpage}, commande} ou +\verb|\FloatBarrier|\index{FloatBarrier@\CS{FloatBarrier}, commande} +doit être invoquée avant la note marginale si l'on +veut garder les figures dans l'ordre. +\item Les notes marginales sont placées par la routine qui place aussi les figures et les +tables. Si de nombreuses figures, tables et notes marginales sont utilisées, il est possible +de dépasser le nombre d'éléments flottants non encore traités permis par \LaTeX. Le paquetage +\texttt{morefloat}\index{morefloats@\texttt{morefloats}, paquetage} +peut aider à résoudre ces problèmes (voir la Section~\vref{ss+epsl+TMUF}). +\end{itemize} + +\FloatBarrier +\section{Figures larges}\label{s+epsl+FL}\index{figures!larges}\index{larges figures} +Les règles typographiques de lisibilité limitent le nombre de caractères dans une ligne de +texte. À moins qu'une grande fonte ou deux colonnes soient utilisées, ces règles de +lisibilité entraînent des marges larges (en particulier sur du papier en format «~letter~» de +$8.5\times11$ pouces, utilisé dans certains pays anglo-saxons). La Section~\vref{s+epsl+FM} a +démontré comment ces marges larges peuvent être utilisées pour les figures marginales. Une autre +option est de construire une figure flottante normale qui s'étend dans l'une des marge ou +dans les deux. Ceci peut se faire en plaçant un large environnement de liste à l'intérieur de +la figure. Par exemple, un environnement \texttt{narrow} peut être défini en incluant le code +ci-dessous dans le préambule de votre document: +\begin{verbatim} +\newenvironment{narrow}[2]{% + \begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\leftmargin}{#1}% + \setlength{\rightmargin}{#2}% + \setlength{\listparindent}{\parindent}% + \setlength{\itemindent}{\parindent}% + \setlength{\parsep}{\parskip}}% + \item[]}{\end{list}} +\end{verbatim} +Par exemple, tout texte qui se trouvera entre \verb|\begin{narrow}{1in}{2in}| est indenté de +1~pouce sur le bord gauche et de 2~pouces sur le bord droit. Si des longueurs négatives sont +utilisées, le contenu s'étendra au delà des marges. + +\subsection{Figures larges dans des documents en recto} +Le code ci-dessous utilise cet environnement \texttt{narrow} pour faire une figure qui s'étend +d'un demi pouce dans la marge gauche, produisant la Figure~\vref{f32+epsl}. +\begin{verbatim} + \begin{figure} + \begin{narrow}{-.5in}{0in} + \includegraphics[width=\linewidth]{wide.eps} + \caption{Ceci est une figure large} + \end{narrow} + \end{figure} +\end{verbatim} +\begin{figure}[ht] +\begin{narrow}{-.5in}{0in} + \psfrag{A Very, Very Wide Graphic}[][][2.7]{Un très, très large graphique} + \includegraphics[width=\linewidth]{wide.eps} + \caption{Ceci est une figure large}\label{f32+epsl} +\end{narrow} +\end{figure} + +La largeur \verb|\linewidth| spécifiée fait que le graphique sera aussi large que +l'environnement \texttt{narrow}, alors qu'une largeur de \verb|\textwidth| aurait donné un +graphique seulement aussi large que le texte avec les marges d'origine. + +Lorsque des notes marginales sont utilisées, il peut être souhaitable que la figure large +s'étende exactement jusqu'au bord des notes marginales (ce qui fait que la figure sera large +de \verb|\textwidth| $ {}+{} $ \verb|\marginparwidth| $ {}+{} $ \verb|\marginparsep|). Ceci peut se +faire en définissant une longueur \verb|\marginwidth| et en lui donnant la valeur +\verb|\marginparwidth| ${}+{}$ \verb|\marginparsep|. Par exemple, +\begin{verbatim} + \newlength{\marginwidth} + \setlength{\marginwidth}{\marginparwidth} + \addtolength{\marginwidth}{\marginparsep} +\end{verbatim} +puis utilisez \verb|{-\marginwidth}| dans l'argument de \verb|\begin{narrow}|. + +\FloatBarrier +\subsection{Figures larges dans des documents en recto-verso} +Pour les documents en recto-verso, il peut être souhaitable d'étendre les figures larges dans +la marge de reliure (c'est-à-dire la marge gauche pour les pages impaires, pages de droite, et +la marge droite pour les pages paires, pages de gauche). Dans ce cas, la commande +\verb|\ifthenelse|\label{EP+ifthenelse}\index{ifthenelse@\CS{ifthenelse}, commande} du paquetage \texttt{ifthen}\index{ifthen@\texttt{ifthen}, paquetage} +\ifguide(décrit page~\pageref{ifthen+sty})\ \fi +peut être +utilisée pour choisir entre le code pour les pages impaires et le code pour les pages +paires. +%BAD%\,\footnote{NdT: il a fallu rajouter le \texttt{\bs protect}.}. +Par exemple: +\begin{verbatim} + \usepackage{ifthen} + ... + \begin{figure} + \ifthenelse{\isodd{\pageref{fig+wide}}}% + {% DÉBUT FIGURE PAGE IMPAIRE + \begin{narrow}{0in}{-0.5in} + \includegraphics[width=\linewidth]{file.eps} + \caption{Légende de la figure}% + \label{fig+wide} + \end{narrow} + }% FIN FIGURE PAGE IMPAIRE + {% DÉBUT FIGURE PAGE PAIRE + \begin{narrow}{-0.5in}{0in} + \includegraphics[width=\linewidth]{file.eps} + \caption{Légende de la figure}% + \label{fig+wide} + \end{narrow} + }% FIN FIGURE PAGE PAIRE + \end{figure} +\end{verbatim} +Puisque la commande \verb|\pageref| est utilisée en entrée de \verb|\ifthenelse|, la figure +peut ne pas être correctement placée avant que \LaTeX\ n'ait été exécuté un nombre de fois +suffisant pour que les références croisées convergent\,\footnote{NdT: elles convergent en +général, mais il n'est pas démontré qu'elles convergent toujours. En cas de non convergence, il +suffit normalement de modifier l'emplacement du code de la figure.}. + \froff + \begin{figure}[ht] + \psfrag{A Very, Very Wide Graphic}[][][2.7]{Un très, très large graphique} + \ifthenelse{\isodd{\pageref{fig+wide}}}% + {% DÉBUT FIGURE PAGE IMPAIRE + \begin{narrow}{0in}{-0.5in} + \includegraphics[width=\linewidth]{wide.eps} + \caption{Légende de la figure}% + \label{fig+wide} + \end{narrow} + }% FIN FIGURE PAGE IMPAIRE + {% DÉBUT FIGURE PAGE PAIRE + \begin{narrow}{-0.5in}{0in} + \includegraphics[width=\linewidth]{wide.eps} + \caption{Légende de la figure}% + \label{fig+wide} + \end{narrow} + }% FIN FIGURE PAGE PAIRE + \end{figure} + \fron + +\FloatBarrier +\section{Figures en paysage}\index{figures!landscape}\index{figures!paysage}% +\index{landscape@landscape (figures)}% +\index{paysage@paysage (figures)} +Dans un document en orientation portrait, il y a trois méthodes pour produire des figures avec +l'orientation paysage (\emph{landscape}). +\begin{enumerate}[1.] +\item Le paquetage \texttt{lscape}\index{lscape@\texttt{lscape}, paquetage}% +\ifguide, décrit page~\pageref{o+lscape}, \fi +offre un environnement +\index{landscape@\texttt{landscape} (environnement)}\texttt{landscape}, qui traite le bord gauche du papier comme étant le sommet de la page, ce +qui fait que tout texte, tables, figures dans l'environnement \texttt{landscape} auront +l'orientation paysage. +\item Le paquetage \texttt{rotating}\index{rotating@\texttt{rotating}, paquetage}% +\ifguide, décrit page~\pageref{o+rotating}, \fi +offre un nouvel environnement nommé +\texttt{sidewaysfigure} qui est similaire à l'environnement \texttt{figure} sauf que les +figures sont en orientation paysage. +\item Ce paguetage \texttt{rotating}\index{rotating@\texttt{rotating}, paquetage} +offre une commande \verb|\rotcaption|\index{rotcaption@\CS{rotcaption}, commande} +qui est similaire à +la commande \verb|\caption| sauf que la légende est en orientation paysage. +\end{enumerate} +Les différences entre les méthodes sont les suivantes: +\begin{itemize} +\item Les options~1 et~2 placent toutes deux la figure en paysage sur une page séparée. +L'option~3 produit un élément flottant individuel qui n'a pas besoin d'être sur sa propre +page. +\item Alors que l'option~2 ne produit que des figures tournées, l'environnement +\texttt{landscape} dans l'option~1 est un environnement d'utilisation générale, qui peut +produire des pages en paysage contenant toute combinaison de texte, tables et figures. +L'environnement \texttt{landscape} est capable de faire les coupures de page, donc plusieurs +pages en paysage peuvent être produites\,\footnote{L'environnement \texttt{landscape} +fonctionne très bien avec le paquetage \texttt{longtable}% +\ifguide, décrit page~\pageref{o+longtable}, \fi +pour produire des tables de plusieurs pages en paysage.}. +\item La figure pleine page produite par l'option~2 flotte pour donner une meilleure mise en +page du document, tandis que la figure produire par l'option~1 ne peut pas +flotter\,\footnote{Les figures créées dans l'environnement \texttt{landscape} peuvent flotter +à l'intérieur des pages en paysage.}. +\item Puisque les options~1 et~3 utilisent l'environnement \texttt{figure}, elles peuvent être +utilisées en conjonction avec le paquetage \texttt{endfloat} (voir la Section~\vref{ss+epsl+RFFD}). +\end{itemize} + +\subsection{L'environnement \texttt{landscape}}\label{ss+epsl+ELS} +Le paquetage \texttt{lscape} (qui fait partie de l'«~ensemble graphique~» standard distribué +avec \LaTeXe) définit l'environnement \texttt{landscape}, qui offre une méthode pour placer +des pages en paysage dans un document en portrait. Les pages en paysage subissent une rotation +telle que le bord gauche de la page en portrait soit le bord du haut de la page en paysage. + +Lors de l'entrée dans l'environnement par \verb|\begin{landscape}|, tous les éléments +flottants en portrait qui sont en attente sont imprimés puis l'orientation passe à paysage. De +même, \verb|\end{landscape}| provoque l'impression de tous les éléments flottants en paysage qui +sont en attente puis fait revenir en orientation portrait. + +Le contenu complet de l'environnement \texttt{landscape} et composé avec l'orientation +paysage. Ceci peut inclure un mélange de texte, figures et tables. Si l'environnement +\texttt{landscape} contient seulement un environnement \texttt{figure} +\begin{verbatim} + \begin{landscape} + \begin{figure} \centering + \includegraphics[width=4in]{graphic.eps} + \caption{Figure en paysage} + \end{figure} + \end{landscape} +\end{verbatim} +l'environnement \texttt{landscape} produit une figure en paysage. +%Notez que +Puisque cet +environnement commence une nouvelle page, il peut en résulter une page en +partie blanche. + +\subsection{L'environnement \texttt{sidewaysfigure}}% +\label{ss+epsl+ESWF}\label{env+EP+sidewaysfigure}\index{sidewaysfigure@\texttt{sidewaysfigure}, environnement} +Le paquetage \texttt{rotating}\index{rotating@\texttt{rotating}, paquetage} +offre l'environnement \texttt{sidewaysfigure} qui produit des +figures en orientation paysage\,\footnote{Le paquetage \texttt{rotating} offre aussi un +environnement \texttt{sidewaystable}\label{env+EP+sidewaystable}\index{sidewaystable@\texttt{sidewaystable}, environnement} +pour la production de tables en orientation paysage.}. +Par exemple, +\begin{verbatim} + \begin{sidewaysfigure} \centering + \includegraphics[width=4in]{graphic.eps} + \caption{Figure «~sidewaysfigure~»} + \end{sidewaysfigure} +\end{verbatim} +produit la Figure~\vref{f33+epsl}.% + \begin{sidewaysfigure} \centering + \psfrag{Graphic}[][][3.2]{Graphique} + \includegraphics[width=4in]{graphic.eps} + \caption{Figure «~sidewaysfigure~»}\label{f33+epsl} + \end{sidewaysfigure} +Et contrairement à l'environnement \texttt{landscape}, la figure produite par l'environnement +\texttt{sidewaysfigure} peut flotter dans les pages en portrait pour éviter la page en partie +blanche que l'environnement \texttt{landscape} peut provoquer. Mais l'environnement +\texttt{landscape} est bien plus souple, car il permet aux pages en paysage de contenir à la +fois du texte, des tables et des figures. + +L'orientation par défaut des figures produites par \texttt{sidewaysfigure} dépend du fait que +le document est traité avec l'option de classe \texttt{oneside} ou \texttt{twoside}:% +\begin{itemize} +\item Lorsque l'option \texttt{oneside} est choisie, le bas du graphique est vers le bord +droit de la page portrait. +\item Lorsque l'option \texttt{twoside} est choisie, le bas du graphique est vers le bord +externe de la page portrait. +\end{itemize}% +Ce comportement par défaut peut être altéré par des options du paquetage \texttt{rotating}.% +\begin{quote}% +\verb|\usepackage[figuresleft]{rotating}|\index{rotating@\texttt{rotating}, paquetage}% +\end{quote}% +fait que le bas du graphique \texttt{sidewaysfigure} sera placé vers le bord gauche de la page +en portrait (sans tenir compte des options \texttt{oneside} ou \texttt{twoside}). De même,% +\begin{quote}% +\verb|\usepackage[figuresright]{rotating}|% +\end{quote}% +fait que le bas du graphique \texttt{sidewaysfigure} sera placé vers le bord droit de la page +en portrait. + +\FloatBarrier +\subsection{La commande \texttt{\bs rotcaption}} +Les méthodes des Sections~\vref{ss+epsl+ELS} et~\vref{ss+epsl+ESWF} produisent toutes deux des +figures en paysage sur des pages complètes, ce qui n'est peut-être pas nécessaire pour les +figures en paysage plus petites. La commande \verb|\totcaption| du paquetage +\texttt{rotating}\index{rotating@\texttt{rotating}, paquetage} +peut être utilisée pour construire de plus petites figures en paysage. Par +exemple +\begin{verbatim} + \begin{figure} \centering + \begin{minipage}[c]{1in} + \includegraphics[angle=90,width=\textwidth]{graphic.eps} + \end{minipage} + \begin{minipage}[c]{0.5in} + \rotcaption{Légende avec \texttt{\bs rotcaption}}% + \label{fig+rotcaption} + \end{minipage} + \end{figure} +\end{verbatim} +produit la Figure~\vref{f34+epsl}.% + \begin{figure}[ht] \centering + \begin{minipage}[c]{1in} + \psfrag{Graphic}[][][1.75]{Graphique} + \includegraphics[angle=90,width=\textwidth]{graphic.eps} + \end{minipage} + \begin{minipage}[c]{0.5in} + \rotcaption{Légende avec \texttt{\bs rotcaption}}% +% \label{fig+rotcaption} + \label{f34+epsl} + \end{minipage} + \end{figure} + +La légende produite par \verb|\rotcaption| est toujours tournée de manière que son côté du bas +soit vers le bord droit du papier. Contrairement aux méthodes décrites dans les +Sections~\vref{ss+epsl+ELS} +et~\vref{ss+epsl+ESWF}, la commande \verb|\rotcaption| ne fait pas tourner le graphique. En +conséquence, la commande \verb|\includegraphics| dans l'exemple ci-dessus nécessite l'option +\texttt{angle=90}. + +\section{Légendes sur le côté des figures}\index{caption!sur le cote de la figure@sur le côté des figures} +Bien que la légende d'une figure soit placé en général au dessus ou en dessous du graphique, +cette section décrit comment placer la légende sur le côté du graphique\,\footnote{Puisque +l'environnement \texttt{figure} défini par le paquetage +\texttt{float}\index{float@\texttt{float}, paquetage} place la légende +\emph{en dessous} du corps de la figure, il n'est pas pas possible de produire des légendes +sur le côté des figures avec l'environnement \texttt{figure} du paquetage \texttt{float}. +D'autres aspects du paquetage \texttt{float} peuvent être utilisés tant que la commande +\texttt{\bs restylefloat} n'est pas invoquée.}. La Section~\vref{ss+epsl+CGF} montre comment +placer la légende à gauche du graphique. Placer la légende sur la droite utiliserait un +processus similaire. Pour les documents en recto-verso (option de classe \texttt{twoside}), la +Section~\vref{ss+epsl+CCRD} montre comment placer la légende du côté interne par rapport au +graphique (à gauche du graphique pour les pages impaires -- de droite -- et à droite du +graphique pour les pages paires -- de gauche). + +\subsection{Légende à gauche de la figure}\label{ss+epsl+CGF}\index{caption!a gauche de la +figure@à gauche de la figure} +La commande \verb|\caption| place la légende en dessous de la figure ou table. Des +environnements \texttt{minipage} peuvent être utilisés pour forcer la commande \verb|\caption| +à placer la légende sur le côté de la figure. Par exemple, les commandes +\begin{verbatim} + \begin{figure} + \begin{minipage}[c]{.45\textwidth} + \centering + \caption{Légende sur le côté}% + \label{fig+side+caption} + \end{minipage}% + \hspace{.05\textwidth}% + \begin{minipage}[c]{.45\textwidth} + \centering + \includegraphics[width=\textwidth]{graphic.eps} + \end{minipage} + \end{figure} +\end{verbatim} + \begin{figure}[ht] + \begin{minipage}[c]{.45\textwidth} + \centering + \caption{Légende sur le côté}% +% \label{fig+side+caption} + \label{f35+epsl} + \end{minipage}% + \hspace{.05\textwidth}% + \begin{minipage}[c]{.45\textwidth} + \centering + \psfrag{Graphic}[][][2.5]{Graphique} + \includegraphics[width=\textwidth]{graphic.eps} + \end{minipage} + \end{figure} +produit la Figure~\vref{f35+epsl}. Il peut être souhaitable de placer une commande +d'espacement horizontal telle que \verb|\hfill|\index{hfill@\CS{hfill}, commande} ou \verb|\hspace{.05\textwidth}| entre les +minipages. + +La légende et le graphique de la Figure~\vref{f35+epsl} sont centrés verticalement. Si par +contre vous voulez aligner les hauts ou les bas du graphique et de la légende, voyez la +Section~\vref{ss+epsl+AVM}. + +\FloatBarrier +\subsection{Légende du côté de la reliure du dessin}\label{ss+epsl+CCRD}\index{caption!du +cote de la reliure@du côté de la reliure} +Le code ci-dessus pour la Figure~\vref{f35+epsl} place la légende sur la gauche du graphique. +Pour les documents en recto-verso, il peut être souhaitable de placer la légende du côté de la +reliure par rapport au graphique. Dans ce cas, la commande \verb|\ifthenelse| du paquetage +\texttt{ifthen} +\ifguide(décrit page~\pageref{ifthen+sty}) \fi +peut être utilisée pour choisir entre le +code pour les pages impaires et le code pour les pages paires. Par exemple, +\begin{verbatim} + \usepackage{ifthen} + ... + \begin{figure} \centering + \ifthenelse{\isodd{\pageref{fig+side+caption}}} + {% DÉBUT FIGURE PAGE IMPAIRE + \begin{minipage}[c]{.45\textwidth} + \centering + \caption{Légende sur le côté interne + (gauche car page de droite)}% + \label{fig+side+caption} + \end{minipage}% + \hspace{.05\textwidth}% + \begin{minipage}[c]{.45\textwidth} + \includegraphics[width=\textwidth]{graphic.eps} + \end{minipage}% + }% FIN FIGURE PAGE IMPAIRE + {% DÉBUT FIGURE PAGE PAIRE + \begin{minipage}[c]{.45\textwidth} + \includegraphics[width=\textwidth]{graphic.eps} + \end{minipage}% + \hspace{.05\textwidth}% + \begin{minipage}[c]{.45\textwidth} + \centering + \caption{Légende sur le côté interne + (droit car page de gauche)}% + \label{fig+side+caption} + \end{minipage}% + }% FIN FIGURE PAGE IMPAIRE + \end{figure} +\end{verbatim} +produit la Figure~\vref{fig+side+caption} dont la légende sera toujours entre la reliure et le +graphique. + \begin{figure}[ht] \centering + \ifthenelse{\isodd{\pageref{fig+side+caption}}} + {% DÉBUT FIGURE PAGE IMPAIRE + \begin{minipage}[c]{.45\textwidth} + \centering + \caption{Légende sur le côté interne (gauche car page de droite)}% + \label{fig+side+caption} + \end{minipage}% + \hspace{.05\textwidth}% + \begin{minipage}[c]{.45\textwidth} + \psfrag{Graphic}[][][2.5]{Graphique} + \includegraphics[width=\textwidth]{graphic.eps} + \end{minipage}% + }% FIN FIGURE PAGE IMPAIRE + {% DÉBUT FIGURE PAGE PAIRE + \begin{minipage}[c]{.45\textwidth} + \psfrag{Graphic}[][][2.5]{Graphique} + \includegraphics[width=\textwidth]{graphic.eps} + \end{minipage}% + \hspace{.05\textwidth}% + \begin{minipage}[c]{.45\textwidth} + \centering + \caption{Légende sur le côté interne (droit car page de gauche)}% + \label{fig+side+caption} + \end{minipage}% + }% FIN FIGURE PAGE IMPAIRE + \end{figure} + +\FloatBarrier +\subsection{Le paquetage \texttt{sidecap}} +Les méthodes des Sections~\vref{ss+epsl+ELS} et~\vref{ss+epsl+ESWF} placent la légende sur le +côté des figures. Si vous êtes prêts à sacrifier un peu de souplesse, le paquetage +\index{sidecap@\texttt{sidecap}, paquetage}\texttt{sidecap}% +\ifguide, décrit page~\pageref{o+sidecap}, \else{} \fi +peut faciliter le processus. + +Lorsqu'une commande \verb|\caption| est utilisée dans les environnements +\label{env+EP+SCfigure}\texttt{SCfigure}\index{SCfigure@\texttt{SCfigure}, environnement}, +\label{env+EP+SCfigure*}\texttt{SCfigure*}\index{SCfigure*@\texttt{SCfigure*}, environnement}, +\label{env+EP+SCtable}\texttt{SCtable}\index{SCtable@\texttt{SCtable}, environnement} +ou \label{env+EP+SCtable*}\texttt{SCtable*}\index{SCtable*@\texttt{SCtable*}, environnement} +définis par le paquetage \texttt{sidecap}, les légendes sont automatiquement +placées sur le côté du contenu de l'environnement. + +\lneed{6} +\noindent +Par exemple, +\begin{verbatim} + \usepackage{sidecap} + ... + \begin{SCfigure} + \includegraphics[width=3in]{graphic.eps} + \caption{Voici une \texttt{SCfigure} + \end{SCfigure} +\end{verbatim} +produit la Figure~\vref{f36+epsl}.% + \begin{SCfigure} + \psfrag{Graphic}[][][2.4]{Graphique} + \includegraphics[width=3in]{graphic.eps} + \caption{Voici une \texttt{SCfigure}}\label{f36+epsl} + \end{SCfigure} + +Les quatre options suivantes peuvent être spécifées dans l'argument optionnel de +la commande \verb|\usepackage|: +\begin{description} +\item[outercaption]\NL +Cette option place la légende à gauche pour les pages (paires) de gauche et à droite pour les +pages (impaires) de droite. (Option par défaut). +\item[innercaption]\NL +Cette option place la légende à droite pour les pages (paires) de gauche et à gauche pour les +pages (impaires) de droite. +\item[leftcaption]\NL +Cette option place la légende à gauche. +\item[rightcaption]\NL +Cette option place la légende à droite. +\end{description} +L'environnement \texttt{SCfigure} accepte deux arguments optionnels. +\begin{itemize} +\item Le premier argument optionnel spécifie la largeur relative de la légende par rapport à la +figure. Une valeur élevée (100 par exemple) réserve la largeur maximum possible. La valeur par +défaut est~1. +\item Le second argument optionnel spécifie le paramètre de placement de l'élément flottant +(par exemple \verb|[htp]| ou \verb|[!ht]|) (voir la Section~\vref{ss+epsl+PF}). +\end{itemize} + +\FloatBarrier +\section{Figures sur des pages paires ou impaires} +L'algorithme de placement de l'environnement \texttt{figure} ne vérifie pas si une figure +apparaît sur une page paire ou impaire. Pour contrôler le placement sur une page paire ou +impaire, il est nécessaire d'utiliser la commande \verb|\afterpage|\label{EP+afterpage+2}\index{afterpage@\CS{afterpage}, +commande} (qui fait partie du +paquetage \texttt{afterpage}% +\ifguide, décrit page~\pageref{o+afterpage}\fi) +et la commande +\verb|\ifthenelse| (qui fait partie du paquetage \texttt{ifthen}% +\ifguide, décrit page~\pageref{ifthen+sty}\fi) +pour forcer le placement d'une figure sur une page paire ou +impaire. + +%NO%\input{leftfig} +En mettant les graphiques dans des environnements \texttt{figure}, il est possible qu'une +figure de page paire flotte jusqu'à une page impaire. Mais la commande \verb|\figcaption| +définie dans la Section~\vref{s+epsl+FNF} peut être utilisée pour créer une figure sans +utiliser l'environnement \texttt{figure}. +\begin{verbatim} + \makeatletter + \newcommand{\figcaption}{\def\@captype{figure}\caption} + \makeatother +\end{verbatim} +La commande \verb|\ifthenelse| est alors utilisée pour placer le premier graphique sur la +prochaine page paire. Ceci requiert de taper deux fois la commande graphique, une fois pour le +cas où la prochaine page est impaire et une fois pour le cas où la prochaine page est paire. +Pour simplifier le code résultant, une commande \verb|\leftfig| est définie: +\begin{verbatim} + \newcommand{\leftfig}{% + \vspace*{\fill}% + \centering + \includegraphics{graphic.eps} + \figcaption{Ceci est sur une page de gauche (paire).} + \vspace*{\fill}\newpage} +\end{verbatim} +Les figures de pages de gauche sont alors créées en utilisant cette nouvelle commande +\verb|\leftfig| ainsi que les commandes \verb|\afterpage| et \verb|\ifthenelse|: +\lneed{4} +\begin{verbatim} + \afterpage{\clearpage% + \ifthenelse{\isodd{\value{page}}}% + {\afterpage{\leftfig}}% + {\leftfig}} +\end{verbatim} +% \newcommand{\leftfig}{% +% \vspace*{\fill}% +% \centering +% \psfrag{Graphic}[][][1.6]{Graphique} +% \includegraphics{graphic.eps} +% \figcaption{Ceci est sur une page de gauche (paire).}\label{fig+page+gauche} +% \vspace*{\fill}\newpage} +% \afterpage{\clearpage% +% \ifthenelse{\isodd{\value{page}}}% +% {\afterpage{\leftfig}}% +% {\leftfig}} +%NO%On a ainsi la Figure~\vref{fig+page+gauche}. + +\lneed{4} +\noindent +Notes sur le placement pair/impair: +\begin{itemize} +\item Pour forcer la figure sur une page de droite (impaire), inversez l'ordre des arguments du +\verb|\ifthenelse|. +\begin{verbatim} + \afterpage{\clearpage% + \ifthenelse{\isodd{\value{page}}}% + {\leftfig}}% + {\afterpage{\leftfig}} +\end{verbatim} +\item Utiliser \verb|\value{page}| au lieu de \verb|\pageref| est avantageux car +\verb|\value{page}| est toujours correct (\verb|\pageref| n'est correct que lorsque les +références croisées \LaTeX\ ont convergé). +\item Lors de l'utilisation de grandes figures, il est possible qu'une coupure de page +survienne à l'intérieur de la figure (c'est-à-dire entre le graphique et la légende). La +figure peut être forcée à rester en un seul morceau en l'enfermant dans un environnement +\texttt{minipage}. +\begin{verbatim} + \newcommand{\leftfig}{% + \vspace*{\fill}% + \begin{minipage}{\textwidth} + \centering + \includegraphics{graphic.eps} + \figcaption{Ceci est sur une page de gauche (paire).} + \end{minipage} + \vspace*{\fill}\newpage} +\end{verbatim} +\item La commande \verb|\afterpage| est parfois sujette à des problèmes, allant dans de rares +occasions jusqu'à provoquer une erreur «~\texttt{lost float}~». Le fait d'enlever le \verb|\clearpage| +devant \verb|\ifthenelse| peut résoudre le problème. +\begin{verbatim} + \afterpage{\ifthenelse{\isodd{\value{page}}}% + {\afterpage{\leftfig}}% + {\leftfig}} +\end{verbatim} +\item Dans l'exemple ci-dessus, la figure utilise en entier la page paire. Pour placer la +figure au sommet de la page paire, modifiez ou enlevez les commandes \verb|\vspace*{\fill}| et +\verb|\newpage| +\begin{verbatim} + \newcommand{\leftfig}{% + \centering + \includegraphics{graphic.eps} + \figcaption{Ceci est sur une page de gauche (paire).} + \vspace{\floatsep}} +\end{verbatim} +\end{itemize} + +\subsection{Figures sur des pages face à face}\index{face a face@face à face (figures)}% +\index{figures!face a face@face à face} +Pour faciliter la comparaison de deux figures dans un document recto-verso (option de classe +\texttt{twoside}), il peut être souhaitable de placer les figures sur des pages se faisant +face. Pour réaliser ceci, une procédure similaire au placement sur pages paires/impaires de la +section précédente doit être utilisée. Pour simplifier le code résultant, une commande +\verb|\facingfigures| est définie par +\begin{verbatim} + \newcommand{\facingfigures}{% + \vspace*{\fill}% + \centering + \includegraphics{left.eps} + \figcaption{Ceci est sur une page de gauche (paire).} + \vspace*{\fill}\newpage\vspace*{\fill}% + \centering + \includegraphics{right.eps} + \figcaption{Ceci est sur une page de droite (impaire).} + \vspace*{\fill}\newpage} +\end{verbatim} +Les figures se faisant face sont alors créées en utilisant \verb|\facingfigures| avec les +commandes \verb|\afterpage| et \verb|\ifthenelse| +\begin{verbatim} + \afterpage{\clearpage% + \ifthenelse{\isodd{\value{page}}}% + {\afterpage{\facingfigures}}% + {\facingfigures}} +\end{verbatim} + +\section{Figures encadrées}\index{figures!encadrées} +Le terme \emph{Figure Encadrée} (\emph{Boxed Figure}) fait référence à deux situations: +\begin{itemize} +\item Un boîte entoure le dessin de la figure mais pas la légende de la figure. +\item Un boîte entoure le dessin de la figure et sa légende. +\end{itemize} +La méthode de base pour encadrer quelque chose est simplement de placer cette chose à +l'intérieur d'une commande \verb|\fbox|\label{EP+fbox+1}\index{fbox@\CS{fbox}, commande}, qui entoure la chose avec une boîte rectangulaire. Le +paquetage \texttt{fancybox}\index{fancybox@\texttt{fancybox}, paquetage}, +\ifguide décrit page~\pageref{o+fancybox}, \fi +offre des boîtes de styles +divers (voir la Section~\vref{ss+epsl+LPFB}). + +\subsection{Cadre autour du dessin} +Placer une commande \verb|\fbox| autour de la commande \verb|\includegraphics| produit une +boîte autour du graphique. Par exemple, les commandes +\begin{verbatim} + \begin{figure} \centering + \fbox{\includegraphics[totalheight=2in]{pend.eps}} + \caption{Boîte autour du graphique, mais pas autour de la légende}% + \label{fig+boxed-graphic} + \end{figure} +\end{verbatim} +placent une boîte autour du graphique, comme le montre la Figure~\vref{f37+epsl}. + \begin{figure}[htb] \centering +\psfrag{q1}{$\theta_1$} +\psfrag{q2}{$\theta_2$} +\psfrag{L1}{$L_1$} +\psfrag{L2}{$L_2$} +\psfrag{P1}[][]{$P_1$} +\psfrag{P2}[][]{\large $P_2$} + \fbox{\includegraphics[totalheight=2in]{pend.eps}} + \caption{Boîte autour du graphique, mais pas autour de sa légende}% + %\label{fig+boxed-graphic} + \label{f37+epsl} + \end{figure} + +\FloatBarrier +\subsection{Cadre autour de la figure et de la légende} +Pour inclure dans le cadre à la fois le dessin de la figure et sa légende, on peut être tenté +de mettre la commande \verb|\caption| à l'intérieur de la commande \verb|\fbox|. Mais ceci ne +marche pas car \verb|\caption| ne peut être utilisée qu'en mode paragraphe, alors que le +contenu d'une commande \verb|\fbox| est traité en mode~LR\,\footnote{\LaTeX\ utilise trois +modes: le mode LR (mode \emph{left-right} ou gauche-droite), le mode paragraphe et le mode mathématique. +Voir~\cite[pages~36,103--5]{latex-manual}.}. + +Puisque le contenu des environnements \texttt{minipage} et des commandes \verb|\parbox| est +traité en mode paragraphe, la commande \verb|\caption| peut être incluse dans la \verb|\fbox| +en mettant le contenu de \verb|\fbox| à l'intérieur d'un environnement \texttt{minipage} ou +d'une commande \verb|\parbox|. Mais comme les minipages et les parboxes ont besoin d'une +spécification de largeur, il n'y a pas de manière simple de rendre la \verb|\fbox| exactement +aussi large que le dessin ou la légende. + +%\enlargethispage*{1\baselineskip} +\lneed{6} +\noindent +Par exemple, les commandes +\begin{verbatim} + \begin{figure} \centering + \fbox{\begin{minipage}{4in} + \centering + \includegraphics[totalheight=2in]{pend.eps} + \caption{Cadre autour du dessin + et de la légende de la figure}% + \label{fig+boxed-figure} + \end{minipage}} + \end{figure} +\end{verbatim} +placent un cadre autour du dessin et de la légende d'une figure, comme le montre la +Figure~\vref{f38+epsl}. +\lneed{5} + \begin{figure}[ht] \centering + \fbox{\begin{minipage}{4in} + \centering +\psfrag{q1}{$\theta_1$} +\psfrag{q2}{$\theta_2$} +\psfrag{L1}{$L_1$} +\psfrag{L2}{$L_2$} +\psfrag{P1}[][]{$P_1$} +\psfrag{P2}[][]{\large $P_2$} + \includegraphics[totalheight=2in]{pend.eps} + \caption{Cadre autour du dessin + et de la légende de la figure}% + %\label{fig+boxed-figure} + \label{f38+epsl} + \end{minipage}} + \end{figure} +\lneed{5} +\noindent +C'est en général un processus par essais et erreurs qui sera utilisé pour déterminer une +largeur de minipage qui donnera une boîte qui entoure parfaitement la légende et le dessin. Ce +processus par essais et erreurs peut être évité par les approches suivantes: +\begin{enumerate}[1.] +\item Choisissez une largeur de minipage arbitraire et forcez le graphique à être aussi large +que la minipage +\begin{quote} +\verb|\includegraphics[width=\textwidth]{pend.eps}| +\end{quote} +\item Si l'on veut spécifier la hauteur du dessin, la largeur adéquate pour la minipage peut +être calculée en plaçant le dessin dans une boîte et en mesurant la largeur de la boîte. +\begin{verbatim} + \newsavebox{\mybox} + \newlength{\mylength} + \sbox{\mybox}{\includegraphics[height=3in]{file.eps}} + \settowidth{\mylength}{\usebix{\mybox}} + \begin{figure} \centering + \fbox{\begin{minipage}{\mylength} + \centering + \usebox{\mybox} + \caption{Cadre autour du dessin + et de la légende de la figure}% + \label{fig+boxed-figure} + \end{minipage} + \end{figure} +\end{verbatim} +\item Pour garantir une légende d'une seule ligne, la minipage peut être rendue aussi large que +la légende en estimant la largeur de celle-ci avec une commande \verb|\settowidth| +\begin{verbatim} + \newlength{\mylength} + \settowidth{\mylength}{Figure~XX: + Cadre autour du dessin et de la légende de la figure} + \fbox{\begin{minipage}{\mylength} + ... +\end{verbatim} +\end{enumerate} + +\FloatBarrier +\subsection{Adaptation des paramètres de \texttt{\bs fbox}}\label{ss+epsl+APFB} +Dans les Figures~\vref{f37+epsl} et~\vref{f38+epsl}, la boîte est construite avec les traits +épais de 0.4pt et un espacement de 3pt entre le cadre et le dessin. Ces deux dimensions peuvent +être adaptées en modifiant les variables longueurs de \LaTeX\ +\verb|\fboxrule|\label{EP+fboxrule+1}\index{fboxrule@\CS{fboxrule}, longueur} et +\verb|\fboxsep|\label{EP+fboxsep+1}\index{fboxsep@\CS{fboxsep}, longueur}, respectivement, avec la commande \verb|\setlength|. Par exemple, les +commandes +\begin{verbatim} + \begin{figure} \centering + \setlength{\fboxrule}{3pt} + \setlength{\fboxsep}{1cm} + \fbox{\includegraphics[totalheight=2in]{pend.eps}} + \caption{Graphique avec un cadre adapté}\label{fig+boxed-custom} + \end{figure} +\end{verbatim} +placent un cadre fait de traits épais de 3pt et distant du dessin d'un centimètre, comme le +montre la Figure~\vref{f39+epsl}. + \begin{figure}[htb] \centering + \setlength{\fboxrule}{3pt} + \setlength{\fboxsep}{1cm} +\psfrag{q1}{$\theta_1$} +\psfrag{q2}{$\theta_2$} +\psfrag{L1}{$L_1$} +\psfrag{L2}{$L_2$} +\psfrag{P1}[][]{$P_1$} +\psfrag{P2}[][]{\large $P_2$} + \fbox{\includegraphics[totalheight=2in]{pend.eps}} + \caption{Graphique avec un cadre adapté}% + %\label{fig+boxed-custom} + \label{f39+epsl} + \end{figure} + + +\FloatBarrier +\subsection{Le paquetage \texttt{fancybox}}\label{ss+epsl+LPFB} +Dans les Figures~\vref{f37+epsl}, \vref{f38+epsl} et dans la Figure~\vref{f39+epsl}, la commande \verb|\fbox| +était utilisée pour placer des cadres rectangulaires standard autour des figures. Le paquetage +\texttt{fancybox} +\ifguide(décrit page~\pageref{o+fancybox}) \fi +offre quatre commandes +\verb|\shadowbox|, \verb|\doublebox|, \verb|\ovalbox| et \verb|\Ovalbox| qui produisent +d'autres types de cadres. + \begin{table}[htp] + \ifthenelse{\isodd{\pageref{t13+epsl}}}% + {% DÉBUT FIGURE PAGE IMPAIRE + \begin{narrow}{0in}{-0.5in} + \topcaption{Légende de la figure}% + \input{epsl-t13} + \label{t13+epsl} + \end{narrow} + }% FIN FIGURE PAGE IMPAIRE + {% DÉBUT FIGURE PAGE PAIRE + \begin{narrow}{-0.5in}{0in} + \topcaption{Commandes de \texttt{fancybox}}% + \input{epsl-t13} + \label{t13+epsl} + \end{narrow} + }% FIN FIGURE PAGE PAIRE + \end{table} + +Comme \verb|\fbox|, la séparation entre ces cadres et leur contenu est contrôlée par la +longueur \LaTeX\ \verb|\fboxsep|\label{EP+fboxsep+2}\index{fboxsep@\CS{fboxsep}, longueur}. La longueur \verb|\shadowsize| est réglée avec % la commande +\verb|\setlength|, comme cela a été fait pour \verb|\fboxrule| et \verb|\fboxsep| dans la +Section~\vref{ss+epsl+APFB}. Les traits pour \verb|\ovalbox| et \verb|\Ovalbox| ont des +épaisseurs qui correspondent aux paramètres \verb|\thicklines| et \verb|\thinlines| de +l'environnement \texttt{picture}, paramètres qui \emph{ne sont pas} des longueurs et donc ne +peuvent pas être changés par la commande \verb|\setlength|. Les valeurs de \verb|\thicklines| +et \verb|\thinlines| dépendent de la taille et du style de la fonte courante. Des valeurs +typiques sont 0.8pt pour \verb|\thicklines| et 0,4pt pour \verb|\thinlines|. Par exemple, les +commandes +\begin{verbatim} + \begin{figure} \centering + \shadowbox{\begin{minipage}{3.2in} \centering + \captionstyle{hang} + \includegraphics[totalheight=2in]{pend.eps} + \caption{Cadre ombré autour de la figure entière}% + \label{fig+boxed-fancy} + \end{minipage}} + \end{figure} +\end{verbatim} +placent un cadre ombré autour du dessin et de la légende de la figure, comme le montre la +Figure~\vref{f40+epsl}. + \begin{figure}[htb] \centering + \shadowbox{\begin{minipage}{3.2in} + \centering +\psfrag{q1}{$\theta_1$} +\psfrag{q2}{$\theta_2$} +\psfrag{L1}{$L_1$} +\psfrag{L2}{$L_2$} +\psfrag{P1}[][]{$P_1$} +\psfrag{P2}[][]{\large $P_2$} + \includegraphics[totalheight=2in]{pend.eps} + \captionstyle{hang} + \caption{Cadre ombré autour de la figure entière}% + %\label{fig+boxed-fancy} + \label{f40+epsl} + \end{minipage}} + \end{figure} + +\FloatBarrier +\section{Dessins côte à côte}\label{s+epsl+DCC} +Les commandes nécessaires pour mettre des dessins côte à côte dépendent de la manière dont +l'utilisateur souhaite que les dessins soient organisés. Cette section présente trois +groupements courants de dessins côte à côte. +\begin{enumerate}[1.] +\item Les dessins côte à côte sont combinés en une seule figure. +\item Les dessins côte à côte forment chacun sa propre figure (par exemple, +Figure~\vref{f43+epsl} et Figure~\vref{f44+epsl}). +\item Les dessins côte à côte forment chacun une sous-figure (par exemple, +Sous-figure~\vref{sf49a+epsl} et Sous-figure~\vref{sf49b+epsl}, qui font partie de la +Figure~\vref{f49+epsl}). +\end{enumerate} +Cette section décrit les deux méthodes suivantes pour construire les trois types de groupement +\begin{enumerate}[a)] +\item Commandes \verb|\includegraphics| successives. +\item Minipages côte à côte, chacune contenant une commande \verb|\includegraphics|. +\end{enumerate} +Il est très important de comprendre le matériel de la Section~\vref{s+epsl+TLX} lorsque +vous construisez des figures côte à côte. Les figures côte à côte sont créées en plaçant des +boîtes (soit \verb|\includegraphics| soit des minipages) l'une à côté de l'autre sur une +ligne. + +\subsection{Dessins côte à côte dans une seule figure} +La méthode la plus facile pour créer des dessins côte à côte dans une seule figure est +d'employer des commandes \verb|\includegraphics| successives, bien qu'utiliser des minipages +côte à côte facilite l'alignement vertical des dessins. + +\lneed{9} +\subsubsection{Utilisation de commandes \texttt{\bs includegraphics} côte à côte} +Le code suivant +\begin{verbatim} + \begin{figure} \centering + \includegraphics[width=1in]{graphic.eps}% + \hspace{1in}% + \includegraphics[width=2in]{graphic.eps}% + \caption{Deux dessins dans une seule figure} + \end{figure} +\end{verbatim} +produit la Figure~\vref{f41+epsl} qui est large de 4~pouces (un pouce pour le premier +fichier \texttt{graphic.eps} inséré, un pouce pour \label{EP+hspace+1}\verb|\hspace|\index{hspace@\CS{hspace}, commande} et deux pouces pour le second +\texttt{graphic.eps}). La commande \verb|\hspace| peut être omise ou remplacée par +\verb|\hfill|\label{EP+hfill+1}\index{hfill@\CS{hfill}, commande}, qui pousse les dessins contre les marges (voir la Section~\vref{ss+epsl+EH}). + \begin{figure}[htb] \centering + \psfrag{Graphic}[][][0.8]{Graphique} + \includegraphics[width=1in]{graphic.eps}% + \hspace{1in}% + \psfrag{Graphic}[][][1.6]{Graphique} + \includegraphics[width=2in]{graphic.eps}% + \caption{Deux dessins dans une seule figure}\label{f41+epsl} + \end{figure} + +\FloatBarrier +\subsubsection{Utilisation de minipages côte à côte} +Le fait de placer les commandes \verb|\includegraphics| à l'intérieur d'environnements +\texttt{minipage} donne plus de contrôle à l'utilisateur sur le placement vertical du dessin. +Par exemple +\begin{verbatim} + \begin{figure} \centering + \begin{minipage}[c]{0.5\textwidth} + \centering \includegraphics[width=1in]{graphic.eps} + \end{minipage}% + \begin{minipage}[c]{0.5\textwidth} + \centering \includegraphics[width=2in]{graphic.eps} + \end{minipage} + \caption{Centres alignés verticalement} + \end{figure} +\end{verbatim} +produit la Figure~\vref{f42+epsl}, qui a des dessins centrés verticalement. + \begin{figure}[htb] \centering + \begin{minipage}[c]{0.5\textwidth} + \psfrag{Graphic}[][][0.8]{Graphique} + \centering \includegraphics[width=1in]{graphic.eps} + \end{minipage}% + \begin{minipage}[c]{0.5\textwidth} + \psfrag{Graphic}[][][1.6]{Graphique} + \centering \includegraphics[width=2in]{graphic.eps} + \end{minipage} + \caption{Centres alignés verticalement}\label{f42+epsl} + \end{figure} + +\lneed{6} +\noindent +Notes sur cet exemple: +\begin{itemize} +\item Comme toute autre objet \LaTeX, les minipages sont positionnées de manière que leur +point de référence soit aligné sur la ligne de base courante. Par défaut, les minipages +utilisent l'option \texttt{[c]} qui place le point de référence au centre du bord gauche de la +minipage, l'option \texttt{[t]} place le point de référence sur le bord gauche de la minipage +au niveau de la ligne de base de la ligne du haut de la minipage, et l'option \texttt{[b]} +place le point de référence sur le bord gauche de la minipage, au niveau de la ligne de base +de la ligne du bas de la minipage (voir la Section~\vref{ss+epsl+AVM}). +\item Le \verb|%| après le premier \verb|\end{minipage}| évite l'insertion d'un espacement inter-mots +entre les boîtes \texttt{minipage} (voir la Section~\vref{ss+epsl+EH}). +\item Lorsque les largeurs des minipages n'ont pas pour somme 1.0\verb|\textwidth|, les +commandes \label{EP+hspace+2}\verb|\hspace|\index{hspace@\CS{hspace}, commande} ou \verb|\hfill|\label{EP+hfill+2}\index{hfill@\CS{hfill}, commande} peuvent être utilisées pour spécifier l'espacement +horizontal (voir la Section~\vref{ss+epsl+EH}). +\end{itemize} + +\FloatBarrier +\subsection{Figures côte à côte} +Dans la section précédente, plusieurs environnement \texttt{minipage} étaient utilisés à +l'intérieur d'un environnement \texttt{figure} pour produire une seule figure formée de +plusieurs dessins. Placer des instructions \verb|\caption| à l'intérieur des minipages +fait que les minipages elles-mêmes deviennent des figures. Par exemple +\begin{verbatim} + \begin{figure} \centering + \begin{minipage}[t]{0.5\textwidth} + \centering + \includegraphics[width=1in]{graphic.eps} + \caption{Petite boîte}\label{fig+side+a} + \end{minipage}% + \begin{minipage}[t]{0.5\textwidth} + \centering + \includegraphics[width=1.5in]{graphic.eps} + \caption{Grande boîte}\label{fig+side+b} + \end{minipage} + \end{figure} +\end{verbatim} +produit les Figures~\ref{f43+epsl} et~\vref{f44+epsl}. + \begin{figure}[htb] \centering + \begin{minipage}[t]{0.5\textwidth} + \centering + \psfrag{Graphic}[][][0.8]{Graphique} + \includegraphics[width=1in]{graphic.eps} + \caption{Petite boîte}\label{f43+epsl} + \end{minipage}% + \begin{minipage}[t]{0.5\textwidth} + \centering + \psfrag{Graphic}[][][1.2]{Graphique} + \includegraphics[width=1.5in]{graphic.eps} + \caption{Grande boîte}\label{f44+epsl} + \end{minipage} + \end{figure} + +Bien que les commandes ci-dessus n'utilisent en tout \emph{qu'un seul} environnement \texttt{figure}, +elles produisent \emph{deux} figures car deux commandes \verb|\caption| ont été utilisées. + +%\FloatBarrier +\subsubsection{Minipages distinctes pour les légendes} +Les options \texttt{[t]} pour les minipages côte à côte dans les Figures~\vref{f43+epsl} +et~\vref{f44+epsl} font que les lignes de base des dessins sont alignées (voir la +Section~\vref{ss+epsl+AVM}). Cela marche bien pour les graphiques sans rotation car ces +options font que les sommets des légendes sont alignés. Mais cela ne marche pas bien lorsque +les bas des dessins ne sont pas alignés. Par exemple, +\begin{verbatim} + \begin{figure} \centering + \begin{minipage}[t]{.33\textwidth} + \centering + \includegraphics[width=2cm]{graphic.eps} + \caption{Cadre avec une longue légende} + \end{minipage}% + \begin{minipage}[t]{.33\textwidth} + \centering + \includegraphics[width=2cm,angle=-30]{graphic.eps} + \caption{Cadre avec rotation} + \end{minipage}% + \end{figure} +\end{verbatim} +produit les Figures~\vref{f45+epsl} et~\vref{f46+epsl} qui n'ont pas leurs légendes alignées. +L'option \texttt{[b]} de minipage ne nous aide pas, car elle aligne les lignes du bas des +légendes. + \begin{figure}[htb] \centering + \begin{minipage}[t]{.33\textwidth} + \centering + \psfrag{Graphic}[][][0.63]{Graphique} + \includegraphics[width=2cm]{graphic.eps} + \caption{Cadre avec une longue légende}\label{f45+epsl} + \end{minipage}% + \begin{minipage}[t]{.33\textwidth} + \centering + \psfrag{Graphic}[][][0.63]{Graphique} + \includegraphics[width=2cm,angle=-30]{graphic.eps} + \caption{Cadre avec rotation}\label{f46+epsl} + \end{minipage}% + \end{figure} + +L'alignement des dessins et des légendes peut être réalisé séparément en créant deux rangées de +minipages: la première rangée contenant les dessins et la seconde rangée contenant les légendes. +Par exemple +\begin{verbatim} + \begin{figure} \centering + \begin{minipage}[b]{.36\textwidth} + \centering + \psfrag{Graphic}[][][0.63]{Graphique} + \includegraphics[width=2cm]{graphic.eps} + \end{minipage}% + \hspace{1cm}% + \begin{minipage}[b]{.36\textwidth} + \centering + \psfrag{Graphic}[][][0.63]{Graphique} + \includegraphics[width=2cm,angle=-30]{graphic.eps} + \end{minipage}\\[-12pt] + \begin{minipage}[t]{.36\textwidth} + \caption{Cadre avec une longue légende} + \end{minipage}% + \hspace{1cm}% + \begin{minipage}[t]{.36\textwidth} + \caption{Cadre avec rotation} + \end{minipage}% + \end{figure} +\end{verbatim} +produit les Figures~\vref{f47+epsl} et~\vref{f48+epsl}, qui ont les lignes de base des dessins +alignées et les lignes du haut des légendes alignées. + \begin{figure}[hbt] + \psfrag{Graphic}[][][0.63]{Graphique} + \centering + \begin{minipage}[b]{.36\textwidth} + \centering + \includegraphics[width=2cm]{graphic.eps} + \end{minipage}% + \hspace{1cm}% + \begin{minipage}[b]{.36\textwidth} + \centering + \includegraphics[width=2cm,angle=-30]{graphic.eps} + \end{minipage}\\[-12pt] + \begin{minipage}[t]{.36\textwidth} + \caption{Cadre avec une longue légende}\label{f47+epsl} + \end{minipage}% + \hspace{1cm}% + \begin{minipage}[t]{.36\textwidth} + \caption{Cadre avec rotation}\label{f48+epsl} + \end{minipage}% + \end{figure} + +\lneed{5} +\noindent +Notes sur cet exemple: +\begin{itemize} +\item Le \verb|\\| coupe la ligne après le dernier dessin. L'argument optionnel de \verb|\\| +(\texttt{12pt}) rapproche les légendes des dessins en retirant 12~points d'espacement vertical +sur la coupure de ligne. Cette longueur devrait être ajustée par l'utilisateur. +\item Les minipages pour les dessins ont l'option \texttt{[b]} pour que leurs points de +référence soient sur la ligne de base de la ligne du bas de la minipage. +\item Les minipages des légendes ont l'option \texttt{[t]} pour que leurs points de référence +soient sur la ligne de base de la ligne du haut de la minipage. +\item Toute commande \verb|\label| doit être placée dans la même minipage que la commande +\verb|\caption| correspondante, \emph{après} la commande \verb|\caption|. +\end{itemize} + +%\FloatBarrier +\subsection{Sous-figures côte à côte}\label{ss+epsl+SFCC} +Il peut être souhaitable de faire référence à des dessins côte à côte à la fois +individuellement et comme un groupe. La commande +\verb|\subfigure|\label{EP+subfigure}\index{subfigure@\CS{subfigure}, commande} +(du paquetage +\index{subfigure@\texttt{subfigure}, paquetage}% +\texttt{subfigure}% +\ifguide, décrit page~\pageref{o+subfigure}\fi) +définit le groupe de dessins côte à +côte comme une seule figure et définit chaque dessin comme une sous-figure. Par exemple: +\begin{verbatim} + \begin{figure} \centering + \subfigure[Petit cadre avec une longue légende]{% + \label{fig+subfig+a} % label de la première sous-figure + \includegraphics[width=1in]{graphic.eps}} + \hspace{1in} + \subfigure[Grand cadre]{% + \label{fig+subfig+b} % label de la seconde sous-figure + \includegraphics[width=1.5in]{graphic.eps}} + \caption{Deux sous-figures}% + \label{fig+subfig} % label de la figure entière + \end{figure} +\end{verbatim} +produit la Figure~\vref{f49+epsl}. +Taper \verb|\ref{fig+subfig+a}| produit~\ref{sf49a+epsl}, +taper \verb|\ref{fig+subfig+b}| produit~\ref{sf49b+epsl} et +taper \verb|\ref{fig+subfig}| produit~\ref{f49+epsl}. + \begin{figure}[tbh] \centering + \subfigure[Petit cadre avec une longue légende]{% + \label{sf49a+epsl} % label de la première sous-figure + \psfrag{Graphic}[][][.8]{Graphique} + \includegraphics[width=1in]{graphic.eps}} + \hspace{1in} + \subfigure[Grand cadre]{% + \label{sf49b+epsl} % label de la seconde sous-figure + \psfrag{Graphic}[][][1.2]{Graphique} + \includegraphics[width=1.5in]{graphic.eps}} + \caption{Deux sous-figures}% + \label{f49+epsl} % label de la figure entière + \end{figure} + +\subsubsection{Environnements minipage à l'intérieur de sous-figures} +Comme les autres dessins côte à côte, les sous-figures peuvent être utilisées avec des +environnements \texttt{minipage}. Selon la situation, ceci peut faciliter la réalisation de +l'espacement désiré. Par exemple +\lneed{6} +\begin{verbatim} + \begin{figure} + \subfigure[Petit cadre avec une longue légende]{% + \label{fig+mini+subfig+a} %% label de la première sous-figure + \begin{minipage}[b]{0.5\textwidth} + \centering\includegraphics[width=1in]{graphic.eps} + \end{minipage}}% + \subfigure[Grand cadre]{% + \label{fig+mini+subfig+b} %% label de la seconde sous-figure + \begin{minipage}[b]{0.5\textwidth} + \centering\includegraphics[width=1.5in]{graphic.eps} + \end{minipage}} + \caption{Minipages dans des sous-figures}% + \label{fig+mini+subfig} %% label de la figure entière + \end{figure} +\end{verbatim} +produit la Figure~\vref{f50+epsl}, qui contient les sous-figures~\ref{sf50a+epsl} +et~\ref{sf50b+epsl}. + \begin{figure}[htb] + \subfigure[Petit cadre avec une longue légende]{% + \label{sf50a+epsl} %% label de la première sous-figure + \begin{minipage}[b]{0.5\textwidth} + \psfrag{Graphic}[][][0.8]{Graphique} + \centering\includegraphics[width=1in]{graphic.eps} + \end{minipage}}% + \subfigure[Grand cadre]{% + \label{sf50b+epsl} %% label de la seconde sous-figure + \begin{minipage}[b]{0.5\textwidth} + \psfrag{Graphic}[][][1.2]{Graphique} + \centering\includegraphics[width=1.5in]{graphic.eps} + \end{minipage}} + \caption{Minipages dans des sous-figures}% + \label{f50+epsl} %% label de la figure entière + \end{figure} + +Puisque la légende d'une sous-figure est aussi large que la sous-figure, les légendes des +sous-figures de la Figure~\ref{f50+epsl} sont plus larges que celles de la +Figure~\vref{f49+epsl}. Ceci parce que les sous-figures de la Figure~\ref{f49+epsl} ne +contiennent que les dessins alors que celles de la Figure~\ref{f50+epsl} contiennent des +minipages de largeur \texttt{0.5\bs textwidth}. + +\subsubsection{Changer la numérotation des sous-figures} +Les étiquettes des sous-figures ont deux formes: +\begin{enumerate}[1.] +\item Une qui apparaît en dessous de la sous-figure comme portion de la légende. Elle est +produite par la commande \verb|\@thesubfigure|. +\item Une qui apparaît lorsque la commande \verb|\ref| est utilisée. Elle est produite par +concaténation de la sortie de \verb|\p@subfigure| et de la sortie de \verb|\thesubfigure|. +\end{enumerate} +Ces commandes utilisent le compteur \texttt{subfigure} et la commande \verb|\thesubfigure|, ce +qui fait que la mise en forme de l'étiquette de sous-figure est contrôlée par les commandes +suivantes: +\begin{itemize} +\item La commande \verb|\thefigure| imprime le numéro de la figure courante. +\item Le compteur \texttt{subfigure} compte les sous-figures. +La commande +de mise en page +\verb|\alph{subfigure}| imprime la valeur du compteur \texttt{subfigure} en lettres +minuscules, alors que +par contre %ADDED for formatting +\verb|\roman{subfigure}| imprime la valeur du compteur \texttt{subfigure} +en chiffres romains minuscules +(voir \ifguide page~\pageref{tm3+alph} et~\fi\cite[page~98]{latex-manual} ou~\cite[page~446]{latex-comp} +pour une liste des commandes d'impression des compteurs). +\item La commande \verb|\thesubfigure| est par défaut \verb|(\alph{subfigure})| qui produit +(a), (b), etc. +\item La commande \verb|\@thesubfigure| est par défaut \verb|\thesubfigure\space| qui ajoute +un espace entre l'étiquette de la légende et la légende. +\item La commande \verb|\p@subfigure| est par défaut \verb|\thefigure| +\end{itemize} +Ces commandes donnent par défaut les étiquettes de légende (a), (b), etc. et les étiquettes de +référence par \verb|\ref| 12(a), 12(b), etc. +Voir \ifguide page~\pageref{o+subfigure} et~\fi\cite{subfigure} +pour le contrôle de la taille et de la fonte des étiquettes des sous-figures. + +\lneed{5} +\MARTIT{\botsmash{\tshortstack[r]{Exemples de\STRUT\\Sous-figures\STRUT}}~~}{\null}% +\vspace*{-2.5\baselineskip} +\begin{enumerate}[1.] +\item Pour avoir des étiquettes de légende (i), (ii), etc. et des étiquettes pour \verb|\ref| +12i. 12ii, etc., tapez les commandes suivantes (de préférence dans le préambule du fichier +\LaTeX): +\begin{verbatim} + \renewcommand{\thesubfigure}{\roman{subfigure}} + \makeatletter + \renewcommand{\@thesubfigure}{(\thesubfigure)\space} + \renewcommand{\p@subfigure}{\thefigure} + \makeatother +\end{verbatim} +La commande \verb|\makeatletter|\label{EP+makeatletter+2}\index{makeatletter@\CS{makeatletter}, commande} +dit à \LaTeX\ de traiter le caractère \verb|@| comme une +lettre, ce qui permet le redéfinition des commandes \index{internes@internes, commandes}internes. +La commande \verb|\makeatother|\label{EP+makeatother+2}\index{makeatother@\CS{makeatother}, commande} +dit à \LaTeX\ de revenir au comportement normal qui traite \verb|@| comme une non-lettre. +\item Pour avoir des étiquettes de légende 12.1:, 12.2:, etc. et des étiquettes pour +\verb|\ref| 12.1, 12.2, etc., tapez les commandes suivantes +\begin{verbatim} + \renewcommand{\thesubfigure}{\thefigure.\arabic{subfigure}} + \makeatletter + \renewcommand{\@thesubfigure}{\thesubfigure:\space} + \renewcommand{\p@subfigure}{} + \makeatother +\end{verbatim} +\end{enumerate} + +\subsubsection{Ajouter les sous-figures à la liste des figures} +Par défaut, la Liste des Figures engendrée par la commande +\verb|\listoffigures|\label{EP+listoffigures+1}\index{listoffigures@\CS{listoffigures}, commande} inclut +seulement les figures, \emph{pas} les sous-figures. Pour ajouter les sous-figures à la Liste +des Figures, tapez +\begin{quote} +\verb|\setcounter{lofdepth}{2}| +\end{quote} +avant la commande \verb|\listoffigures|. + +Notez qu'une modification dans \LaTeX\ a fait que le paquetage \texttt{subfigure} actuel (mars +1995) ajoute «~numberline1~» au début de chaque entrée de sous-figure dans la Liste des +Figures. Pour corriger cela, ajoutez le code suivant dans le préambule de votre +document\,\footnote{NdT: ou dans un paquetage, sans \texttt{\bs makeatletter} ni \texttt{\bs +makeatother}, qu'il faudra charger par \texttt{\bs usepackage\{.{}.{}.\}}.}: +\begin{verbatim} + \makeatletter + \renewcommand{\@subcaption}[2]{% + \begingroup + \let\label\@gobble + \def\protect{\string\string\string}% + \xdef\@subfigcaptionlist{% + \@subfigcaptionlist,% + {\numberline {\@currentlabel}% + \noexpand{\ignorespaces #2}}}% + \endgroup + \@nameuse{@make#1caption}{\@nameuse{@the#1}}{#2}} + \makeatother +\end{verbatim} + +\section{Dessins empilés} +Dans la Section~\vref{s+epsl+DCC}, les figures côte à côte sont arrangées en plaçant des blocs +(soit \verb|\includegraphics| soit minipages) l'un à côté de l'autre sur une ligne. Les +dessins empilés sont construits exactement de la même manière. Par exemple, +\begin{verbatim} + \begin{figure} \centering + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 1} + \end{minipage}% + \hspace{0.04\textwidth}% + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 2} + \end{minipage}\\[20pt] + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 3} + \end{minipage}% + \hspace{0.04\textwidth}% + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 4} + \end{minipage}% + \hspace{0.04\textwidth}% + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 5} + \end{minipage} + \end{figure} +\end{verbatim} +produit les Figures~\ref{f51+epsl}--\vref{f55+epsl}. Le \verb|\\[20pt]| après la minipage +«~Légende~2~» crée une coupure de ligne avec 20~points d'espacement vertical supplémentaire. + \begin{figure}[htb] + \captionstyle{center} + \renewcommand{\captionfont}{\small} + \psfrag{Graphic}[][][0.8]{Graphique} + \centering + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 1}\label{f51+epsl} + \end{minipage}% + \hspace{0.04\textwidth}% + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 2} + \end{minipage}\\[20pt] + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 3} + \end{minipage}% + \hspace{0.04\textwidth}% + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 4} + \end{minipage}% + \hspace{0.04\textwidth}% + \begin{minipage}[b]{0.3\textwidth} + \includegraphics[width=1in]{graphic.eps} + \caption{Légende 5}\label{f55+epsl} + \end{minipage} + \end{figure} + +\section{Placer une table à côté d'une figure}\label{s+epsl+PTCF} +Dans la Section~\vref{s+epsl+DCC}, les figures côte à côte sont construites en utilisant des +commandes \verb|\caption| multiples dans un seul environnement \texttt{figure}. De même, des +tables côte à côte sont créées en utilisant des commandes \verb|\caption| multiples dans un +seul environnement \texttt{table}. + +Les commandes \verb|\figcaption| et \verb|\tabcaption| définies dans la +Section~\vref{s+epsl+FNF} font qu'il est possible de placer une table à côté d'une figure. Par +exemple, les commandes suivantes +\begin{verbatim} + \begin{figure}[htb] + \begin{minipage}[b]{0.45\textwidth} + \centering + \includegraphics[width=0.8\textwidth]{graphic.eps} + \caption{Voici une figure à côté d'une table}% + \label{fig+by+table} + \end{minipage}% + \hspace{0.1\textwidth}% + \begin{minipage}[b]{0.45\textwidth} + \centering + \begin{tabular}{|c|c|} \hline + Jour & Données \\ \hline\hline + Lundi & 14.6 \\ + Mardi & 14.3 \\ + Mercredi & 14.2 \\ + Jeudi & 14.5 \\ + Vendredi & 14.9 \\ \hline + \end{tabular} + \tabcaption{Voici une table à côté d'une figure}% + \label{table+by+fig} + \end{minipage} + \end{figure} +\end{verbatim} +utilisent un environnement \texttt{figure} pour créer la Figure~\vref{f56+epsl} et la +Table~\ref{t14+epsl}. + \begin{figure}[htb] + \begin{minipage}[b]{0.45\textwidth} + \centering + \psfrag{Graphic}[][][2.3]{Graphique} + \includegraphics[width=0.8\textwidth]{graphic.eps} + \caption{Voici une figure à côté d'une table}% + \label{f56+epsl} + \end{minipage}% + \hspace{0.1\textwidth}% + \begin{minipage}[b]{0.45\textwidth} + \centering + \begin{tabular}{|c|c|} \hline + Jour & Données \\ \hline\hline + Lundi & 14.6 \\ + Mardi & 14.3 \\ + Mercredi & 14.2 \\ + Jeudi & 14.5 \\ + Vendredi & 14.9 \\ \hline + \end{tabular} + \tabcaption{Voici une table à côté d'une figure}% + \label{t14+epsl} + \end{minipage} + \end{figure} + +Puisque \LaTeX\ permet que les figures flottantes et le table flottantes s'entremêlent, le +fait d'utiliser \verb|\tabcaption| dans un environnement \texttt{figure} peut faire que la +table soit placée avant d'autres tables non encore placées. De même, utiliser \verb|\figcaption| +dans un environnement \texttt{table} peut placer la figure avant d'autres figures non encore +traitées. Si ceci pose un problème, vous pouvez l'éviter en mettant une commande +\verb|\FloatBarrier|\label{EP+FloatBarrier+2}\index{FloatBarrier@\CS{FloatBarrier}, commande} avant l'environnement \texttt{figure} (voir la Section~\vref{ss+epsl+PEFNT}). + +\section{Figures continuées} +Lorsque deux figures consécutives ont leurs contenus en étroite relation, il peut être +souhaitable d'étiqueter les figures avec le même numéro de figure. Puisque le compteur +\texttt{figure} contient le numéro de la prochaine figure, il est possible de donner le même +numéro à deux figures en décrémentant le compteur \texttt{figure} avant le deuxième +environnement \texttt{figure}. Par exemple, +\begin{verbatim} + \end{figure} + \addtocounter{figure}{-1} + \begin{figure} +\end{verbatim} +Cependant l'impossibilité de distinguer ces figures numérotées de la même façon sème la +confusion. + +Le meilleur moyen de construire une figure continuée est d'utiliser le paquetage spécifique +\texttt{subfigure}\ifguide, décrit page~\pageref{o+subfigure}\fi. Ceci permet de référencer +individuellement les sous-figures par «~Figure~12(a)~» ou collectivement par «~Figure~12~». +Puisque les sous-figures continuées sont dans des environnements \texttt{figure} différents, +le compteur \texttt{figure} doit être décrémenté par +\begin{quote} +\verb|\addtocounter{figure}{-1}| +\end{quote} +entre les figures, tandis que le compteur \texttt{subfigure} doit être incrémenté par +\begin{quote} +\verb|\stepcounter{subfigure}| +\end{quote} +au début du deuxième environnement \texttt{figure}. Par exemple, le code suivant produit deux +sous-figures continuées. +\begin{verbatim} + \begin{figure} \centering + \subfigure[Première partie]{% + \label{fig+graphics+a}% label pour sous-figure + \includegraphics[width=\textwidth]{file1.eps}}% + \caption{Grand dessin}% + \label{fig+graphics}% label pour la figure + \end{figure} + + \addtocounter{figure}{-1} + \begin{figure} \centering + \stepcounter{subfigure} + \subfigure[Seconde partie]{% + \label{fig+graphics+b}% label pour sous-figure + \includegraphics[width=\textwidth]{file2.eps}}% + \caption{Grand dessin (suite)}% + \end{figure} +\end{verbatim} +Dans cet exemple, chacun des environnements \texttt{figure} contient une seule sous-figure. +Mais lorsque chacun des environnements \texttt{figure} peut contenir plusieurs sous-figures (comme +dans la Section~\vref{ss+epsl+SFCC}), le compteur \texttt{subfigure} doit être +incrémenté de manière adéquate pour prendre en compte les sous-figures contenues dans la +première figure. + +Puisque les figures continuées sont dans des éléments flottants distincts, il est possible (mais +peu probable) qu'elles apparaissent sur des pages non consécutives. Si ceci se produit, les +figures peuvent être forcées à rester ensemble en plaçant une commande +\verb|\FloatBarrier|\label{EP+FloatBarrier+3}\index{FloatBarrier@\CS{FloatBarrier}, commande} +après la dernière figure continuée. + +%\addcontentsline{toc}{section}{Références} + +%\addcontentsline{toc}{section}{Index} + +\clearpage +\label{ind-epsl-0} +%\let\hfil\relax +{\raggedright\small +\setlength{\columnseprule}{.4pt} +\froff\printindex\par +\null\label{ind-epsl-1}} +%\clearpage +\thispagestyle{empty} +\ifguide +\openexport{x206} +\Export{part} +\Export{chapter} +\Export{page} +\Export{vrcnt} +\closeexport +\fi + +\ifguide\else +\begingroup +\cleardoublepage +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\makeatletter +%\let\svbibname\bibname +%\def\p@bibname{% +%{\setlength{\unitlength}{1pt}\begin{picture}(0,0) +%% y=150->140 (cheveux de Linus) +%\protect\put(250,140){\protect\makebox(210,0)[lt]{\protect\parbox{210pt}{\linus\char'154}}}% +%\end{picture}}\protect\svbibname\global\let\bibname\svbibname}% +%\def\bibname{\protect\p@bibname} +%\makeatother +\ifguide\renewcommand\chapter[2]{}\fi +%\chapter*{\bibname\markboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}} +\nocite{latexguide} +\nocite{latex-manual} +\nocite{latex-comp} +\nocite{latex-g-comp} +\nocite{grfguide} +\nocite{psfgguide} +\nocite{fancyhdr} +\nocite{subfigure} +\nocite{ifthen} +\nocite{afterpage} +\nocite{caption2} +\nocite{rotating} +\nocite{fancybox} +\nocite{placeins} +\nocite{flafter} +\nocite{morefloats} +\nocite{endfloat} +\nocite{lshort} +\nocite{reckdahl} +\section*{Bibliographie}\markboth{BIBLIOGRAPHIE}{BIBLIOGRAPHIE} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\bibliographystyle{fplain} +%\froff +\bibliography{btxdoc} +\endgroup +\fi +\end{document} |