不具体的问题:

不具体的问题:

不具体的问题:

命令具体起什么作用\centering

梅威瑟:

\documentclass[onecolumn]{IEEEtran}
\usepackage{graphicx,subcaption}

\begin{document}

\begin{figure}
%\centering
\begin{subfigure}[b]{.7\textwidth}
\includegraphics[width=\textwidth]{example-image}
\caption{A subfigure}\label{fig:1a}
\end{subfigure}
\begin{subfigure}[b]{.51\textwidth}
\includegraphics[width=\textwidth]{example-image}
\caption{Another subfigure}\label{fig:1c}
\end{subfigure}
\caption{A figure}\label{fig:1}
\end{figure}
\end{document}

具体问题:

在里面平均能量损失之前显示有两个子图,它们溢出了页边距。如果命令\centering“取消注释”,定位就会突然变得“智能”,并且不会允许溢出页边距。这是命令的正确行为吗?这是一个错误吗?这是一个功能吗?

答案1

嗯,似乎有一个漏洞(或者是特征在您使用的类中?)IEEEtran或者它会导致使用包subfigure,该包称为包caption。并且该包caption会导致以下您不应忽视的警告:

Package caption Info: Unknown document class (or package),
(caption)             standard defaults will be used.
)

那么让我问你:你真的需要课程吗IEEEtran?如果不需要,请再上一节课,例如articlescrartcl(KOMA-Script)。

请查看给定代码中的两行:

\begin{subfigure}[b]{.7\textwidth}
\begin{subfigure}[b]{.51\textwidth}

应该\textwidth是您可以打印的文本的宽度。我添加了包showframe来可视化输入区域。

经过一些计算(0.7+0.51=1.21),你可以看到,两个子图加起来比适合文本宽度的宽度要宽(0.21\textwidth)。在你的类中,IEEEtran你会看到一个错误,因为如果图像不能并排放置在文本宽度内,它们应该一个在另一个之下放置(例如,如果你尝试使用类的代码,你会看到这一点article)。在这里你的类/subfigure组合失败了...

(顺便问一下:您是否尝试过同时使用0.45\textwidth这两幅图像?)

命令\centering(与环境相同,但没有空白行center)希望将图像居中在给定的文本宽度内。将\centering图像居中放置并且一个图像放在另一个图像的下方,因为两个图像加在一起无法适合文本宽度。

梅威瑟:

\documentclass[onecolumn]{IEEEtran} % article IEEEtran =================
\usepackage{graphicx,subcaption}
\usepackage{showframe} % to visualize typing area ======================


\begin{document}

\begin{figure}
%\centering
  \begin{subfigure}[b]{.7\textwidth}
    \includegraphics[width=\textwidth]{example-image}
    \caption{A subfigure}\label{fig:1a}
  \end{subfigure}
  \begin{subfigure}[b]{.51\textwidth}
    \includegraphics[width=\textwidth]{example-image}
    \caption{Another subfigure}\label{fig:1c}
  \end{subfigure}
\caption{A figure}\label{fig:1}
\end{figure}
\end{document}

未进行居中的类别的 MWE 结果IEEEtran

在此处输入图片描述

您会看到两个图像都居中(上下距离为 a),但图像 2 位于外部。此居中仅显示,因为页面上没有其他文本。尝试\blindtext从包中添加blindtext或类似添加...

现在请看这两行代码:

\end{subfigure}
\begin{subfigure}[b]{.51\textwidth}

该代码导致两个图像之间出现空格(如果需要,此空格允许换行)。我在图像中用垂直红色线标记了此空格。如果您不想要空格(以及此处可能的换行),请使用代码(请自己尝试,将其添加到%MWE 中并编译以将两个类的结果 pdf 与其他结果进行比较):

\end{subfigure}% <====================================================
\begin{subfigure}[b]{.51\textwidth}

%注释后面是行}的其余部分,因此 LaTeX 看不到一个(或多个)空格,结果是两个图像之间没有空格。有了空格,总宽度会比 稍长一点1.21\textwidth,这就是我之前对两个图像建议的原因0.45\textwidth。然后图像就适合文本宽度的空间。(感谢@DavidCarlisle 的评论!)

现在有了IEEEtran\centering

在此处输入图片描述

现在两幅图像一上一下,且都位于中央(见图中红色的 a 和 b)。

现在将结果与第一幅图像进行比较,article并进行注释\centering

在此处输入图片描述

现在图像是左对齐的(注释了居中命令!),因为检测到两个图像都无法放置在给定的范围内\textwidth。顺便问一下,您看到两个打字区域的区别了吗?

最后一点:IEEEtran通常使用 class 来打印两列(请参阅日志文件中的相关消息)。如果您不必使用 class,IEEEtran最好使用其他的。从标准 class 开始articlescrartcl(KOMA-Script 文章)。

相关内容