乳胶算法何时会越过页面的顶部边缘?我在网上搜索了很多,并尝试使用 --floatsep, textfloatsep
和intextsep
但到目前为止似乎没有任何东西能解决我的问题。任何快速建议都将不胜感激。我的代码附在下面。
\documentclass[conference]{IEEEtran}
\pdfpagewidth 8.5in
\pdfpageheight 11in
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}[!t]
\caption{Candidate Score Normalization Algorithm}
\label{algo2}
\begin{algorithmic}[1]
\Procedure{NORMALIZE}{$R$}
\For{CandidateSearchTerm $t$ $\in$ $R.keys$}
\State $R[t] \gets 1-\frac{position(t)}{size(R)}$
\EndFor
\State \textbf{return} $R$
\EndProcedure
\end{algorithmic}
\end{algorithm}
\setlength{\textfloatsep}{0pt}
\end{document}
答案1
水平线扰乱了标题定位。您可以通过添加支柱来改善它:
\caption{\strut Candidate Score Normalization Algorithm}
与原文比较
\documentclass[conference]{IEEEtran}
\pdfpagewidth 8.5in
\pdfpageheight 11in
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{blindtext}
\begin{document}
\begin{algorithm}[!t]
\caption{Candidate Score Normalization Algorithm}
\label{algo2}
\begin{algorithmic}[1]
\Procedure{NORMALIZE}{$R$}
\For{CandidateSearchTerm $t$ $\in$ $R.keys$}
\State $R[t] \gets 1-\frac{position(t)}{size(R)}$
\EndFor
\State \textbf{return} $R$
\EndProcedure
\end{algorithmic}
\end{algorithm}
\setlength{\textfloatsep}{0pt}
\Blindtext
\end{document}
答案2
您可以通过重新设计浮动样式(并基于 定义新样式)来下推规则ruled
:
\documentclass[conference]{IEEEtran}
\pdfpagewidth 8.5in
\pdfpageheight 11in
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{lipsum,showframe}% just for the example
\makeatletter
\newcommand\fs@betterruled{%
\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled
\def\@fs@pre{\vspace*{5pt}\hrule height.8pt depth0pt \kern2pt}%
\def\@fs@post{\kern2pt\hrule\relax}%
\def\@fs@mid{\kern2pt\hrule\kern2pt}%
\let\@fs@iftopcapt\iftrue}
\floatstyle{betterruled}
\restylefloat{algorithm}
\makeatother
\begin{document}
\begin{algorithm}[!t]
\caption{Candidate Score Normalization Algorithm\label{algo2}}
\begin{algorithmic}[1]
\Procedure{NORMALIZE}{$R$}
\For{CandidateSearchTerm $t$ $\in$ $R.keys$}
\State $R[t] \gets 1-\frac{position(t)}{size(R)}$
\EndFor
\State \textbf{return} $R$
\EndProcedure
\end{algorithmic}
\end{algorithm}
\lipsum[1-20]
\end{document}
我添加了 5pt 的垂直空间:顶部规则周围的空间为 2+2,规则厚度为 0.8,上升部之间的差异为 0.2。文本周围的规则由 生成showframe
,只要您删除对它的调用,它们就会消失:我使用它来进行更好的视觉比较。
事实上,algorithm
环境没有越过顶部边距:如果我删除该\restylefloat
线,我们将得到默认结果。它是右列中第一条未越过边距的线。