我centering
在 中有一个环境figure
。在这个环境中,我有一个用样式编写的文本footnotesize
。如果我在文本中换行 ( \\
),则文本不再正确居中。
谁能告诉我为什么文本没有正确居中?
截屏:
代码:
\begin{figure}[H]
\noindent
\begin{centering}
\caption[HTTP-Polling]{HTTP-Polling}
\label{fig:polling}
\includegraphics[scale=0.5]{images/polling}
\par
\footnotesize Quelle: Heise Zeitschriftenverlag, 06. März 2012\\http://www.heise.de/developer/imgs/06/6/7/6/2/3/3/Polling-61cb54a128001c08.png
\end{centering}
\end{figure}
答案1
正如评论中提到的,存在一个名为的指令,\centering
该指令从现在开始一直打开“居中”直到当前组的结束。从技术上讲,任何命令都可以变成环境(无论是否有意义),只需使用不带反斜杠的命令名称作为环境名称即可。环境的开始/结束形成一个组,命令在其范围内执行。
对于有意义的指令,例如,\begin{itshape} ... \end{itshape}
非常有意义,在某些情况下比更可取{\itshape ...}
。但是,\begin{textbf}{...} ... \end{textbf}
由于\textbf
只对其参数进行操作,因此环境主体没有任何用处。
现在回到您的代码:如果将类似的指令\centering
用作环境,那么了解此环境结束时发生的情况非常重要:除了组之外没有其他任何东西被关闭,即范围结束。这意味着您所编写的代码相当于{\centering ...}
没有最后的\par
。但\centering
仅在感知到段落结束时(a\\
实际上在内部执行 par 中断)并且\par
看到最后一个时(在里面\end{figure}
)\end{centering}
才起作用,并将设置从居中改回正常对齐设置。为了使诸如此类的\centering
工作,许多环境(例如浮动或\parbox
等)在其末尾包含隐式\par
命令,以确保在关闭当前组之前,最后一段已完成其当前设置。但这来得太晚了。
因此,为了解决这个问题,您需要\par
在之前包含一个或空行,\end{centering}
或者直接使用\centering
(这是这里更好的方法),范围是整个图形环境。