Dois-je utiliser le centre ou le centrage pour les figures et les tableaux?

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 de centering déclaration?
  • À utiliser avec IEEEtran, \g@addto@macro\@floatboxreset\centering est inefficace car \figure redéfinit \@floatboxreset. Jutilise etoolbox 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.

illustration des différences entre

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.

Autres comparaisons

\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:

entrez la description de limage ici

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} 

entrez la description de limage ici entrez la description de limage ici

Commentaires

  • Que diriez-vous de flushleft et flushright une table ou une figure?
  • @BlackMild Il y a flushleft et flushright, ainsi que les commandes \raggedright et \raggedleft

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *