Quelle est la manière correcte de centrer les figures et les tableaux (figure, table)?
\begin{center} ... \end{center}
ou
\begin{centering} ... \end{centering}
Commentaires
Réponse
La bonne façon est
\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure}
\begin{center} … \end{center} à lintérieur dun figure entraînera un espace vertical supplémentaire (généralement indésirable).
Notez que si \centering produit un espacement approprié, en ajoutant manuellement cette commande à chaque figure lenvironnement (et à chaque table et float sur mesure) est fastidieux et va à lencontre de lidée de séparer le contenu dun document du format . Des moyens encore meilleurs sont dajouter ce qui suit à votre préambule de document (merci à egreg pour le conseil):
\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother
ou de charger le floatrow qui permet de contrôler la justification du contenu flottant à partir du préambule (avec objectset=centering comme par défaut).
Commentaires
- Notez également que
\centeringest une déclaration, pas un environnement. Que\begin{centering}fonctionne est une conséquence malheureuse de la façon dont les environnements fonctionnent en interne dans LaTeX: Lenvironnement foo se compose essentiellement de deux macros\fooet\endfooqui sont appelés par\begin{foo}et\end{foo}, respectivement (avec une vérification derreur, telle que nidification appropriée). Mais puisque\endfooest appelé via\csname endfoo\endcsname, cette macro ne doit pas ‘ exister . Cela signifie que même des éléments tels que$\begin{alpha}\end{alpha}$fonctionnent (mais ne doivent bien sûr pas être utilisés). - Là ‘ s aussi le plus ésotérique
\g@addto@macro\@floatboxreset\centeringqui, bien entendu, doit être précédé de\makeatletteret suivi de\makeatother. - Merci davoir mentionné le package
floatrowqui a lair très, très puissant (jaurais dû le trouver auparavant, en changeant maintenant toutes les définitions de figure / table dans ma thèse sera pas mal de travail). Cependant, la documentation est si longue et il y a tellement de possibilités de configuration, quil sera très difficile de trouver la meilleure configuration .. y a-t-il un tutoriel avec un » recommandé » configuration pour une thèse en deux étapes? 🙁 - @Villemoes Alors pourquoi tant déditeurs LaTeX utilisent des extraits pour insérer des figures qui utilisent encore lenvironnement
centerau lieu decenteringdéclaration? - À utiliser avec
IEEEtran,\g@addto@macro\@floatboxreset\centeringest inefficace car\figureredéfinit\@floatboxreset. Jutiliseetoolboxet\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}.
Réponse
Ceci est un (très tard!) supplément à la réponse de lockstep qui offre simplement une démonstration visuelle de la différence entre lutilisation de \centering et de lenvironnement center dans figure environnements.
Chaque page affiche 2 chiffres, lun utilisant \centering et lautre utilisant center. Les différences despacement sont le résultat de lordre des deux environnements figure différents remment. Sur la première page, \centering est utilisé en premier et lenvironnement center en second lieu, tandis que sur la deuxième page, cet ordre est inversé.
Les résultats montrent clairement un espacement inapproprié pour la figure inférieure (première page) et la figure supérieure (deuxième page), cest-à-dire pour le chiffre qui utilise center plutôt que \centering.
showframe est utilisé pour afficher la mise en page globale.
code > \ centering < / code > et < code > center < / code > environnement à lintérieur du < code > figure < / code > environnements
\documentclass{article} \usepackage{graphicx,showframe,kantlipsum} \begin{document} \kant[1] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \kant[2] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \kant[3] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \kant[4] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \end{document}
Enfin, comparez deux pages de deux chiffres chacune.La première page comprend des figures qui utilisent \centering, tandis que la seconde comprend des figures qui utilisent lenvironnement center.
\documentclass{article} \usepackage{graphicx,showframe,kantlipsum} \begin{document} \kant[1] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \kant[2] \begin{figure} \centering \includegraphics[scale=.25]{example-image-a} \caption{Figure with centering} \end{figure} \kant[3] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \kant[4] \begin{figure} \begin{center} \includegraphics[scale=.25]{example-image-a} \end{center} \caption{Figure in center environment} \end{figure} \end{document}
Réponse
Puisque ce fil a donné naissance à un petit malentendu , je voudrais ajouter une note.
Comme le disent les autres réponses, center lenvironnement ne doit jamais être utilisé dans un environnement figure ou table , vous devez utiliser \centering à la place:
Mais si votre table ou image ne sont pas flottantes, cest que vous aimeriez les avoir exactement là où vous les avez placées, cest-à-dire quelles ne sont pas dans un environnement figure ou table, vous pouvez utiliser un center sans problèmes. Il équivaut à un environnement table ou figure avec loption H de float package.
Si vous souhaitez ajouter une légende, vous pouvez utiliser \captionof de \caption package.
\documentclass{article} \usepackage{graphicx} \usepackage{booktabs} \usepackage{caption} \captionsetup[table]{position=above} \usepackage{float} \begin{document} You can use \texttt{center} environments here, because they are not within a floating one: \begin{center} \captionof{table}{A non-floating table within a \texttt{center} environment} \begin{tabular}{cc} \toprule Ducks & Lions \\ \midrule 1 & 2 \\ \bottomrule \end{tabular} \end{center} \begin{center} \includegraphics[width=.5\linewidth]{example-image-a} \captionof{figure}{A non-floating figure within a \texttt{center} environment} \end{center} They are equivalent to a \texttt{table} or \texttt{figure} environment with the \texttt{H} option of \texttt{float} package: \begin{table}[H] \centering \caption{A non-floating table with \texttt{H} option} \begin{tabular}{cc} \toprule Ducks & Lions \\ \midrule 1 & 2 \\ \bottomrule \end{tabular} \end{table} \begin{figure}[H] \centering \includegraphics[width=.5\linewidth]{example-image-a} \caption{A non-floating figure with \texttt{H} option} \end{figure} Just to show the also the lists works: \listoftables \listoffigures \end{document}
Commentaires
- Que diriez-vous de flushleft et flushright une table ou une figure?
- @BlackMild Il y a
flushleftetflushright, ainsi que les commandes\raggedrightet\raggedleft
centerautour de lenvironnementfigure! Voir Les tableaux et les sections sont égarés . (Pas que je dise que Yiannis a fait ça)