我看到一个问题告诉我如何改变间距在一个算法环境,但我不知道如何删除/更改算法环境之前和之后的空间,例如:
% remove the space here
\begin{algorithm}
\begin{algorithmic}
[...]
\end{algorithmic}
\end{algorithm}
% remove the space here
答案1
LaTeX 有三个长度变量来控制 (i) 两个相邻浮动对象(例如图形、表格或算法对象)之间的距离,(ii) 页面顶部(底部)浮动对象与其下方(上方)文本之间的距离,以及 (iii) 文本内浮动对象与其上方和下方文本之间的距离;它们分别称为 、\floatsep
和\textfloatsep
。\intextsep
(LaTeX 还有另外三个这样的变量来控制仅浮动页面上浮动对象上方和/或下方的间距;它们分别是\@fptop
、\@fpbot
和\@fpsep
。)
为了完全抑制浮动文本内的分离(顺便说一句,不推荐!),您可以输入(在序言中)
\setlength{\intextsep}{0pt}
即,你将设置\intextsep
为固定长度 0 点。如果空间有限(双关语),更好的解决方案是设置
\setlength{\intextsep}{1\baselineskip}
下面是使用 algorithm2e 包的 MWE:
\documentclass{article}
\usepackage{algorithm2e}
\newcommand{\lipsone}{Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis.}
\newcommand{\lipstwo}{Donec vehicula augue eu neque. Pellentesque
habitant morbi tristique senectus et netus et malesuada fames ac
turpis egestas.}
\begin{document}
\subsubsection*{With default setting of \texttt{\textbackslash intextsep}}
\lipsone
\begin{algorithm}
\caption{A random example}
\SetAlgoLined
\KwData{Some input}[h]
\KwResult{Some output}
initialization\;
\While{not at end of this document}{read}
{go back to beginning\;}
\end{algorithm}
\lipstwo
\subsubsection*{After setting \texttt{\textbackslash intextsep} to 0pt}
\setlength{\intextsep}{0pt}
\lipsone
\begin{algorithm}
\caption{Another random example}
\SetAlgoLined
\KwData{Some input}
\KwResult{Some output}
initialization\;
\While{not at end of this document}{read}
{go back to beginning\;}
\end{algorithm}
\lipstwo
\end{document}
答案2
好吧,我以一种“丑陋”的方式解决了这个问题,通过添加
\vspace*{-.4cm}
在相应的位置。就我的情况而言,这没问题,因为我的 tex 文件中只有一个算法环境,但是如果您希望在所有算法环境中自动完成此操作,则应该有另一种方法。
答案3
由于我的声誉点数不足,我无法发表评论。要解决这些问题,只需添加
\setlength{\AlCapSkip}{1em}
所有算法图的序言和标题都会向下移动,而不会影响其他标题。
答案4
\begin{figure}[tb]
或者
\begin{algorithm}[tb]
或者
\begin{table}[tb]
此[tb]
参数对于几乎所有事物都有效。