我的文章的最后一页与下面的类似。
在第二列上,图 4 没有放在顶部,算法也没有放在图 4 的正下方。
我该如何解决这个问题?图和算法不太相关,所以我不想把它们放在同一个浮动框中。
我相信如果我添加文本(或多行文本),那么它会起作用,但我想确保它们即使在没有文本或文本很少的情况下也不会居中。
解决方案这里适用于图形,但不适用于算法。
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
\documentclass[journal]{IEEEtran}
\usepackage{graphicx}
\usepackage{array}
\usepackage{lipsum}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{amsmath}
\newcolumntype{L}{>{$}l<{$}}
\newcommand\cpair[2]{%
\begin{tabular}{LL}#1 & #2\end{tabular}}
\algrenewcommand{\algorithmiccomment}[1]{\hfill#1}
\begin{document}
\begin{figure}[!t]
\centering
\includegraphics[width=\linewidth]{example-image-a}
\caption{a caption}
\label{fig:a label}
\end{figure}
\begin{figure}[!t]
\centering
\includegraphics[width=\linewidth]{example-image-b}
\caption{a caption}
\label{fig:a label}
\end{figure}
\begin{figure}[!t]
\centering
\includegraphics[width=\linewidth]{example-image-c}
\caption{a caption}
\label{fig:a label}
\end{figure}
\begin{figure}[!t]
\centering
\includegraphics[width=\linewidth]{example-image}
\caption{a caption}
\label{fig:a label}
\end{figure}
\begin{algorithm}
\caption{Insertion-Sort køretid}\label{AlgRun}
\begin{algorithmic}[1]
\Procedure{insertion-sort}{$A,n$} \Comment \cpair{c_1}{n=0}
\State $inversions = 0$ \Comment \cpair{c_1}{n=1}
\State \textit{L}[0..\textit{n} - 1] be a new array.
\For{q=0}{n-1}
\State L[q] = A[q]
\EndFor
\For{j=1}{n-1}
\State $key = L[j]$
\State $i = j - 1$
\While{$ i \geq 0$ \textbf{and} $L[i] > key$}
\State L[ i + 1] = L[ i ]
\State $j = i - 1$
\State $inversions = inversions + 1$
\EndWhile
$L[i + 1] = key$
\EndFor
\Return{inversions}
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
答案1
这IEEEtran 文档类的文档讨论如何平衡第 XIV 节(第 16 页)最后一页的列。它提出了一些解决方法。
其中提到的一个是使用\enlargethispage
负值。
在您的示例文档中,\enlargethispage{-0.2in}
在 之前的任何位置放置类似的内容\begin{algorithm}
似乎都会产生预期的效果。
因为您的实际文档可能使用了不同的图形等,并且在其他方面有所不同,所以您可能必须尝试使用命令的不同尺寸和不同的位置。