Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
composition:flottants:pourquoi_faire_flotter_ses_figures_et_tableaux [2020/12/08 13:22] – Correction d'un lien. yannick.tanguy | 3_composition:flottants:pourquoi_faire_flotter_ses_figures_et_tableaux [2021/06/13 21:21] (Version actuelle) – Correction de coquilles. jejust |
---|
====== Comment gérer proprement les flottants dans LaTeX ? ====== | ====== Comment gérer proprement les flottants dans LaTeX? ====== |
| |
Les tables et les figures surprennent souvent, en //flottant// loin de l'endroit où elles ont été placées dans le code du document. Il s'agit là d'un principe parfaitement ordinaire dans une conception de document : tout logiciel de composition positionnera les figures et les tableaux là où ils enfreindront le moins possible de règles typographiques. Même si vous utilisez le spécificateur de placement « ''h'' » (pour //here//, c'est-à-dire « ici »), la figure ou le tableau ne sera pas positionnée « ici » si ces règles ne sont pas respectées. Ces règles elles-mêmes sont assez simples et sont listées à la page 198, section C.9 du manuel LaTeX. Dans le pire des cas, les règles de LaTeX peuvent entraîner l'empilement des éléments flottants dans la mesure où vous obtenez un message d'erreur disant « [[generalites:erreurs:too_many_unprocessed_floats|Too many unprocessed floats]] ». | Les tables et les figures surprennent souvent, en //flottant// loin de l'endroit où elles ont été placées dans le code du document. |
| Il s'agit là d'un principe parfaitement ordinaire dans une conception de document : tout logiciel de composition positionnera |
| les figures et les tableaux là où ils enfreindront le moins possible de règles typographiques. Même si vous utilisez |
| le spécificateur de placement « ''h'' » (pour //here//, c'est-à-dire « ici »), la figure ou le tableau ne sera pas positionnée « ici » |
| si ces règles ne sont pas respectées. Ces règles elles-mêmes sont assez simples et sont listées à la page 198, section C.9 |
| du manuel <latex>\LaTeX</latex> (FIXME //sans doute à préciser//). Mais, dans le pire des cas, les règles de <latex>\LaTeX</latex> |
| peuvent entraîner l'empilement des éléments flottants dans la mesure où vous obtenez un message d'erreur disant |
| « [[2_programmation:erreurs:t:too_many_unprocessed_floats|Too many unprocessed floats]] ». |
| |
Ce qui suit est une simple liste de choses à faire pour résoudre ces problèmes (cette liste parle tout au long de « figures », mais s'applique aussi bien aux tableaux, ou aux flottants « non standard » définis par l'extension [[ctanpkg>float|float]] ou autres). | Ce qui suit est une simple liste de points à étudier pour résoudre ces problèmes. |
| |
===== Avez-vous vraiment besoin de flottants ? ===== | ===== Éviter les flottants non nécessaires ===== |
| |
Si ce n'est pas le cas, lisez la question « [[composition:flottants:positionnement:forcer_la_position_d_un_flottant2|Comment imposer un emplacement à un flottant ?]] » | La question « [[3_composition:flottants:positionnement:forcer_la_position_d_un_flottant2|Comment imposer un emplacement à un flottant ?]] » illustre des méthodes pour contourner la mécanique de flottement, ce qui peut correspondre à une solution efficace pour des documents courts ou des documents ne nécessitant pas un grand formalisme. |
| |
===== Avez-vous donné les bons paramètres de placement à vos flottants ? ===== | ===== Utiliser les bons spécificateurs de placement ===== |
| |
FIXME The default (''tbp'') is usually satisfactory, but you can reasonably change it (for example, to add an ''h''). Whatever you do, //don't// omit the ''p'': doing so could cause LaTeX to believe that if you can't have your figure //here//, you don't want it //anywhere//. (LaTeX does try to avoid being confused in this way...) | La séquence de spécificateurs par défaut, « ''[tbp]'' », est généralement satisfaisante, mais vous pouvez raisonnablement la modifier (par exemple, en y ajoutant un « ''h'' »). Quoi que vous fassiez, //n'omettez// pas le « ''p'' », sinon cela pourrait amener <latex>\LaTeX</latex> à considérer que, si vous ne pouvez pas avoir votre flottant //ici//, vous ne le voulez //nulle part//. |
| |
===== Avez-vous de bons paramètres de gestion des flottants ? ===== | ===== Changer les paramètres de gestion des flottants ===== |
| |
LaTeX's own float placement parameters could be preventing placements that seem entirely "reasonable" to you --- they're notoriously rather conservative. To encourage LaTeX not to move your figure, you may need to loosen its demands. (The most important ones are the ratio of text to float on a given page, but it's sensible to have a fixed set that changes the whole lot, to meet every eventuality.) | Les paramètres de <latex>\LaTeX</latex> gérant le placement des flottants peuvent empêcher des placements vous semblant « raisonnables » : ils sont connus pour être assez stricts. Pour encourager <latex>\LaTeX</latex> à ne pas bouger votre flottant, vous devrez peut-être relâcher ses exigences. Les paramètres les plus importants sont ici les ratios « texte sur page » et « flottant sur page » mais il est judicieux d'avoir plutôt un ensemble fixe de paramètres pour répondre à toutes les éventualités. |
| |
<code latex> | <code latex> |
\renewcommand{\topfraction}{.85} | \renewcommand{\topfraction}{.85} |
</code> | </code> |
| |
The meanings of these parameters are described on pages 199--200, section C.9 of the LaTeX manual. | La signification de ces paramètres est donnée en pages 199 à 200, section C.9 du manuel <latex>\LaTeX</latex>. (FIXME //sans doute à préciser//) |
| |
===== Avez-vous des emplacements pour une commande \clearpage ? ===== | ===== Utiliser la commande “\clearpage” ===== |
| |
Are there places in your document where you could "naturally" put a ''\clearpage'' command ? If so, do: the backlog of floats is cleared after a ''\clearpage''. (Note that the ''\chapter'' command in the standard [[ctanpkg>book|book]] and [[ctanpkg>report|report]] classes implicitly executes ''\clearpage'', so your floats can't wander past the end of a chapter.) | Votre document dispose d'endroits où vous où vous pourriez mettre une commande ''\clearpage''. Si c'est le cas, faites-le. Les flottants en liste d'attente seront alors tous positionnés là. D'ailleurs, la commande ''\chapter'' des classes standard [[ctanpkg>book|book]] et [[ctanpkg>report|report]] exécute implicitement ''\clearpage'', empêchant ainsi aux flottants de passer d'un chapitre à un autre. |
| |
===== Avez-vous essayé l'extension placeins ? ===== | ===== Utiliser l'extension “placeins” ===== |
| |
Try the [[ctanpkg>placeins|placeins]] package: it defines a ''\FloatBarrier'' command beyond which floats may not pass. A package option allows you to declare that floats may not pass a ''\section'' command, but you can place ''\FloatBarrier''s wherever you choose. | L'extension [[ctanpkg>placeins]] définit une commande ''\FloatBarrier'' (littéralement, une « barrière à flottant ») au-delà de laquelle les flottants ne peuvent pas aller. Vous pouvez placer des ''\FloatBarrier'' où vous le souhaitez mais une option de l'extension vous permet aussi de déclarer que les ''\section'' acquièrent cette propriété. |
| |
===== Avez-vous essayé l'extension flafter ? ===== | ===== Utiliser l'extension “flafter” ===== |
| |
If you are bothered by floats appearing at the top of the page (before they are specified in your text), try the [[ctanpkg>latex-base|flafter]] package, which avoids this problem by insisting that floats should always appear after their definition. | Si vous êtes gêné par les flottants apparaissant en haut de la page (avant qu'ils ne soient spécifiés dans votre texte), essayez l'extension [[ctanpkg>latex-base|flafter]], qui évite ce problème en insistant sur le fait que les flottants doivent toujours apparaître //après// leur définition. |
| |
===== Avez-vous essayé l'extension afterpage ? ===== | ===== Utiliser l'extension “afterpage” ===== |
| |
Have a look at the LaTeX2e [[ctanpkg>afterpage|afterpage]] package. Its documentation gives as an example the idea of putting ''\clearpage'' //after// the current page (where it will clear the backlog, but not cause an ugly gap in your text), but also admits that the package is somewhat fragile. Use it as a last resort if the other possibilities below don't help. | La documentation de l'extension [[ctanpkg>afterpage]] donne à titre d'exemple de son utilisation l'idée de mettre ''\clearpage'' //après// la page courante (traitant ainsi la liste d'attente des flottants sans pour autant causer un vilain vide dans votre texte), mais cette méthode est quelque peu fragile. Utilisez-la en dernier recours si les autres possibilités ci-dessous ne vous aident pas. |
| |
===== Avez-vous essayé l'extension morefloats ? ===== | ===== Utiliser l'extension “morefloats” ===== |
| |
If you would actually //like// great blocks of floats at the end of each of your chapters, try the ''\extrafloats'' command, or in older LaTeX releases, the [[ctanpkg>morefloats|morefloats]] package; this allows you to increase the number of floating inserts that LaTeX can handle at one time (from its original value of 18 or, now, 52, in LaTeX2e). | Si vous souhaitez réellement avoir de larges blocs de flottants à la fin de chacun de vos chapitres, essayez la commande ''\extrafloats'', ou pour les anciennes versions de <latex>\LaTeX</latex> l'extension [[ctanpkg>morefloats|morefloats]]. Cela vous permet d'augmenter le nombre de flottants que <latex>\LaTeX</latex> peut gérer à un instant donné (en partant de la valeur de base, 18 dans les versions anciennes de LaTeX ou 52 dans <latex>\LaTeXe</latex>). |
| |
Caveat: if you are using [[ctanpkg>etex-pkg|etex]] package to increase the number of registers available on old releases, you need to "reserve" some inserts for [[ctanpkg>morefloats|morefloats]]: something like: | Dans le cas particulier où vous utiliseriez l'extension [[ctanpkg>etex-pkg|etex]] pour augmenter le nombre de registres disponibles sur d'anciennes versions de <latex>\LaTeX</latex>, vous aurez alors besoin de réserver des emplacements pour [[ctanpkg>morefloats|morefloats]] avec le code ressemblant à ceci : |
| |
<code latex> | <code latex> |
</code> | </code> |
| |
===== Avez-vous essayé l'extension endfloat ? ===== | ===== Utiliser l'extension “endfloat” ===== |
| |
If you actually //wanted// all your figures to float to the end (//e.g//., for submitting a draft copy of a paper), don't rely on LaTeX's mechanism: get the [[ctanpkg>endfloat|endfloat]] package to do the job for you. | Si vous souhaitez avoir tous vos flottants en fin de document (par exemple pour soumettre une version provisoire d'un article), ne comptez pas sur les mécanismes usuels de <latex>\LaTeX</latex> : utilisez l'extension [[ctanpkg>endfloat|endfloat]] pour traiter ce point. |
| |
----- | ----- |
| |
//Source:// [[faquk>FAQ-floats|Moving tables and figures in LaTeX]] | //Source:// [[faquk>FAQ-floats|Moving tables and figures in LaTeX]] |
| |
{{htmlmetatags>metatag-keywords=(LaTeX,flottants) | {{htmlmetatags>metatag-keywords=(LaTeX,flottants,placement des figures,placement des tableaux,mettre les figures en fin de document) |
metatag-og:title=(Comment gérer les flottants dans LaTeX ) | metatag-og:title=(Comment gérer les flottants dans LaTeX?) |
metatag-og:site_name=(FAQ LaTeX francophone) | metatag-og:site_name=(FAQ LaTeX francophone) |
}} | }} |
| |