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
\centering
est 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\foo
et\endfoo
qui sont appelés par\begin{foo}
et\end{foo}
, respectivement (avec une vérification derreur, telle que nidification appropriée). Mais puisque\endfoo
est 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\centering
qui, bien entendu, doit être précédé de\makeatletter
et suivi de\makeatother
. - Merci davoir mentionné le package
floatrow
qui 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
center
au lieu decentering
déclaration? - À utiliser avec
IEEEtran
,\g@addto@macro\@floatboxreset\centering
est inefficace car\figure
redéfinit\@floatboxreset
. Jutiliseetoolbox
et\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
flushleft
etflushright
, ainsi que les commandes\raggedright
et\raggedleft
center
autour de lenvironnementfigure
! Voir Les tableaux et les sections sont égarés . (Pas que je dise que Yiannis a fait ça)