¿Cuál es la forma correcta de centrar figuras y tablas (figure
, table
)?
\begin{center} ... \end{center}
o
\begin{centering} ... \end{centering}
Comentarios
Responder
La forma correcta es
\begin{figure} \centering ... (Code for pictures, captions) ... \end{figure}
\begin{center}
… \end{center}
dentro de un figure
el entorno dará como resultado un espacio vertical adicional (generalmente no deseado).
Tenga en cuenta que mientras \centering
produce el espaciado adecuado, agregue manualmente este comando a cada figure
entorno (y para cada table
y flotante personalizado) es tedioso y va en contra de la idea de separar el contenido de un documento del formato . Incluso mejores formas son agregar lo siguiente al preámbulo de su documento (gracias a egreg por el consejo):
\makeatletter \g@addto@macro\@floatboxreset\centering \makeatother
o cargar el floatrow
paquete que permite controlar la justificación de los contenidos flotantes del preámbulo (con objectset=centering
como predeterminado).
Comentarios
- También tenga en cuenta que
\centering
es una declaración, no un entorno. El funcionamiento de\begin{centering}
es una consecuencia desafortunada de la forma en que los entornos funcionan internamente en LaTeX: el entorno foo consiste esencialmente en dos macros\foo
y\endfoo
que son llamados por\begin{foo}
y\end{foo}
, respectivamente (junto con alguna verificación de errores, como anidación adecuada). Pero dado que\endfoo
se llama a través de\csname endfoo\endcsname
, esa macro no ‘ realmente tiene que existir . Esto significa que incluso cosas como$\begin{alpha}\end{alpha}$
funcionan (pero, por supuesto, no deben usarse). - Hay ‘ s también el más esotérico
\g@addto@macro\@floatboxreset\centering
que, por supuesto, debe estar precedido por\makeatletter
y seguido por\makeatother
. - Gracias por mencionar el paquete
floatrow
que parece muy, muy poderoso (debería haberlo encontrado antes, ahora cambiando todas las definiciones de figura / tabla en mi tesis será bastante trabajo). Sin embargo, la documentación es tan larga y hay tantas posibilidades de configuración, que será muy difícil encontrar la mejor configuración … ¿hay un tutorial con un » recomendado » ¿configuración para una tesis de dos páginas? 🙁 - @Villemoes Entonces, ¿por qué tantos editores de LaTeX usan fragmentos para insertar figuras que usan el entorno
center
en lugar delcentering
declaración? - Para usar con
IEEEtran
,\g@addto@macro\@floatboxreset\centering
no es efectivo ya que\figure
redefine\@floatboxreset
. Yo usoetoolbox
y\patchcmd{\figure}{\normalsize}{\normalsize\centering}{}{}
.
Respuesta
Este es un suplemento (¡muy tarde!) de respuesta de lockstep , que solo ofrece una demostración visual de la diferencia entre el uso de \centering
y el center
dentro de figure
entornos.
Cada página muestra 2 figuras, una con \centering
y otra con center
. Las diferencias en el espaciado son el resultado de ordenar los dos figure
entornos diferentes rently. En la primera página, \centering
se usa primero y el entorno center
en segundo lugar, mientras que en la segunda página, este orden se invierte.
Los resultados muestran claramente un espaciado inadecuado para la figura inferior (primera página) y la figura superior (segunda página), es decir, para cualquier figura que use center
en lugar de \centering
.
showframe
se utiliza para mostrar el diseño general de la página.
código > \ centrado < / código > y < código > centro < / código > entorno dentro de < código > figura < / código > entornos
\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}
Finalmente, compare dos páginas con dos cifras cada una.La primera página incluye figuras que usan \centering
, mientras que la segunda incluye figuras que usan el entorno 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}
Respuesta
Dado que este hilo dio origen a un pequeño malentendido , me gustaría agregar una nota.
Como dicen las otras respuestas, center
el entorno debe nunca dentro de un figure
o table
entorno , debes usar \centering
en su lugar:
Pero si su tabla o imagen no están flotando, es decir, le gustaría tenerlas exactamente donde las puso, es decir, no dentro de un entorno figure
o table
, puede utilizar un center
sin problemas. Es equivalente a un entorno table
o figure
con la opción H
de float
paquete.
Si desea agregar un título, puede usar \captionof
de \caption
paquete.
\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}
Comentarios
- ¿Qué tal si flushleft y flushright una tabla o una figura?
- @BlackMild Hay
flushleft
yflushright
entornos, así como\raggedright
y\raggedleft
comandos
center
alrededor del entornofigure
! Consulte Las tablas y las secciones se pierden . (No es que yo diga que Yiannis hizo esto)