我应该对图形和表格使用 center 还是 centering ?

我应该对图形和表格使用 center 还是 centering ?

将图形和表格居中的正确方法是什么(figuretable)?

\begin{center}
...
\end{center}

或者

\begin{centering}
...
\end{centering}

答案1

正确的方法是

\begin{figure}
\centering
... (Code for pictures, captions) ...
\end{figure}

\begin{center}...在环境\end{center}内部figure会导致(通常是不必要的)额外的垂直空间。

请注意,虽然\centering会产生适当的间距,但手动将此命令添加到每个figure环境(以及每个table自定义浮动)是繁琐的,并且违背了将文档内容与格式分开的想法。更好的方法是将以下内容添加到文档序言中(感谢 egreg 提供的提示):

\makeatletter
\g@addto@macro\@floatboxreset\centering
\makeatother

或加载floatrow允许从前言部分控制浮动内容的调整的包(objectset=centering默认情况下)。

答案2

这是(非常晚了!)的补充lockstep 的回答这只是直观地演示了环境的使用\centering和环境center中的环境之间的差异figure

每页显示 2 个图,一个使用\centering,一个使用center。间距的差异是由于对两个figure环境的排序不同。在第一页上,\centering先使用 ,center然后使用 环境,而在第二页上,此顺序相反。

结果清楚地表明,下图(第一页)和上图(第二页)的间距不合适,即,无论哪个图使用center而不是\centering

showframe用于显示整体页面布局。

<code>figure</code> 环境中 <code>\centering</code> 和 <code>center</code> 环境之间的差异说明

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

最后,比较两页,每页包含两个图形。第一页包含使用 的图形\centering,而第二页包含使用环境的图形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}

答案3

由于这个线程诞生了一点误会,我想补充一点。

正如其他答案所说,center环境应该绝不使用figure在或table环境中,你应该使用\centering

在此处输入图片描述

但是如果你的表格或图片不是浮动的,也就是说你希望它们准确地放置在你放置它们的位置,即它们不是figuretable环境中,您可以center毫无问题地使用环境。它相当于tablefigure带有包选项H的环境float

如果您想添加标题,您可以使用包\captionof中的\caption

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

在此处输入图片描述 在此处输入图片描述

相关内容